#!/usr/bin/perl

@ages = ("P7", "P14", "P28");
@gts = ("WT", "KO");
@reps = ("1", "2", "3", "4", "5");  # not all groups have this many reps
@grps = (); foreach $age (@ages) { foreach $gt (@gts) { $grp = "$age"."_$gt"; push @grps, $grp; } }

%grpcolor = (
"P7_WT" => "0,0,255", #dark blue
"P7_KO" => "0,128,255", # light blue
"P14_WT" => "204,102,0", # dark orange
"P14_KO" => "255,128,0", # medium orange
"P28_WT" => "0,153,0", # dark green
"P28_KO" => "102,204,0" # light green
);

# Step 1)  Write track view header.
$prio = 100;
open(OUT, ">trackDb.txt");
print OUT "track\tJColl_tracks\n";
print OUT "compositeTrack\ton\n";
print OUT "shortLabel\tJColl RNAseq\n";
print OUT "longLabel\tJColl RNAseq Depth\n";
print OUT "priority\t$prio\n";
print OUT "visibility\tfull\n";
print OUT "subGroup1\tview View COVN=depthNorm\n";
print OUT "subGroup2\tage Age"; foreach $age (@ages) { print OUT " $age=$age"; } print OUT "\n";
print OUT "subGroup3\tgt Genotype"; foreach $gt (@gts) { print OUT " $gt=$gt"; } print OUT "\n";
print OUT "subGroup4\treplicate Replicate"; foreach $r (@reps) { print OUT " $r=$r"; } print OUT "\n";
print OUT "dimensions\tdimX=age dimY=gt\n";
print OUT "sortOrder\tage=+ gt=+ replicate=+\n";
print OUT "configurable\ton\n";
print OUT "type\tbigWig\n\n";

# Step 2a)  Write header for normalized depth track grouping.
print OUT "   track\tJColl_tracksViewDepthN\n";
print OUT "   parent\tJColl_tracks\n";
print OUT "   shortLabel\tNormDepth\n";
print OUT "   longLabel\tNormalized RNA-seq Depth\n";
print OUT "   view\tCOVN\n";
print OUT "   visibility\tfull\n";
print OUT "   type\tbigWig\n";
print OUT "   allButtonPair\ton\n";
print OUT "   dragAndDrop\ton\n";
print OUT "   alwaysZero\ton\n";
print OUT "   graphTypeDefault\tbar\n";
print OUT "   maxHeightPixels\t150:40:11\n";
print OUT "   viewLimits\t0:500\n";
print OUT "   showSubtrackColorOnUi\ton\n";
print OUT "   viewUi\ton\n\n";

# Step 2b)  Write normalized depth tracks.
$tracktot = 0;
foreach $age (@ages) { foreach $gt (@gts) { foreach $r (@reps) {
  $id = "$age\_$gt\-$r";
  $bwfile = "data/$id.depthNorm.bw";
  next unless (-e $bwfile);
  $tracktot++;
  $grp = "$age\_$gt";
  $useColor = $grpcolor{$grp};
  $prio++;
  print OUT "      track\t$id.ND\n";
  print OUT "      parent\tJColl_tracksViewDepthN on\n";
  print OUT "      bigDataUrl\t$bwfile\n";
  print OUT "      shortLabel\t$id\n";
  print OUT "      longLabel\tnormalized read depth: $id\n";
  print OUT "      type\tbigWig\n";
  print OUT "      color\t$useColor\n";
  print OUT "      priority\t$prio\n";
  print OUT "      visibility\thide\n";
  print OUT "      subGroups\tage=$age gt=$gt replicate=$r view=COVN\n\n";
} } }

close(OUT);

print "$tracktot tracks\n";
