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:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    BLUNT the end type created by enzymes which leave a blunt end.
    static final int
    CUT_COMPOUND a cut type where the enzyme cuts in two positions relative to the recognition site.
    static final int
    CUT_SIMPLE a cut type where the enzyme cuts in one position relative to the recognition site.
    protected int
     
    protected int[]
     
    protected String
     
    protected String
     
    static final int
    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 final int
    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
     
    protected SymbolList
     
    protected int[]
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    RestrictionEnzyme(String name, SymbolList site, int dsForward, int dsReverse)
    Creates a new RestrictionEnzyme which cuts within or downstream of the recognition site.
    RestrictionEnzyme(String name, SymbolList site, int usForward, int usReverse, int dsForward, int dsReverse)
    Creates a new RestrictionEnzyme of the unusual type which cuts both upstream and downstream of its recognition site.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
     
    double
    The cutting size of a restriction enzyme is defined has the number of nucleotides that are directly involved in the recognition sequence.
    int
    getCutType returns the type of cut produced by the enzyme.
    int[]
    getDownstreamCut returns the cut site within or downstream of the recognition site.
    int
    getDownstreamEndType returns the double-stranded end type produced by the primary (intra-site or downstream) cut.
    getForwardRegex returns a regular expression which matches the forward strand of the recognition site.
    getName returns the enzyme name.
    The prototype is a RestrictionEnzyme that represents a set of isoshizomers.
    getRecognitionSite returns the forward strand of the recognition site.
    getReverseRegex returns a regular expression which matches the reverse strand of the recognition site.
    int[]
    getUpstreamCut returns the cut site upstream of the recognition site.
    int
    getUpstreamEndType returns the double-stranded end type produced by the secondary (upstream) cut.
    int
     
    boolean
    isPalindromic returns true if the recognition site is palindromic.
    boolean
     
    void
    Set the prototype of this RestrictionEnzyme.
     

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

  • Constructor Details

    • RestrictionEnzyme

      public RestrictionEnzyme(String name, SymbolList site, int dsForward, int dsReverse) throws IllegalAlphabetException
      Creates a new RestrictionEnzyme which 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 - a String such as EcoRI.
      site - a SymbolList recognition site.
      dsForward - an int 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 - an int 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 new RestrictionEnzyme 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 - a String such as Bsp24I.
      site - a SymbolList recognition site.
      usForward - an int 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 - an int 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 - an int 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 - an int 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 Details

    • getName

      public String getName()
      getName returns the enzyme name.
      Returns:
      a String.
    • getRecognitionSite

      getRecognitionSite returns the forward strand of the recognition site.
      Returns:
      a SymbolList.
    • getForwardRegex

      getForwardRegex returns a regular expression which matches the forward strand of the recognition site.
      Returns:
      a 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 this RestrictionEnzyme.
      Parameters:
      proto - an isoschizomer of this enzyme.
    • getPrototype

      The prototype is a RestrictionEnzyme 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.
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object