f41fc338ea8d2f30b241f4af099527bcac02b1c8 lrnassar Wed Mar 8 16:54:00 2023 -0800 Ongoing work to standardize otto, removing individual ottomeister in favor of a central email repo people can subscribe to, refs #28331 diff --git src/hg/utils/otto/grcIncident/grcUpdate.sh src/hg/utils/otto/grcIncident/grcUpdate.sh index be1e386..502e35f 100755 --- src/hg/utils/otto/grcIncident/grcUpdate.sh +++ src/hg/utils/otto/grcIncident/grcUpdate.sh @@ -1,128 +1,128 @@ #!/bin/bash # exit on any failure set -beEu -o pipefail export TOP="/hive/data/outside/otto/grcIncidentDb" export bbiInfo="/cluster/bin/x86_64/bigBedInfo" -export failMail="hiram@soe.ucsc.edu,lrnassar@ucsc.edu" +export failMail="hiram@soe.ucsc.edu,otto-group@ucsc.edu" if [ $# -ne 4 ]; then echo "usage: grcUpdate.sh <workDir> <db> <issueName> <ftpPath>" 1>&2 exit 255 fi export debug=0 export workDir="$1" export db="$2" # This ^ trick upper cases the first letter of the string in variable db export Db=${db^} export GRC_issue="$3" export ftpPath="$4/${GRC_issue}.gff3" cd "${TOP}/${workDir}" if [ $debug -ne 0 ]; then rm -f updateRunning.pid fi if [ -s updateRunning.pid ]; then printf "To: $failMail\nFrom: $failMail\nSubject: ERROR: GRC Incident update $Db\n\nERROR: ${db} GRC incident update, previous update did not finish\n" | /usr/sbin/sendmail -t -oi # echo "ERROR: ${db} GRC incident update, previous update did not finish" \ # | /bin/mail -s "ERROR: GRC Incident update $Db" ${failMail} # > /dev/null 2> /dev/null exit 245 fi echo $$ > updateRunning.pid export YM=`date "+%Y/%m"` mkdir -p ${YM} export DS=`date "+%F"` if [ $debug -ne 0 ]; then printf "# %s\n" "https://ftp.ncbi.nlm.nih.gov/pub/grc/${ftpPath}" 1>&2 printf "# into ${YM}/${GRC_issue}.${DS}.gff\n" 1>&2 fi wget --timestamping \ https://ftp.ncbi.nlm.nih.gov/pub/grc/${ftpPath} \ -O ${YM}/${GRC_issue}.${DS}.gff > /dev/null 2>&1 gzip -f ${YM}/${GRC_issue}.${DS}.gff if [ $debug -ne 0 ]; then ls -og ${YM}/${GRC_issue}.${DS}.gff.gz 1>&2 fi if [ $debug -ne 0 ]; then printf "# fetched into ${workDir}/${YM}/${GRC_issue}.${DS}.gff\n" 1>&2 fi if [ "${db}" = "mm9" ]; then /hive/data/outside/otto/grcIncidentDb/parseGff.pl \ ${YM}/${GRC_issue}.${DS}.gff.gz | sort \ | join -t$'\t' validContigs - > ${YM}/${db}.${DS}.contigs.bed5 /cluster/bin/x86_64/liftUp -type=.bed ${YM}/${db}.${DS}.bed5 refSeq.lift error ${YM}/${db}.${DS}.contigs.bed5 gzip -f ${YM}/${db}.${DS}.contigs.bed5 else /hive/data/outside/grc/incidentDb/parseGff.pl \ ${YM}/${GRC_issue}.${DS}.gff.gz | sort \ | join -t$'\t' refSeq.chromNames.tab - \ | cut -f2- | sort -k1,1 -k2,2n > ${YM}/${db}.${DS}.bed5 fi /cluster/bin/x86_64/bedToBigBed -type=bed4+1 \ -as=$HOME/kent/src/hg/lib/grcIncidentDb.as \ ${YM}/${db}.${DS}.bed5 /hive/data/genomes/${db}/chrom.sizes \ ${YM}/${DS}.${Db}.grcIncidentDb.bb > /dev/null 2>&1 gzip -f ${YM}/${db}.${DS}.bed5 if [ $debug -ne 0 ]; then printf "# parsed into ${YM}/${db}.${DS}.bed5.gz\n" 1>&2 ls -og ${YM}/${db}.${DS}.bed5.gz 1>&2 fi export newSum=`md5sum -b ${YM}/${DS}.${Db}.grcIncidentDb.bb | awk '{print $1}'` export oldSum=0 if [ -s ${Db}.grcIncidentDb.bb ]; then oldSum=`md5sum -b ${Db}.grcIncidentDb.bb | awk '{print $1}'` fi if [ $debug -ne 0 ]; then printf "# newSum $newSum ${workDir}/${YM}/${DS}.${Db}.grcIncidentDb.bb\n" 1>&2 ls -og ${YM}/${DS}.${Db}.grcIncidentDb.bb 1>&2 printf "# oldSum $oldSum ${workDir}/${Db}.grcIncidentDb.bb\n" 1>&2 ls -og ${Db}.grcIncidentDb.bb 1>&2 fi if [ "${oldSum}" = "${newSum}" ]; then # echo "${db} GRC update no change from previous ${DS}" \ # | mail -s "ALERT: GRC Incident update $Db" ${failMail} \ # > /dev/null 2> /dev/null rm -f ${YM}/${DS}.${Db}.grcIncidentDb.bb rm -f ${YM}/${db}.${DS}.bed5.gz rm -f ${YM}/${GRC_issue}.${DS}.gff.gz rm -f ${YM}/${db}.${DS}.contigs.bed5.gz else rm -f ${Db}.grcIncidentDb.bb cp -p ${YM}/${DS}.${Db}.grcIncidentDb.bb ${Db}.grcIncidentDb.bb printf "To: $failMail\nFrom: $failMail\nSubject: ALERT: GRC Incident update $Db\n\n=== Updated $Db ===\n%s\n" \ "`${bbiInfo} -udcDir=./udcCache ${Db}.grcIncidentDb.bb`" \ | /usr/sbin/sendmail -t -oi rm -fr ./udcCache # no longer necessary # /cluster/bin/scripts/gwUploadFile ${Db}.grcIncidentDb.bb ${Db}.grcIncidentDb.bb > /dev/null 2>&1 url=`/cluster/bin/x86_64/hgsql -N -e "select * from grcIncidentDb;" $db` rm -fr ./udcCache mkdir ./udcCache ${bbiInfo} -udcDir=./udcCache "${url}" 2>&1 \ | mail -s "ALERT: GRC Incident update $Db" ${failMail} \ > /dev/null 2> /dev/null rm -fr ./udcCache zcat ${YM}/${db}.${DS}.bed5.gz | cut -f4 | sort -u | awk '{printf "%s\t%s\n", $1, $1}' > ${Db}.nameIndex.txt /cluster/bin/x86_64/ixIxx ${Db}.nameIndex.txt ${Db}.grcIncidentDb.ix ${Db}.grcIncidentDb.ixx fi rm -f updateRunning.pid printf "SUCCESS\n" exit 0