7000bc69be5351f65c48d434bcc477b8d6d7cc05 hiram Mon Jun 16 20:26:59 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 57a013e0b57..2b0d252fbac 100755 --- src/hg/utils/automation/asmHubChainNetTrackDb.pl +++ src/hg/utils/automation/asmHubChainNetTrackDb.pl @@ -91,192 +91,238 @@ printf "\n"; printf "subGroup3 chainType chain_type c00=chain c01=syntenic c02=reciprocal_best c03=lift_over c04=chain_align c05=syntenic_align c06=reciprocal_align c07=lift_over_align\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=chainType dimensionY=species sortOrder species=+ view=+ chainType=+ configurable on\n"; printf "html html/%s.chainNet\n", $targetDb; -printf " - track %sChainNetViewchain - shortLabel Chains - view chain - visibility dense - parent %sChainNet - spectrum on - - track %sChainNetViewSynTen - shortLabel Syntenic - view synten - visibility hide - parent %sChainNet - spectrum on - - track %sChainNetViewRBest - shortLabel Reciprocal best - view rbest - visibility hide - parent %sChainNet - spectrum on - - track %sChainNetViewLiftOver - shortLabel Lift over - view liftover - visibility hide - parent %sChainNet - spectrum on -", $targetDb, $targetDb, $targetDb, $targetDb, $targetDb, $targetDb, $targetDb, $targetDb; +my $QueryDb = "QDb"; +my $queryDate = "some date"; +my $comName = "some date"; +my $queryAsmName = "qAsmName"; $N = 0; +my $headerOut = 0; foreach my $queryDb (@queryList) { - my $comName = $queryDb; + $comName = $queryDb; $comName = $commonName{$queryDb} if (defined($commonName{$queryDb})); - my $QueryDb = ucfirst($queryDb); + $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 = ""; + $queryDate = "some date"; 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 == $N) { + if (0 == $headerOut) { + printf " + track %sChainNetViewchain + shortLabel Chains + view chain + visibility dense + parent %sChainNet + spectrum on +", $targetDb, $targetDb; + $headerOut = 1; + printf " track chain%s parent %sChainNetViewchain on", $QueryDb, $targetDb; } else { printf " track chain%s parent %sChainNetViewchain off", $QueryDb, $targetDb; } printf " subGroups view=chain species=s%03d chainType=c00 shortLabel %s Chain longLabel %s/%s%s (%s) Chained Alignments type bigChain %s bigDataUrl bbi/%s.chain%s.bb linkDataUrl bbi/%s.chain%sLink.bb otherDb %s html html/%s.chainNet priority %s ", $N, $comName, $comName, $queryDb, $queryAsmName, $queryDate, $queryDb, $targetDb, $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 (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 shortLabel %s synChain longLabel %s/%s%s (%s) Chained Alignments type bigChain %s bigDataUrl bbi/%s.chainSyn%s.bb linkDataUrl bbi/%s.chainSyn%sLink.bb otherDb %s html html/%s.chainNet priority %s ", $QueryDb, $targetDb, $N, $comName, $comName, $queryDb, $queryAsmName, $queryDate, $queryDb, $targetDb, $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/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 (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 subGroups view=rbest species=s%03d chainType=c02 shortLabel %s rbChain longLabel %s/%s%s (%s) Chained Alignments type bigChain %s bigDataUrl bbi/%s.chainRBest%s.bb linkDataUrl bbi/%s.chainRBest%sLink.bb otherDb %s html html/%s.chainNet priority %s ", $QueryDb, $targetDb, $N, $comName, $comName, $queryDb, $queryAsmName, $queryDate, $queryDb, $targetDb, $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/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 (0 == $headerOut) { + printf " + track %sChainNetViewLiftOver + shortLabel Lift over + view liftover + visibility hide + parent %sChainNet + spectrum on +", $targetDb, $targetDb; + $headerOut = 1; + } + printf " track chainLiftOver%s parent %sChainNetViewLiftOver off subGroups view=liftover species=s%03d chainType=c03 shortLabel %s loChain longLabel %s/%s%s (%s) Chained Alignments type bigChain %s bigDataUrl bbi/%s.chainLiftOver%s.bb linkDataUrl bbi/%s.chainLiftOver%sLink.bb otherDb %s html html/%s.chainNet priority %s ", $QueryDb, $targetDb, $N, $comName, $comName, $queryDb, $queryAsmName, $queryDate, $queryDb, $targetDb, $QueryDb, $targetDb, $QueryDb, $queryDb, $targetDb, $queryPrio{$queryDb}; } $N++; } printf " track %sMafNetViewnet shortLabel Nets view align visibility hide parent %sChainNet ", $targetDb, $targetDb; $N = 0; foreach my $queryDb (@queryList) { - my $comName = $queryDb; + $comName = $queryDb; $comName = $commonName{$queryDb} if (defined($commonName{$queryDb})); + $QueryDb = ucfirst($queryDb); 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 "$buildDir/trackData/lastz.$queryDb/bigMaf/${targetAcc}.${queryDb}.net.bb" ) { `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