4687e86792555ca063ea6d90d67adb7d583551d6
hiram
Thu May 2 11:45:57 2024 -0700
now with correct common name
diff --git src/hg/utils/automation/asmHubChainNetTrackDb.pl src/hg/utils/automation/asmHubChainNetTrackDb.pl
index 9c17495..d6ee472 100755
--- src/hg/utils/automation/asmHubChainNetTrackDb.pl
+++ src/hg/utils/automation/asmHubChainNetTrackDb.pl
@@ -14,54 +14,88 @@
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;
+my %queryPrio; # key is queryDb, value is featureBits on chain file
+my %commonName; # key is queryDb, value is common name
+
+open (my $CN, "-|", "hgsql -N -e 'select gcAccession,commonName from genark;' hgcentraltest") or die "can not hgsql -N -e 'select gcAccession,commonName from genark;'";
+while (my $line = <$CN>) {
+ chomp $line;
+ my ($gcX, $comName) = split('\t', $line);
+ $comName =~ s/\s\(.*//;
+ $commonName{$gcX} = $comName;
+}
+close ($CN);
+
+open ($CN, "-|", "hgsql -N -e 'select name,organism from dbDb;' hgcentraltest") or die "can not hgsql -N -e 'select name,organism from dbDb;'";
+while (my $line = <$CN>) {
+ chomp $line;
+ my ($gcX, $comName) = split('\t', $line);
+ $comName =~ s/\s\(.*//;
+ $commonName{$gcX} = "$comName/${gcX}";
+}
+close ($CN);
`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 =
) {
chomp $lastzDir;
my $queryDb = basename($lastzDir);
$queryDb =~ s/lastz.//;
- push @queryList, $queryDb;
+ my $Qdb = ucfirst($queryDb);
+# push @queryList, $queryDb;
+ $queryPrio{$queryDb} = 100;
+ my $fbTxt = `ls $buildDir/trackData/lastz.${queryDb}/fb.${targetAccession}.chain${Qdb}Link.txt 2> /dev/null`;
+ chomp $fbTxt;
+ if (-s "${fbTxt}") {
+ my $prio = `cut -d' ' -f5 $fbTxt | tr -d '()%'`;
+ chomp $prio;
+# $queryPrio{$queryDb} = sprintf("%d", int((100 - $prio)+0.5));
+ $queryPrio{$queryDb} = sprintf("%.3f", 100 - $prio);
+ }
}
close (DL);
+foreach my $qDb ( sort {$queryPrio{$a} <=> $queryPrio{$b}} keys %queryPrio) {
+ push @queryList, $qDb;
+}
+
# foreach my $queryDb (@queryList) {
# printf STDERR "%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 synten=Syntenic rbest=Reciprocal_best liftover=Lift_over\n";
-printf "subGroup2 species Species";
+printf "subGroup2 species Assembly";
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 hide
group compGeno
color 0,0,0
altColor 255,255,0
type bed 3
chainLinearGap loose
chainMinScore 5000
dimensions dimensionX=clade dimensionY=species
@@ -88,232 +122,234 @@
shortLabel Reciprocal best
view rbest
visibility pack
subTrack %sChainNet
spectrum on
track %sChainNetViewLiftOver
shortLabel Lift over
view liftover
visibility pack
subTrack %sChainNet
spectrum on
", $targetDb, $targetDb, $targetDb, $targetDb, $targetDb, $targetDb, $targetDb, $targetDb;
$N = 0;
-my $chainNetPriority = 1;
foreach my $queryDb (@queryList) {
+ my $comName = $queryDb;
+ $comName = $commonName{$queryDb} if (defined($commonName{$queryDb}));
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
- longLabel %s%s (%s) Chained Alignments
+ 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 %d
-", $QueryDb, $targetDb, $N, $queryDb, $queryDb, $queryAsmName, $queryDate, $queryDb, $targetDb,
- $QueryDb, $targetDb, $QueryDb, $queryDb, $targetDb, $chainNetPriority++;
+ priority %s
+", $QueryDb, $targetDb, $N, $comName, $comName, $queryDb, $queryAsmName, $queryDate, $queryDb, $targetDb,
+ $QueryDb, $targetDb, $QueryDb, $queryDb, $targetDb, $queryPrio{$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`;
printf "
track chainSyn%s
subTrack %sChainNetViewSynTen off
subGroups view=synten species=s%03d clade=c00
shortLabel %s synChain
- longLabel %s%s (%s) Syntenic Chained Alignments
+ 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 %d
-", $QueryDb, $targetDb, $N, $queryDb, $queryDb, $queryAsmName, $queryDate, $queryDb, $targetDb,
- $QueryDb, $targetDb, $QueryDb, $queryDb, $targetDb, $chainNetPriority++;
+ priority %s
+", $QueryDb, $targetDb, $N, $comName, $comName, $queryDb, $queryAsmName, $queryDate, $queryDb, $targetDb,
+ $QueryDb, $targetDb, $QueryDb, $queryDb, $targetDb, $queryPrio{$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`;
printf "
track chainRBest%s
subTrack %sChainNetViewRBest off
subGroups view=rbest species=s%03d clade=c00
shortLabel %s rbChain
- longLabel %s%s (%s) Reciprocal Best Chained Alignments
+ 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 %d
-", $QueryDb, $targetDb, $N, $queryDb, $queryDb, $queryAsmName, $queryDate, $queryDb, $targetDb,
- $QueryDb, $targetDb, $QueryDb, $queryDb, $targetDb, $chainNetPriority++;
+ priority %s
+", $QueryDb, $targetDb, $N, $comName, $comName, $queryDb, $queryAsmName, $queryDate, $queryDb, $targetDb,
+ $QueryDb, $targetDb, $QueryDb, $queryDb, $targetDb, $queryPrio{$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`;
printf "
track chainLiftOver%s
subTrack %sChainNetViewLiftOver off
subGroups view=liftover species=s%03d clade=c00
shortLabel %s loChain
- longLabel %s%s (%s) Lift Over Chained Alignments
+ 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 %d
-", $QueryDb, $targetDb, $N, $queryDb, $queryDb, $queryAsmName, $queryDate, $queryDb, $targetDb,
- $QueryDb, $targetDb, $QueryDb, $queryDb, $targetDb, $chainNetPriority++;
+ 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 net
visibility dense
subTrack %sChainNet
", $targetDb, $targetDb;
$N = 0;
-$chainNetPriority = 1;
foreach my $queryDb (@queryList) {
+ my $comName = $queryDb;
+ $comName = $commonName{$queryDb} if (defined($commonName{$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 "../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
parent %sMafNetViewnet
subGroups view=net species=s%03d clade=c00
shortLabel %s mafNet
- longLabel %s%s (%s) mafNet Alignment
+ longLabel %s/%s%s (%s) Chained Alignments
type bigMaf
bigDataUrl bbi/%s.%s.net.bb
summary bbi/%s.%s.net.summary.bb
speciesOrder %s
html html/%s.chainNet
- priority %d
-", $QueryDb, $targetDb, $N, $queryDb, $queryDb, $queryAsmName, $queryDate, $targetDb, $queryDb, $targetDb, $queryDb, $queryDb, $targetDb, $chainNetPriority++;
+ priority %s
+", $QueryDb, $targetDb, $N, $comName, $comName, $queryDb, $queryAsmName, $queryDate, $targetDb, $queryDb, $targetDb, $queryDb, $queryDb, $targetDb, $queryPrio{$queryDb};
}
`rm -f $buildDir/bbi/$targetDb.${queryDb}.synNet.bb`;
`rm -f $buildDir/bbi/$targetDb.${queryDb}.synNet.summary.bb`;
if ( -s "$buildDir/trackData/lastz.$queryDb/bigMaf/${targetAcc}.${queryDb}.synNet.bb" ) {
`ln -s ../trackData/lastz.$queryDb/bigMaf/${targetAcc}.${queryDb}.synNet.bb $buildDir/bbi/$targetDb.${queryDb}.synNet.bb`;
`ln -s ../trackData/lastz.$queryDb/bigMaf/${targetAcc}.${queryDb}.synNet.summary.bb $buildDir/bbi/$targetDb.${queryDb}.synNet.summary.bb`;
printf "
track synNet%s
parent %sMafNetViewnet
subGroups view=net species=s%03d clade=c00
shortLabel %s synNet
- longLabel %s%s (%s) Syntenic Net Alignment
+ longLabel %s/%s%s (%s) Chained Alignments
type bigMaf
bigDataUrl bbi/%s.%s.synNet.bb
summary bbi/%s.%s.synNet.summary.bb
speciesOrder %s
html html/%s.chainNet
- priority %d
-", $QueryDb, $targetDb, $N, $queryDb, $queryDb, $queryAsmName, $queryDate, $targetDb, $queryDb, $targetDb, $queryDb, $queryDb, $targetDb, $chainNetPriority++;
+ priority %s
+", $QueryDb, $targetDb, $N, $comName, $comName, $queryDb, $queryAsmName, $queryDate, $targetDb, $queryDb, $targetDb, $queryDb, $queryDb, $targetDb, $queryPrio{$queryDb};
}
`rm -f $buildDir/bbi/$targetDb.${queryDb}.rbestNet.bb`;
`rm -f $buildDir/bbi/$targetDb.${queryDb}.rbestNet.summary.bb`;
if ( -s "$buildDir/trackData/lastz.$queryDb/bigMaf/${targetAcc}.${queryDb}.rbestNet.bb" ) {
`ln -s ../trackData/lastz.$queryDb/bigMaf/${targetAcc}.${queryDb}.rbestNet.bb $buildDir/bbi/$targetDb.${queryDb}.rbestNet.bb`;
`ln -s ../trackData/lastz.$queryDb/bigMaf/${targetAcc}.${queryDb}.rbestNet.summary.bb $buildDir/bbi/$targetDb.${queryDb}.rbestNet.summary.bb`;
printf "
track rbestNet%s
parent %sMafNetViewnet
subGroups view=net species=s%03d clade=c00
shortLabel %s rbestNet
- longLabel %s%s (%s) Reciprocal Best Net Alignment
+ longLabel %s/%s%s (%s) Chained Alignments
type bigMaf
bigDataUrl bbi/%s.%s.rbestNet.bb
summary bbi/%s.%s.rbestNet.summary.bb
speciesOrder %s
html html/%s.chainNet
- priority %d
-", $QueryDb, $targetDb, $N, $queryDb, $queryDb, $queryAsmName, $queryDate, $targetDb, $queryDb, $targetDb, $queryDb, $queryDb, $targetDb, $chainNetPriority++;
+ priority %s
+", $QueryDb, $targetDb, $N, $comName, $comName, $queryDb, $queryAsmName, $queryDate, $targetDb, $queryDb, $targetDb, $queryDb, $queryDb, $targetDb, $queryPrio{$queryDb};
}
`rm -f $buildDir/bbi/$targetDb.${queryDb}.liftOverNet.bb`;
`rm -f $buildDir/bbi/$targetDb.${queryDb}.liftOverNet.summary.bb`;
if ( -s "$buildDir/trackData/lastz.$queryDb/bigMaf/${targetAcc}.${queryDb}.liftOverNet.bb" ) {
printf STDERR "constructing liftOverNet links $targetDb $queryDb\n";
`ln -s ../trackData/lastz.$queryDb/bigMaf/${targetAcc}.${queryDb}.liftOverNet.bb $buildDir/bbi/$targetDb.${queryDb}.liftOverNet.bb`;
`ln -s ../trackData/lastz.$queryDb/bigMaf/${targetAcc}.${queryDb}.liftOverNet.summary.bb $buildDir/bbi/$targetDb.${queryDb}.liftOverNet.summary.bb`;
printf "
track liftOverNet%s
parent %sMafNetViewnet
subGroups view=net species=s%03d clade=c00
shortLabel %s liftOverNet
- longLabel %s%s (%s) Lift Over Net Alignment
+ longLabel %s/%s%s (%s) Chained Alignments
type bigMaf
bigDataUrl bbi/%s.%s.liftOverNet.bb
summary bbi/%s.%s.liftOverNet.summary.bb
speciesOrder %s
html html/%s.chainNet
- priority %d
-", $QueryDb, $targetDb, $N, $queryDb, $queryDb, $queryAsmName, $queryDate, $targetDb, $queryDb, $targetDb, $queryDb, $queryDb, $targetDb, $chainNetPriority++;
+ priority %s
+", $QueryDb, $targetDb, $N, $comName, $comName, $queryDb, $queryAsmName, $queryDate, $targetDb, $queryDb, $targetDb, $queryDb, $queryDb, $targetDb, $queryPrio{$queryDb}
}
$N++;
}
printf "\n" if ($N > 0);