c6c34d96e660ffad5ca588f14a461c1da30b0e46
hiram
  Fri Jan 20 10:25:10 2023 -0800
correctly link in lift over chain files to download liftOver directory refs #30517

diff --git src/hg/utils/automation/asmHubChainNetTrackDb.pl src/hg/utils/automation/asmHubChainNetTrackDb.pl
index e6e8402..9d9a1f0 100755
--- src/hg/utils/automation/asmHubChainNetTrackDb.pl
+++ src/hg/utils/automation/asmHubChainNetTrackDb.pl
@@ -11,32 +11,37 @@
   printf STDERR "usage: asmHubChainNetTrackDb.pl <buildDir>\n";
   printf STDERR "expecting to find directories: buildDir/trackData/lastz.*/\n";
   printf STDERR "where each /lastz.*/ directory is one completed lastz/chainNet\n";
   printf STDERR "and basename(buildDir) is the 'target' sequence name\n";
   exit 255;
 }
 
 my $argc = scalar(@ARGV);
 
 if ($argc != 1) {
   usage;
 }
 
 my $buildDir = shift;
 my $targetDb = basename($buildDir);
+my @tParts = split('_', $targetDb);
+my $targetAccession = "$tParts[0]_$tParts[1]";
 my @queryList;
 
+`mkdir -p $buildDir/bbi`;
+`mkdir -p $buildDir/liftOver`;
+
 open (DL, "ls -d $buildDir/trackData/lastz.*|") or die "can not list $buildDir/trackData/lastz.*";
 while (my $lastzDir = <DL>) {
   chomp $lastzDir;
   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;
@@ -65,32 +70,41 @@
 printf "html html/%s.chainNet\n", $targetDb;
 
 printf "
     track %sChainNetViewchain
     shortLabel  Chains
     view chain
     visibility pack
     subTrack %sChainNet
     spectrum on
 ", $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}";
+  }
   `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`;
   my $queryDate = "some date";
   my $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);
   }
   printf "
         track chain%s
         subTrack %sChainNetViewchain off
         subGroups view=chain species=s%03d clade=c00
         shortLabel %s Chain