@Override
    boolean transcriptChange() {
        //ChangeEffect change = new ChangeEffect(seqChange);

        //a star followed by distance to cds end
        //coding start
        if (utr3prime.intersects(seqChange)) {
            Integer relativePosSt = (transcript.isStrandPlus() ? seqChange.getStart() - transcript.getCdsEnd() : transcript.getCdsEnd() - seqChange.getEnd());
            Integer relativePosEnd = (transcript.isStrandPlus() ? seqChange.getEnd() - transcript.getCdsEnd() : transcript.getCdsEnd() - seqChange.getStart());

            Exon exon = (Exon) utr3prime.findParent(Exon.class);

            //edge case
            //1       196716441       CD032470        TAGAA   T    is    NM_000186.3:c.3695_*2delAGAA
            if (relativePosSt < 1) {
                relativePosSt = cdsBaseNumberOfExonInTx(seqChange.getStart());
                hgvsChangeFormatter(changeEffect, exon, relativePosSt, relativePosEnd);
                txPos = txPos.replaceAll("_(\\d+)", "_\\*$1");
                changeEffect.setTxPos(txPos);
                return true;
            }


            hgvsChangeFormatter(changeEffect, exon, relativePosSt, relativePosEnd);


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

    }