delete: remove a segment from a sequence object, preserving annotations
insert: insert a fragment sequence object into a recipient sequence object,
preserving features and annotations
ligate: combine delete and insert to simulate digestion of a recipient
and ligation of a fragment into the recipient.
turns truncated feature ends Fuzzy. Instead, as suggested by Roy
Chaudhuri and Chris Fields, they don't change type but a note is added
to the feature, informing about the length and position of the deletion.
Notes are now also added to features that have received an insertion.
The notes refer to the affected feature end as 3'/5' if the feature has
a strand, or start/end if it doesn't.
Also corrected an error in calculating the start position of subfeatures
that are created by insertions (was off by 1).
Added tests for the notes and removed tests for changed location
'delete' method now adds a misc_feature with a note about
the length of the deletion site. The location type of this feature
Features of type IN-BETWEEN must have adjacent start/
end pos, so they are now deleted in the 'insert' method if they
co-localise with the insertion site. This happens when 'delete' is
followed by 'insert' or when using the 'ligate' shortcut method.
'insert' now also handles deleted features like 'delete', which
only applies to features with IN-BETWEEN locations.
- 'ligate' now skips the 'delete' step if 'left' and 'right' are
adjacent because no deletion actually occurs.
- '_coord_adjust_deletion': fixed test for splitting a feature.
can not use 'contains' because that returns true if one or both
coordinates of the feature and deletions co-localise but a split
only makes sense when both ends overlap.
- added and modified tests accordingly