69f4ef65bd1f1d15304c3fe0a47e701d58d6e688 mspeir Fri Sep 18 13:05:49 2026 -0700 trackLists: take the otto assembly counts from the jobs, and quiet the weekly mail. refs #38295 Code review feedback from Lou on the mirror track lists page. The Assemblies column counted every assembly with a table matching the job's keyword, not the assemblies the job rebuilds, so NCBI RefSeq read 84 where ottoNcbiRefSeq.sh runs four and GRC Incident read 61 where runUpdate.sh works through ten. Each job now carries the list it actually builds, read out of its script; UniProt keeps the trackDb count because doUniprot chooses its assemblies at run time. A run reports either way the list and trackDb disagree. An otto job the keyword table did not recognize vanished from the page without a word, which is how STRchive went missing from it. STRchive is described now, and anything else unrecognized is named on the page and in the cron mail. The weekly mail was the whole progress log with the reachable restricted files buried in it, because every note() went to stderr and the "updated" line fired every run. Progress now goes to stdout and on to lastRun.log; stderr carries only what needs a person, so mail from this cron line means something is wrong. The "every file marked as restricted is correctly blocked" line could print on a run where no fetch got an answer, and covered only the 39 of 58 rows that name a file. It now says how many were tried and stays quiet about blocking when the check could not finish. Four rows reading "Mutation: A" through "Mutation: T" sat under M in the restricted table, nowhere near AlphaGenome. A subtrack of a listed track now sorts directly under that track, keeping its own row, since each of these is a separate file a mirror cannot have. A track named after its container is labelled with the container as well, so varFreqsBackground reads "SNV Frequencies: Population reference" rather than "Population reference". Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> diff --git src/hg/utils/otto/otto.crontab src/hg/utils/otto/otto.crontab index f0ab527e0e9..4aa9c3ca027 100644 --- src/hg/utils/otto/otto.crontab +++ src/hg/utils/otto/otto.crontab @@ -154,31 +154,33 @@ #NCBI RefSeq 23 8 * * 3 /hive/data/outside/otto/ncbiRefSeq/ottoNcbiRefSeq.sh #Index page public session thumbnails update MAILTO=otto-group@ucsc.edu 11 1 * * 4 /cluster/software/bin/python /cluster/bin/scripts/buildPublicSessionThumbnailsIndexPage.py /usr/local/apache/htdocs/ #Add a new daily tip to the home page 5 5 * * 1-5 /cluster/software/bin/python /cluster/bin/scripts/generateTipOfDay.py -s ~/kent/src/hg/htdocs/allTipsRaw.html # Mirror-facing track lists (RM #37781): tracks we cannot redistribute, tracks # that update themselves, tracks contributed from outside UCSC. Writes # goldenPath/help/mirrorTracks.html into htdocs; reaching the RR needs a /root # autoPush entry from cluster-admin. Weekly is plenty, none of the three lists -# moves daily. Silent unless a restricted file is found reachable on hgdownload. +# moves daily. Progress goes to trackLists/lastRun.log; mail from this line means +# something needs a person (a restricted file reachable on hgdownload, an otto job +# whose assembly list disagrees with trackDb, an otto job with no description). 32 6 * * 4 /hive/data/outside/otto/trackLists/trackLists.sh #OMIM Upload HGDB_CONF=/cluster/home/otto/.hg.conf.beta 15 05 * * * /hive/data/outside/otto/omim/omimUploadWrapper.sh MAILTO=cells@ucsc.edu # Cell Browser news sec update by Matt/Brittney Sept 2022 0 0 * * 1-5 umask 002; ~bwick/miniconda3/bin/python3.8 ~bwick/cellBrowser/ucsc/updateNewsSec -r # Update Cell Browser .json facets files using tabulate_facets.pl 0 0 * * 1-5 cd /usr/local/apache/htdocs-cells-submit/facets && ~bwick/cellBrowser/ucsc/tabulate_facets.pl /usr/local/apache/htdocs-cells-beta/dataset.json 0 0 * * 1-5 cd /usr/local/apache/htdocs-cells-submit/facets && /usr/local/apache/htdocs-cells-submit/facets/tsv_to_json.py # Hidden-dataset reminders (RM #38246). Once a month, queue one draft email per