#!/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 = 100;
open(OUT, ">trackDb.pctMeth.txt");
print OUT "track\teRRBS_pctMeth\n";
print OUT "compositeTrack\ton\n";
print OUT "shortLabel\teRRBS pctMeth\n";
print OUT "longLabel\tGWang eRRBS pctMeth\n";
print OUT "priority\t$prio\n";
print OUT "visibility\tfull\n";
print OUT "subGroup1\tview View PCTM=pctMeth\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 pctMeth track grouping.
print OUT "   track\teRRBS_pctMethView\n";
print OUT "   parent\teRRBS_pctMeth\n";
print OUT "   shortLabel\tpctMeth\n";
print OUT "   longLabel\teRRBS pctMeth\n";
print OUT "   view\tPCTM\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:100\n";
print OUT "   showSubtrackColorOnUi\ton\n";
print OUT "   viewUi\ton\n\n";

# Step 2b)  Write pctMeth 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.CpG_2nt.pctMeth.bigWig";
  next unless (-e $bwfile);
  $tracktot++;
  $prio++;
  print OUT "      track\t$id.PM\n";
  print OUT "      parent\teRRBS_pctMethView on\n";
  print OUT "      bigDataUrl\t$bwfile\n";
  print OUT "      shortLabel\t$id %meth\n";
  print OUT "      longLabel\t$id pctMeth\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=PCTM\n\n";
} }

close(OUT);

print "$tracktot tracks\n";
