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";
 }