Class 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 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.
    • Constructor Detail

      • 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 Detail

      • getName

        public String getName()
        getName returns the enzyme name.
        Returns:
        a String.
      • 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 this RestrictionEnzyme.
        Parameters:
        proto - an isoschizomer of this enzyme.
      • getPrototype

        public RestrictionEnzyme 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.
      • 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.