6f2d5abe744c581bfa84f324ae161c92ca0a4dbb lrnassar Wed Jul 8 12:12:27 2026 -0700 Sort ClinVar HGVS expression list so output order is stable regardless of NCBI's row order in hgvs4variation.txt.gz. This stops the doUpdate maxDiff sanity check from tripping when NCBI reshuffles rows (a cosmetic reorder that made ~96% of lines differ while the data was unchanged). No RM. diff --git src/hg/utils/otto/clinvar/clinVarToBed src/hg/utils/otto/clinvar/clinVarToBed index bf327004cff..db99316e368 100755 --- src/hg/utils/otto/clinvar/clinVarToBed +++ src/hg/utils/otto/clinvar/clinVarToBed @@ -820,31 +820,33 @@ submCategories, varId, posVcf, refAllVcf, altAllVcf, somClinImpact, somClinLastEval, revStatusClinImpact, oncogen, oncogenLastEval, revStatusOncogen, aggrGermClass, aggrSomClassImpact, aggrSomOnc = row # SomaticClinicalImpact|SomaticClinicalImpactLastEvaluated|ReviewStatusClinicalImpact|Oncogenicity|OncogenicityLastEvaluated|ReviewStatusOncogenicity if chrom=="" or assembly=="" or assembly=="NCBI36" or assembly=="na": noAssCount += 1 continue if assembly=="GRCh37": hgvs = hg19Hgvs elif assembly=="GRCh38": hgvs = hg38Hgvs else: print("Invalid assembly: %s, row %s" % (repr(assembly), repr(row))) assert(False) - hgvsTable = json.dumps(hgvs[alleleId]) + # sort the HGVS expressions so the output order does not depend on NCBI's + # row order in hgvs4variation.txt.gz, which they reshuffle from time to time + hgvsTable = json.dumps(sorted(hgvs[alleleId])) molConseq = allToVcf.get(int(alleleId)) isTrunc = False if molConseq is None: noMcCount += 1 molConseq = "" else: if molConseq in truncConseqs: isTrunc = True if chromAcc=="NT_187513.1": chrom = "chrUn_KI270742v1" elif chromAcc=="NT_167222.1": chrom = "chrUn_gl000228" elif chromAcc=='NT_187499.1':