#!/usr/bin/perl

@grps = ("RJAM","AM","IM","MBMM","GM","Quiescent","MHS");
@reps = ("1", "2", "3");
@ids = (); foreach $grp (@grps) { foreach $rep (@reps) { $id = "$grp-$rep"; push @id, $ids; } }

%grpColor = (
"RJAM" => "255,51,255", #pink
"AM" => "255,128,0", #orange
"IM" => "0,204,0", #green
"MBMM" => "0,204,204", #turquoise
"GM" => "218,165,32", #yellow/brown
"Quiescent" => "127,0,255", #purple
"MHS" => "0,128,255"); #blue


# Step 1)  Write track view header.
$prio = 100;
open(OUT, ">trackDb.txt");
print OUT "track\tHN_tracks\n";
print OUT "compositeTrack\ton\n";
print OUT "shortLabel\tHN Tracks\n";
print OUT "longLabel\tHNakano RNAseq Depth\n";
print OUT "priority\t$prio\n";
print OUT "visibility\tfull\n";
print OUT "subGroup1\tview Views COVN=depthNorm\n"; # COVR=depthRaw\n";
print OUT "subGroup2\tgroup Group";
foreach $grp (@grps) { print OUT " $grp=$grp"; } print OUT "\n";
print OUT "subGroup3\treplicate Replicate";
foreach $rep (@reps) { print OUT " $rep=$rep"; } print OUT "\n";
print OUT "dimensions\tdimX=group dimY=replicate\n";
print OUT "sortOrder\tgroup=+ replicate=+ view=-\n";
print OUT "configurable\ton\n";
print OUT "type\tbed 3\n\n";


# Step 2a)  Write header for normalized depth track grouping.
print OUT "   track\tHN_tracksViewDepthN\n";
print OUT "   parent\tHN_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 "   centerLabelsDense\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.
foreach $grp (@grps) { foreach $rep (@reps) {
  $id = "$grp-$rep";
  $bwfile = "DATA/$id.depthNorm.bw";
  unless (-e $bwfile) { print "WARNING: Did not find $bwfile.\n"; exit; }
  $prio++;
  $thiscolor = $grpColor{$grp};
  print OUT "      track\t$id.NDP\n";
  print OUT "      parent\tHN_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$thiscolor\n";
  print OUT "      priority\t$prio\n";
  print OUT "      visibility\thide\n";
  print OUT "      subGroups\tgroup=$grp replicate=$rep view=COVN\n\n";
} }

close(OUT);

