bf62c01cee8dc176445aa131e2fd6ea847a4eb68
lrnassar
  Thu May 28 11:32:52 2026 -0700
Adding UMD TP53 variant track (umdTp53) on hg19 and hg38 under a new Locus-Specific superTrack. refs #37648

Shows variants from the UMD TP53 database (p53.fr, Soussi & Leroy) as a
bigBed 9+, one row per unique TP53 variant. Coloured by curator pathogenicity
classification. Filters: pathogenicity, variantClassification, variantType,
tumor frequency. Search by HGVS cDNA name and canonical protein change via
extraIndex + trix. Linkouts to COSMIC and dbSNP.

Otto pipeline polls p53.fr weekly; rebuilds only when the upstream zips
actually change. Cron-silent on no-op so unchanged weeks don't email.

Adds src/hg/utils/otto/umdTp53/ (build scripts + parser + .as schema),
src/hg/makeDb/trackDb/human/umdTp53.ra (track stanza),
src/hg/makeDb/trackDb/human/umdTp53.html (description page),
src/hg/makeDb/trackDb/human/locusSpec.ra (shared superTrack definition).

Includes locusSpec.ra and umdTp53.ra from human/trackDb.ra (alpha-gated).
Adds include of ../locusSpec.ra to human/hs1/trackDb.ra so the strict
trackDb checker resolves the parent in the same include chain as the
existing mucins children. Drops the redundant locusSpec stanza from
human/mucins.ra now that it lives in its own file.

diff --git src/hg/utils/otto/umdTp53/doUmdTp53Update.sh src/hg/utils/otto/umdTp53/doUmdTp53Update.sh
new file mode 100644
index 00000000000..929547036e5
--- /dev/null
+++ src/hg/utils/otto/umdTp53/doUmdTp53Update.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+#
+# Cron entry point for the UMD TP53 variant track. Designed for silent
+# operation under cron: stdout/stderr stay empty whenever nothing needs to
+# happen, so no mail is sent. Routine progress messages go to a dated log
+# file. Only genuine errors propagate to stderr (and therefore to cron mail).
+#
+# Do not modify this script in /hive/data/outside/otto/umdTp53; edit the kent
+# source at src/hg/utils/otto/umdTp53/doUmdTp53Update.sh and `make install`.
+
+set -o errexit -o pipefail -o nounset
+umask 002
+
+WORKDIR="/hive/data/outside/otto/umdTp53"
+LOGDIR="${WORKDIR}/log"
+mkdir -p "${LOGDIR}"
+LOGFILE="${LOGDIR}/umdTp53.$(date +%F).log"
+
+cd "${WORKDIR}"
+
+# Step 1: download (silent on no-op; prints dated workdir on real change).
+# Capture stdout into a marker; route stderr to the log so curl diagnostics
+# are visible if something fails.
+if ! marker=$(./download.sh 2>>"${LOGFILE}"); then
+    echo "ERROR: umdTp53 download.sh failed; see ${LOGFILE}" 1>&2
+    exit 1
+fi
+
+if [ -z "${marker}" ]; then
+    # Nothing changed. Stay silent.
+    exit 0
+fi
+
+# Step 2: build + install. Everything goes to the log; only a non-zero exit
+# bubbles out and triggers cron mail.
+{
+    echo "=== umdTp53 build $(date -Iseconds) on ${marker} ==="
+    if ! ./checkAndLoad.sh "${marker}"; then
+        echo "ERROR: umdTp53 checkAndLoad.sh failed on ${marker}" 1>&2
+        exit 1
+    fi
+    echo "=== umdTp53 build complete $(date -Iseconds) ==="
+} >>"${LOGFILE}" 2>&1