1cd0b7c223ef9944459fbbdac10e3c21ab8a6edd
angie
  Mon Aug 14 15:41:40 2017 -0700
Oops, suppress HGVS output (not just options) when using non-RefSeq transcripts.  refs #19968

diff --git src/hg/hgVai/hgVai.c src/hg/hgVai/hgVai.c
index 41a6b31..e720103 100644
--- src/hg/hgVai/hgVai.c
+++ src/hg/hgVai/hgVai.c
@@ -1453,46 +1453,49 @@
 ZeroVar(&aggvFuncFilter);
 aggvFuncFilter.intergenic = cartUsualBoolean(cart, "hgva_include_intergenic", TRUE);
 aggvFuncFilter.upDownstream = cartUsualBoolean(cart, "hgva_include_upDownstream", TRUE);
 aggvFuncFilter.nmdTranscript = cartUsualBoolean(cart, "hgva_include_nmdTranscript", TRUE);
 aggvFuncFilter.exonLoss = cartUsualBoolean(cart, "hgva_include_exonLoss", TRUE);
 aggvFuncFilter.utr = cartUsualBoolean(cart, "hgva_include_utr", TRUE);
 aggvFuncFilter.cdsSyn = cartUsualBoolean(cart, "hgva_include_cdsSyn", TRUE);
 aggvFuncFilter.cdsNonSyn = cartUsualBoolean(cart, "hgva_include_cdsNonSyn", TRUE);
 aggvFuncFilter.intron = cartUsualBoolean(cart, "hgva_include_intron", TRUE);
 aggvFuncFilter.splice = cartUsualBoolean(cart, "hgva_include_splice", TRUE);
 aggvFuncFilter.nonCodingExon = cartUsualBoolean(cart, "hgva_include_nonCodingExon", TRUE);
 aggvFuncFilter.noVariation = cartUsualBoolean(cart, "hgva_include_noVariation", TRUE);
 annoGratorGpVarSetFuncFilter(gpVarGrator, &aggvFuncFilter);
 }
 
-static void setHgvsOutOptions(struct annoGrator *gpVarGrator)
+static void setHgvsOutOptions(struct annoGrator *gpVarGrator, char *geneTrack)
 /* Use cart variables to configure gpVarGrator's HGVS output. */
 {
 uint hgvsOutOptions = 0;
+if (sameString(geneTrack, "refGene") || startsWith("ncbiRefSeq", geneTrack))
+    {
     if (cartUsualBoolean(cart, "hgva_hgvsG", FALSE))
         hgvsOutOptions |= HGVS_OUT_G;
     if (cartUsualBoolean(cart, "hgva_hgvsCN", FALSE))
         hgvsOutOptions |= HGVS_OUT_CN;
     if (cartUsualBoolean(cart, "hgva_hgvsP", FALSE))
         hgvsOutOptions |= HGVS_OUT_P;
     if (cartUsualBoolean(cart, "hgva_hgvsPAddParens", FALSE))
         hgvsOutOptions |= HGVS_OUT_P_ADD_PARENS;
     if (cartUsualBoolean(cart, "hgva_hgvsBreakDelIns", FALSE))
         hgvsOutOptions |= HGVS_OUT_BREAK_DELINS;
     annoGratorGpVarSetHgvsOutOptions(gpVarGrator, hgvsOutOptions);
     }
+}
 
 struct annoGrator *gratorForSnpBed4(struct hash *gratorsByName, char *suffix,
 				    struct annoAssembly *assembly, char *chrom,
 				    enum annoGratorOverlap overlapRule,
 				    char **retDescription)
 /* Look up snpNNNsuffix; if we find it, return a grator (possibly for a bigBed 4 file),
  * otherwise return NULL. */
 {
 char *fileName = NULL;
 struct trackDb *tdb = NULL;
 if (! findSnpBed4(suffix, &fileName, &tdb))
     return NULL;
 struct annoGrator *grator = NULL;
 // First look in gratorsByName to see if this grator has already been constructed:
 if (tdb != NULL)
@@ -2810,31 +2813,31 @@
         if (! isCommandLine)
             doUi();
 	return;
 	}
     primary = hAnnoStreamerFromTrackDb(assembly, varTdb->table, varTdb, chrom, maxVarRows, NULL);
     primaryLongLabel = varTdb->longLabel;
     }
 
 enum annoGratorOverlap geneOverlapRule = agoMustOverlap;
 struct joinerDtf *txStatusExtras = getTxStatusExtras(database, geneTrack);
 struct jsonElement *gpConfig = configForStreamer(database, geneTdb, txStatusExtras);
 struct annoGrator *gpVarGrator = hAnnoGratorFromTrackDb(assembly, geneTdb->table, geneTdb, chrom,
                                                         ANNO_NO_LIMIT, primary->asObj,
                                                         geneOverlapRule, gpConfig);
 setGpVarFuncFilter(gpVarGrator);
-setHgvsOutOptions(gpVarGrator);
+setHgvsOutOptions(gpVarGrator, geneTdb->track);
 
 // Some grators may be used as both filters and output values. To avoid making
 // multiple grators for the same source, hash them by trackName:
 struct hash *gratorsByName = hashNew(8);
 
 struct annoGrator *snpGrator = NULL;
 char *snpDesc = NULL;
 if (cartUsualBoolean(cart, "hgva_rsId", TRUE))
     snpGrator = gratorForSnpBed4(gratorsByName, "", assembly, chrom, agoNoConstraint, &snpDesc);
 
 // Now construct gratorList in the order in which annoFormatVep wants to see them,
 // i.e. first the gpVar, then the snpNNN, then whatever else:
 struct annoGrator *gratorList = NULL;
 slAddHead(&gratorList, gpVarGrator);
 if (snpGrator != NULL)