#!/usr/bin/perl

@trts = ("ctrl","rot");
@genders = ("F","M");
@ages = ("D22","5Mo");
@groups = (); foreach $trt (@trts) { foreach $mf (@genders) { foreach $age (@ages) { $id = "$trt"."_$mf"."_$age"; push @groups, $id; } } }
#ctrl_M_5Mo.bismark.dedup.clipped.mm10.{plus,minus,combined}.bigWig

$tracktxt = "trackDb.depth.txt";

$prio = 500;

# Step 1)  Write track view header.
open(OUT, ">$tracktxt");
print OUT "track\tjsTracksDepth\n";
print OUT "compositeTrack\ton\n";
print OUT "shortLabel\tDepth\n";
print OUT "longLabel\tWGBS Depth\n";
print OUT "priority\t$prio\n";
print OUT "visibility\tfull\n";
print OUT "subGroup1\tview Views D=depth P=placeholder\n";
print OUT "subGroup2\tgrp Group"; foreach $grp (@groups) { print OUT " $grp=$grp"; } print OUT "\n";
print OUT "subGroup3\tstr Strand plus=plus minus=minus both=both\n";
#print OUT "subGroup5\treplicate Replicate 1=1 2=2 3=3 All=All\n";
#print OUT "subGroup6\tcontext Context CpG=CpG CHx=CHx\n";
#print OUT "subGroup7\tversion Version Stranded=Stranded MergeStrand=MergeStrand\n";
print OUT "dimensions\tdimX=str dimY=grp\n";
print OUT "sortOrder\tstr=+ grp=+ view=+\n";
print OUT "configurable\ton\n";
print OUT "type\tbigWig\n\n";


# Step 2)  Write header for depth track grouping.
print OUT "   track\tjsTracksDepthView\n";
print OUT "   parent\tjsTracksDepth\n";
print OUT "   shortLabel\tWGBS Depth\n";
print OUT "   longLabel\tWGBS Depth\n";
print OUT "   view\tPM\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:60:11\n";
print OUT "   viewLimits\t0:50\n";
print OUT "   showSubtrackColorOnUi\ton\n";
print OUT "   viewUi\ton\n\n";


# Step 3)  Write depth tracks.
foreach $id (@groups) {
  $prio++;
  print OUT "      track\t$id.DP\n";
  print OUT "      parent\tjsTracksDepthView on\n";
  print OUT "      bigDataUrl\tDATA/$id.bismark.dedup.clipped.mm10.plus.bigWig\n";
  print OUT "      shortLabel\t$id depth, plus\n";
  print OUT "      longLabel\tWGBS depth, plus strand: $id\n";
  print OUT "      type\tbigWig\n";
  print OUT "      color\t0,0,204\n";
  print OUT "      priority\t$prio\n";
  print OUT "      visibility\tfull\n";
  print OUT "      subGroups\tstr=plus grp=$id\n\n";
  $prio++;
  print OUT "      track\t$id.DM\n";
  print OUT "      parent\tjsTracksDepthView on\n";
  print OUT "      bigDataUrl\tDATA/$id.bismark.dedup.clipped.mm10.minus.bigWig\n";
  print OUT "      shortLabel\t$id depth, minus\n";
  print OUT "      longLabel\tWGBS depth, minus strand: $id\n";
  print OUT "      type\tbigWig\n";
  print OUT "      color\t0,0,102\n";
  print OUT "      priority\t$prio\n";
  print OUT "      visibility\tfull\n";
  print OUT "      subGroups\tstr=minus grp=$id\n\n";
  $prio++;
  print OUT "      track\t$id.DB\n";
  print OUT "      parent\tjsTracksDepthView on\n";
  print OUT "      bigDataUrl\tDATA/$id.bismark.dedup.clipped.mm10.combined.bigWig\n";
  print OUT "      shortLabel\t$id depth\n";
  print OUT "      longLabel\tWGBS depth, both strands: $id\n";
  print OUT "      type\tbigWig\n";
  print OUT "      color\t0,0,156\n";
  print OUT "      priority\t$prio\n";
  print OUT "      visibility\tfull\n";
  print OUT "      subGroups\tstr=both grp=$id\n\n";
}
print OUT "\n\n";

close(OUT);

