#!/usr/bin/perl

$stroot = "COV";
$shortLab = "Depth";
$longLab = "Normalized Depth Tracks";

$prio = 100;

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

$datadir = "data";
$trackname = "trackDb.$stroot.txt";
$infofile = "sample_tags.txt";

@abs = ("K27_HC", "K27_WV", "K9_HC", "K9_WV", "input");
@trts = ("Veh", "P4");
@reps = (1,2,3);
@versionsDup = ("max1","max3","max5","maxX");
@versionsDS = ("all","ds50M");

%abColors = ("K27_HC" => "0,153,0",      # green
             "K27_WV" => "0,0,204",      # blue
             "K9_HC" => "255,128,0",     # orange
             "K9_WV" => "255,0,127",     # pink
             "input" => "102,102,102");  # gray

@ids = (); %id2ab = (); %id2trt = (); %id2rep = ();
open(INFO, "$infofile");
while (<INFO>) {
  next if ($_ =~ /^\#/);
  chomp $_; ($id, $ab, $trt, $r) = split/\t/, $_;
  push @ids, $id;
  $id2ab{$id} = $ab;
  $id2trt{$id} = $trt;
  $id2rep{$id} = $r;
}
close(INFO);

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

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 View NORM=normDepth\n";
print OUT "subGroup2\tAntibody Antibody"; foreach $ab (@abs) { print OUT " $ab=$ab"; } 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 "subGroup5\tDups Dups"; foreach $verDup (@versionsDup) { print OUT " $verDup=$verDup"; } print OUT "\n";
print OUT "dimensions\tdimX=Antibody dimY=Treatment dimA=Dups dimB=Rep\n";
print OUT "sortOrder\tAntibody=+ Treatment=+ Dups=+ Rep=+\n";
print OUT "type\tbigWig\n\n";

# write header for depth tracks
print OUT "   track\tdata$stroot\_ViewDepth\n";
print OUT "   parent\tdata$stroot\n";
print OUT "   shortLabel\t$shortLab\n";
print OUT "   longLabel\t$longLab\n";
print OUT "   view\tNORM\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 $id (@ids) { foreach $verDup (@versionsDup) {
  $bwfile = "$datadir/$id.PE.hg19.singlefragWithTags.$verDup.depthNorm.bigWig";
  unless (-e $bwfile) { print "ERROR: Did not find $bwfile.\n"; exit; }
  $prio++;
  print OUT "      track\t$id.$verDup.$stroot\n";
  print OUT "      parent\tdata$stroot\_ViewDepth\n";
  print OUT "      bigDataUrl\t$bwfile\n";
  print OUT "      shortLabel\t$id $verDup depth\n";
  print OUT "      longLabel\tnormalized depth ($id, $verDup)\n";
  print OUT "      type\tbigWig\n";
  print OUT "      color\t$abColors{$id2ab{$id}}\n";
  print OUT "      priority\t$prio\n";
  print OUT "      visibility\thide\n";
  print OUT "      subGroups\tAntibody=$id2ab{$id} Treatment=$id2trt{$id} Rep=$id2rep{$id} Dups=$verDup view=NORM\n\n";
} }
print OUT "\n\n";

close(OUT);
