973d987f021ce8ae4fbaa555f2f7ee611c341a10
hiram
  Thu May 2 10:19:09 2024 -0700
separate out the syn rbest and liftOver chains into their own view

diff --git src/hg/utils/automation/asmHubChainNetTrackDb.pl src/hg/utils/automation/asmHubChainNetTrackDb.pl
index 9d9a1f0..9c17495 100755
--- src/hg/utils/automation/asmHubChainNetTrackDb.pl
+++ src/hg/utils/automation/asmHubChainNetTrackDb.pl
@@ -36,59 +36,80 @@
   my $queryDb = basename($lastzDir);
   $queryDb =~ s/lastz.//;
   push @queryList, $queryDb;
 }
 close (DL);
 
 # foreach my $queryDb (@queryList) {
 #    printf STDERR "%s vs. %s\n", $queryDb, $targetDb;
 # }
 
 ##### begin trackDb output ######
 printf "track %sChainNet\n", $targetDb;
 printf "compositeTrack on
 shortLabel Chain/Net
 longLabel Chain and Net alignments to target sequence: %s\n", $targetDb;
-printf "subGroup1 view Views chain=Chains net=Nets\n";
+printf "subGroup1 view Views chain=Chains net=Nets synten=Syntenic rbest=Reciprocal_best liftover=Lift_over\n";
 printf "subGroup2 species Species";
 my $N = 0;
 foreach my $queryDb (@queryList) {
   printf " s%03d=%s", $N++, $queryDb;
 }
 printf "\n";
 printf "subGroup3 clade Clade c00=human\n";
 printf "dragAndDrop subTracks\n";
 printf "visibility hide
 group compGeno
 color 0,0,0
 altColor 255,255,0
 type bed 3
 chainLinearGap loose
 chainMinScore 5000
 dimensions dimensionX=clade dimensionY=species
 sortOrder species=+ view=+ clade=+
 configurable on\n";
 printf "html html/%s.chainNet\n", $targetDb;
 
 printf "
     track %sChainNetViewchain
     shortLabel Chains
     view chain
     visibility pack
     subTrack %sChainNet
     spectrum on
-", $targetDb, $targetDb;
+
+    track %sChainNetViewSynTen
+    shortLabel Syntenic
+    view synten
+    visibility pack
+    subTrack %sChainNet
+    spectrum on
+
+    track %sChainNetViewRBest
+    shortLabel Reciprocal best
+    view rbest
+    visibility pack
+    subTrack %sChainNet
+    spectrum on
+
+    track %sChainNetViewLiftOver
+    shortLabel Lift over
+    view liftover
+    visibility pack
+    subTrack %sChainNet
+    spectrum on
+", $targetDb, $targetDb, $targetDb, $targetDb, $targetDb, $targetDb, $targetDb, $targetDb;
 
 $N = 0;
 my $chainNetPriority = 1;
 foreach my $queryDb (@queryList) {
   my $QueryDb = ucfirst($queryDb);
   my $overChain="${targetAccession}.${queryDb}.over.chain.gz";
   my $overToChain="${targetAccession}To${QueryDb}.over.chain.gz";
   my $lastzDir="lastz.$queryDb";
   `rm -f $buildDir/bbi/$targetDb.chain${QueryDb}.bb`;
   `rm -f $buildDir/bbi/$targetDb.chain${QueryDb}Link.bb`;
   `rm -f $buildDir/liftOver/${overToChain}`;
   if ( -s "$buildDir/trackData/$lastzDir/axtChain/${overChain}" ) {
      `ln -s ../trackData/$lastzDir/axtChain/${overChain} $buildDir/liftOver/${overToChain}`;
   } else {
      printf STDERR "# NOT FOUND: '%s'\n", "$buildDir/trackData/$lastzDir/axtChain/${overChain}";
@@ -113,82 +134,77 @@
         bigDataUrl bbi/%s.chain%s.bb
         linkDataUrl bbi/%s.chain%sLink.bb
         otherDb %s
         html html/%s.chainNet
         priority %d
 ", $QueryDb, $targetDb, $N, $queryDb, $queryDb, $queryAsmName, $queryDate, $queryDb, $targetDb,
      $QueryDb, $targetDb, $QueryDb, $queryDb, $targetDb, $chainNetPriority++;
 
   if ( -s "$buildDir/trackData/lastz.$queryDb/axtChain/chainSyn${QueryDb}.bb" ) {
     `rm -f $buildDir/bbi/$targetDb.chainSyn${QueryDb}.bb`;
     `rm -f $buildDir/bbi/$targetDb.chainSyn${QueryDb}Link.bb`;
     `ln -s ../trackData/lastz.$queryDb/axtChain/chainSyn${QueryDb}.bb  $buildDir/bbi/$targetDb.chainSyn${QueryDb}.bb`;
     `ln -s ../trackData/lastz.$queryDb/axtChain/chainSyn${QueryDb}Link.bb  $buildDir/bbi/$targetDb.chainSyn${QueryDb}Link.bb`;
   printf "
         track chainSyn%s
-        subTrack %sChainNetViewchain off
-        subGroups view=chain species=s%03d clade=c00
+        subTrack %sChainNetViewSynTen off
+        subGroups view=synten species=s%03d clade=c00
         shortLabel %s synChain
         longLabel %s%s (%s) Syntenic Chained Alignments
         type bigChain %s
         bigDataUrl bbi/%s.chainSyn%s.bb
         linkDataUrl bbi/%s.chainSyn%sLink.bb
         otherDb %s
         html html/%s.chainNet
         priority %d
 ", $QueryDb, $targetDb, $N, $queryDb, $queryDb, $queryAsmName, $queryDate, $queryDb, $targetDb,
      $QueryDb, $targetDb, $QueryDb, $queryDb, $targetDb, $chainNetPriority++;
 
   }
 
   if ( -s "$buildDir/trackData/lastz.$queryDb/axtChain/chainRBest${QueryDb}.bb" ) {
     `rm -f $buildDir/bbi/$targetDb.chainRBest${QueryDb}.bb`;
     `rm -f $buildDir/bbi/$targetDb.chainRBest${QueryDb}Link.bb`;
     `ln -s ../trackData/lastz.$queryDb/axtChain/chainRBest${QueryDb}.bb  $buildDir/bbi/$targetDb.chainRBest${QueryDb}.bb`;
     `ln -s ../trackData/lastz.$queryDb/axtChain/chainRBest${QueryDb}Link.bb  $buildDir/bbi/$targetDb.chainRBest${QueryDb}Link.bb`;
   printf "
         track chainRBest%s
-        subTrack %sChainNetViewchain off
-        subGroups view=chain species=s%03d clade=c00
+        subTrack %sChainNetViewRBest off
+        subGroups view=rbest species=s%03d clade=c00
         shortLabel %s rbChain
         longLabel %s%s (%s) Reciprocal Best Chained Alignments
         type bigChain %s
         bigDataUrl bbi/%s.chainRBest%s.bb
         linkDataUrl bbi/%s.chainRBest%sLink.bb
         otherDb %s
         html html/%s.chainNet
         priority %d
 ", $QueryDb, $targetDb, $N, $queryDb, $queryDb, $queryAsmName, $queryDate, $queryDb, $targetDb,
      $QueryDb, $targetDb, $QueryDb, $queryDb, $targetDb, $chainNetPriority++;
 
   }
 
-#    ln -s ../trackData/$lastzDir/axtChain/chainLiftOver${OtherDb}.bb $buildDir/bbi/${asmId}.chainLiftOver$OtherDb.bb
-#    ln -s ../trackData/$lastzDir/axtChain/chainLiftOver${OtherDb}Link.bb $buildDir/bbi/${asmId}.chainLiftOver${OtherDb}Link.bb
-#    ln -s ../trackData/$lastzDir/bigMaf/$accessionId.$otherDb.liftOverNet.bb $buildDir/bbi/${asmId}.$otherDb.liftOverNet.bb
-#    ln -s ../trackData/$lastzDir/bigMaf/$accessionId.$otherDb.liftOverNet.summary.bb $buildDir/bbi/${asmId}.$otherDb.liftOverNet.summary.bb
-
   if ( -s "$buildDir/trackData/lastz.$queryDb/axtChain/chainLiftOver${QueryDb}.bb" ) {
     `rm -f $buildDir/bbi/$targetDb.chainLiftOver${QueryDb}.bb`;
     `rm -f $buildDir/bbi/$targetDb.chainLiftOver${QueryDb}Link.bb`;
     `ln -s ../trackData/lastz.$queryDb/axtChain/chainLiftOver${QueryDb}.bb  $buildDir/bbi/$targetDb.chainLiftOver${QueryDb}.bb`;
     `ln -s ../trackData/lastz.$queryDb/axtChain/chainLiftOver${QueryDb}Link.bb  $buildDir/bbi/$targetDb.chainLiftOver${QueryDb}Link.bb`;
 
   printf "
         track chainLiftOver%s
-        subTrack %sChainNetViewchain off
-        subGroups view=chain species=s%03d clade=c00
+        subTrack %sChainNetViewLiftOver off
+        subGroups view=liftover species=s%03d clade=c00
         shortLabel %s loChain
         longLabel %s%s (%s) Lift Over Chained Alignments
         type bigChain %s
         bigDataUrl bbi/%s.chainLiftOver%s.bb
         linkDataUrl bbi/%s.chainLiftOver%sLink.bb
         otherDb %s
         html html/%s.chainNet
         priority %d
 ", $QueryDb, $targetDb, $N, $queryDb, $queryDb, $queryAsmName, $queryDate, $queryDb, $targetDb,
      $QueryDb, $targetDb, $QueryDb, $queryDb, $targetDb, $chainNetPriority++;
 
   }
   $N++;
 }
 
@@ -199,80 +215,77 @@
     visibility dense
     subTrack %sChainNet
 ", $targetDb, $targetDb;
 
 $N = 0;
 $chainNetPriority = 1;
 foreach my $queryDb (@queryList) {
   my @targetAccession = split('_', $targetDb);
   my $targetAcc = sprintf("%s_%s", $targetAccession[0], $targetAccession[1]);
   my $QueryDb = ucfirst($queryDb);
   my $queryDate = "some date";
   my $queryAsmName = "";
   `rm -f $buildDir/bbi/$targetDb.${queryDb}.net.bb`;
   `rm -f $buildDir/bbi/$targetDb.${queryDb}.net.summary.bb`;
   if ( -s "../trackData/lastz.$queryDb/bigMaf/${targetAcc}.${queryDb}.net.bb" ) {
-printf STDERR "constructing net.bb links $targetDb $queryDb\n";
   `ln -s ../trackData/lastz.$queryDb/bigMaf/${targetAcc}.${queryDb}.net.bb  $buildDir/bbi/$targetDb.${queryDb}.net.bb`;
   `ln -s ../trackData/lastz.$queryDb/bigMaf/${targetAcc}.${queryDb}.net.summary.bb  $buildDir/bbi/$targetDb.${queryDb}.net.summary.bb`;
   if ( $queryDb !~ m/^GC/ ) {
     $queryDate = `hgsql -N -e 'select description from dbDb where name="$queryDb"' hgcentraltest | sed -e 's/ (.*//;'`;
     chomp $queryDate;
   } else {
     ($queryDate, $queryAsmName) = &HgAutomate::hubDateName($queryDb);
   }
     printf "
         track net%s
         parent %sMafNetViewnet
         subGroups view=net species=s%03d clade=c00
         shortLabel %s mafNet
         longLabel %s%s (%s) mafNet Alignment
         type bigMaf
         bigDataUrl bbi/%s.%s.net.bb
         summary bbi/%s.%s.net.summary.bb
         speciesOrder %s
         html html/%s.chainNet
         priority %d
 ", $QueryDb, $targetDb, $N, $queryDb, $queryDb, $queryAsmName, $queryDate, $targetDb, $queryDb, $targetDb, $queryDb, $queryDb, $targetDb, $chainNetPriority++;
   }
 
   `rm -f $buildDir/bbi/$targetDb.${queryDb}.synNet.bb`;
   `rm -f $buildDir/bbi/$targetDb.${queryDb}.synNet.summary.bb`;
   if ( -s "$buildDir/trackData/lastz.$queryDb/bigMaf/${targetAcc}.${queryDb}.synNet.bb" ) {
-printf STDERR "constructing synNet.bb links $targetDb $queryDb\n";
   `ln -s ../trackData/lastz.$queryDb/bigMaf/${targetAcc}.${queryDb}.synNet.bb  $buildDir/bbi/$targetDb.${queryDb}.synNet.bb`;
   `ln -s ../trackData/lastz.$queryDb/bigMaf/${targetAcc}.${queryDb}.synNet.summary.bb  $buildDir/bbi/$targetDb.${queryDb}.synNet.summary.bb`;
     printf "
         track synNet%s
         parent %sMafNetViewnet
         subGroups view=net species=s%03d clade=c00
         shortLabel %s synNet
         longLabel %s%s (%s) Syntenic Net Alignment
         type bigMaf
         bigDataUrl bbi/%s.%s.synNet.bb
         summary bbi/%s.%s.synNet.summary.bb
         speciesOrder %s
         html html/%s.chainNet
         priority %d
 ", $QueryDb, $targetDb, $N, $queryDb, $queryDb, $queryAsmName, $queryDate, $targetDb, $queryDb, $targetDb, $queryDb, $queryDb, $targetDb, $chainNetPriority++;
 
   }
 
   `rm -f $buildDir/bbi/$targetDb.${queryDb}.rbestNet.bb`;
   `rm -f $buildDir/bbi/$targetDb.${queryDb}.rbestNet.summary.bb`;
   if ( -s "$buildDir/trackData/lastz.$queryDb/bigMaf/${targetAcc}.${queryDb}.rbestNet.bb" ) {
-printf STDERR "constructing rbestNet.bb links $targetDb $queryDb\n";
   `ln -s ../trackData/lastz.$queryDb/bigMaf/${targetAcc}.${queryDb}.rbestNet.bb  $buildDir/bbi/$targetDb.${queryDb}.rbestNet.bb`;
   `ln -s ../trackData/lastz.$queryDb/bigMaf/${targetAcc}.${queryDb}.rbestNet.summary.bb  $buildDir/bbi/$targetDb.${queryDb}.rbestNet.summary.bb`;
     printf "
         track rbestNet%s
         parent %sMafNetViewnet
         subGroups view=net species=s%03d clade=c00
         shortLabel %s rbestNet
         longLabel %s%s (%s) Reciprocal Best Net Alignment
         type bigMaf
         bigDataUrl bbi/%s.%s.rbestNet.bb
         summary bbi/%s.%s.rbestNet.summary.bb
         speciesOrder %s
         html html/%s.chainNet
         priority %d
 ", $QueryDb, $targetDb, $N, $queryDb, $queryDb, $queryAsmName, $queryDate, $targetDb, $queryDb, $targetDb, $queryDb, $queryDb, $targetDb, $chainNetPriority++;