6ba4f09fcc1fd9831ff2da23ddeef5740837d90c hiram Tue Feb 16 08:58:29 2021 -0800 add in mm39 default chainNet table check refs #26682 diff --git src/hg/utils/automation/verifyBrowser.pl src/hg/utils/automation/verifyBrowser.pl index 21cbcd3..6c0b5e2 100755 --- src/hg/utils/automation/verifyBrowser.pl +++ src/hg/utils/automation/verifyBrowser.pl @@ -19,64 +19,73 @@ 'ensemblToGeneName' => "Ensembl genes", 'extNcbiRefSeq' => "NCBI RefSeq genes", 'ncbiRefSeq' => "NCBI RefSeq genes", 'ncbiRefSeqCds' => "NCBI RefSeq genes", 'ncbiRefSeqCurated' => "NCBI RefSeq genes", 'ncbiRefSeqLink' => "NCBI RefSeq genes", 'ncbiRefSeqOther' => "NCBI RefSeq genes", 'ncbiRefSeqPepTable' => "NCBI RefSeq genes", 'ncbiRefSeqPredicted' => "NCBI RefSeq genes", 'ncbiRefSeqPsl' => "NCBI RefSeq genes", 'seqNcbiRefSeq' => "NCBI RefSeq genes", 'chainRBestHg38' => "chainNetRBestHg38", 'chainRBestHg38Link' => "chainNetRBestHg38", 'chainRBestMm10' => "chainNetRBestMm10", 'chainRBestMm10Link' => "chainNetRBestMm10", +'chainRBestMm39' => "chainNetRBestMm39", +'chainRBestMm39Link' => "chainNetRBestMm39", 'chainSynHg38' => "chainNetSynHg38", 'chainSynHg38Link' => "chainNetSynHg38", 'chainSynMm10' => "chainNetSynMm10", 'chainSynMm10Link' => "chainNetSynMm10", +'chainSynMm39' => "chainNetSynMm39", +'chainSynMm39Link' => "chainNetSynMm39", 'netRBestHg38' => "chainNetRBestHg38", 'netRBestMm10' => "chainNetRBestMm10", +'netRBestMm39' => "chainNetRBestMm39", 'netSynHg38' => "chainNetSynHg38", 'netSynMm10' => "chainNetSynMm10", +'netSynMm39' => "chainNetSynMm39", 'tandemDups' => "tandemDups", 'gapOverlap' => "gapOverlap" ); my %tableCheckList = ( 'augustusGene' => 1, 'chainHg38' => 1, 'chainHg38Link' => 1, 'chainMm10' => 1, 'chainMm10Link' => 1, +'chainMm39' => 1, +'chainMm39Link' => 1, 'chromAlias' => 1, 'chromInfo' => 1, 'cpgIslandExt' => 1, 'cpgIslandExtUnmasked' => 1, 'cytoBandIdeo' => 1, 'gap' => 1, 'gc5BaseBw' => 1, 'genscan' => 1, 'genscanSubopt' => 1, 'gold' => 1, 'grp' => 1, 'hgFindSpec' => 1, 'history' => 1, 'microsat' => 1, 'nestedRepeats' => 1, 'netHg38' => 1, 'netMm10' => 1, +'netMm39' => 1, 'rmsk' => 1, 'simpleRepeat' => 1, 'tableDescriptions' => 1, 'trackDb' => 1, 'ucscToINSDC' => 1, 'ucscToRefSeq' => 1, 'windowmaskerSdust' => 1 ); ## from /cluster/data/genbank/etc/gbPerAssemblyTables.txt ## genbank tables ## some of these should be present, do not need to be all my %gbCheckList = ( 'gbLoaded' => 1, 'all_mrna' => 1, 'xenoMrna' => 1, @@ -223,39 +232,37 @@ } } } printf STDERR "# verified %d required tables, %d missing tables\n", $tablesFound, $missingTableCount; my $missedOut = 0; foreach my $table (sort keys %missingTables) { ++$missedOut; printf STDERR "# %d\t%s\t- missing table\n", $missedOut, $table; } my %optionalChainNet; my %expectedChainNet; my @chainTypes = ("", "RBest", "Syn"); -my @otherDbs = ("hg38", "mm10"); +my @otherDbs = ("hg38", "mm10", "mm39"); for (my $i = 0; $i < scalar(@chainTypes); ++$i) { my $chainTable = "chain" . $chainTypes[$i] . $Db; my $chainLinkTable = "chain" . $chainTypes[$i] . $Db . "Link"; my $netTable = "net" . $chainTypes[$i] . $Db; for (my $j = 0; $j < scalar(@otherDbs); ++$j) { next if ($db eq $otherDbs[$j]); - # mm10 Syntenics do not exist (yet) - next if ($otherDbs[$j] eq "mm10" && $chainTypes[$i] eq "Syn"); if (length($chainTypes[$i]) > 0) { # RBest and Syn are optional $optionalChainNet{$otherDbs[$j]} += 1 if (checkTableExists($otherDbs[$j], $chainTable)); $optionalChainNet{$otherDbs[$j]} += 1 if (checkTableExists($otherDbs[$j], $chainLinkTable)); $optionalChainNet{$otherDbs[$j]} += 1 if (checkTableExists($otherDbs[$j], $netTable)); } else { printf STDERR "# missing $otherDbs[$j].$chainTable\n" if (! checkTableExists($otherDbs[$j], $chainTable)); printf STDERR "# missing $otherDbs[$j].$chainLinkTable\n" if (! checkTableExists($otherDbs[$j], $chainLinkTable)); printf STDERR "# missing $otherDbs[$j].$netTable\n" if (! checkTableExists($otherDbs[$j], $netTable)); $expectedChainNet{$otherDbs[$j]} += 1 if (checkTableExists($otherDbs[$j], $chainTable)); $expectedChainNet{$otherDbs[$j]} += 1 if (checkTableExists($otherDbs[$j], $chainLinkTable)); $expectedChainNet{$otherDbs[$j]} += 1 if (checkTableExists($otherDbs[$j], $netTable)); } } } @@ -290,27 +297,35 @@ $chainNet = `hgsql -e 'select * from trackDb;' hg38 | egrep "^chain$Db|^net$Db" | wc -l`; chomp $chainNet; if ($chainNet != 2) { printf STDERR "# ERROR: missing hg38.chainNet trackDb definitions for $db (found: $chainNet instead of 2)\n"; } } if ( $db ne "mm10" ) { $chainNet = `hgsql -e 'select * from trackDb;' mm10 | egrep "^chain$Db|^net$Db" | wc -l`; chomp $chainNet; if ($chainNet != 2) { printf STDERR "# ERROR: missing mm10.chainNet trackDb definitions for $db (found: $chainNet instead of 2)\n"; } } +if ( $db ne "mm39" ) { + $chainNet = `hgsql -e 'select * from trackDb;' mm39 | egrep "^chain$Db|^net$Db" | wc -l`; + chomp $chainNet; + if ($chainNet != 2) { + printf STDERR "# ERROR: missing mm39.chainNet trackDb definitions for $db (found: $chainNet instead of 2)\n"; + } +} + my $goldSearch = `hgsql -N -e 'select termRegex from hgFindSpec where searchTable="gold" AND searchName="gold";' $db | grep "abuz" | wc -l`; chomp $goldSearch; if ($goldSearch == 1) { printf STDERR "# ERROR: missing specific hgFindSpec rule for gold table\n"; } my $allJoiner = `grep $db /usr/local/apache/cgi-bin/all.joiner | head -1 | wc -l`; chomp $allJoiner; if ($allJoiner != 1) { printf STDERR "# ERROR missing definitions in hg/makeDb/schema/all.joiner\n"; }