// could just do this as a single seq span (start, end, seq), but then would end up recreating
// the cds segments, which will get ignored afterwards...
SeqSpan gstart_point = new SimpleSeqSpan(start, start, genomic);
SeqSpan gend_point = new SimpleSeqSpan(end, end, genomic);
SimpleSymWithProps result = new SimpleSymWithProps();
result.addSpan(gstart_point);
SeqSymmetry[] m2gPath = new SeqSymmetry[]{m2gSym};
SeqUtils.transformSymmetry((MutableSeqSymmetry) result, m2gPath);
SeqSpan mstart_point = result.getSpan(mrna);
if(mstart_point == null) {
throw new NullPointerException("Conflict with start and end in processCDS.");
}
result = new SimpleSymWithProps();
result.addSpan(gend_point);
SeqUtils.transformSymmetry((MutableSeqSymmetry) result, m2gPath);
SeqSpan mend_point = result.getSpan(mrna);
if(mend_point == null) {
throw new NullPointerException("Conflict with start and end in processCDS.");
}