#!/usr/bin/perl

@wks = ("P7", "P14", "P28");   # actually days not weeks, just using this to keep consistent with previous scripts
@gts = ("WT", "KO");
@reps = ("1", "2", "3", "4", "5");
@grps = (); foreach $wk (@wks) { foreach $gt (@gts) { $grp = "$wk"."_$gt"; push @grps, $grp; } }

%grpcolor = (
"P7_WT" => "0,0,255", #dark blue
"P7_KO" => "51,153,255", # light blue
"P14_WT" => "0,153,0", # dark green
"P14_KO" => "102,204,0", # light green
"P28_WT" => "204,0,0", # dark red
"P28_KO" => "255,128,0" #orange
);

$chipcolor = "0,0,0";


# Write track view header. (RNAseq)
$prio = 100;
open(OUT, ">trackDb.dev.txt");
print OUT "track\tCSriv_RNA_tracks\n";
print OUT "compositeTrack\ton\n";
print OUT "shortLabel\tCSriv RNAseq\n";
print OUT "longLabel\tCSriv RNAseq Depth\n";
print OUT "priority\t$prio\n";
print OUT "visibility\tfull\n";
print OUT "subGroup1\tview View COVN=depthNorm\n"; # COVR=depthRaw\n";
print OUT "subGroup2\tagegt AgeGt";
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=agegt dimY=replicate\n";
print OUT "sortOrder\tagegt=+ replicate=+\n";
print OUT "configurable\ton\n";
print OUT "type\tbigWig\n\n";

# Write header for normalized depth track grouping.
print OUT "   track\tCSriv_tracksViewDepthN\n";
print OUT "   parent\tCSriv_RNA_tracks\n";
print OUT "   shortLabel\tRNAseq NormDepth\n";
print OUT "   longLabel\tNormalized RNA-seq Depth\n";
print OUT "   view\tCOVN\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:500\n";
print OUT "   showSubtrackColorOnUi\ton\n";
print OUT "   viewUi\ton\n\n";

# Write normalized depth tracks. (RNAseq)
$tracktot = 0;
foreach $grp (@grps) { foreach $rep (@reps) {
  $id = "$grp\-$rep";
  $bwfile = "DATA/RNAseq/$id.depthNorm.bw";
  next unless (-e $bwfile);
  $tracktot++;
  $useColor = $grpcolor{$grp};
  $prio++;
  print OUT "      track\t$id.ND\n";
  print OUT "      parent\tCSriv_tracksViewDepthN on\n";
  print OUT "      bigDataUrl\t$bwfile\n";
  print OUT "      shortLabel\t$id\n";
  print OUT "      longLabel\tnormalized read depth: $id\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\tagegt=$grp replicate=$rep view=COVN\n\n";
} }
print "$tracktot RNAseq tracks\n";  ##DEV


# Write composite track header. (ChIPseq)
print OUT "track\tCSriv_ChIP_tracks\n";
print OUT "compositeTrack\ton\n";
print OUT "shortLabel\tChIPseq\n";
print OUT "longLabel\tChIPseq data\n";
print OUT "priority\t$prio\n";
print OUT "subGroup1\tview View COV=depth PK=peak\n";
print OUT "sortOrder\tview=+\n";
print OUT "configurable\ton\n";
print OUT "type\tbed 3\n\n";

# Write header for depth view.
print OUT "   track\tCSriv_ChIP_tracks_ViewDepth\n";
print OUT "   parent\tCSriv_ChIP_tracks\n";
print OUT "   shortLabel\tChIPseq NormDepth\n";
print OUT "   longLabel\tNormalized ChIP-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:30:11\n";
print OUT "   viewLimits\t0:20\n";
print OUT "   showSubtrackColorOnUi\ton\n";
print OUT "   viewUi\ton\n\n";

# Write depth tracks.
@ids = ("Glis3_kidney_IP-1w","Glis3_kidney_IP-2w","Glis3_kidney_input-1w","Glis3_kidney_input-2w");
foreach $id (@ids) {
  $bwfile = "DATA/ChIP/$id.norm10M.bigWig";
  $prio++;
  print OUT "      track\t$id.Cov\n";
  print OUT "      parent\tCSriv_ChIP_tracks_ViewDepth\n";
  print OUT "      bigDataUrl\t$bwfile\n";
  print OUT "      shortLabel\t$id ChIPseq\n";
  print OUT "      longLabel\tnormalized ChIP-seq depth: $id\n";
  print OUT "      type\tbigWig\n";
  print OUT "      color\t$chipcolor\n";
  print OUT "      priority\t$prio\n";
  print OUT "      visibility\thide\n";
  print OUT "      subGroups\tview=COV\n\n";
}

# Write header for peak tracks.
print OUT "   track\tCSriv_ChIP_tracks_ViewDepthPeaks\n";
print OUT "   parent\tCSriv_ChIP_tracks\n";
print OUT "   shortLabel\tChIP-seq Peaks\n";
print OUT "   longLabel\tChIP-seq Peaks\n";
print OUT "   view\tPK\n";
print OUT "   visibility\tdense\n";
print OUT "   type\tbigBed 3\n";
print OUT "   allButtonPair\ton\n";
print OUT "   centerLabelsDense\ton\n";
print OUT "   dragAndDrop\ton\n";
print OUT "   showSubtrackColorOnUi\ton\n";
print OUT "   viewUi\ton\n\n";

# Write peak tracks.
$prio++;
print OUT "       track\tGlis3_kidney_1w.pk\n";
print OUT "       parent\tCSriv_ChIP_tracks_ViewDepthPeaks\n";
print OUT "       bigDataUrl\tDATA/ChIP/Glis3_kidney_1w.peaks.bigBed\n";
print OUT "       shortLabel\tGlis3_kidney_1w  peaks\n";
print OUT "       longLabel\tHOMER peak calls: Glis3_kidney_1w\n";
print OUT "       type\tbigBed 3\n";
print OUT "       color\t$chipcolor\n";
print OUT "       priority\t$prio\n";
print OUT "       visibility\tdense\n";
print OUT "       subGroups\tview=PK\n\n";
$prio++;
print OUT "       track\tGlis3_kidney_2w.pk\n";
print OUT "       parent\tCSriv_ChIP_tracks_ViewDepthPeaks\n";
print OUT "       bigDataUrl\tDATA/ChIP/Glis3_kidney_2w.peaks.bigBed\n";
print OUT "       shortLabel\tGlis3_kidney_2w  peaks\n";
print OUT "       longLabel\tHOMER peak calls: Glis3_kidney_2w\n";
print OUT "       type\tbigBed 3\n";
print OUT "       color\t$chipcolor\n";
print OUT "       priority\t$prio\n";
print OUT "       visibility\tdense\n";
print OUT "       subGroups\tview=PK\n\n";


close(OUT);
