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
RestrictionEnzyme
represents 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 int
BLUNT
BLUNT
the end type created by enzymes which leave a blunt end.static int
CUT_COMPOUND
CUT_COMPOUND
a cut type where the enzyme cuts in two positions relative to the recognition site.static int
CUT_SIMPLE
CUT_SIMPLE
a cut type where the enzyme cuts in one position relative to the recognition site.protected int
cutType
protected int[]
dsCutPositions
protected String
forwardRegex
protected String
name
static int
OVERHANG_3PRIME
OVERHANG_3PRIME
the 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 int
OVERHANG_5PRIME
OVERHANG_5PRIME
the 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 String
reverseRegex
protected SymbolList
site
protected int[]
usCutPositions
-
Constructor Summary
Constructors Constructor Description RestrictionEnzyme(String name, SymbolList site, int dsForward, int dsReverse)
Creates a newRestrictionEnzyme
which cuts within or downstream of the recognition site.RestrictionEnzyme(String name, SymbolList site, int usForward, int usReverse, int dsForward, int dsReverse)
Creates a newRestrictionEnzyme
of 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 boolean
equals(Object o)
double
getCuttingSize()
The cutting size of a restriction enzyme is defined has the number of nucleotides that are directly involved in the recognition sequence.int
getCutType()
getCutType
returns the type of cut produced by the enzyme.int[]
getDownstreamCut()
getDownstreamCut
returns the cut site within or downstream of the recognition site.int
getDownstreamEndType()
getDownstreamEndType
returns the double-stranded end type produced by the primary (intra-site or downstream) cut.String
getForwardRegex()
getForwardRegex
returns a regular expression which matches the forward strand of the recognition site.String
getName()
getName
returns the enzyme name.RestrictionEnzyme
getPrototype()
The prototype is aRestrictionEnzyme
that represents a set of isoshizomers.SymbolList
getRecognitionSite()
getRecognitionSite
returns the forward strand of the recognition site.String
getReverseRegex()
getReverseRegex
returns a regular expression which matches the reverse strand of the recognition site.int[]
getUpstreamCut()
getUpstreamCut
returns the cut site upstream of the recognition site.int
getUpstreamEndType()
getUpstreamEndType
returns the double-stranded end type produced by the secondary (upstream) cut.int
hashCode()
boolean
isPalindromic()
isPalindromic
returns true if the recognition site is palindromic.boolean
isPrototype()
void
setProtype(RestrictionEnzyme proto)
Set the prototype of thisRestrictionEnzyme
.String
toString()
-
-
-
Field Detail
-
CUT_SIMPLE
public static final int CUT_SIMPLE
CUT_SIMPLE
a 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_COMPOUND
a 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_5PRIME
the 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_3PRIME
the 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
BLUNT
the 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 newRestrictionEnzyme
which cuts within or downstream of the recognition site. The cut position indices are always in the same coordinate space as the recognition site.RestrictionEnzyme
s are immutable.- Parameters:
name
- aString
such as EcoRI.site
- aSymbolList
recognition site.dsForward
- anint
index 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
- anint
index 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 newRestrictionEnzyme
of 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
- aString
such as Bsp24I.site
- aSymbolList
recognition site.usForward
- anint
index 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
- anint
index 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
- anint
index 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
- anint
index 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()
getRecognitionSite
returns the forward strand of the recognition site.- Returns:
- a
SymbolList
.
-
getForwardRegex
public String getForwardRegex()
getForwardRegex
returns a regular expression which matches the forward strand of the recognition site.- Returns:
- a
String
.
-
getReverseRegex
public String getReverseRegex()
getReverseRegex
returns a regular expression which matches the reverse strand of the recognition site.- Returns:
- a
String
.
-
isPalindromic
public boolean isPalindromic()
isPalindromic
returns true if the recognition site is palindromic.- Returns:
- a
boolean
.
-
getCutType
public int getCutType()
getCutType
returns 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()
getDownstreamCut
returns 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
getUpstreamCut
returns 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()
getDownstreamEndType
returns the double-stranded end type produced by the primary (intra-site or downstream) cut.- Returns:
- an
int
equal to one of the constant fields OVERHANG_5PRIME, OVERHANG_3PRIME or BLUNT.
-
getUpstreamEndType
public int getUpstreamEndType() throws BioException
getUpstreamEndType
returns the double-stranded end type produced by the secondary (upstream) cut.- Returns:
- an
int
equal 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 aRestrictionEnzyme
that 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.
-
-