0b8e4c09fe3a2cb3ab8a05807cebba50cbe1e94c
angie
  Wed Aug 24 16:59:30 2022 -0700
vcfToHgvs: Exclude XM_ and XR_ transcripts -- they're not 'real' HGVS and also very unstable from one version to the next.

diff --git src/hg/utils/vcfToHgvs/vcfToHgvs.c src/hg/utils/vcfToHgvs/vcfToHgvs.c
index f1abe22..b2a4f0c 100644
--- src/hg/utils/vcfToHgvs/vcfToHgvs.c
+++ src/hg/utils/vcfToHgvs/vcfToHgvs.c
@@ -220,31 +220,35 @@
 
 #define UPDOWN_FUDGE 5000
 
 struct psl *pslsInRange(char *db, char *table, char *chrom, int chromStart, int chromEnd)
 /* No caching even though this may return the same answer for many little regions.
  * Free returned list when done. */
 {
 struct psl *pslList = NULL;
 struct sqlConnection *conn = hAllocConn(db);
 int binOffset = 0;
 int start = max(0, chromStart - UPDOWN_FUDGE);
 int end = chromEnd + UPDOWN_FUDGE;
 struct sqlResult *sr = hRangeQuery(conn, table, chrom, start, end, NULL, &binOffset);
 char **row;
 while ((row = sqlNextRow(sr)) != NULL)
+    {
+    // Exclude XM_ and XR_ transcripts if any
+    if (!startsWith("X", row[binOffset+9]))
         slAddHead(&pslList, pslLoad(row+binOffset));
+    }
 hFreeConn(&conn);
 return pslList;
 }
 
 void getCds(struct hash *txCdsHash, char *db, boolean hasNcbiRefSeq, char *acc,
             struct genbankCds *retCds)
 /* Put a possibly cached cds's values into cds */
 {
 struct genbankCds *cds = hashFindVal(txCdsHash, acc);
 if (cds == NULL)
     {
     AllocVar(cds);
     char query[2048];
     if (hasNcbiRefSeq)
         sqlSafef(query, sizeof(query), "select cds from ncbiRefSeqCds where id = '%s'", acc);