1103e292ea1e3c3e1ac2daaa19f4752719ac5015
braney
  Thu Apr 9 14:52:32 2026 -0700
fix quickLift DECIPHER SNV: add missing space after Transcript, show correct position for lifted assembly, refs #36061

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c
index e360f061b29..24de476b771 100644
--- src/hg/hgc/hgc.c
+++ src/hg/hgc/hgc.c
@@ -11486,30 +11486,33 @@
 void printDecipherSnvsDetails(struct trackDb *tdb, char *itemName, boolean encode)
 /* 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");
+char *refChrom  = chrom;
+int refStart  = start;
+int refEnd = end;
 
 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);
 
@@ -11606,30 +11609,33 @@
         row = sqlNextRow(sr);
             }
         printf("</UL>");
         }
     sqlFreeResult(&sr);
     }
 
 /* link to Ensembl DECIPHER Patient View page */
 printf("<B>Patient View: </B>\n");
 printf("More details on patient %s at ", itemName);
 printf("<A HREF=\"%s%s\" target=_blank>",
        "https://www.deciphergenomics.org/patient/", itemName);
 printf("DECIPHER</A>.<BR><BR>");
 
 /* print position info */
+if (liftDb)
+    printPosOnChrom(refChrom, refStart, refEnd, strand, TRUE, itemName);
+else
     printPosOnChrom(chrom, start, end, strand, TRUE, itemName);
 
 hFreeConn(&conn);
 }
 
 void doDecipherSnvs(struct trackDb *tdb, char *item, char *itemForUrl)
 /* Put up DECIPHER track info. */
 {
 genericHeader(tdb, item);
 printDecipherSnvsDetails(tdb, item, FALSE);
 printTrackHtml(tdb);
 }
 
 void printDecipherCnvsDetails(struct trackDb *tdb, char *itemName, boolean encode)
 /* Print details of a DECIPHER entry. */