## 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 enzmyes cut in more than one position and that cut positions may occur outside the recognition site.

Since:
  1.3
Author:
  Keith James
See Also:
  Serialized Form

Field Summary
`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.
`static int` `OVERHANG_5PRIME` `OVERHANG_5PRIME` the sticky end type created by enzymes which leave a 5' overhang.
`protected String` `reverseRegex`
`protected SymbolList` `site`
`protected int[]` `usCutPositions`

Constructor Summary
`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
`boolean` `equals(Object o)`
`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.
`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.
`String` `toString()`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

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.

  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.

  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

### name

    protected String name

### 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 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. `RestrictionEnzyme`s 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.
  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.

### 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`