An EnzymeAction is a way of representing a potential effect that a RestrictionEnzyme may have on a nucleotide sequence, an 'action'.
Multiple cuts in multiple locations on a sequence may occur in one 'action' if it is done by a single enzyme.
An EnzymeAction is a series of locations that represents where the restriction enzyme will bind on the sequence, as well as what ranges are cut on the sequence itself. The complexity is due to the fact that our virtual restriction enzyme may create multiple segments from its cutting action, on which another restriction enzyme may operate upon.
For example, the DNA sequence:
5' - G A A T A A A C G A - 3' 3' - C T T A T T T G C T - 5'
When mixed with the restriction enzyme with the following cut pattern:
5' - A|A T A A A C|G - 3' +-+ + 3' - T T|A T T T G|C - 5'
And also mixed with the restriction enzyme of the following cut pattern:
5' - A A|A C - 3' +-+ 3' - T|T T G - 5'
Would result in a DNA sequence with these cuts:
5' - G A|A T A A|A C|G A - 3' +-+ +-+ + 3' - C T T|A T|T T G|C T - 5'
Or these separate “free-floating” sequences:
5' - G A - 3' 3' - C T T - 5' 5' - A T A A - 3' 3' - A T - 5' 5' - A C - 3' 3' - T T G - 5' 5' - G A - 3' 3' - C T - 5'
This would be represented by two EnzymeActions - one for each RestrictionEnzyme.
This is, however, subject to competition. If the second enzyme reaches the target first, the the first enzyme will not be able to find the appropriate bind site.
FIXME complete these docs
To initialize an EnzymeAction you must first instantiate it with the beginning and ending locations of where it will operate on a nucleotide sequence.
Next the ranges of cu
An EnzymeAction is Defines a single enzyme action, in this case being a range that correlates to the DNA sequence that may contain it's own internal cuts.