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;