#!/usr/bin/perl

$stroot = "H3K27acPk";
$shortLab = "H3K27ac peaks";
$longLab = "H3K27ac Peaks";

$prio = 210;

##############################################################

$datadir = "data/H3K27ac";
$trackname = "trackDb.$stroot.txt";

@diets = ("Chow","LFD","HFD","KD");
@reps = (1,2);
%queryKey = ("HvsC" => "HFD-vs-Chow", "LvsC" => "LFD-vs-Chow", "KvsC" => "KD-vs-Chow", "HvsL" => "HFD-vs-LFD", "KvsL" => "KD-vs-LFD", "KvsH" => "KD-vs-HFD");
@queryOrder = ("LvsC","HvsC","KvsC","HvsL","KvsL","KvsH");

##############################################################

open(OUT, ">$trackname");

##### homer peak #####
# write header supertrack header
print OUT "track\tdata$stroot\n";
print OUT "compositeTrack\ton\n";
print OUT "shortLabel\t$shortLab\n";
print OUT "longLabel\t$longLab\n";
print OUT "priority\t$prio\n";
print OUT "subGroup1\tType Type Sample=Sample Unified=Unified EdgeR=EdgeR\n";
print OUT "sortOrder\tType=+\n";
print OUT "type\tbigBed\n\n";

# write header for peak tracks
print OUT "   track\tdata$stroot\_Homer\n";
print OUT "   parent\tdata$stroot\n";
print OUT "   shortLabel\t$shortLab\n";
print OUT "   longLabel\t$longLab\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 invidual peak tracks
foreach $diet (@diets) { foreach $r (@reps) {
  $id = "H3K27ac_3m_$diet"."-rep$r";
  $bbfile = "$datadir/$id.homer-peakcalls.s500md1000fdr8-PE.ExclBlklist.bigBed";
  unless (-e $bbfile) { print "Skipping $useID (no HOMER peak file).\n"; next; }
  $prio++;
  print OUT "      track\thomer-$id.$stroot\n";
  print OUT "      parent\tdata$stroot\_Homer\n";
  print OUT "      bigDataUrl\t$bbfile\n";
  print OUT "      shortLabel\tHOMER peaks $id\n";
  print OUT "      longLabel\tHOMER peaks $id\n";
  print OUT "      type\tbigBed 3\n";
  print OUT "      color\t0,0,0\n";
  print OUT "      priority\t$prio\n";
  print OUT "      visibility\tdense\n";
  print OUT "      subGroups\tType=Sample\n\n";
} }

# write unified peak track
$bbfile = "$datadir/unified2of8-H3K27ac.s500md1000fdr8-PE.canonAutoXY.min50bp.ExclBlacklist.bigBed";
unless (-e $bbfile) { print "ERROR: Did not find $bbfile.\n"; exit; }
$prio++;
print OUT "      track\tunified.$stroot\n";
print OUT "      parent\tdata$stroot\n";
print OUT "      bigDataUrl\t$bbfile\n";
print OUT "      shortLabel\tH3K27ac unified peaks\n";
print OUT "      longLabel\tH3K27ac unified peaks\n";
print OUT "      type\tbigBed 3\n";
print OUT "      color\t0,0,0\n";
print OUT "      priority\t$prio\n";
print OUT "      visibility\tdense\n";
print OUT "      subGroups\tType=Unified\n\n";

# write EdgeR differential peak tracks
foreach	$qq (@queryOrder) {
  $bbfile = "$datadir/diffPeaks-EdgeR.FDR5-e2.$qq"."-H3K27ac.bigBed";
  unless (-e $bbfile) { print "Skipping $qq (no EdgeR peak file).\n"; next; }
  $prio++;
  print OUT "	   track\tH3K27ac-$qq.$stroot\n";
  print OUT "	   parent\tdata$stroot\n";
  print OUT "	   bigDataUrl\t$bbfile\n";
  print OUT "	   shortLabel\tH3K27ac DiffPk $queryKey{$qq}\n";
  print OUT "	   longLabel\tH3K27ac DiffPk $queryKey{$qq}\n";
  print OUT "      type\tbigBed 9\n";
  print OUT "      itemRgb on\n";
  print OUT "	   priority\t$prio\n";
  print OUT "	   visibility\tdense\n";
  print OUT "	   subGroups\tType=EdgeR\n\n";
}




close(OUT);
