## org.biojava.bio.structure
Class StructureImpl

    java.lang.Object
      org.biojava.bio.structure.StructureImpl

All Implemented Interfaces:
  Cloneable, Structure

    public class StructureImpl

extends Object
implements Structure

Implementation of a PDB Structure. This class provides the data contained in a PDB file. to get structure objects from different sources see io package.

Since:
  1.4
Version:
  %I% %G%
Author:
  Andreas Prlic, Jules Jacobsen

Constructor Summary
`StructureImpl()` Constructs a StructureImpl object.
`StructureImpl(Chain c)` construct a Structure object that contains a particular chain
`StructureImpl(Group g)` construct a Structure object that only contains a single group

Method Summary
`void` `addChain(Chain chain)` add a new chain.
`void` `addChain(Chain chain, int modelnr)` add a new chain, if several models are available.
`void` `addModel(List<Chain> model)` add a new model.
`void` `addSSBond(SSBond ssbond)` add a single SSBond to this structure
`Structure` `clone()` returns an identical copy of this structure .
`Chain` `findChain(String chainId)` request a particular chain from a structure.
`Chain` `findChain(String chainId, int modelnr)` request a particular chain from a particular model
`Group` `findGroup(String chainName, String pdbResnum)` request a particular group from a structure.
`Group` `findGroup(String chainId, String pdbResnum, int modelnr)` request a particular group from a structure.
`Chain` `getChain(int number)` retrieve a chain by it's position within the Structure.
`Chain` `getChain(int modelnr, int number)` retrieve a chain by it's position within the Structure and model number.
`Chain` `getChainByPDB(String chainId)` request a chain by it's PDB code by default takes only the first model
`Chain` `getChainByPDB(String chainId, int modelnr)` request a chain by it's PDB code by default takes only the first model
`List<Chain>` `getChains()` retrieve all chains - if it is a NMR structure will return the chains of the first model.
`List<Chain>` `getChains(int modelnr)` retrieve all chains of a model.
`Compound` `getCompoundById(String molId)` request a particular compound by its id
`List<Compound>` `getCompounds()` get all the Compounds that are defined in the PDB Header
`List<Map<String,Integer>>` `getConnections()` Returns the connections value.
`List<DBRef>` `getDBRefs()` get the list of database references
`Map<String,Object>` `getHeader()` get Header data.
`Long` `getId()` get the ID used by Hibernate
`JournalArticle` `getJournalArticle()` get the associated publication as defined by the JRNL records in a PDB file.
`List<Chain>` `getModel(int modelnr)` retrieve all Chains belonging to a model .
`String` `getName()` get biological name of Structure.
`String` `getPDBCode()` get PDB code of structure .
`PDBHeader` `getPDBHeader()` return the header information for this PDB file
`List<SSBond>` `getSSBonds()` get the list of SSBonds as they have been defined in the PDB files
`boolean` `hasChain(String chainId)` check if a chain with the id chainId is contained in this structure.
`boolean` `hasJournalArticle()` Return whether or not the entry has an associated journal article or publication.
`boolean` `isNmr()` is this structure an nmr structure ?
`int` `nrModels()` return number of models.
`void` `setChains(int modelnr, List<Chain> chains)` set the chains for a model
`void` `setChains(List<Chain> chains)` set the chains of a structure, if this is a NMR structure, this will only set model 0.
`void` `setCompounds(List<Compound> molList)` set the compounts
`void` `setConnections(List<Map<String,Integer>> conns)` sets/gets an List of Maps which corresponds to the CONECT lines in the PDB file:
`void` `setDBRefs(List<DBRef> dbrefs)` set the list of database references for this structure
`void` `setHeader(Map<String,Object> h)` set the Header data.
`void` `setId(Long id)` set the ID used by Hibernate
`void` `setJournalArticle(JournalArticle journalArticle)` set the associated publication as defined by the JRNL records in a PDB file.
`void` `setModel(int position, List<Chain> model)` a convenience function if one wants to edit and replace the models in a structure.
`void` `setName(String nam)` set biological name of Structure.
`void` `setNmr(boolean nmr)` set NMR flag.
`void` `setPDBCode(String pdb_id_)` set PDB code of structure .
`void` `setPDBHeader(PDBHeader pdbHeader)` the the header information for this PDB file
`void` `setSSBonds(List<SSBond> ssbonds)` set the list of SSBonds for this structure
`int` `size()` return number of chains , if NMR return number of chains of first model .
`int` `size(int modelnr)` return number of chains of model.
`String` `toPDB()` create a String that contains the contents of a PDB file.
`String` `toString()` string representation.

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

Constructor Detail

### StructureImpl

    public StructureImpl()

  Constructs a StructureImpl object.

### StructureImpl

    public StructureImpl(Group g)

  construct a Structure object that only contains a single group

  Parameters:
    `g` -

### StructureImpl

    public StructureImpl(Chain c)

  construct a Structure object that contains a particular chain

  Parameters:
    `c` -

Method Detail

### getId

    public Long getId()

  get the ID used by Hibernate

  Specified by:
    `getId` in interface `Structure`
  Returns:
    the ID used by Hibernate

### setId

    public void setId(Long id)

  set the ID used by Hibernate

  Specified by:
    `setId` in interface `Structure`
  Parameters:
    `id` -

### clone

    public Structure clone()

  returns an identical copy of this structure .

  Specified by:
    `clone` in interface `Structure`
  Overrides:
    `clone` in class `Object`
  Returns:
    an identical Structure object

### findGroup

    public Group findGroup(String chainId,
                           String pdbResnum,
                           int modelnr)
                    throws StructureException

  Description copied from interface: `Structure`
  request a particular group from a structure. considers only model nr X. count starts with 0.

  Specified by:
    `findGroup` in interface `Structure`
  Parameters:
    `chainId` - the ID of the chain to use
    `pdbResnum` - the PDB residue number of the requested group
    `modelnr` - the number of the model to use
  Returns:
    Group the requested Group
  Throws:
    `StructureException`

### findGroup

    public Group findGroup(String chainName,
                           String pdbResnum)
                    throws StructureException

  Description copied from interface: `Structure`
  request a particular group from a structure. by default considers only the first model in the structure.

  Specified by:
    `findGroup` in interface `Structure`
  Parameters:
    `chainName` - the ID of the chain to use
    `pdbResnum` - the PDB residue number of the requested group
  Returns:
    Group the requested Group
  Throws:
    `StructureException`

### findChain

    public Chain findChain(String chainId,
                           int modelnr)
                    throws StructureException

  Description copied from interface: `Structure`
  request a particular chain from a particular model

  Specified by:
    `findChain` in interface `Structure`
  Parameters:
    `chainId` - the ID of a chain that should be returned
    `modelnr` - the number of the model to use
  Returns:
    Chain the requested chain
  Throws:
    `StructureException`

### findChain

    public Chain findChain(String chainId)
                    throws StructureException

  Description copied from interface: `Structure`
  request a particular chain from a structure. by default considers only the first model.

  Specified by:
    `findChain` in interface `Structure`
  Parameters:
    `chainId` - the ID of a chain that should be returned
  Returns:
    Chain the requested chain
  Throws:
    `StructureException`

### setPDBCode

    public void setPDBCode(String pdb_id_)

  set PDB code of structure .

  Specified by:
    `setPDBCode` in interface `Structure`
  Parameters:
    `pdb_id_` - a String specifying the PDBCode
  See Also:
    `getPDBCode()`

### getPDBCode

    public String getPDBCode()

  get PDB code of structure .

  Specified by:
    `getPDBCode` in interface `Structure`
  Returns:
    a String representing the PDBCode value
  See Also:
    `setPDBCode(java.lang.String)`

### setName

    public void setName(String nam)

  set biological name of Structure.

  Specified by:
    `setName` in interface `Structure`
  Parameters:
    `nam` - a String specifying the biological name of the Structure
  See Also:
    `getName()`

### getName

    public String getName()

  get biological name of Structure.

  Specified by:
    `getName` in interface `Structure`
  Returns:
    a String representing the name
  See Also:
    `setName(java.lang.String)`

### setHeader

    public void setHeader(Map<String,Object> h)

  set the Header data.

  Specified by:
    `setHeader` in interface `Structure`
  Parameters:
    `h` - a Map object specifying the header
  See Also:
    `getHeader()`

### getHeader

    public Map<String,Object> getHeader()

  get Header data.

  Specified by:
    `getHeader` in interface `Structure`
  Returns:
    a Map object representing the header of the Structure
  See Also:
    `setHeader(java.util.Map<java.lang.String, java.lang.Object>)`

### setConnections

    public void setConnections(List<Map<String,Integer>> conns)

  Description copied from interface: `Structure`
  sets/gets an List of Maps which corresponds to the CONECT lines in the PDB file:

             COLUMNS         DATA TYPE        FIELD           DEFINITION
             ---------------------------------------------------------------------------------
              1 -  6         Record name      "CONECT"
              7 - 11         Integer          serial          Atom serial number
             12 - 16         Integer          serial          Serial number of bonded atom
             17 - 21         Integer          serial          Serial number of bonded atom
             22 - 26         Integer          serial          Serial number of bonded atom
             27 - 31         Integer          serial          Serial number of bonded atom
             32 - 36         Integer          serial          Serial number of hydrogen bonded
             atom
             37 - 41         Integer          serial          Serial number of hydrogen bonded
             atom
             42 - 46         Integer          serial          Serial number of salt bridged
             atom
             47 - 51         Integer          serial          Serial number of hydrogen bonded
             atom
             52 - 56         Integer          serial          Serial number of hydrogen bonded
             atom
             57 - 61         Integer          serial          Serial number of salt bridged
             atom

  the HashMap for a single CONECT line contains the following fields:
  - atomserial (mandatory) : Atom serial number
  - bond1 .. bond4 (optional): Serial number of bonded atom
  - hydrogen1 .. hydrogen4 (optional):Serial number of hydrogen bonded atom
  - salt1 .. salt2 (optional): Serial number of salt bridged atom

  Specified by:
    `setConnections` in interface `Structure`
  Parameters:
    `conns` - a List object specifying the connections
  See Also:
    `interface.`

### getConnections

    public List<Map<String,Integer>> getConnections()

  Returns the connections value.

  Specified by:
    `getConnections` in interface `Structure`
  Returns:
    a List object representing the connections value
  See Also:
    `interface`, `setConnections(java.util.List<java.util.Map<java.lang.String, java.lang.Integer>>)`

### addChain

    public void addChain(Chain chain)

  add a new chain.

  Specified by:
    `addChain` in interface `Structure`
  Parameters:
    `chain` - a Chain object

### addChain

    public void addChain(Chain chain,
                         int modelnr)

  add a new chain, if several models are available.

  Specified by:
    `addChain` in interface `Structure`
  Parameters:
    `chain` - a Chain object
    `modelnr` - an int specifying to which model the Chain should be added

### getChain

    public Chain getChain(int number)

  retrieve a chain by it's position within the Structure.

  Specified by:
    `getChain` in interface `Structure`
  Parameters:
    `number` - an int
  Returns:
    a Chain object

### getChain

    public Chain getChain(int modelnr,
                          int number)

  retrieve a chain by it's position within the Structure and model number.

  Specified by:
    `getChain` in interface `Structure`
  Parameters:
    `modelnr` - an int
    `number` - an int
  Returns:
    a Chain object

### addModel

    public void addModel(List<Chain> model)

  add a new model.

  Specified by:
    `addModel` in interface `Structure`
  Parameters:
    `model` - a List object containing the Chains of the new Model

### setChains

    public void setChains(List<Chain> chains)

  Description copied from interface: `Structure`
  set the chains of a structure, if this is a NMR structure, this will only set model 0.

  Specified by:
    `setChains` in interface `Structure`
  Parameters:
    `chains` - the list of chains for this structure.
  See Also:
    `Structure.setChains(int, List)`

### setModel

    public void setModel(int position,
                         List<Chain> model)

  Description copied from interface: `Structure`
  a convenience function if one wants to edit and replace the models in a structure. allows to set (replace) the model at position with the new List of Chains.

  Specified by:
    `setModel` in interface `Structure`
  Parameters:
    `position` - starting at 0

### toString

    public String toString()

  string representation.

  Specified by:
    `toString` in interface `Structure`
  Overrides:
    `toString` in class `Object`

### size

    public int size()

  return number of chains , if NMR return number of chains of first model .

  Specified by:
    `size` in interface `Structure`
  Returns:
    an int representing the number of Chains in this Structure

### size

    public int size(int modelnr)

  return number of chains of model.

  Specified by:
    `size` in interface `Structure`
  Parameters:
    `modelnr` - an int specifying the number of the Model that should be used
  Returns:
    an int representing the number of Chains in this Model

### nrModels

    public int nrModels()

  return number of models.

  Specified by:
    `nrModels` in interface `Structure`
  Returns:
    an int representing the number of models in this Structure

### isNmr

    public boolean isNmr()

  is this structure an nmr structure ?

  Specified by:
    `isNmr` in interface `Structure`
  Returns:
    true if this Structure has been resolved by NMR

### setNmr

    public void setNmr(boolean nmr)

  Description copied from interface: `Structure`
  set NMR flag.

  Specified by:
    `setNmr` in interface `Structure`
  Parameters:
    `nmr` - true to declare that this Structure has been solved by NMR.

### getChains

    public List<Chain> getChains(int modelnr)

  retrieve all chains of a model.

  Specified by:
    `getChains` in interface `Structure`
  Parameters:
    `modelnr` - an int
  Returns:
    a List object
  See Also:
    `Structure.getModel(int)`

### getChains

    public List<Chain> getChains()

  Description copied from interface: `Structure`
  retrieve all chains - if it is a NMR structure will return the chains of the first model. This is the same as getChains(0);

  Specified by:
    `getChains` in interface `Structure`
  Returns:
    a List object containing the Chains of Model nr. modelnr
  See Also:
    `Structure.getModel(int modelnr)`, `Structure.getChains(int modelnr)`

### setChains

    public void setChains(int modelnr,
                          List<Chain> chains)

  Description copied from interface: `Structure`
  set the chains for a model

  Specified by:
    `setChains` in interface `Structure`

### getModel

    public List<Chain> getModel(int modelnr)

  retrieve all Chains belonging to a model .

  Specified by:
    `getModel` in interface `Structure`
  Parameters:
    `modelnr` - an int
  Returns:
    a List object
  See Also:
    `Structure.getChains(int modelnr)`

### getChainByPDB

    public Chain getChainByPDB(String chainId,
                               int modelnr)
                        throws StructureException

  Description copied from interface: `Structure`
  request a chain by it's PDB code by default takes only the first model

  Specified by:
    `getChainByPDB` in interface `Structure`
  Parameters:
    `chainId` - the chain identifier
    `modelnr` - request a particular model;
  Returns:
    the Chain that matches the chainID in the model
  Throws:
    `StructureException`

### getChainByPDB

    public Chain getChainByPDB(String chainId)
                        throws StructureException

  Description copied from interface: `Structure`
  request a chain by it's PDB code by default takes only the first model

  Specified by:
    `getChainByPDB` in interface `Structure`
  Parameters:
    `chainId` - the chain identifier
  Returns:
    the Chain that matches the chainID
  Throws:
    `StructureException`

### toPDB

    public String toPDB()

  create a String that contains the contents of a PDB file.

  Specified by:
    `toPDB` in interface `Structure`
  Returns:
    a String that represents the structure as a PDB file.
  See Also:
    `FileConvert`

### hasChain

    public boolean hasChain(String chainId)

  Description copied from interface: `Structure`
  check if a chain with the id chainId is contained in this structure.

  Specified by:
    `hasChain` in interface `Structure`
  Parameters:
    `chainId` - the name of the chain
  Returns:
    true if a chain with the id (name) chainId is found

### setCompounds

    public void setCompounds(List<Compound> molList)

  Description copied from interface: `Structure`
  set the compounts

  Specified by:
    `setCompounds` in interface `Structure`

### getCompounds

    public List<Compound> getCompounds()

  Description copied from interface: `Structure`
  get all the Compounds that are defined in the PDB Header

  Specified by:
    `getCompounds` in interface `Structure`
  Returns:
    a list of compound

### getCompoundById

    public Compound getCompoundById(String molId)

  Description copied from interface: `Structure`
  request a particular compound by its id

  Specified by:
    `getCompoundById` in interface `Structure`
  Returns:
    a compound

### getDBRefs

    public List<DBRef> getDBRefs()

  Description copied from interface: `Structure`
  get the list of database references

  Specified by:
    `getDBRefs` in interface `Structure`
  Returns:
    list of DBRef objects

### setDBRefs

    public void setDBRefs(List<DBRef> dbrefs)

  Description copied from interface: `Structure`
  set the list of database references for this structure

  Specified by:
    `setDBRefs` in interface `Structure`
  Parameters:
    `dbrefs` - list of DBRef objects

### getPDBHeader

    public PDBHeader getPDBHeader()

  Description copied from interface: `Structure`
  return the header information for this PDB file

  Specified by:
    `getPDBHeader` in interface `Structure`
  Returns:
    the PDBHeader object

### setPDBHeader

    public void setPDBHeader(PDBHeader pdbHeader)

  Description copied from interface: `Structure`
  the the header information for this PDB file

  Specified by:
    `setPDBHeader` in interface `Structure`
  Parameters:
    `pdbHeader` - the PDBHeader object

### getSSBonds

    public List<SSBond> getSSBonds()

  get the list of SSBonds as they have been defined in the PDB files

  Specified by:
    `getSSBonds` in interface `Structure`
  Returns:
    a list of SSBonds

### setSSBonds

    public void setSSBonds(List<SSBond> ssbonds)

  set the list of SSBonds for this structure

  Specified by:
    `setSSBonds` in interface `Structure`
  Parameters:
    `ssbonds` -

### addSSBond

    public void addSSBond(SSBond ssbond)

  add a single SSBond to this structure

  Specified by:
    `addSSBond` in interface `Structure`
  Parameters:
    `ssbond` - the SSBond.

### hasJournalArticle

    public boolean hasJournalArticle()

  Return whether or not the entry has an associated journal article or publication. The JRNL section is not mandatory and thus may not be present.

  Specified by:
    `hasJournalArticle` in interface `Structure`
  Returns:
    flag if a JournalArticle could be found.

### getJournalArticle

    public JournalArticle getJournalArticle()

  get the associated publication as defined by the JRNL records in a PDB file.

  Specified by:
    `getJournalArticle` in interface `Structure`
  Returns:
    a JournalArticle

### setJournalArticle

    public void setJournalArticle(JournalArticle journalArticle)

  set the associated publication as defined by the JRNL records in a PDB file.

  Specified by:
    `setJournalArticle` in interface `Structure`
  Parameters:
    `journalArticle` - the article