a4870c92799d2687ff7c6602663f5ec6e5599af2 hiram Thu Apr 30 10:16:07 2026 -0700 kegAlignLastz.sh has moved to this scripts directory refs #31811 diff --git src/hg/utils/otto/userRequests/ottoRequestAlign.sh src/hg/utils/otto/userRequests/ottoRequestAlign.sh index 8867e80cf95..e24855291d2 100755 --- src/hg/utils/otto/userRequests/ottoRequestAlign.sh +++ src/hg/utils/otto/userRequests/ottoRequestAlign.sh @@ -1,39 +1,39 @@ #!/bin/bash # ottoRequestAlign.sh - look up an ottoRequest row by id and construct # the kegAlignLastz.sh command line from genark metadata # # usage: ottoRequestAlign.sh <id> # # Queries hgcentraltest.ottoRequest for fromDb/toDb, then looks up # each accession in hgcentraltest.genark for asmName and clade. # Prints and executes the resulting kegAlignLastz.sh command. set -eEu -o pipefail -set -x ############################################################################ ### verify arguments ############################################################################ if [ $# != 1 ]; then printf "usage: ottoRequestAlign.sh <id>\n" 1>&2 printf " where <id> is a row id from hgcentraltest.ottoRequest\n" 1>&2 exit 255 fi export requestId="$1" +export scriptDir=$(cd "$(dirname "$0")" && pwd) # validate id is a positive integer case "${requestId}" in ''|*[!0-9]*) printf "ERROR: id must be a positive integer, got: '%s'\n" "${requestId}" 1>&2 exit 255 ;; esac ############################################################################ ### function definitions ############################################################################ ### errors - set error status in the table function setErrorStatus() { id="${1}" @@ -57,31 +57,30 @@ return 1 fi _acc=$(printf "%s" "${result}" | cut -f1) _asmName=$(printf "%s" "${result}" | cut -f2) _clade=$(printf "%s" "${result}" | cut -f3) } ############################################################################ # dbDbCladeLookup - look up clade for a UCSC database name # from dbDb.name.clade.tsv (in same directory as this script) # arg: dbName (e.g. hg38, rn7) # sets: _clade ############################################################################ function dbDbCladeLookup() { local dbName=$1 - local scriptDir=$(cd "$(dirname "$0")" && pwd) local tsvFile="${scriptDir}/dbDb.name.clade.tsv" if [ ! -s "${tsvFile}" ]; then printf "ERROR: clade lookup file not found: %s\n" "${tsvFile}" 1>&2 return 1 fi _clade=$(grep -v '^#' "${tsvFile}" | awk -F'\t' -v db="${dbName}" '$1==db {print $2}') if [ -z "${_clade}" ]; then printf "ERROR: UCSC db '%s' not found in %s\n" "${dbName}" "${tsvFile}" 1>&2 return 1 fi } ############################################################################ # cladeMap - convert genark/dbDb plural clade to kegAlignLastz singular form # primates -> primate, mammals -> mammal, everything else -> other @@ -262,21 +261,21 @@ mkdir -p "${buildDir}" printf "# buildDir: %s\n" "${buildDir}" 1>&2 # store buildDir in ottoRequest table for workflowMonitor.sh hgsql -N -e \ "UPDATE ottoRequest SET buildDir='${buildDir}', status=2 WHERE id=${requestId};" \ hgcentraltest ############################################################################ # step 5: map clades and build the kegAlignLastz.sh command ############################################################################ export fromCladeArg=$(cladeMap "${fromClade}") export toCladeArg=$(cladeMap "${toClade}") -export cmd="${HOME}/kent/src/hg/utils/automation/kegAlignLastz.sh ${fromId} ${toId} ${fromCladeArg} ${toCladeArg}" +export cmd="${scriptDir}/kegAlignLastz.sh ${fromId} ${toId} ${fromCladeArg} ${toCladeArg}" printf "# launching: %s\n" "${cmd}" 1>&2 nohup ${cmd} > "${buildDir}/kegAlign.log" 2>&1 < /dev/null & printf "# launched pid %s, log=%s/kegAlign.log\n" "$!" "${buildDir}" 1>&2 exit 0