#!/usr/bin/perl

@trts = ("control", "2hLPS", "8hLPS");
@gts = ("KO", "WT");
@reps = ("1", "2", "3");

$thiscolor = "0,0,204";

open(OUT, ">trackDb.txt");
$prio = 100;

##### supertrack1: normalized depth #####
# write header supertrack header
print OUT "track\tdataP50depth\n";
print OUT "compositeTrack\ton\n";
print OUT "shortLabel\tp50 ChIP-seq signal\n";
print OUT "longLabel\tp50 ChIP-seq depth (normalized)\n";
print OUT "priority\t$prio\n";
print OUT "subGroup1\tview View DEPTH=depth\n";
print OUT "subGroup2\tGenotype Genotype"; foreach $gt (@gts) { print OUT " $gt=$gt"; } print OUT "\n";
print OUT "subGroup3\tTreatment Treatment"; foreach $trt (@trts) { print OUT " $trt=$trt"; } print OUT "\n";
print OUT "subGroup4\tRep Rep"; foreach $r (@reps) { print OUT " $r=$r"; } print OUT "\n";
print OUT "dimensions\tdimX=Treatment DimY=Genotype dimA=Rep\n";
print OUT "sortOrder\tGenotype=+ Treatment=+ Rep=+\n";
print OUT "type\tbigWig\n\n";

# write header for depth tracks
print OUT "   track\tdataP50depth_ViewDepth\n";
print OUT "   parent\tdataP50depth\n";
print OUT "   shortLabel\tp50 ChIP-seq signal\n";
print OUT "   longLabel\tp50 ChIP-seq depth (normalized)\n";
print OUT "   view\tDEPTH\n";
print OUT "   visibility\tfull\n";
print OUT "   type\tbigWig\n";
print OUT "   allButtonPair\ton\n";
print OUT "   centerLabelsDense\ton\n";
print OUT "   dragAndDrop\ton\n";
print OUT "   alwaysZero\ton\n";
print OUT "   graphTypeDefault\tbar\n";
print OUT "   maxHeightPixels\t150:30:11\n";
print OUT "   viewLimits\t0:40\n";
print OUT "   showSubtrackColorOnUi\ton\n";
print OUT "   viewUi\ton\n\n";

# write depth tracks
foreach $gt (@gts) { foreach $trt (@trts) { foreach $r (@reps) {
  $id = "$gt"."-$trt"."-$r";
  $bwfile = "data/$id.mm10.bwt.rmdup.singlefrag.norm10M.bigWig";
  unless (-e $bwfile) { print "WARNING: Did not find $bwfile.\n"; exit; }
  $prio++;
  print OUT "      track\t$id.D\n";
  print OUT "      parent\tdataP50depth_ViewDepth\n";
  print OUT "      bigDataUrl\t$bwfile\n";
  print OUT "      shortLabel\t$id p50 ChIP signal\n";
  print OUT "      longLabel\tnormalized read depth: $id p50\n";
  print OUT "      type\tbigWig\n";
  print OUT "      color\t$thiscolor\n";
  print OUT "      priority\t$prio\n";
  print OUT "      visibility\thide\n";
  print OUT "      subGroups\tGenotype=$gt Treatment=$trt Rep=$r view=DEPTH\n\n";
} } }
print OUT "\n\n";


##### supertrack2: HOMER peaks  #####
$prio = 200;
# write header supertrack header
print OUT "track\tdataP50peaks\n";
print OUT "compositeTrack\ton\n";
print OUT "shortLabel\tp50 ChIP-seq peaks\n";
print OUT "longLabel\tp50 ChIP-seq peaks\n";
print OUT "priority\t$prio\n";
print OUT "subGroup1\tGenotype Genotype"; foreach $gt (@gts) { print OUT " $gt=$gt"; } print OUT "\n";
print OUT "subGroup2\tTreatment Treatment"; foreach $trt (@trts) { print OUT " $trt=$trt"; } print OUT "\n";
print OUT "subGroup3\tRep Rep"; foreach $r (@reps) { print OUT " $r=$r"; } print OUT "\n";
print OUT "dimensions\tdimX=Treatment DimY=Genotype dimA=Rep\n";
print OUT "sortOrder\tGenotype=+ Treatment=+ Rep=+\n";
print OUT "visibility\tdense\n";
print OUT "type\tbed\n\n";
# write depth tracks
foreach $gt (@gts) { foreach $trt (@trts) { foreach $r (@reps) {
  $id = "$gt"."-$trt"."-$r";
  $bbfile = "data/$id.homer-peakcalls.FDR_e-3.300bp.bigBed";
  $prio++;
  print OUT "    track\t$id.P\n";
  print OUT "    parent\tdataP50peaks\n";
  print OUT "    bigDataUrl\t$bbfile\n";
  print OUT "    shortLabel\t$id p50 peaks\n";
  print OUT "    longLabel\tp50 peaks: $id\n";
  print OUT "    type\tbigBed\n";
  print OUT "    color\t$thiscolor\n";
  print OUT "    priority\t$prio\n";
  print OUT "    visibility\thide\n";
  print OUT "    subGroups\tGenotype=$gt Treatment=$trt Rep=$r\n\n";
} } }
print OUT "\n\n";

close(OUT);
