#!/usr/bin/perl

@animals = ("DHFD-1", "DHFD-1R", "DHFD-3", "DHFD-4", "DLFD-5", "DLFD-7", "DLFD-8", 
  "HFHFB-1", "HFHFB-9", "HFHFB-15", "HFLFB-3", "HFLFB-5", "HFLFB-16", 
  "LFHFB-4", "LFHFB-10", "LFHFB-12", "LFLFB-6", "LFLFB-13", "LFLFB-14");
@strands = ("plus", "minus");
@months = ("Nov", "Dec");

$strPlusColor = "0,0,255";      # blue
$strMinusColor = "127,0,1255";  # purple


# Step 1)  Write track view header.
$prio = 100;
open(OUT, ">trackDb.txt");
print OUT "track\tYQ_rawDepth_RNAseq\n";
print OUT "compositeTrack\ton\n";
print OUT "shortLabel\tYQ rawDepth RNAseq\n";
print OUT "longLabel\tYQ rawDepth RNAseq Tracks\n";
print OUT "priority\t$prio\n";
print OUT "visibility\tfull\n";
print OUT "subGroup1\tview Views COV=depth\n";
print OUT "subGroup2\tanimal Animal";
foreach $ani (@animals) { print OUT " $ani=$ani"; } print OUT "\n";
print OUT "subGroup3\tmonth Month Nov=Nov Dec=Dec\n";
print OUT "subGroup4\tstrand Strand plus=plus minus=minus\n";
print OUT "dimensions\tdimX=month dimY=animal dimA=strand\n";
print OUT "sortOrder\tanimal=+ month=+ strand=+ view=-\n";
print OUT "configurable\ton\n";
print OUT "type\tbed 3\n\n";


# Step 2a)  Write header for depth track grouping.
print OUT "   track\tYQ_rawDepth_RNAseqViewDepth\n";
print OUT "   parent\tYQ_rawDepth_RNAseq\n";
print OUT "   shortLabel\tRaw Depth\n";
print OUT "   longLabel\tRaw RNA-seq Depth\n";
print OUT "   view\tCOV\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:200\n";
print OUT "   showSubtrackColorOnUi\ton\n";
print OUT "   viewUi\ton\n\n";

# Step 2b)  Write raw depth tracks.
foreach $ani (@animals) { foreach $set (@months) {
  next if ($ani eq "DHFD-1R" && $set eq "Nov");
  $bwfileP = "DATA/$ani.$set.rawDepth.plus.bw";
  $bwfileM = "DATA/$ani.$set.rawDepth.minus.bw";
  unless (-e $bwfileP) { print "WARNING: Did not find $bwfileP.\n"; exit; }
  unless (-e $bwfileM) { print "WARNING: Did not find $bwfileM.\n"; exit; }
  $prio++;
  $thiscolor = $strPlusColor;
  print OUT "      track\t$ani.$set.RDP\n";
  print OUT "      parent\tYQ_rawDepth_RNAseqViewDepth on\n";
  print OUT "      bigDataUrl\t$bwfileP\n";
  print OUT "      shortLabel\t$ani.$set plus\n";
  print OUT "      longLabel\traw read depth (+): $ani.$set\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\tanimal=$ani month=$set strand=plus view=COV\n\n";
  $prio++;
  $thiscolor = $strMinusColor;
  print OUT "      track\t$ani.$set.RDM\n";
  print OUT "      parent\tYQ_rawDepth_RNAseqViewDepth on\n";
  print OUT "      bigDataUrl\t$bwfileM\n";
  print OUT "      shortLabel\t$ani.$set minus\n"; 
  print OUT "      longLabel\traw read depth (-): $ani.$set\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\tanimal=$ani month=$set strand=minus view=COV\n\n";
} }
close(OUT);

