fffb0ceba7685b27ca84238e4bd3093c9fd669d3
angie
  Mon Nov 18 15:53:49 2013 -0800
Fixed vcfGetSlashSepAllelesFromWords to use same logic asvcfRecordTrimIndelLeftBase to detect the VCF left padding base.
Made improvements to the display of symbolic alleles from dbSNP.
Fixed strand bug in parseDbSnpAltAlleles.  Thanks Jonathan!
refs #11460 (hgVai: paste/upload variant input options)

diff --git src/hg/lib/gpFx.c src/hg/lib/gpFx.c
index c7e4970..d40fb99 100644
--- src/hg/lib/gpFx.c
+++ src/hg/lib/gpFx.c
@@ -211,31 +211,33 @@
     (txc.startInCds >= 0 && txc.endInCds < 0))
     errAbort("getTxCoords: inconsistent start/ends for variant %s:%d-%d in %s at %s:%d-%d: "
 	     "startInCdna=%d, endInCdna=%d;  startInCds=%d, endInCds=%d",
 	     variant->chrom, varStart+1, varEnd,
 	     pred->name, pred->chrom, pred->txStart, pred->txEnd,
 	     txc.startInCdna, txc.endInCdna, txc.startInCds, txc.endInCds);
 return txc;
 }
 
 struct gpFx *gpFxNew(char *allele, char *transcript, enum soTerm soNumber,
 		     enum detailType detailType, struct lm *lm)
 /* Fill in the common members of gpFx; leave soTerm-specific members for caller to fill in. */
 {
 struct gpFx *effect;
 lmAllocVar(lm, effect);
-effect->allele = collapseDashes(strUpper(lmCloneString(lm, allele)));
+effect->allele = collapseDashes(lmCloneString(lm, allele));
+if (isAllNt(effect->allele, strlen(effect->allele)))
+    touppers(effect->allele);
 effect->transcript = lmCloneString(lm, transcript);
 effect->soNumber = soNumber;
 effect->detailType = detailType;
 return effect;
 }
 
 static char * mergeAllele(char *transcript, int offset, int variantWidth,
 			  char *newAlleleSeq, int alleleLength, struct lm *lm)
 /* merge a variant into an allele */
 {
 char *newTranscript = NULL;
 //#*** This will be incorrect for an MNV that spans exon boundary --
 //#*** so we should also clip allele to cds portion(s?!) before calling this.
 if (variantWidth == alleleLength)
     {