af085becd865f704b4fbe1c7cc643e939bea056c
braney
  Fri Mar 27 10:57:11 2026 -0700
when quickLifting decipherSnvs, use source coordinates to query into
supporting table  fixes #36061

diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c
index 43897dac804..a6c45936a79 100644
--- src/hg/hgc/hgc.c
+++ src/hg/hgc/hgc.c
@@ -11461,30 +11461,50 @@
 /* Print details of a DECIPHER entry. */
 {
 char *db = database;
 char *liftDb = cloneString(trackDbSetting(tdb, "quickLiftDb"));
 if (liftDb != NULL) 
     db = liftDb;
 struct sqlConnection *conn = hAllocConn(db);
 char query[256];
 struct sqlResult *sr;
 char **row;
 char *strand={"+"};
 int start = cartInt(cart, "o");
 int end = cartInt(cart, "t");
 char *chrom = cartString(cart, "c");
 
+if (liftDb) // we need to get the chr start stop in liftDb coordinates
+    {
+    char *sqlTable = tdb->table;
+    struct hash *chainHash = newHash(10);
+    char *quickLiftFile = cloneString(trackDbSetting(tdb, "quickLiftUrl"));
+    
+    struct bed *bed = (struct bed *)quickLiftSql(conn, quickLiftFile, sqlTable, chrom, start, end,  NULL, NULL, (ItemLoader2)bedLoadN, 4, chainHash);
+
+    for(; bed; bed = bed->next)
+        if (sameString(bed->name, itemName))
+            break;
+    if (bed == NULL)
+        errAbort("cannot find %s", itemName);
+
+    // use the source assembly's reference coordinates below
+    chrom = bed->chrom;
+    start = bed->chromStart;
+    end = bed->chromEnd;
+    }
+
 /* So far, we can just remove "chr" from UCSC chrom names to get DECIPHER names */
 char *decipherChrom = chrom;
 if (startsWithNoCase("chr", decipherChrom))
     decipherChrom += 3;
 
 printf("<H3>Patient %s </H3>", itemName);
 
 /* print phenotypes and other information, if available */
 if (sqlFieldIndex(conn, "decipherSnvsRaw", "phenotypes") >= 0)
     {
     sqlSafef(query, sizeof(query),
         "select phenotypes, refAllele, altAllele, transcript, gene, genotype, "
         "inheritance, pathogenicity, contribution "
         "from decipherSnvsRaw where id = '%s' and chr = '%s' and start = %d and end = %d",
         itemName, decipherChrom, start+1, end);