6fe0e58c664dd4f9849fb222de0a82bb5de61c61
hiram
  Mon Jun 16 20:47:30 2025 -0700
the database trackDb construction does not like the chain net views mixed up they must be the stanza right before their subTracks refs #35898

diff --git src/hg/utils/automation/asmHubChainNetTrackDb.pl src/hg/utils/automation/asmHubChainNetTrackDb.pl
index 2b0d252fbac..9d66641e9c1 100755
--- src/hg/utils/automation/asmHubChainNetTrackDb.pl
+++ src/hg/utils/automation/asmHubChainNetTrackDb.pl
@@ -116,30 +116,31 @@
   $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}";
   }
   `ln -s ../trackData/lastz.$queryDb/axtChain/chain${QueryDb}.bb  $buildDir/bbi/$targetDb.chain${QueryDb}.bb`;
   `ln -s ../trackData/lastz.$queryDb/axtChain/chain${QueryDb}Link.bb  $buildDir/bbi/$targetDb.chain${QueryDb}Link.bb`;
   $queryDate = "some date";
+  $queryAsmName = "";
   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);
   }
   if (0 == $headerOut) {
     printf "
     track %sChainNetViewchain
     shortLabel Chains
     view chain
     visibility dense
     parent %sChainNet
     spectrum on
 ", $targetDb, $targetDb;
@@ -167,30 +168,36 @@
      $QueryDb, $targetDb, $QueryDb, $queryDb, $targetDb, $queryPrio{$queryDb};
   $N++;
 }
 
 $N = 0;
 $headerOut = 0;
 foreach my $queryDb (@queryList) {
   $comName = $queryDb;
   $comName = $commonName{$queryDb} if (defined($commonName{$queryDb}));
   $QueryDb = ucfirst($queryDb);
   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`;
+    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);
+    }
   if (0 == $headerOut) {
     printf "
     track %sChainNetViewSynTen
     shortLabel Syntenic
     view synten
     visibility hide
     parent %sChainNet
     spectrum on
 ", $targetDb, $targetDb;
     $headerOut = 1;
   }
   printf "
         track chainSyn%s
         parent %sChainNetViewSynTen off
         subGroups view=synten species=s%03d chainType=c01
@@ -209,30 +216,36 @@
   $N++;
 }
 
 $N = 0;
 $headerOut = 0;
 foreach my $queryDb (@queryList) {
   $comName = $queryDb;
   $comName = $commonName{$queryDb} if (defined($commonName{$queryDb}));
   $QueryDb = ucfirst($queryDb);
 
   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`;
+    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);
+    }
   if (0 == $headerOut) {
     printf "
     track %sChainNetViewRBest
     shortLabel Reciprocal best
     view rbest
     visibility hide
     parent %sChainNet
     spectrum on
 ", $targetDb, $targetDb;
     $headerOut = 1;
   }
 
   printf "
         track chainRBest%s
         parent %sChainNetViewRBest off
@@ -252,30 +265,36 @@
   $N++;
 }
 
 $N = 0;
 $headerOut = 0;
 foreach my $queryDb (@queryList) {
   $comName = $queryDb;
   $comName = $commonName{$queryDb} if (defined($commonName{$queryDb}));
   $QueryDb = ucfirst($queryDb);
 
   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`;
+    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);
+    }
 
   if (0 == $headerOut) {
     printf "
     track %sChainNetViewLiftOver
     shortLabel Lift over
     view liftover
     visibility hide
     parent %sChainNet
     spectrum on
 ", $targetDb, $targetDb;
     $headerOut = 1;
   }
 
   printf "
         track chainLiftOver%s