18e5367bd1c91fb9c54a8d59abcee1ab042813a9 angie Thu Oct 10 11:34:49 2013 -0700 Don't add splice_region_variant for a variant that falls at beginningor end of transcript -- only for actual splice regions. diff --git src/hg/lib/gpFx.c src/hg/lib/gpFx.c index b47b704..14d6cab 100644 --- src/hg/lib/gpFx.c +++ src/hg/lib/gpFx.c @@ -650,32 +650,34 @@ int exonNumPos = exonIx; if (pred->strand[0] == '-') exonNumPos = pred->exonCount - 1 - exonIx; uint exonStart = pred->exonStarts[exonNumPos], exonEnd = pred->exonEnds[exonNumPos]; if (variant->chromStart <= exonStart && variant->chromEnd >= exonEnd) { struct gpFx *effect = gpFxNew(allele->sequence, pred->name, exon_loss, nonCodingExon, lm); setNCExonVals(effect, exonIx, txc->startInCdna); slAddTail(&effectsList, effect); } else { // If variant is in exon *but* within 3 bases of splice site, // it also qualifies as splice_region_variant: - if ((variant->chromEnd > exonEnd-3 && variant->chromStart < exonEnd) || - (variant->chromEnd > exonStart && variant->chromStart < exonStart+3)) + if ((variant->chromEnd > exonEnd-3 && variant->chromStart < exonEnd && + exonIx < pred->exonCount - 1) || + (variant->chromEnd > exonStart && variant->chromStart < exonStart+3 && + exonIx > 0)) { struct gpFx *effect = gpFxNew(allele->sequence, pred->name, splice_region_variant, nonCodingExon, lm); setNCExonVals(effect, exonIx, txc->startInCdna); slAddTail(&effectsList, effect); } } } } return effectsList; } static struct gpFx *gpFxInIntron(struct variant *variant, struct txCoords *txc, int intronIx, struct genePred *pred, char *altAllele, struct lm *lm) // Annotate a variant that overlaps an intron (and possibly splice region)