3556696ddf8ee9dadf75805726fb2a4c226c7f92
angie
Thu Aug 17 09:39:46 2017 -0700
A little refactoring of logic that allows HGVS output only for RefSeq transcripts.
diff --git src/hg/hgVai/hgVai.c src/hg/hgVai/hgVai.c
index e720103..04abe87 100644
--- src/hg/hgVai/hgVai.c
+++ src/hg/hgVai/hgVai.c
@@ -986,59 +986,65 @@
isVisible ? "block" : "none");
cartMakeCheckBox(cart, "hgva_txStatus_refSeqStatus", FALSE);
puts("Include the "
"RefSeq status of each transcript.
");
puts("");
}
printf("
",
somethingIsVisible ? "none" : "block");
puts("No transcript status data are available for the selected gene track.");
puts("
");
puts("", refSeqSelected ? "block" : "none");
+boolean hgvsOk = canDoHgvsOut(geneTrack);
+printf("
", hgvsOk ? "block" : "none");
cartMakeCheckBox(cart, "hgva_hgvsG", FALSE);
printf("Include HGVS genomic (g.) terms in output
\n");
cartMakeCheckBox(cart, "hgva_hgvsCN", FALSE);
printf("Include HGVS coding (c.) terms if applicable, otherwise noncoding (n.) terms, in output"
"
\n");
cartMakeCheckBox(cart, "hgva_hgvsP", FALSE);
printf("Include HGVS protein (p.) terms (if applicable) in output
\n");
cartMakeCheckBox(cart, "hgva_hgvsPAddParens", FALSE);
printf("When including HGVS protein (p.) terms, add parentheses around changes to emphasize "
"that they are predictions
\n");
cartMakeCheckBox(cart, "hgva_hgvsBreakDelIns", FALSE);
printf("For variants that involve both a deletion and insertion, "
"including multi-nucleotide variants, "
"include the deleted sequence (e.g. show \"delAGinsTT\" instead of only \"delinsTT\")"
"
\n");
puts("
");
printf("
",
- refSeqSelected ? "none" : "block");
+ hgvsOk ? "none" : "block");
printf("Select RefSeq Genes in the \"Select Genes\" section above "
"in order to make options appear.\n");
puts("
");
puts("
");
endCollapsibleSection();
}
boolean isHg19RegulatoryTrack(struct trackDb *tdb, void *filterData)
/* For now, just look for a couple specific tracks by tableName. */
{
//#*** NEED METADATA
return (sameString("wgEncodeRegDnaseClusteredV3", tdb->table) ||
sameString("wgEncodeRegTfbsClusteredV3", tdb->table));
}
@@ -1457,44 +1463,44 @@
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, char *geneTrack)
/* Use cart variables to configure gpVarGrator's HGVS output. */
{
uint hgvsOutOptions = 0;
-if (sameString(geneTrack, "refGene") || startsWith("ncbiRefSeq", geneTrack))
+if (canDoHgvsOut(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);
}
+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: