@Override
	public boolean seqChangeEffect(Variant seqChange, ChangeEffects changeEffects) {
		if (!intersects(seqChange)) return false;

		if (seqChange.includes(this) && (seqChange.getChangeType() == VariantType.DEL)) {
			changeEffects.add(this, EffectType.UTR_3_DELETED, ""); // A UTR was removed entirely
		}else {
            Transcript tr = (Transcript) findParent(Transcript.class);
            int dist = utrDistance(seqChange, tr);
            changeEffects.add(this, type, dist >= 0 ? dist + " bases from CDS" : "");
            if (dist >= 0) changeEffects.setDistance(dist);
        }
        Utr3primeChange utrChange = new Utr3primeChange(seqChange, this, changeEffects.get());
        utrChange.calculate();
		return true;
	}