Package org.biojava.bio.molbio
Class RestrictionEnzyme
- java.lang.Object
-
- org.biojava.bio.molbio.RestrictionEnzyme
-
- All Implemented Interfaces:
Serializable
public class RestrictionEnzyme extends Object implements Serializable
RestrictionEnzymerepresents a restriction enzyme according to the REBASE standard. The cut positions are indicated relative to the 5' end of the recognition site and occur downstream of the given residue. Note that some enzymes cut in more than one position and that cut positions may occur outside the recognition site.- Since:
- 1.3
- Author:
- Keith James, George Waldon
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static intBLUNTBLUNTthe end type created by enzymes which leave a blunt end.static intCUT_COMPOUNDCUT_COMPOUNDa cut type where the enzyme cuts in two positions relative to the recognition site.static intCUT_SIMPLECUT_SIMPLEa cut type where the enzyme cuts in one position relative to the recognition site.protected intcutTypeprotected int[]dsCutPositionsprotected StringforwardRegexprotected Stringnamestatic intOVERHANG_3PRIMEOVERHANG_3PRIMEthe sticky end type created by enzymes which leave a 3' overhang (e.g. a stretch of single-stranded DNA with a free 3' end).static intOVERHANG_5PRIMEOVERHANG_5PRIMEthe sticky end type created by enzymes which leave a 5' overhang (e.g. a stretch of single-stranded DNA with a free 5' end).protected StringreverseRegexprotected SymbolListsiteprotected int[]usCutPositions
-
Constructor Summary
Constructors Constructor Description RestrictionEnzyme(String name, SymbolList site, int dsForward, int dsReverse)Creates a newRestrictionEnzymewhich cuts within or downstream of the recognition site.RestrictionEnzyme(String name, SymbolList site, int usForward, int usReverse, int dsForward, int dsReverse)Creates a newRestrictionEnzymeof the unusual type which cuts both upstream and downstream of its recognition site.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(Object o)doublegetCuttingSize()The cutting size of a restriction enzyme is defined has the number of nucleotides that are directly involved in the recognition sequence.intgetCutType()getCutTypereturns the type of cut produced by the enzyme.int[]getDownstreamCut()getDownstreamCutreturns the cut site within or downstream of the recognition site.intgetDownstreamEndType()getDownstreamEndTypereturns the double-stranded end type produced by the primary (intra-site or downstream) cut.StringgetForwardRegex()getForwardRegexreturns a regular expression which matches the forward strand of the recognition site.StringgetName()getNamereturns the enzyme name.RestrictionEnzymegetPrototype()The prototype is aRestrictionEnzymethat represents a set of isoshizomers.SymbolListgetRecognitionSite()getRecognitionSitereturns the forward strand of the recognition site.StringgetReverseRegex()getReverseRegexreturns a regular expression which matches the reverse strand of the recognition site.int[]getUpstreamCut()getUpstreamCutreturns the cut site upstream of the recognition site.intgetUpstreamEndType()getUpstreamEndTypereturns the double-stranded end type produced by the secondary (upstream) cut.inthashCode()booleanisPalindromic()isPalindromicreturns true if the recognition site is palindromic.booleanisPrototype()voidsetProtype(RestrictionEnzyme proto)Set the prototype of thisRestrictionEnzyme.StringtoString()
-
-
-
Field Detail
-
CUT_SIMPLE
public static final int CUT_SIMPLE
CUT_SIMPLEa cut type where the enzyme cuts in one position relative to the recognition site. This covers the vast majority of cases.- See Also:
- Constant Field Values
-
CUT_COMPOUND
public static final int CUT_COMPOUND
CUT_COMPOUNDa cut type where the enzyme cuts in two positions relative to the recognition site.- See Also:
- Constant Field Values
-
OVERHANG_5PRIME
public static final int OVERHANG_5PRIME
OVERHANG_5PRIMEthe sticky end type created by enzymes which leave a 5' overhang (e.g. a stretch of single-stranded DNA with a free 5' end).- See Also:
- Constant Field Values
-
OVERHANG_3PRIME
public static final int OVERHANG_3PRIME
OVERHANG_3PRIMEthe sticky end type created by enzymes which leave a 3' overhang (e.g. a stretch of single-stranded DNA with a free 3' end).- See Also:
- Constant Field Values
-
BLUNT
public static final int BLUNT
BLUNTthe end type created by enzymes which leave a blunt end.- See Also:
- Constant Field Values
-
site
protected SymbolList site
-
cutType
protected int cutType
-
dsCutPositions
protected int[] dsCutPositions
-
usCutPositions
protected int[] usCutPositions
-
forwardRegex
protected String forwardRegex
-
reverseRegex
protected String reverseRegex
-
-
Constructor Detail
-
RestrictionEnzyme
public RestrictionEnzyme(String name, SymbolList site, int dsForward, int dsReverse) throws IllegalAlphabetException
Creates a newRestrictionEnzymewhich cuts within or downstream of the recognition site. The cut position indices are always in the same coordinate space as the recognition site.RestrictionEnzymes are immutable.- Parameters:
name- aStringsuch as EcoRI.site- aSymbolListrecognition site.dsForward- anintindex in the forward strand (the strand conventionally written 5'-3') of the recognition site at which the cut occurs. The cut occurs between this base and the following one.dsReverse- anintindex in the reverse strand (the strand conventionally written 3'-5') of the recognition site at which the cut occurs. The cut occurs between this base and the following one.- Throws:
IllegalAlphabetException- if an error occurs.
-
RestrictionEnzyme
public RestrictionEnzyme(String name, SymbolList site, int usForward, int usReverse, int dsForward, int dsReverse) throws IllegalAlphabetException
Creates a newRestrictionEnzymeof the unusual type which cuts both upstream and downstream of its recognition site. The cut position indices are always in the same coordinate space as the recognition site.- Parameters:
name- aStringsuch as Bsp24I.site- aSymbolListrecognition site.usForward- anintindex in the forward strand (the strand conventionally written 5'-3' upstream of the recognition site at which the cut occurs. The cut occurs between this base and the following one.usReverse- anintindex in the reverse strand (the strand conventionally written 3'-5) upstream of the recognition site at which the cut occurs. The cut occurs between this base and the following one.dsForward- anintindex in the forward strand (the strand conventionally written 5'-3') downstream of the recognition site at which the cut occurs. The cut occurs between this base and the following one.dsReverse- anintindex in the reverse strand (the strand conventionally written 3'-5') downstream of the recognition site at which the cut occurs. The cut occurs between this base and the following one.- Throws:
IllegalAlphabetException- if an error occurs.
-
-
Method Detail
-
getRecognitionSite
public SymbolList getRecognitionSite()
getRecognitionSitereturns the forward strand of the recognition site.- Returns:
- a
SymbolList.
-
getForwardRegex
public String getForwardRegex()
getForwardRegexreturns a regular expression which matches the forward strand of the recognition site.- Returns:
- a
String.
-
getReverseRegex
public String getReverseRegex()
getReverseRegexreturns a regular expression which matches the reverse strand of the recognition site.- Returns:
- a
String.
-
isPalindromic
public boolean isPalindromic()
isPalindromicreturns true if the recognition site is palindromic.- Returns:
- a
boolean.
-
getCutType
public int getCutType()
getCutTypereturns the type of cut produced by the enzyme. This will be one of either RestrictionEnzyme.CUT_SIMPLE (where it cuts in one position relative to the recognition site i.e. the vast majority of cases) or RestrictionEnzyme.CUT_COMPOUND (where it cuts in two positions).- Returns:
- an
int.
-
getDownstreamCut
public int[] getDownstreamCut()
getDownstreamCutreturns the cut site within or downstream of the recognition site.- Returns:
- an
int []array with the position in the 5'-strand at index 0 and the 3'-strand at index 1.
-
getUpstreamCut
public int[] getUpstreamCut() throws BioException
getUpstreamCutreturns the cut site upstream of the recognition site.- Returns:
- an
int []array with the position in the 5'-strand at index 0 and the 3'-strand at index 1. For example, Bsp24I will return -8 and -13: 5' ^NNNNNNNNGACNNNNNNTGGNNNNNNNNNNNN^ 3' 3' ^NNNNNNNNNNNNNCTGNNNNNNACCNNNNNNN^ 5' - Throws:
BioException- if the enzyme does not cleave on both sides of its recognition site.
-
getDownstreamEndType
public int getDownstreamEndType()
getDownstreamEndTypereturns the double-stranded end type produced by the primary (intra-site or downstream) cut.- Returns:
- an
intequal to one of the constant fields OVERHANG_5PRIME, OVERHANG_3PRIME or BLUNT.
-
getUpstreamEndType
public int getUpstreamEndType() throws BioException
getUpstreamEndTypereturns the double-stranded end type produced by the secondary (upstream) cut.- Returns:
- an
intequal to one of the constant fields OVERHANG_5PRIME, OVERHANG_3PRIME or BLUNT. - Throws:
BioException- if the enzyme does not cleave on both sides of its recognition site.
-
setProtype
public void setProtype(RestrictionEnzyme proto)
Set the prototype of thisRestrictionEnzyme.- Parameters:
proto- an isoschizomer of this enzyme.
-
getPrototype
public RestrictionEnzyme getPrototype()
The prototype is aRestrictionEnzymethat represents a set of isoshizomers. The choice of the representative/prototype is arbitrary; there is one and only one prototype per set of isoschizomers.- Returns:
- A representative isoschisomer or null if prototypes are not defined.
-
isPrototype
public boolean isPrototype()
-
getCuttingSize
public double getCuttingSize()
The cutting size of a restriction enzyme is defined has the number of nucleotides that are directly involved in the recognition sequence. The size is ponderated as follow: 1 for a single nucleotide, 1/2 for a degeneracy of 2, 1/4 for a degeneracy of 3, and 0 for any N nucleotides.
-
-