#!/usr/bin/perl

$stroot = "AgCC.CnT.D";
$shortLab = "AgingCC CnT depth";
$longLab = "AgingCC CnT Normalized Depth Tracks";

$prio = 300;

##############################################################

$datadir = "data/CnT";
$trackname = "trackDb.$stroot.txt";

@marks = ("K4me3","K27me3","K27ac");
@oncos = ("APC","AKPS");
@stypes = ("Tumor","Crypt","SI","Sorted");
@ages = ("Young","Old");
@reps = (1,2,3);
%yMax = ("K4me3" => 30, "K27me3" => 5, "K27ac" => 15);

##############################################################

open(OUT, ">$trackname");

##### normalized depth #####
# write header supertrack header
print OUT "track\tdata$stroot\n";
print OUT "compositeTrack\ton\n";
print OUT "shortLabel\t$shortLab\n";
print OUT "longLabel\t$longLab\n";
print OUT "priority\t$prio\n";
print OUT "subGroup1\tview Mark "; foreach $m (@marks) { print OUT " $m=$m"; } print OUT "\n";
print OUT "subGroup2\tonc Oncogenes"; foreach $onc (@oncos) { print OUT " $onc=$onc"; } print OUT "\n";
print OUT "subGroup3\tstype SampleType"; foreach $st (@stypes) { print OUT " $st=$st"; } print OUT "\n";
print OUT "subGroup4\tage Age"; foreach $age (@ages) { print OUT " $age=$age"; } print OUT "\n";
print OUT "subGroup5\trep Replicate"; foreach $r (@reps) { print OUT " $r=$r"; } print OUT "\n";
print OUT "dimensions\tdimX=onc dimY=stype dimA=age\n";
print OUT "sortOrder\tview=+ onc=+ stype=+ age=+ rep=+\n";
print OUT "configurable\ton\n";
print OUT "type\tbigWig\n\n";

foreach $m (@marks) {
# write header
  print OUT "   track\tdata$stroot\_$m\_ViewDepth\n";
  print OUT "   parent\tdata$stroot\n";
  $thisShortLab = $shortLab; $thisShortLab =~ s/CnT/$m/;
  $thisLongLab	= $longLab; $thisLongLab =~ s/CnT/$m/;
  print OUT "   shortLabel\t$thisShortLab\n";
  print OUT "   longLabel\t$thisLongLab\n";
  print OUT "   view\t$m\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:25:11\n";
  print OUT "   viewLimits\t0:$yMax{$m}\n";
  print OUT "   showSubtrackColorOnUi\ton\n";
  print OUT "   viewUi\ton\n\n";

# write tracks
  foreach $onc (@oncos) { foreach $st (@stypes) { foreach $age (@ages) { foreach $r (@reps) {
    $id = "$onc"."_$st"."_$age"."_$m"."_rep$r";
    $bwfile = "$datadir/$id.mm10.bwt2.MAPQ5-PP.rmdup.singlefragAll.norm1M.bigWig";
    unless (-e $bwfile) { print "WARNING: Did not find \'$bwfile\'.\n"; next; }
    $prio++;
    print OUT "      track\t$id.D\n";
    print OUT "      parent\tdata$stroot\_$m\_ViewDepth\n";
    print OUT "      bigDataUrl\t$bwfile\n";
    print OUT "      shortLabel\t$id\n";
    print OUT "      longLabel\t$id normalized depth\n";
    print OUT "      type\tbigWig\n";
    print OUT "      color\t0,0,0\n";
    print OUT "      priority\t$prio\n";
    print OUT "      visibility\thide\n";
    print OUT "      subGroups\tview=$m onc=$onc stype=$st age=$age rep=$r\n\n";
  } } } }

  print OUT "\n\n";
}

close(OUT);
