@Override
    boolean transcriptChange() {

        //a star followed by distance to cds end
        if (downstream.intersects(seqChange)) {
            //distance to cds end
            //this may be much farther than the distance to the polyA reported by SnpEff
            //especially for alternate 3' end isoforms
            Integer relativePosSt = (transcript.isStrandPlus() ? seqChange.getStart() - transcript.getCdsEnd() : transcript.getCdsEnd() - seqChange.getEnd());
            Integer relativePosEnd = (transcript.isStrandPlus() ? seqChange.getEnd() - transcript.getCdsEnd() : transcript.getCdsEnd() - seqChange.getStart());

            hgvsChangeFormatter(changeEffect, null, relativePosSt, relativePosEnd);

            //specific to 3' UTR
            //txPos = "*"+txPos;
            txPos = txPos.replaceAll("(\\d+)", "\\*$1");
            changeEffect.setTxPos(txPos);
            return true;
        }
        //}
        return false;

    }