LinearRestrictionDigestManager
in package
implements
LinearRestrictionDigestInterface
The same geometry as CircularRestrictionDigestManager (see its docblock for the derivation of the two cut positions, on either strand), without the wrapping : a site is searched on both strands but must lie wholly inside the sequence, and a cut is kept only when both its strands are cut inside the sequence. A Type IIs enzyme, which cuts away from its site, therefore loses a site near an end of the sequence - a warning says which. Positions are zero-based junctions : a cut at u leaves u bases on its left. The fragments are the top strand between two distinct upper cuts ; the two ends of the sequence itself are blunt, the only way a bare strand can be taken.
Class LinearRestrictionDigestManager
Tags
Table of Contents
Interfaces
- LinearRestrictionDigestInterface
- Interface LinearRestrictionDigestInterface - computes where a set of restriction enzymes of any family (II, IIb, IIs) cut a linear DNA sequence, and the fragments that digestion produces. The counterpart of RestrictionDigestInterface, which digests a circular Plasmid.
Methods
- digest() : LinearRestrictionDigestResult
- buildCut() : RestrictionCut|null
- buildEnd() : RestrictionEnd
- buildFragments() : array<string|int, RestrictionFragment>
- searchPattern() : array<string|int, int>
- Every zero-based position the recognition pattern starts at within a strand, overlapping sites included (HhaI GCGC twice in GCGCGC).
Methods
digest()
public
digest(DnaSequence $oSequence, array<string|int, RestrictionEnzymeDefinition> $aEnzymes) : LinearRestrictionDigestResult
Parameters
- $oSequence : DnaSequence
- $aEnzymes : array<string|int, RestrictionEnzymeDefinition>
Tags
Return values
LinearRestrictionDigestResultbuildCut()
private
buildCut(DnaSequence $oSequence, RestrictionEnzymeDefinition $oEnzyme, int $iPosition, bool $bReverseStrand, array<string|int, string> &$aWarnings) : RestrictionCut|null
Parameters
- $oSequence : DnaSequence
- $oEnzyme : RestrictionEnzymeDefinition
- $iPosition : int
-
Zero-based axis coordinate of the recognition sequence's own 5' start
- $bReverseStrand : bool
- $aWarnings : array<string|int, string>
-
Added to when the cut falls outside
Return values
RestrictionCut|null —Null when either strand would be cut outside the sequence
buildEnd()
private
buildEnd(DnaSequence $oSequence, int $iUpper, int $iLower, int $iCleavagePositionLower) : RestrictionEnd
Parameters
- $oSequence : DnaSequence
- $iUpper : int
- $iLower : int
- $iCleavagePositionLower : int
-
The signed distance between the two cuts
Return values
RestrictionEndbuildFragments()
private
buildFragments(DnaSequence $oSequence, array<string|int, RestrictionCut> $aCuts, array<string|int, string> &$aWarnings) : array<string|int, RestrictionFragment>
Parameters
- $oSequence : DnaSequence
- $aCuts : array<string|int, RestrictionCut>
- $aWarnings : array<string|int, string>
Return values
array<string|int, RestrictionFragment> —Empty when nothing cuts
searchPattern()
Every zero-based position the recognition pattern starts at within a strand, overlapping sites included (HhaI GCGC twice in GCGCGC).
private
searchPattern(string $sStrand, RestrictionEnzymeDefinition $oEnzyme) : array<string|int, int>
Parameters
- $sStrand : string
- $oEnzyme : RestrictionEnzymeDefinition