Unpaired insertions/deletions are allowed primarily to keep a user from getting annoyed if they copy+paste or move strands with insertions and deletions. However, they are only intended to be allowed in "intermediate" designs that have not been finalized.
In particular, the behavior of Design.inline_insertions_deletions is strange on unpaired insertions. For example, applying to this design:
results in this:
This is unintuitive behavior since it shifts which bases are paired to the right of the insertion.
Loopouts are the intended way to represent unpaired bases loopout out from a single strand, e.g.,
So Design.inline_insertions_deletions should raise an exception if any deletions or insertions are unpaired. Since export to oxDNA/oxView/CanDo will soon call Design.inline_insertions_deletions as their first step, they will also raise this exception.
Unpaired insertions/deletions are allowed primarily to keep a user from getting annoyed if they copy+paste or move strands with insertions and deletions. However, they are only intended to be allowed in "intermediate" designs that have not been finalized.
In particular, the behavior of
Design.inline_insertions_deletions
is strange on unpaired insertions. For example, applying to this design:results in this:
This is unintuitive behavior since it shifts which bases are paired to the right of the insertion.
Loopouts are the intended way to represent unpaired bases loopout out from a single strand, e.g.,
So
Design.inline_insertions_deletions
should raise an exception if any deletions or insertions are unpaired. Since export to oxDNA/oxView/CanDo will soon callDesign.inline_insertions_deletions
as their first step, they will also raise this exception.