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("