d8900846fdae9183808ccd57864191ee48fca00e
chmalee
  Fri Jun 5 10:07:25 2026 -0700
myVariants: fix item display and HGVS gene-track lookup on GenArk hubs, refs #33808

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

diff --git src/hg/hgTracks/myVariantsTrack.c src/hg/hgTracks/myVariantsTrack.c
index ca51d61da38..43689c6f078 100644
--- src/hg/hgTracks/myVariantsTrack.c
+++ src/hg/hgTracks/myVariantsTrack.c
@@ -539,30 +539,40 @@
                 dyStringFree(&alterSql);
                 }
             else
                 {
                 struct dyString *alterSql = sqlDyStringCreate(
                     "ALTER TABLE %s ADD COLUMN %s varchar(255) DEFAULT NULL", tableName, cfName);
                 sqlUpdate(conn, dyStringContents(alterSql));
                 dyStringFree(&alterSql);
                 }
             }
         slPairAdd(&item->customFields, cfName, cloneString(cfValue));
         }
     slReverse(&item->customFields);
     }
 
+/* Store the assembly's native sequence name so items match the chromName the
+ * display query uses (GenArk hubs key on the accession, e.g. NC_044602.1, not the
+ * chr1 display alias). */
+if (isNotEmpty(item->chrom))
+    {
+    char *nativeChrom = hgOfficialChromName(item->db, item->chrom);
+    if (isNotEmpty(nativeChrom))
+        item->chrom = nativeChrom;
+    }
+
 /* Add item to database. */
 myVariantsSaveToDb(conn, item, tableName, 0);
 
 /* Refresh the on-disk myVariants ctfile and point mvCtfile_<db> at it. */
 char *ctFile = myVariantsWriteCtFile(userName, database, cart);
 if (isNotEmpty(ctFile))
     {
     char varName[256];
     safef(varName, sizeof varName, MYVARIANTS_FILE_VAR_PREFIX "%s", database);
     cartSetString(cart, varName, ctFile);
     freeMem(ctFile);
     }
 
 /* Output new item coordinates for JavaScript to use for navigation */
 jsInlineF("// START newItemPos\n");