#!/usr/bin/perl

@viewList1 = (); @viewList2 = (); %id2bw = ();
open(IN, "file_key.txt");
while (<IN>) {
  chomp $_; ($bwroot, $id, $view) = split/\t/, $_;
  if ($view eq "view1") { push @viewList1, $id; }
  if ($view eq "view2") { push @viewList2, $id; }
  $id2bw{$id} = $bwroot;
}
close(IN);

#$strPlusColor = "0,0,204";
#$strMinusColor = "204,0,102";
%dietColor = ("LF" => "0,0,204", "HF" => "204,0,0", "HFLF" => "0,204,0");

# Step 1)  Write track view header.
$prio = 100;
open(OUT, ">trackDb.txt");
print OUT "track\tRLi_RNAseq_tracks\n";
print OUT "compositeTrack\ton\n";
print OUT "shortLabel\tDepth Tracks\n";
print OUT "longLabel\tRLi RNAseq Depth\n";
print OUT "priority\t$prio\n";
print OUT "visibility\tfull\n";
print OUT "subGroup1\tview Views COV1=Mar2014 COV2=Feb2017\n";
print OUT "subGroup2\tdiet Diet HF=HF LF=LF HFLF=HFLF\n";
print OUT "subGroup3\tstrand Strand plus=plus minus=minus\n";
print OUT "dimensions\tdimX=diet dimY=strand\n";
print OUT "sortOrder\tview=+ diet=+ strand=+\n";
print OUT "configurable\ton\n";
print OUT "type\tbed 3\n\n";


# Step 2a)  Write header for normalized depth track grouping, Mar2014 data.
print OUT "   track\tRLi_RNAseq_tracksViewMar2014\n";
print OUT "   parent\tRLi_RNAseq_tracks\n";
print OUT "   shortLabel\tDepthMar2014\n";
print OUT "   longLabel\tNormalized RNA-seq Depth, March2014\n";
print OUT "   view\tCOV1\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:500\n";
print OUT "   showSubtrackColorOnUi\ton\n";
print OUT "   viewUi\ton\n\n";

# Step 2b)  Write normalized depth tracks, Mar2014 data.
foreach $id (@viewList1) {
  $bwroot = $id2bw{$id};
  $bwfileP = "DATA/$bwroot"; $bwfileP =~ s/\{plus,minus\}/plus/;
  $bwfileM = "DATA/$bwroot"; $bwfileM =~ s/\{plus,minus\}/minus/;
  @idar = split/\-/, $id; $diet = $idar[0];
  $thiscolor = $dietColor{$diet};
  unless (-e $bwfileP) { print "WARNING: Did not find $bwfileP.\n"; exit; }
  unless (-e $bwfileM) { print "WARNING: Did not find $bwfileM.\n"; exit; }
  $prio++;
  print OUT "      track\t$id.P\n";
  print OUT "      parent\tRLi_RNAseq_tracksViewMar2014 on\n";
  print OUT "      bigDataUrl\t$bwfileP\n";
  print OUT "      shortLabel\t$id plus\n";
  print OUT "      longLabel\tnormalized read depth (+): $id\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\tdiet=$diet strand=plus view=COV1\n\n";
  $prio++;
  print OUT "      track\t$id.M\n";
  print OUT "      parent\tRLi_RNAseq_tracksViewMar2014 on\n";
  print OUT "      bigDataUrl\t$bwfileM\n";
  print OUT "      shortLabel\t$id minus\n"; 
  print OUT "      longLabel\tnormalized read depth (-): $id\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\tdiet=$diet strand=minus view=COV1\n\n";
}


# Step 3a)  Write header for normalized depth track grouping, Feb2017 data.
print OUT "   track\tRLi_RNAseq_tracksViewFeb2017\n";
print OUT "   parent\tRLi_RNAseq_tracks\n";
print OUT "   shortLabel\tDepthFeb2017\n";
print OUT "   longLabel\tNormalized RNA-seq Depth, Feb2017\n";
print OUT "   view\tCOV2\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:500\n";
print OUT "   showSubtrackColorOnUi\ton\n";
print OUT "   viewUi\ton\n\n";

# Step 3b)  Write normalized depth tracks, Feb2017 data.
foreach $id (@viewList2) {
  $bwroot = $id2bw{$id};
  $bwfileP = "DATA/$bwroot"; $bwfileP =~ s/\{plus,minus\}/plus/;
  $bwfileM = "DATA/$bwroot"; $bwfileM =~ s/\{plus,minus\}/minus/;
  @idar = split/\-/, $id; $diet = $idar[0];
  $thiscolor = $dietColor{$diet};
  unless (-e $bwfileP) { print "WARNING: Did not find $bwfileP.\n"; exit; }
  unless (-e $bwfileM) { print "WARNING: Did not find $bwfileM.\n"; exit; }
  $prio++;
  print OUT "      track\t$id.P\n";
  print OUT "      parent\tRLi_RNAseq_tracksViewFeb2017 on\n";
  print OUT "      bigDataUrl\t$bwfileP\n";
  print OUT "      shortLabel\t$id plus\n";
  print OUT "      longLabel\tnormalized read depth (+): $id\n";
  print OUT "      type\tbigWig\n";
  print OUT "      color\t$thiscolor\n";
  print OUT "      priority\t$prio\n";
  print OUT "      visibility\tfull\n";
  print OUT "      subGroups\tdiet=$diet strand=plus view=COV2\n\n";
  $prio++;
  print OUT "      track\t$id.M\n";
  print OUT "      parent\tRLi_RNAseq_tracksViewFeb2017 on\n";
  print OUT "      bigDataUrl\t$bwfileM\n";
  print OUT "      shortLabel\t$id minus\n"; 
  print OUT "      longLabel\tnormalized read depth (-): $id\n";
  print OUT "      type\tbigWig\n";
  print OUT "      color\t$thiscolor\n";
  print OUT "      priority\t$prio\n";
  print OUT "      visibility\tfull\n";
  print OUT "      subGroups\tdiet=$diet strand=minus view=COV2\n\n";
}

close(OUT);

