b9192182bad3d50237063b04919a9e0d0d55a551
angie
  Fri Oct 18 09:28:11 2013 -0700
Heroic ML #11775 users provoked yet another bug: an insertion at theCDS/UTR boundary was falling through the cracks and nothing was output
for it.  It should be classified as UTR.
refs #11775

diff --git src/hg/lib/gpFx.c src/hg/lib/gpFx.c
index 14d6cab..8356404 100644
--- src/hg/lib/gpFx.c
+++ src/hg/lib/gpFx.c
@@ -267,34 +267,36 @@
 /* This gpFx is for a variant in exon of non-coding gene or UTR exon of coding gene;
  * set details.nonCodingExon values. */
 {
 gpFx->details.nonCodingExon.exonNumber = exonIx;
 gpFx->details.nonCodingExon.cDnaPosition = cdnaPos;
 }
 
 static struct gpFx *gpFxCheckUtr( struct allele *allele, struct genePred *pred,
 				  struct txCoords *txc, int exonIx, struct lm *lm)
 /* check for effects in UTR of coding gene -- caller ensures it's in exon, pred is coding
  * and exonIx has been strand-adjusted */
 {
 struct gpFx *gpFx = NULL;
 enum soTerm term = 0;
 struct variant *variant = allele->variant;
-if (variant->chromStart < pred->cdsStart && variant->chromEnd > pred->txStart)
+if ((variant->chromStart < pred->cdsStart && variant->chromEnd > pred->txStart) ||
+    (variant->chromStart == pred->cdsStart && variant->chromEnd == pred->cdsStart)) // insertion
     // we're in left UTR
     term = (*pred->strand == '-') ? _3_prime_UTR_variant : _5_prime_UTR_variant;
-else if (variant->chromStart < pred->txEnd && variant->chromEnd > pred->cdsEnd)
+else if ((variant->chromStart < pred->txEnd && variant->chromEnd > pred->cdsEnd) ||
+	 (variant->chromStart == pred->cdsEnd && variant->chromEnd == pred->cdsEnd)) //insertion
     // we're in right UTR
     term = (*pred->strand == '-') ? _5_prime_UTR_variant : _3_prime_UTR_variant;
 if (term != 0)
     {
     gpFx = gpFxNew(allele->sequence, pred->name, term, nonCodingExon, lm);
     setNCExonVals(gpFx, exonIx, txc->startInCdna);
     }
 return gpFx;
 }
 
 static struct gpFx *gpFxChangedNoncodingExon(struct allele *allele, struct genePred *pred,
 					     struct txCoords *txc, int exonIx, struct lm *lm)
 /* generate an effect for a variant in a non-coding transcript */
 {
 struct gpFx *gpFx = gpFxNew(allele->sequence, pred->name, non_coding_exon_variant, nonCodingExon,