## org.biojavax.bio.db.ncbi
Class GenbankRichSequenceDB

    java.lang.Object
      org.biojava.utils.AbstractChangeable
          org.biojavax.bio.db.AbstractBioEntryDB
              org.biojavax.bio.db.AbstractRichSequenceDB
                  org.biojavax.bio.db.ncbi.GenbankRichSequenceDB

All Implemented Interfaces:
  SequenceDB, SequenceDBLite, Changeable, BioEntryDB, BioEntryDBLite, RichSequenceDB, RichSequenceDBLite

    public class GenbankRichSequenceDB

extends AbstractRichSequenceDB
implements RichSequenceDBLite

This class contains functions accessing DNA sequences in Genbank format. It adds methods to return RichSequences instead of plain Sequences.

Since:
  1.5
Author:
  Lei Lai, Matthew Pocock, Laurent Jourdren, Shuvankar Mukherjee, Mark Schreiber, Richard Holland

Field Summary
`protected static String` `urlBatchSequences`

Fields inherited from interface org.biojavax.bio.db.BioEntryDBLite
`BIOENTRYS`

Fields inherited from interface org.biojava.bio.seq.db.SequenceDBLite
`SEQUENCES`

Constructor Summary
`GenbankRichSequenceDB()` The default constructor delegates to the parent class.

Method Summary
`protected URL` `getAddress(String id)` Get the URL object for locating sequence object using eutils.
`RichSequenceBuilderFactory` `getFactory()` Getter for property factory.
`String` `getName()` Get the name of this sequence database.
`Namespace` `getNamespace()` Getter for property namespace.
`RichSequence` `getRichSequence(String id)` Given the appropriate Genbank ID, return the matching RichSequence object.
`RichSequence` `getRichSequence(String id, Namespace nsp)` Given the appropriate Genbank ID, return the matching RichSequence object.
`RichSequenceDB` `getRichSequences(Set list)` Retrieve rich sequences from a Genbank
`RichSequenceDB` `getRichSequences(Set list, RichSequenceDB database)` Retrieve rich sequences from a Genbank
`Set` `ids()` Get an immutable set of all of the IDs in the database.
`protected String` `makeBatchRequest(URL url, Set list)` Create the Http Post Request to fetch (in batch mode) a list of sequence with Genbank.
`void` `setFactory(RichSequenceBuilderFactory factory)` Setter for property factory.
`void` `setNamespace(Namespace namespace)` Setter for property namespace.

Methods inherited from class org.biojavax.bio.db.AbstractRichSequenceDB
`addBioEntry, addRichSequence, addSequence, filter, getBioEntry, getBioEntryIterator, getBioEntrys, getBioEntrys, getRichSequenceIterator, getSequence, removeBioEntry, removeRichSequence, removeSequence, sequenceIterator`

Methods inherited from class org.biojava.utils.AbstractChangeable
`addChangeListener, addChangeListener, generateChangeSupport, getChangeSupport, hasListeners, hasListeners, isUnchanging, removeChangeListener, removeChangeListener`

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

Methods inherited from interface org.biojavax.bio.db.RichSequenceDBLite
`addRichSequence, removeRichSequence`

Methods inherited from interface org.biojavax.bio.db.BioEntryDBLite
`addBioEntry, getBioEntry, getBioEntrys, getBioEntrys, removeBioEntry`

Methods inherited from interface org.biojava.bio.seq.db.SequenceDBLite
`addSequence, getSequence, removeSequence`

Methods inherited from interface org.biojava.utils.Changeable
`addChangeListener, addChangeListener, isUnchanging, removeChangeListener, removeChangeListener`

Field Detail

### urlBatchSequences

    protected static final String urlBatchSequences

See Also:
  Constant Field Values

Constructor Detail

### GenbankRichSequenceDB

    public GenbankRichSequenceDB()

  The default constructor delegates to the parent class. The constructor refers to RichObjectFactory.getDefaultNamespace() so make sure your factory is initialised before calling this constructor. Sets the default factory to THRESHOLD.

Method Detail

### getAddress

    protected URL getAddress(String id)
                      throws MalformedURLException

  Get the URL object for locating sequence object using eutils. The default value of the return format of the sequence object is text.

  Throws:
    `MalformedURLException`

### makeBatchRequest

    protected String makeBatchRequest(URL url,
                                      Set list)

  Create the Http Post Request to fetch (in batch mode) a list of sequence with Genbank.

  Parameters:
    `url` - URL of the request
    `list` - List of sequence identifier
  Returns:
    The Post request.

### getRichSequence

    public RichSequence getRichSequence(String id)
                                 throws BioException,
                                        IllegalIDException

  Given the appropriate Genbank ID, return the matching RichSequence object.

  Specified by:
    `getRichSequence` in interface `RichSequenceDBLite`
  Parameters:
    `id` - the Genbank ID to retrieve.
  Returns:
    the matching RichSequence object, or null if not found.
  Throws:
    `Exception` - if the sequence could not be retrieved for reasons other than the identifier not being found.
    `IllegalIDException` - if the database doesn't know about the id
    `BioException`

### getRichSequence

    public RichSequence getRichSequence(String id,
                                        Namespace nsp)
                                 throws BioException,
                                        IllegalIDException

  Given the appropriate Genbank ID, return the matching RichSequence object. Additionally define a new Namespace for the received RichSequence object.

  Parameters:
    `id` - the Genbank ID to retrieve.
    `nsp` - the Namespace to define.
  Returns:
    the matching RichSequence object, or null if not found.
  Throws:
    `Exception` - if the sequence could not be retrieved for reasons other than the identifier not being found.
    `BioException`
    `IllegalIDException`

### getRichSequences

    public RichSequenceDB getRichSequences(Set list)
                                    throws BioException,
                                           IllegalIDException

  Retrieve rich sequences from a Genbank

  Specified by:
    `getRichSequences` in interface `RichSequenceDBLite`
  Parameters:
    `list` - List of NCBI sequence number (GI), accession, accession.version, fasta or seqid.
  Returns:
    The rich database object (HashSequenceDB) with downloaded rich sequences. You will need to cast the sequences you get from this database object into RichSequence objects if you want to access their full features.
  Throws:
    `IllegalIDException` - if the database doesn't know about the id
    `BioException`

### getRichSequences

    public RichSequenceDB getRichSequences(Set list,
                                           RichSequenceDB database)
                                    throws BioException,
                                           IllegalIDException

  Retrieve rich sequences from a Genbank

  Specified by:
    `getRichSequences` in interface `RichSequenceDBLite`
  Parameters:
    `list` - List of NCBI sequence number (GI), accession, accession.version, fasta or seqid.
    `database` - Where to store rich sequences. If database is null, use an HashSequenceDB Object.
  Returns:
    The database object with downloaded rich sequences. You will need to cast the sequences you get from this database object into RichSequence objects if you want to access their full features.
  Throws:
    `IllegalIDException` - if the database doesn't know about the id
    `BioException`

### getName

    public String getName()

  Description copied from interface: `SequenceDBLite`
  Get the name of this sequence database.

  Specified by:
    `getName` in interface `SequenceDBLite`
  Specified by:
    `getName` in interface `BioEntryDBLite`
  Returns:
    the name of the sequence database, which may be null.

### ids

    public Set ids()

  Description copied from interface: `SequenceDB`
  Get an immutable set of all of the IDs in the database. The ids are legal arguments to getSequence.

  Specified by:
    `ids` in interface `SequenceDB`
  Specified by:
    `ids` in interface `BioEntryDB`
  Returns:
    a Set of ids - at the moment, strings

### getFactory

    public RichSequenceBuilderFactory getFactory()

  Getter for property factory.

  Returns:
    Value of property factory.

### setFactory

    public void setFactory(RichSequenceBuilderFactory factory)

  Setter for property factory.

  Parameters:
    `factory` - New value of property factory.

### getNamespace

    public Namespace getNamespace()

  Getter for property namespace.

  Returns:
    Value of property namespace.

### setNamespace

    public void setNamespace(Namespace namespace)

  Setter for property namespace.

  Parameters:
    `namespace` - New value of property namespace.