src/utils/qa/doGenbankTests 1.8

1.8 2009/05/14 01:03:15 rhead
Added special logic for getting the shortLabels for est and mrna tracks (which are special cases in trackDb). Changed some whitespace stuff.
Index: src/utils/qa/doGenbankTests
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/utils/qa/doGenbankTests,v
retrieving revision 1.7
retrieving revision 1.8
diff -b -B -U 1000000 -r1.7 -r1.8
--- src/utils/qa/doGenbankTests	22 Apr 2009 03:30:47 -0000	1.7
+++ src/utils/qa/doGenbankTests	14 May 2009 01:03:15 -0000	1.8
@@ -1,175 +1,185 @@
 #!/bin/bash -e
 ###############################################################################
 #  doGenbankTests
 #
 #  June 2008 -- Brooke Rhead
 #
 #  Wrapper script for automated checking of GenBank tables.
 #  Note: this script assumes the kent source tree is checked out in ~/kent/src
 # 
 ###############################################################################
 
-tableExists()
-{
+tableExists() {
   local db=$1 table=$2
   local res=$(hgsql -Ne "show tables like '$table'" $db)
   if [ -z "$res" ]
   then
     return 1 
   else
     return 0
   fi
 }
 
-databaseExists()
-{
+databaseExists() {
   local db=$1
   local res=$(hgsql -Ne "show databases like '$db'")
   if [ -z "$res" ]
   then
     return 1
   else
     return 0
   fi
 }
 
-getShortLabel()
-{
+selectShortLabel() {
   local db=$1 table=$2
   hgsql -NBe "select shortLabel from trackDb where tableName='$table'" $db
 }
 
+getShortLabel() {
+  local db=$1 table=$2
+  local res=$(selectShortLabel $db $table)
+  if [ -z "$res" -a "$table" = "all_mrna" ] 
+  then
+    res=$(selectShortLabel $db mrna)
+  elif [ -z "$res" -a "$table" = "all_est" ] 
+  then
+    res=$(selectShortLabel $db est)
+  fi
+  echo $res
+}
+
 allOk=yes
 
 # check host, set path to genbank table list
 if [ "$HOST" != hgwdev -a "$HOST" != hgwbeta ]
 then
   echo "This script must be run from hgwdev or hgwbeta." >&2
   exit 1
 elif [ "$HOST" = hgwdev ]
 then
   genbankPath="/cluster/data/genbank/etc/genbank.tbls"
   sanityPath="/cluster/data/genbank"
 else #host is hgwbeta
   genbankPath="/genbank/etc/genbank.tbls"
   sanityPath="/genbank"
 fi
 
 # get arguments / give usage statement
 if [ $# -lt 1 -o $# -gt 2 ]
 then
   echo "usage:  $(basename $0) db [outFile]
 where outFile is the name of a file in which to record results" >&2
   exit 1
 else
   db="$1"
   if ! databaseExists $db
   then
     echo "ERROR: $db does not seem to be a valid database name" >&2
     exit 1
   fi
   if [ $# -eq 2 ]
   then
     exec > "$2" 2>&1  # neat bash trick to redirect stdout (also redirecting error)
   fi
 fi
 
 # print information about the script at the top of the output
 echo "$(basename $0) output on $db"
 date
 echo
 
 # get a list of all genbank tracks present in this assembly
 echo -e "The following GenBank tracks are present in this assembly:\n"
 for table in refGene xenoRefGene mgcFullMrna orfeomeMrna \
              all_mrna intronEst all_est xenoMrna xenoEst
 do
-  tableExists $db && getShortLabel $db $table
+  tableExists $db $table && getShortLabel $db $table
 done
 echo
 
 # run genePredChecks and pslChecks
 echo -e "--> Running genePredCheck and pslCheck:\n"
 for table in refGene xenoRefGene mgcGenes orfeomeGenes
 do
   tableExists $db $table && {
     cmd="nice genePredCheck -db=$db $table"
     echo $cmd
     $cmd || allOk=no
   }
 done
 echo
 for table in mgcFullMrna orfeomeMrna all_mrna xenoMrna all_est refSeqAli \
              xenoRefSeqAli xenoEst
 do
   tableExists $db $table && {
     cmd="nice pslCheck -db=$db $table"
     echo $cmd
     $cmd || allOk=no
   }
 done
 echo
 
 # run joinerCheck
 joinerLoc=~/kent/src/hg/makeDb/schema/all.joiner
 echo -e "--> Checking appropriate keys in all.joiner:\n"
 doJoinerCheck() {
   local table=$1 ident=$2
   tableExists $db $table && {
     cmd="nice joinerCheck -keys -database=$db -identifier=$ident $joinerLoc"
     echo $cmd
     $cmd || allOk=no
     echo
   }
 }
 doJoinerCheck gbCdnaInfo gbCdnas
 doJoinerCheck refGene refSeqId
 doJoinerCheck xenoRefGene xenoRefSeqId
 doJoinerCheck mgcGenes mgcAccession
 doJoinerCheck orfeomeGenes orfeomeAccession
 doJoinerCheck all_mrna nativeMrnaAccession
 doJoinerCheck all_est nativeEstAccession # takes care of intronEst, too
 doJoinerCheck xenoMrna xenoMrnaAccession
 doJoinerCheck xenoEst xenoEstAccession
 echo
 
 # run gbSanity
 filename=${db}.sanity.$(date +%m.%d.%Y-%R%p)
-echo -e "--> Running gbSanity, and putting output in:\n"
+echo -e "--> Running gbSanity, and putting output in:"
 echo -e "${HOST}:$sanityPath/misc/$filename"
 # need to run in a subshell, since gbSanity wants to be run from this dir
 (cd $sanityPath && bin/x86_64/gbSanity $db >& misc/$filename) || allOk=no
-echo -e "\nHere is the last line of that file:\n"
+echo -e "Here is the last line of that file:\n"
 tail -1 $sanityPath/misc/$filename
 echo -e "\nIf there are any errors here, consult Mark Diekhans.\n"
 
 # run featureBits
 echo -e "--> Running featureBits.  Remember to paste this into the pushqueue:\n"
 for table in refGene xenoRefGene mgcGenes mgcFullMrna orfeomeGenes orfeomeMrna \
              all_mrna intronEst all_est xenoMrna xenoEst
 do
   tableExists $db $table && {
     cmd="nice featureBits -countGaps $db $table"
     echo $cmd
     $cmd || allOk=no
     cmd="nice featureBits -countGaps $db $table gap"
     echo $cmd
     $cmd || allOk=no
     echo
   }
 done
 echo
 
 # run countPerChrom??
 
 # give overall report of errors
 if [ $allOk = yes ]
 then
   echo No errors were encountered during $(basename $0).  Yay!
   date
 else
   echo At least one ERROR occurred during $(basename $0).
   date
   exit 2
 fi
 exit 0