RestrictionEnzymeManager
in package
implements
RestrictionEnzymeInterface
Class RestrictionEnzymeManager - substances that can "cut" a DNA strand into two or more fragments along special sites called restriction sites. They are an important tool in recombinant DNA technology.
Tags
Table of Contents
Interfaces
- RestrictionEnzymeInterface
- Interface RestrictionEnzymeInterface - substances that can "cut" a DNA strand into two or more fragments along special sites called restriction sites. They are an important tool in recombinant DNA technology.
Properties
- $aRestEnzimDB : array<string|int, mixed>
- $bCustomEnzyme : bool
- True when the current enzyme was described by parseEnzyme(..., "custom") rather than read from the reference data
- $enzyme : Enzyme
- $sequenceManager : SequenceInterface|null
Methods
- __construct() : mixed
- RestrictionEnzymeManager constructor.
- cutSeq() : array<string|int, mixed>
- Cuts a DNA sequence into fragments using the restriction enzyme object.
- findRestEn() : array<string|int, mixed>
- A powerful method for searching our database of endonucleases for a particular restriction enzyme exhibiting certain properties like pattern, cutting position, and length, or combinations thereof.
- getCutPos() : int
- Returns the cutting position of the restriction enzyme object.
- getEnzyme() : Enzyme
- getLength() : int
- Returns the length of the cutting pattern of the restriction enzyme object.
- getPattern() : string
- Returns the pattern associated with a given restriction endonuclease.
- parseEnzyme() : mixed
- It creates a new Enzyme object and initializes its properties accordingly.
- setEnzyme() : mixed
- Sets a new enzyme element
- setSequenceManager() : mixed
- Sets a sequence object
- fetchCutpos() : array<string|int, mixed>
- fetchCutposAndPlen() : array<string|int, mixed>
- fetchLength() : array<string|int, mixed>
- fetchPatternAndCutpos() : array<string|int, mixed>
- fetchPatternOnly() : array<string|int, mixed>
- findCutPositions() : array<string|int, int>
- Returns the zero-based positions, in ascending order and each listed once, at which the enzyme cuts the upper strand of a linear sequence. A site found on the other strand is cut at the same offset from its start : every Type II entry places its two cuts symmetrically within its site (length = 2 x upper cut + lower cut offset), so the upper-strand cut of a reversed site stays at that offset. A custom enzyme is only searched on the strand its site is written for (see parseEnzyme()). A cut at either end of the sequence splits nothing and is dropped.
- patternLength() : int
- Returns the length of the site a pattern stands for, the alternatives of a "SITE1 or SITE2" pattern having the same length.
- sitesOf() : array<string|int, string>
- Returns every site an enzyme pattern stands for, upper-cased : each alternative of a pattern written "SITE1 or SITE2" (AciI, BbvCI, BssSI), and the reverse complement of each, since the enzyme binds double-stranded DNA and a non-palindromic site (AccBSI, CCGCTC) also lies on the other strand (GAGCGG). A palindromic site is its own reverse complement and is listed once.
Properties
$aRestEnzimDB
private
array<string|int, mixed>
$aRestEnzimDB
$bCustomEnzyme
True when the current enzyme was described by parseEnzyme(..., "custom") rather than read from the reference data
private
bool
$bCustomEnzyme
= false
$enzyme
private
Enzyme
$enzyme
= null
$sequenceManager
private
SequenceInterface|null
$sequenceManager
= null
Methods
__construct()
RestrictionEnzymeManager constructor.
public
__construct(TypeIIEndonucleaseApiAdapter $typeIIEndonucleaseApi, Enzyme $oEnzyme) : mixed
Parameters
- $typeIIEndonucleaseApi : TypeIIEndonucleaseApiAdapter
- $oEnzyme : Enzyme
cutSeq()
Cuts a DNA sequence into fragments using the restriction enzyme object.
public
cutSeq([string $options = "N" ]) : array<string|int, mixed>
Sites are searched on both strands, a degenerate (IUPAC) site is matched by every sequence it stands for, and each upper-strand cut position splits the sequence once, however many sites or alternatives lead to it.
Parameters
- $options : string = "N"
-
May be "N" or "O". If "N", sites overlapping a site already found are ignored. If "O", overlapping sites are cut as well. If omitted, this defaults to "N".
Tags
Return values
array<string|int, mixed> —The fragments, in sequence order : the whole sequence when it holds no site
findRestEn()
A powerful method for searching our database of endonucleases for a particular restriction enzyme exhibiting certain properties like pattern, cutting position, and length, or combinations thereof.
public
findRestEn([string $sPattern = null ][, int $iCutpos = null ][, int $iPlen = null ]) : array<string|int, mixed>
5 Cases: pattern only, cutpos only, patternlength only, pattern and cutpos, cutpos and patternlength
Parameters
- $sPattern : string = null
-
The pattern of the restriction enzyme we wish to look for.
- $iCutpos : int = null
-
The cutting position of the restriction enzyme we wish to look for.
- $iPlen : int = null
-
The length of the restriction enzyme we wish to look for.
Tags
Return values
array<string|int, mixed> —A list of restriction enyzmes that meet the criteria specified by the $pattern, $cutpos, and $plen parameters.
getCutPos()
Returns the cutting position of the restriction enzyme object.
public
getCutPos(string $RestEn_Name) : int
Parameters
- $RestEn_Name : string
Return values
int —Returns the cutting position (an integer) of the restriction enzyme object.
getEnzyme()
public
getEnzyme() : Enzyme
Return values
EnzymegetLength()
Returns the length of the cutting pattern of the restriction enzyme object.
public
getLength([string $RestEn_Name = "" ]) : int
Parameters
- $RestEn_Name : string = ""
Return values
int —The length (integer) of the restriction pattern recognized by the enzyme.
getPattern()
Returns the pattern associated with a given restriction endonuclease.
public
getPattern(string $RestEn_Name) : string
Parameters
- $RestEn_Name : string
Return values
string —The sequence pattern (string) recognized by the given restriction enzyme.
parseEnzyme()
It creates a new Enzyme object and initializes its properties accordingly.
public
parseEnzyme(string $sName[, string $sPattern = null ][, string $sCutpos = null ][, string $sMake = "custom" ]) : mixed
If passed with make = 'custom', object will be added to aRestEnzimDB. If not, the function will attemp to retrieve data from aRestEnzimDB. If unsuccessful in retrieving data, it will return an error flag. An enzyme is described here by its upper-strand cut only. A reference entry places its two cuts symmetrically within its site, so its site read on the other strand is cut at the same offset. A custom enzyme may not (a Type IIS one such as BsaI cuts outside an asymmetric site), and nothing tells where its lower-strand cut lies : its site is only searched as written.
Parameters
- $sName : string
- $sPattern : string = null
- $sCutpos : string = null
- $sMake : string = "custom"
Tags
setEnzyme()
Sets a new enzyme element
public
setEnzyme() : mixed
setSequenceManager()
Sets a sequence object
public
setSequenceManager(SequenceInterface $sequenceManager) : mixed
Parameters
- $sequenceManager : SequenceInterface
fetchCutpos()
private
fetchCutpos(string|int $sCutpos) : array<string|int, mixed>
Parameters
- $sCutpos : string|int
Tags
Return values
array<string|int, mixed>fetchCutposAndPlen()
private
fetchCutposAndPlen(int $iCutpos, int $iPlen) : array<string|int, mixed>
Parameters
- $iCutpos : int
- $iPlen : int
Return values
array<string|int, mixed>fetchLength()
private
fetchLength(int $iPlen) : array<string|int, mixed>
Parameters
- $iPlen : int
Return values
array<string|int, mixed>fetchPatternAndCutpos()
private
fetchPatternAndCutpos(string $sPattern, int $iCutpos) : array<string|int, mixed>
Parameters
- $sPattern : string
- $iCutpos : int
Return values
array<string|int, mixed>fetchPatternOnly()
private
fetchPatternOnly(string $sPattern) : array<string|int, mixed>
Parameters
- $sPattern : string
Return values
array<string|int, mixed>findCutPositions()
Returns the zero-based positions, in ascending order and each listed once, at which the enzyme cuts the upper strand of a linear sequence. A site found on the other strand is cut at the same offset from its start : every Type II entry places its two cuts symmetrically within its site (length = 2 x upper cut + lower cut offset), so the upper-strand cut of a reversed site stays at that offset. A custom enzyme is only searched on the strand its site is written for (see parseEnzyme()). A cut at either end of the sequence splits nothing and is dropped.
private
findCutPositions(string $sSequence, bool $bOverlapping) : array<string|int, int>
Parameters
- $sSequence : string
- $bOverlapping : bool
-
True to also find sites overlapping one another
Return values
array<string|int, int>patternLength()
Returns the length of the site a pattern stands for, the alternatives of a "SITE1 or SITE2" pattern having the same length.
private
patternLength(string $sPattern) : int
Parameters
- $sPattern : string
Return values
intsitesOf()
Returns every site an enzyme pattern stands for, upper-cased : each alternative of a pattern written "SITE1 or SITE2" (AciI, BbvCI, BssSI), and the reverse complement of each, since the enzyme binds double-stranded DNA and a non-palindromic site (AccBSI, CCGCTC) also lies on the other strand (GAGCGG). A palindromic site is its own reverse complement and is listed once.
private
sitesOf(string $sPattern[, bool $bBothStrands = true ]) : array<string|int, string>
Parameters
- $sPattern : string
- $bBothStrands : bool = true
-
False to list the sites as written only