0a48f8c6284efb6756f1d2ba23694b58c9aa6f47
lrnassar
  Tue Aug 18 12:01:13 2026 -0700
Update ENIGMA BRCA1/BRCA2 hub scripts and data to CSpec v1.2. refs #38130

Rebuilds the BRCAsplicing and BRCAfunctionalAssays tracks from the v1.2
specification tables downloaded from the ClinGen CSpec registry. Adds
exportV12Sheets.py (xlsx to text with merged-cell expansion) and
convertTable4toFlat.py (converts the v1.2 visual Table 4 layout back to the
flat format the track script consumes, including NMD-boundary PTC sub-ranges).
Build scripts now write to a versioned dir instead of overwriting the files
the public hub serves, and the hgSearch coordinate scraper was fixed for the
current page format and made to fail loudly on a missed lookup. Also updates
the vcepVersions monitor regex for the corrected BRCA1/BRCA2 wording on the
hub description page.

diff --git src/hg/utils/otto/vcepVersions/checkVcepVersions.py src/hg/utils/otto/vcepVersions/checkVcepVersions.py
index 8af0f3c687e..ddb943e73d1 100755
--- src/hg/utils/otto/vcepVersions/checkVcepVersions.py
+++ src/hg/utils/otto/vcepVersions/checkVcepVersions.py
@@ -25,31 +25,31 @@
 """
 
 import json
 import re
 import sys
 import time
 import urllib.error
 import urllib.request
 
 # One entry per VCEP hub in the recommended track sets
 # (kent/src/hg/htdocs/data/recTrackSets/recTrackSets.hg*.tab).
 # hubRegex must capture the dotted version from that hub's description page.
 vcepConfig = {
     "ENIGMA BRCA1/BRCA2 VCEP": {
         "hubUrl": "https://hgdownload.soe.ucsc.edu/hubs/enigma/enigma.html",
-        "hubRegex": r"Guidelines for BRCA1/BRCA1\s+Version\s+(\d+(?:\.\d+)+)",
+        "hubRegex": r"Guidelines for BRCA1/BRCA2\s+Version\s+(\d+(?:\.\d+)+)",
         "affiliation": "50087",
         "genes": ["BRCA1", "BRCA2"],
     },
     "InSiGHT Lynch Syndrome VCEP": {
         "hubUrl": "https://hgdownload.soe.ucsc.edu/hubs/insight/insight.html",
         "hubRegex": r"<h1>InSiGHT specs\s+(\d+(?:\.\d+)+)</h1>",
         "affiliation": "50099",
         "genes": ["MLH1", "MSH2", "MSH6", "PMS2"],
     },
 }
 
 cspecUrl = "https://cspec.genome.network/cspec/ui/svi/affiliation/"
 
 
 def fetchUrl(url):