1c297cf2b02d635690955ac09b5a915a7b8e54d5
hiram
  Wed May 14 12:07:41 2025 -0700
write out an information file about which assemblies have chain/net tracks "hasChainNets.txt" refs #34917

diff --git src/hg/makeDb/doc/asmHubs/mkGenomes.pl src/hg/makeDb/doc/asmHubs/mkGenomes.pl
index 5b5e86943ce..1dcc6ec36a9 100755
--- src/hg/makeDb/doc/asmHubs/mkGenomes.pl
+++ src/hg/makeDb/doc/asmHubs/mkGenomes.pl
@@ -24,52 +24,57 @@
 }
 
 my $downloadHost = "hgwdev";
 my @blatHosts = qw( dynablat-01 dynablat-01 );
 my @blatPorts = qw( 4040 4040 );
 my $blatHostDomain = ".soe.ucsc.edu";
 my $groupsTxt = `cat ~/kent/src/hg/makeDb/doc/asmHubs/groups.txt`;
 
 ################### writing out hub.txt file, twice ##########################
 sub singleFileHub($$$$$$$$$$$$$$) {
   my ($fh1, $fh2, $accessionId, $orgName, $descr, $asmId, $asmDate, $defPos, $taxId, $trackDb, $accessionDir, $buildDir, $chromAuthority, $hugeGenome) = @_;
   my @fhN;
   push @fhN, $fh1;
   push @fhN, $fh2;
 
+
   my %liftOverChain;	# key is 'otherDb' name, value is bbi path
   my %liftOverGz;	# key is 'otherDb' name, value is lift.over.gz file path
   my $hasChainNets = `ls -d $buildDir/trackData/lastz.* 2> /dev/null | wc -l`;
   chomp $hasChainNets;
   if ($hasChainNets) {
     printf STDERR "# hasChainNets: %d\t%s\n", $hasChainNets, $asmId;
+    open (my $CN, ">>", "hasChainNets.txt") or die "can not write to hasChainNets.txt";
+    printf $CN "%s\t%d\n", $asmId, $hasChainNets;
     open (CH, "ls -d $buildDir/trackData/lastz.*|") or die "can not ls -d $buildDir/trackData/lastz.*";
     while (my $line = <CH>) {
       chomp $line;
       my $otherDb = basename($line);
       $otherDb =~ s/lastz.//;
       my $OtherDb = ucfirst($otherDb);
       my $bbiPath = "$buildDir/bbi/${asmId}.chainLiftOver${OtherDb}.bb";
       if (-s "${bbiPath}") {
         $liftOverChain{$otherDb} = "bbi/${asmId}.chainLiftOver${OtherDb}.bb";
       }
      my $loPath = "$buildDir/liftOver/${accessionId}To${OtherDb}.over.chain.gz";
       if (-s "${loPath}") {
+        printf $CN "\t%s\n", "${accessionId}To${OtherDb}.over.chain.gz";
     $liftOverGz{$otherDb} = "liftOver/${accessionId}To${OtherDb}.over.chain.gz";
       }
     }
     close (CH);
+    close ($CN);
   }
   my $fileCount = 0;
   my @tdbLines;
   open (TD, "<$trackDb") or die "can not read trackDb: $trackDb";
   while (my $tdbLine = <TD>) {
      chomp $tdbLine;
      push @tdbLines, $tdbLine;
   }
   close (TD);
   my $assemblyName = $asmId;
   $assemblyName =~ s/${accessionId}_//;
   foreach my $fh (@fhN) {
     printf $fh "hub %s genome assembly\n", $accessionId;
     printf $fh "shortLabel %s\n", $orgName;
     printf $fh "longLabel %s/%s/%s genome assembly\n", $orgName, $descr, $asmId;