#!/usr/bin/perl

$stroot = "PBLC";   # I think this is CUT&RUN, but not 100% sure.
$shortLab = "public ChIP";
$longLab = "public ChIPseq";

$prio = 900;

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

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

@sets = ("HIF1a");
%set2folder = ("HIF1a" => "GSE67237_HIF1a");

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

open(OUT, ">$trackname");

##### toss everything together in a simple supertrack #####
# write header supertrack header
print OUT "track\tdata$stroot\n";
print OUT "superTrack\ton\tshow\n";
#print OUT "compositeTrack\ton\n";
print OUT "shortLabel\t$shortLab\n";
print OUT "longLabel\t$longLab\n";
print OUT "priority\t$prio\n";
## subgroups and autoScale|group only for composite tracks
#print OUT "subGroup1\tview View publicData=publicData\n";
#print OUT "subGroup1\tdataset Dataset"; foreach $S (@sets) { print OUT " $S=$S"; } print OUT "\n";
#print OUT "subGroup2\ttype Type depth=depth peak=peak\n";
##print OUT "subGroup3\tgt Genotype"; foreach $gt (@genotypes) { print OUT " $gt=$gt"; } print OUT "\n";
##print OUT "subGroup4\tsex Sex"; foreach $s (@sexes) { print OUT " $s=$s"; } print OUT "\n";
##print OUT "subGroup5\trep Replicate"; foreach $r (@replicates) { print OUT " rep$r=rep$r"; } print OUT "\n";
#print OUT "dimensions\tdimX=dataset dimY=type\n";
##print OUT "sortOrder\tview=+ dataset=+\n";
#print OUT "sortOrder dataset=+ type=+\n";
print OUT "configurable\ton\n";
#print OUT "autoScale\tgroup\n";
#print OUT "dragAndDrop\ton\n";
print OUT "viewUi\ton\n\n";

foreach $S (@sets) {
  foreach $datafile (split/\n/, `ls -1 $datadir/$set2folder{$S}/*`) {
    $prio++;
    @aa1 = split/\//, $datafile;
    @aa2 = split/\./, $aa1[$#aa1];
    $id = $aa2[0];
    $trackSuffix = $aa2[$#aa2];
    if ($trackSuffix eq "bigWig") {
      print OUT "   track\t$id.D\n";
      print OUT "   parent\tdata$stroot\n";
      print OUT "   bigDataUrl\t$datafile\n";
      print OUT "   shortLabel\t$id\n";
      print OUT "   longLabel\t$id normalized depth\n";
      print OUT "   type\tbigWig\n";
      print OUT "   alwaysZero\ton\n";
      print OUT "   graphTypeDefault\tbar\n";
      print OUT "   maxHeightPixels\t150:40:11\n";
      print OUT "   viewLimits\t0:30\n";
      print OUT "   color\t0,0,0\n";
      print OUT "   priority\t$prio\n";
      print OUT "   visibility\thide\n\n";
#      print OUT "   subGroups\tdataset=$S type=depth\n\n";
    }
    if ($trackSuffix eq "bigBed") {
      print OUT "   track\t$id.P\n";
      print OUT "   parent\tdata$stroot\n";
      print OUT "   bigDataUrl\t$datafile\n";
      print OUT "   shortLabel\t$id peaks\n";
      print OUT "   longLabel\t$id 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 "   showSubtrackColorOnUi\ton\n\n";
#      print OUT "   subGroups\tdataset=$S type=peak\n\n";
    }
  }
}
print OUT "\n\n";

close(OUT);
