#!/usr/bin/perl

$tracktxt = "trackDb.pctMeth.txt";

$prio = 400;

# Step 1)  Write track view header.
open(OUT, ">$tracktxt");
print OUT "track\trliTracksPctMeth\n";
print OUT "compositeTrack\ton\n";
print OUT "shortLabel\tPctMeth\n";
print OUT "longLabel\tPct Methylation, WGBS Data\n";
print OUT "priority\t$prio\n";
print OUT "visibility\tfull\n";
print OUT "subGroup1\tview Views PM=pctMeth P=placeholder\n";
print OUT "subGroup2\tdiet Diet_Condition LF=LF HF=HF HF-LF=HF-LF\n";
print OUT "subGroup3\treplicate Replicate 1=1 2=2 3=3 4=4 5=5 All=All\n";
print OUT "subGroup4\tcontext Context CpG=CpG CHx=CHx\n";
print OUT "subGroup5\tversion Version Stranded=Stranded MergeStrand=MergeStrand\n";
print OUT "dimensions\tdimX=replicate dimY=diet dimZ=context\n";
print OUT "sortOrder\tversion=+ context=+ diet=+ replicate=+ view=-\n";
print OUT "configurable\ton\n";
print OUT "type\tbigWig\n\n";


# Step 2)  Write header for pctMeth track grouping.
print OUT "   track\trliTracksPctMethViewDepth\n";
print OUT "   parent\trliTracksPctMeth\n";
print OUT "   shortLabel\tWGBS PctMeth\n";
print OUT "   longLabel\tWGBS PctMeth\n";
print OUT "   view\tPM\n";
print OUT "   visibility\tfull\n";
print OUT "   type\tbigWig -100 100\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\t-100:100\n";
print OUT "   showSubtrackColorOnUi\ton\n";
print OUT "   viewUi\ton\n\n";


# Step 3)  Write PctMeth tracks.
@diets = ("LF", "HF", "HF-LF");
@reps = (1,2,3,4,5,0);
@contexts = ("CpG", "CHx");
foreach $ctxt (@contexts) { foreach $diet (@diets) { foreach $rep (@reps) {
  if ($rep == 0) { $sampleID = $diet; $rr="All"; } else { $sampleID = "$diet$rep"; $rr=$rep; }

  $prio++;
  print OUT "      track\t$sampleID.$ctxt.PMS\n";
  print OUT "      parent\trliTracksPctMethViewDepth on\n";
  print OUT "      bigDataUrl\tDATA/$sampleID.mm10.methpct.$ctxt.bigwig\n";
  print OUT "      shortLabel\t$sampleID $ctxt %meth\n";
  if ($rep == 0) { print OUT "      longLabel\tWGBS read depth: $sampleID merged, %meth, $ctxt context\n"; }
  else { print OUT "      longLabel\tWGBS read depth: $sampleID, %meth, $ctxt context\n"; }
  print OUT "      type\tbigWig -100 100\n";
  if ($ctxt eq "CpG") { print OUT "      color\t204,0,0\n"; }
  else { print OUT "      color\t0,0,0\n"; }
  print OUT "      priority\t$prio\n";
  print OUT "      visibility\tfull\n";
  print OUT "      subGroups\tdiet=$diet replicate=$rr context=$ctxt version=Stranded\n\n";
} } }
foreach $diet (@diets) {
  $sampleID = $diet;
  $prio++;
  print OUT "      track\t$sampleID.CpG.PMM\n";
  print OUT "      parent\trliTracksPctMethViewDepth on\n";
  print OUT "      bigDataUrl\tDATA/$sampleID.mm10.methpct-merged.CpG.bigwig\n";
  print OUT "      shortLabel\t$sampleID CpG %meth (+-)\n";
  print OUT "      longLabel\tWGBS read depth: $sampleID merged (+-), %meth, CpG context\n";
  print OUT "      type\tbigWig 0 100\n";
  print OUT "      color\t204,0,0\n";
  print OUT "      priority\t$prio\n";
  print OUT "      visibility\tfull\n";
  print OUT "      subGroups\tdiet=$diet replicate=All context=CpG version=MergeStrand\n";
  print OUT "      viewLimits\t0:100\n\n";
}
print OUT "\n\n";

close(OUT);

