## org.biojava.bio.molbio
Class RestrictionEnzymeManager

    java.lang.Object
      org.biojava.bio.molbio.RestrictionEnzymeManager

    public final class RestrictionEnzymeManager

extends Object

`RestrictionEnzymeManager` manages collections of static `RestrictionEnzyme` instances. A properties file should be placed in the CLASSPATH containing a key "rebase.data.file" and a corresponding value of a REBASE file (standard REBASE format #31 conventionally named withrefm.### where ### is the version number). This file will be loaded by the `RestrictionEnzymeManager` `ClassLoader`. The properties are loaded as a `ResourceBundle`, so the file should be named "RestrictionEnzymeManager.properties".

Since 1.5, a format #31 REBASE file can be loaded at anytime using the method `loadEnzymeFile` and optionally filtered for commercially available enzymes.

Since:
  1.3
Author:
  Keith James, George Waldon

Field Summary
`static String` `REBASE_DATA_KEY` `REBASE_DATA_KEY` the ResourceBundle key which specifies the location of the REBASE flat file.
`static String` `REBASE_TAG_COMM` `REBASE_TAG_COMM` the REBASE tag containing the commercial suppliers.
`static String` `REBASE_TAG_ISZR` `REBASE_TAG_ISZR` the REBASE tag containing the enzyme isoschizomers.
`static String` `REBASE_TAG_METH` `REBASE_TAG_METH` the REBASE tag containing the methylation site.
`static String` `REBASE_TAG_NAME` `REBASE_TAG_NAME` the REBASE tag containing the enzyme name.
`static String` `REBASE_TAG_ORGN` `REBASE_TAG_ORGN` the REBASE tag containing the organism.
`static String` `REBASE_TAG_REFS` `REBASE_TAG_REFS` the REBASE tag containing the references.
`static String` `REBASE_TAG_SITE` `REBASE_TAG_SITE` the REBASE tag containing the enzyme site.
`static String` `REBASE_TAG_SRCE` `REBASE_TAG_SRCE` the REBASE tag containing the source.

Method Summary
`static Set` `getAllEnzymes()` `getAllEnzymes` returns an unmodifable set of all available enzymes.
`static Annotation` `getAnnotation(RestrictionEnzyme enzyme)` `getAnnotation` returns an immutable, static annotation describing the enzyme.
`static RestrictionEnzyme` `getEnzyme(String name)` `getEnzyme` returns an enzyme by name.
`static Set` `getIsoschizomers(String name)` `getIsoschizomers` returns an unmodifable set of the isoschizomers of this enzyme.
`static Set` `getNCutters(int n)` `getNCutters` returns an unmodifable set of all enzymes with a cut site of size n.
`static Pattern[]` `getPatterns(RestrictionEnzyme enzyme)` `getPatterns` returns two `Pattern` objects for an enzyme, one matches the forward strand and one the reverse.
`static String` `getRecognitionSequence(String name)` `getRecognitionSequence` returns a string that describes the recognition site of this enzyme.
`static String` `getSuppliers(RestrictionEnzyme enzyme)` `getSuppliers` returns a string describing the suppliers of this enzyme according to REBASE encoding for commercial sources or an empty String if the enzyme is not commecially available.
`static void` `loadEnzymeFile(InputStream is, boolean commercialOnly)` `loadEnzymeFile` loads a new REBASE file (or any file using REBASE format #31).
`static void` `register(RestrictionEnzyme enzyme, Set isoschizomers)` `register` regisiters a new `RestrictionEnzyme` with the manager.

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

Field Detail

### REBASE_DATA_KEY

    public static final String REBASE_DATA_KEY

  `REBASE_DATA_KEY` the ResourceBundle key which specifies the location of the REBASE flat file.

  See Also:
    Constant Field Values

### REBASE_TAG_NAME

    public static final String REBASE_TAG_NAME

  `REBASE_TAG_NAME` the REBASE tag containing the enzyme name.

  See Also:
    Constant Field Values

### REBASE_TAG_ISZR

    public static final String REBASE_TAG_ISZR

  `REBASE_TAG_ISZR` the REBASE tag containing the enzyme isoschizomers.

  See Also:
    Constant Field Values

### REBASE_TAG_SITE

    public static final String REBASE_TAG_SITE

  `REBASE_TAG_SITE` the REBASE tag containing the enzyme site.

  See Also:
    Constant Field Values

### REBASE_TAG_METH

    public static final String REBASE_TAG_METH

  `REBASE_TAG_METH` the REBASE tag containing the methylation site.

  See Also:
    Constant Field Values

### REBASE_TAG_ORGN

    public static final String REBASE_TAG_ORGN

  `REBASE_TAG_ORGN` the REBASE tag containing the organism.

  See Also:
    Constant Field Values

### REBASE_TAG_SRCE

    public static final String REBASE_TAG_SRCE

  `REBASE_TAG_SRCE` the REBASE tag containing the source.

  See Also:
    Constant Field Values

### REBASE_TAG_COMM

    public static final String REBASE_TAG_COMM

  `REBASE_TAG_COMM` the REBASE tag containing the commercial suppliers.

  See Also:
    Constant Field Values

### REBASE_TAG_REFS

    public static final String REBASE_TAG_REFS

  `REBASE_TAG_REFS` the REBASE tag containing the references.

  See Also:
    Constant Field Values

Method Detail

### loadEnzymeFile

    public static void loadEnzymeFile(InputStream is,
                                      boolean commercialOnly)

  `loadEnzymeFile` loads a new REBASE file (or any file using REBASE format #31).

  Parameters:
    `is` - an InputStream over the file to load.
    `commercialOnly` - indicates whether or not only commercially available enzymes are loaded.
  Since:
    1.5

### getAllEnzymes

    public static Set getAllEnzymes()

  `getAllEnzymes` returns an unmodifable set of all available enzymes.

  Returns:
    a `Set` of `RestrictionEnzyme`s.

### getEnzyme

    public static RestrictionEnzyme getEnzyme(String name)

  `getEnzyme` returns an enzyme by name.

  Parameters:
    `name` - a `String` such as EcoRI, case sensitive.
  Returns:
    a `RestrictionEnzyme`.

### getIsoschizomers

    public static Set getIsoschizomers(String name)

  `getIsoschizomers` returns an unmodifable set of the isoschizomers of this enzyme.

  Parameters:
    `name` - a `String` such as EcoRI, case sensitive.
  Returns:
    a `Set` of `RestrictionEnzyme`s.

### getRecognitionSequence

    public static String getRecognitionSequence(String name)

  `getRecognitionSequence` returns a string that describes the recognition site of this enzyme. It corresponds to the field <3> of the REBASE file.

  Parameters:
    `name` - a `String` such as EcoRI, case sensitive.
  Returns:
    a `String` describing the recognition sequence, e.g. "G^AATTC" for EcoRI.
  Since:
    1.5

### getNCutters

    public static Set getNCutters(int n)

  `getNCutters` returns an unmodifable set of all enzymes with a cut site of size n.

  Parameters:
    `n` - an `int` cut site size.
  Returns:
    a `Set` of `RestrictionEnzyme`s.

### getPatterns

    public static Pattern[] getPatterns(RestrictionEnzyme enzyme)

  `getPatterns` returns two `Pattern` objects for an enzyme, one matches the forward strand and one the reverse. This enables searching of both strands of a sequence without reverse-complementing it. As `Pattern` objects are thread-safe these may be used for all searches.

  Parameters:
    `enzyme` - a `RestrictionEnzyme`.
  Returns:
    a `Pattern []` array with the forward strand `Pattern` at index 0 and the reverse at index 1.

### getAnnotation

    public static Annotation getAnnotation(RestrictionEnzyme enzyme)

  `getAnnotation` returns an immutable, static annotation describing the enzyme. This is suitable for adding to `Feature`s which represent restriction sites. The annotation produced currently contains one key "dbxref" in line with the GenBank/EMBL qualifier for the "misc_binding" feature key. The key has a corresponding value "REBASE:<enzyme name>".

  Parameters:
    `enzyme` - a `RestrictionEnzyme`.
  Returns:
    an `Annotation`.

### getSuppliers

    public static String getSuppliers(RestrictionEnzyme enzyme)

  `getSuppliers` returns a string describing the suppliers of this enzyme according to REBASE encoding for commercial sources or an empty String if the enzyme is not commecially available.

  REBASE #31 version 604 code:

  A GE Healthcare (8/05)
  B Invitrogen Corporation(8/05)
  C Minotech Biotechnology (9/05)
  E Stratagene (9/05)
  F Fermentas International Inc. (2/06)
  G Qbiogene (9/05)
  H American Allied Biochemical, Inc. (9/05)
  I SibEnzyme Ltd. (2/06)
  J Nippon Gene Co., Ltd. (8/05)
  K Takara Bio Inc. (9/05)
  M Roche Applied Science (8/05)
  N New England Biolabs (2/06)
  O Toyobo Biochemicals (9/05)
  Q Molecular Biology Resources (8/05)
  R Promega Corporation (9/05)
  S Sigma Chemical Corporation (9/05)
  U Bangalore Genei (9/05)
  V Vivantis Technologies (1/06)
  X EURx Ltd. (9/05)
  Y CinnaGen Inc. (9/05)

  Parameters:
    `enzyme` - a `RestrictionEnzyme`.
  Returns:
    a `String`.
  Since:
    1.5

### register

    public static void register(RestrictionEnzyme enzyme,
                                Set isoschizomers)

  `register` regisiters a new `RestrictionEnzyme` with the manager. It does not check that the isoschizomers are known to the manager. If there are custom isoschizomers in the `Set`, they should be also be registered.

  Parameters:
    `enzyme` - a `RestrictionEnzyme` to register.
    `isoschizomers` - a `Set` of `RestrictionEnzyme`s which are isoschizomers.