2ce16411b0f909e7e1dfd27a01af34316c260f2f hiram Mon Jul 5 11:58:27 2021 -0700 catching up the edge cases for pair wise alignment to assembly hub genome no redmine diff --git src/hg/utils/automation/asmHubChainNetTrackDb.pl src/hg/utils/automation/asmHubChainNetTrackDb.pl new file mode 100755 index 0000000..9bf8171 --- /dev/null +++ src/hg/utils/automation/asmHubChainNetTrackDb.pl @@ -0,0 +1,124 @@ +#!/usr/bin/env perl + +use strict; +use warnings; +use File::Basename; + +sub usage() { + printf STDERR "usage: asmHubChainNetTrackDb.pl \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 @queryList; + +open (DL, "ls -d $buildDir/trackData/lastz.*|") or die "can not list $buildDir/trackData/lastz.*"; +while (my $lastzDir =
) { + chomp $lastzDir; + my $queryDb = basename($lastzDir); + $queryDb =~ s/lastz.//; + push @queryList, $queryDb; +} +close (DL); + +# foreach my $queryDb (@queryList) { +# printf "%s vs. %s\n", $queryDb, $targetDb; +#} + +##### begin trackDb output ###### +printf "track %sChainNet\n", $targetDb; +printf "compositeTrack on +shortLabel Chain/Net +longLabel Chain and Net alignments to target sequence: %s\n", $targetDb; +printf "subGroup1 view Views chain=Chains net=Nets\n"; +printf "subGroup2 species Species"; +my $N = 0; +foreach my $queryDb (@queryList) { + printf " s%03d=%s", $N++, $queryDb; +} +printf "\n"; +printf "subGroup3 clade Clade c00=human\n"; +printf "dragAndDrop subTracks\n"; +printf "visibility pack +group compGeno +noInherit on +color 0,0,0 +altColor 255,255,0 +type bed 3 +chainLinearGap loose +chainMinScore 5000 +dimensions dimensionX=clade dimensionY=species +sortOrder species=+ view=+ clade=+ +configurable on\n"; +printf "html %sChainNet\n", $targetDb; + +printf " + track %sChainNetViewchain + shortLabel Chains + view chain + visibility pack + subTrack %sChainNet + spectrum on +", $targetDb, $targetDb; + +$N = 0; +foreach my $queryDb (@queryList) { + my $QueryDb = ucfirst($queryDb); + `rm -f $buildDir/bbi/$targetDb.chain${QueryDb}.bb`; + `rm -f $buildDir/bbi/$targetDb.chain${QueryDb}Link.bb`; + `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`; + printf " + track chain%s + subTrack %sChainNetViewchain off + subGroups view=chain species=s%03d clade=c00 + shortLabel %s Chain + longLabel %s (some date) Chained Alignments + type bigChain %s + bigDataUrl bbi/%s.chain%s.bb + linkDataUrl bbi/%s.chain%sLink.bb + otherDb %s +", $QueryDb, $targetDb, $N++, $queryDb, $queryDb, $queryDb, $targetDb, + $QueryDb, $targetDb, $QueryDb, $queryDb; +} + +printf " + track %sMafNetViewnet + shortLabel Nets + view net + visibility dense + subTrack %sChainNet +", $targetDb, $targetDb; + +$N = 0; +foreach my $queryDb (@queryList) { + my @targetAccession = split('_', $targetDb); + my $targetAcc = sprintf("%s_%s", $targetAccession[0], $targetAccession[1]); + my $QueryDb = ucfirst($queryDb); + `rm -f $buildDir/bbi/$targetDb.${queryDb}.net.bb`; + `rm -f $buildDir/bbi/$targetDb.${queryDb}.net.summary.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`; + printf " + track net%s + parent %sMafNetViewnet + subGroups view=net species=s%03d clade=c00 + shortLabel %s mafNet + longLabel %s (some date) mafNet Alignment + type bigMaf + bigDataUrl bbi/%s.%s.net.bb + summary bbi/%s.%s.net.summary.bb + speciesOrder %s + html html/%s.chainNet +", $QueryDb, $targetDb, $N++, $queryDb, $queryDb, $targetDb, $queryDb, $targetDb, $queryDb, $queryDb, $targetDb; +}