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,