#!/usr/bin/perl

@grpsA = ("WT", "D0", "D1", "D4", "D3", "D6");
@grpsB = ("shEV", "E1", "E2");
@grps = (@grpsA, @grpsB);
@reps = ("1", "2", "3", "M");  # 'M' is for merged replicates; some groups only have 2 replicates instead of 3

$useColor = "0,0,204"; # dark blue


# Step 1)  Write track view header.
$prio = 200;
open(OUT, ">trackDb.depth.txt");
print OUT "track\teRRBS_depth\n";
print OUT "compositeTrack\ton\n";
print OUT "shortLabel\teRRBS depth\n";
print OUT "longLabel\tGWang eRRBS depth\n";
print OUT "priority\t$prio\n";
print OUT "visibility\tfull\n";
print OUT "subGroup1\tview View DCOV=depth\n";
print OUT "subGroup2\tgrp 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=grp dimY=replicate\n";
print OUT "sortOrder\tgrp=+ replicate=+\n";
print OUT "configurable\ton\n";
print OUT "type\tbigWig\n\n";

# Step 2a)  Write header for depth track grouping.
print OUT "   track\teRRBS_depthView\n";
print OUT "   parent\teRRBS_depth\n";
print OUT "   shortLabel\tdepth\n";
print OUT "   longLabel\teRRBS depth\n";
print OUT "   view\tDCOV\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:30\n";
print OUT "   showSubtrackColorOnUi\ton\n";
print OUT "   viewUi\ton\n\n";

# Step 2b)  Write depth bigWig tracks.
$tracktot = 0;
foreach $grp (@grps) { foreach $rep (@reps) {
  if ($rep eq "M") { $id = $grp; }
  else { $id = "$grp\-rep$rep"; }
  $bwfile = "DATA/rrbs/$id.mm10.bothstrands.bigWig";
  next unless (-e $bwfile);
  $tracktot++;
  $prio++;
  print OUT "      track\t$id.D\n";
  print OUT "      parent\teRRBS_depthView on\n";
  print OUT "      bigDataUrl\t$bwfile\n";
  print OUT "      shortLabel\t$id depth\n";
  print OUT "      longLabel\t$id depth (combined strands)\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\tgrp=$grp replicate=$rep view=DCOV\n\n";
} }

close(OUT);

print "$tracktot tracks\n";
