#!/usr/bin/perl

### This is not the first set of tracks in the hub, so exclude header for useOneFile here. ###

$trackfile = "trackDb.RNAseq_normDepth.txt";
$datadir = "data/RNAseq";
$patientInfoFile = "patientInfo.txt";

@strands = ("plus","minus");
@patientTypes = ("control","FPD");
@patientCHIPs = ("NA","NoCHIP","CHIP");
@patientSexes = ("F","M");
%patT = (); %patC = (); %patS = (); @patientList = ();
open(IN, "$patientInfoFile");
while (<IN>) {
  next if ($_ =~ /^\#/);
  chomp $_; ($pat, $T, $C, $S) = split/\t/, $_;
  push @patientList, $pat;
  $patT{$pat} = $T;
  $patC{$pat} = $C;
  $patS{$pat} = $S;
}
close(IN);


open(OUT, ">$trackfile");

##############################################################
## main header

#print OUT "hub\tLiuMenezes_RUNX1_hg38_hub\n";
#print OUT "shortLabel\tLiu/Menezes RUNX1 Data Hub\n";
#print OUT "longLabel\tLiu/Menezes RUNX1 Data Hub\n";
#print OUT "useOneFile\ton\n";
#print OUT "email\tgrimmsa\@niehs.nih.gov\n\n";
#print OUT "genome\thg38\n\n";


##############################################################
## composite track header: normalized depth

$prio = 400;

print OUT "track\tdataRNA\n";
print OUT "compositeTrack\ton\n";
print OUT "shortLabel\tnormDepthRNA\n";
print OUT "longLabel\tRNAseq normalized depth\n";
print OUT "priority\t$prio\n";
print OUT "subGroup1\tview View ViewBigWig=ViewBar\n";
print OUT "subGroup2\tstrand Strand plus=plus minus=minus\n";
print OUT "subGroup3\tptype PatientType"; foreach $x (@patientTypes) { print OUT " $x=$x"; } print OUT "\n";
print OUT "subGroup4\tpsex PatientSex"; foreach $x (@patientSexes) { print OUT " $x=$x"; } print OUT "\n";
print OUT "subGroup5\tchip StatusCHIP"; foreach $x (@patientCHIPs) { print OUT " $x=$x"; } print OUT "\n";
print OUT "subGroup6\tpatient Patient"; foreach $x (@patientList) { print OUT " $x=$x"; } print OUT "\n";
print OUT "dimensions\tdimX=patient dimY=strand dimA=ptype dimB=psex dimC=chip\n";
print OUT "sortOrder\tptype=+ chip=+ strand=+\n";
print OUT "configurable\ton\n";
print OUT "type\tbigWig\n\n";

## view header (normDepth/bigWig)
print OUT "   track\tdataRNA_ViewBigWig\n";
print OUT "   parent\tdataRNA\n";
print OUT "   shortLabel\tnormDepthRNA\n";
print OUT "   longLabel\tRNAseq normalized depth\n";
print OUT "   view\tViewBigWig\n";
print OUT "   visibility\thide\n";
print OUT "   type\tbigWig\n";
print OUT "   allButtonPair\ton\n";
#print OUT "   centerLabelsDense\ton\n";
print OUT "   centerLabels\toff\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 "   autoScale\ton\n";
#print OUT "   autoScale\toff\n";
print OUT "   autoScale\tgroup\n";
#print OUT "   viewLimits\t0:100\n";
print OUT "   showSubtrackColorOnUi\ton\n";
print OUT "   viewUi\ton\n\n";

## data tracks (pctMeth/bigWig)
foreach $pat (@patientList) { foreach $str (@strands) {
  $one_letter = substr($str, 0, 1);
  $bwfile = "$datadir/$pat.depthRPM.$str.bigWig";
  unless (-e $bwfile) { print "WARNING: Did not find \'$bwfile\'.\n"; next; }
  $prio++;
  print OUT "      track\t$pat.RNA$one_letter\n";
  print OUT "      parent\tdataRNA_ViewBigWig\n";
  print OUT "      bigDataUrl\t$bwfile\n";
  print OUT "      shortLabel\t$pat [RNA,$str]\n";
  print OUT "      longLabel\t$pat RNAseq normalized depth [$str strand]\n";
  print OUT "      type\tbigWig\n";
  print OUT "      color\t0,0,0\n";
  print OUT "      priority\t$prio\n";
  print OUT "      visibility\thide\n";
  print OUT "      subGroups\tview=ViewBigWig strand=$str ptype=$patT{$pat} psex=$patS{$pat} chip=$patC{$pat} patient=$pat\n\n";
} }
print OUT "\n\n";

close(OUT);


