org.biojava.bio.structure
Interface Structure

All Superinterfaces:
Cloneable
All Known Implementing Classes:
StructureImpl

public interface Structure
extends Cloneable

Interface for a structure object. Provides access to the data of a PDB file. A structure object allows to access the PDB header information as well as to the data from the ATOM records. The header information is currently available through the following objects:

The structure object provides access to the data from the ATOM records through a hierarchy of sub-object:
 Structure
         |
         Chain
             |
             Group
                 |
                 Atom
 
For more documentation on how to work with the Structure API please see http://biojava.org/wiki/BioJava:CookBook#Protein_Structure

Q: How can I get a Structure object from a PDB file?

A:

public Structure loadStructure(String pathToPDBFile){
                PDBFileReader pdbreader = new PDBFileReader();

                Structure structure = null;
                try{
                        structure = pdbreader.getStructure(pathToPDBFile);
                        System.out.println(structure);
                } catch (IOException e) {
                        e.printStackTrace();
                }
                return structure;
        }
 

Q: How can I calculate Phi and Psi angles of AminoAcids?

A:

public void calcPhiPsi(Structure structure){


                // get the first chain from the structure

                Chain chain  = structure.getChain(0);

                // A protein chain consists of a number of groups. These can be either
                // AminoAcid, Hetatom or Nucleotide groups.
                //
                // Note: BioJava provides access to both the ATOM and SEQRES data in a PDB file.
                // since we are interested in doing calculations here, we only request the groups 
                // from the ATOM records

                //  get the Groups of the chain that are AminoAcids.
                List groups = chain.getAtomGroups("amino");

                AminoAcid a;
                AminoAcid b;
                AminoAcid c ;

                for ( int i=0; i < groups.size(); i++){

                        // since we requested only groups of type "amino" they will always be amino acids
                        // Nucleotide and Hetatom groups will not be present in the groups list.

                        b = (AminoAcid)groups.get(i);

                        double phi =360.0;
                        double psi =360.0;

                        if ( i > 0) {
                                a = (AminoAcid)groups.get(i-1) ;
                                try {

                                        // the Calc class provides utility methods for various calculations on
                                        // structures, groups and atoms

                                        phi = Calc.getPhi(a,b);                              
                                } catch (StructureException e){                
                                        e.printStackTrace();
                                        phi = 360.0 ;
                                }
                        }
                        if ( i < groups.size()-1) {
                                c = (AminoAcid)groups.get(i+1) ;
                                try {
                                        psi = Calc.getPsi(b,c);
                                }catch (StructureException e){
                                        e.printStackTrace();
                                        psi = 360.0 ;
                                }
                        }

                        System.out.print(b.getPDBCode() + " " + b.getPDBName() + ":"  );

                        System.out.println(String.format("\tphi: %+7.2f psi: %+7.2f", phi, psi));

                }

Since:
1.4
Version:
%I% %G%
Author:
Andreas Prlic

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 object
 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 chainId, 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 pos)
          retrieve a chain by it's position within the Structure .
 Chain getChain(int pos, int modelnr)
          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()
          Deprecated. use getPDBHeader instead
 Long getId()
          get the ID used by Hibernate
 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 isNmr()
          test if this structure is 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>> connections)
          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 setModel(int position, List<Chain> model)
          a convenience function if one wants to edit and replace the models in a structure.
 void setName(String name)
          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 header)
          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 in this Structure.
 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 of object.
 

Method Detail

clone

Structure clone()
returns an identical copy of this Structure object

Returns:
identical copy of this Structure object

toString

String toString()
String representation of object.

Overrides:
toString in class Object

setPDBCode

void setPDBCode(String pdb_id)
set PDB code of structure .

Parameters:
pdb_id - a String specifying the PDBCode
See Also:
getPDBCode()

getPDBCode

String getPDBCode()
get PDB code of structure.

Returns:
a String representing the PDBCode value
See Also:
setPDBCode(java.lang.String)

setName

void setName(String name)
set biological name of Structure .

Parameters:
name - a String specifying the biological name of the Structure
See Also:
getName()

getName

String getName()
get biological name of Structure.

Returns:
a String representing the biological name of the Structure
See Also:
setName(java.lang.String)

setHeader

void setHeader(Map<String,Object> h)
set the Header data .

Parameters:
h - a Map object specifying the header
See Also:
getHeader()

getHeader

Map<String,Object> getHeader()
Deprecated. use getPDBHeader instead

get Header data .

Returns:
a Map object representing the header value
See Also:
setHeader(java.util.Map), getPDBHeader()

setConnections

void setConnections(List<Map<String,Integer>> connections)
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
  • Parameters:
    connections - a List object specifying the connections
    See Also:
    getConnections()

    getConnections

    List<Map<String,Integer>> getConnections()
    Returns the connections value.

    Returns:
    a List object representing the connections value
    See Also:
    setConnections(java.util.List>)

    size

    int size()
    return number of Chains in this Structure.

    Returns:
    an int representing the number of Chains in this Structure

    size

    int size(int modelnr)
    return number of chains of model.

    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

    int nrModels()
    return number of models . in this implementation also XRAY structures have "1 model", since model is the container for the chains. to test if a Structure is an NMR structure use @see isNMR , since this is based on the info in the PDB file header.

    Returns:
    an int representing the number of models in this Structure

    isNmr

    boolean isNmr()
    test if this structure is an nmr structure.

    Returns:
    true if this Structure has been resolved by NMR

    setNmr

    void setNmr(boolean nmr)
    set NMR flag.

    Parameters:
    nmr - true to declare that this Structure has been solved by NMR.

    addModel

    void addModel(List<Chain> model)
    add a new model.

    Parameters:
    model - a List object containing the Chains of the new Model

    setModel

    void setModel(int position,
                  List<Chain> model)
    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.

    Parameters:
    position - starting at 0
    model -

    getModel

    List<Chain> getModel(int modelnr)
    retrieve all Chains belonging to a model .

    Parameters:
    modelnr - an int
    Returns:
    a List object containing the Chains of Model nr. modelnr
    See Also:
    getChains(int modelnr)

    getChains

    List<Chain> getChains()
    retrieve all chains - if it is a NMR structure will return the chains of the first model. This is the same as getChains(0);

    Returns:
    a List object containing the Chains of Model nr. modelnr
    See Also:
    getModel(int modelnr), getChains(int modelnr)

    setChains

    void setChains(List<Chain> chains)
    set the chains of a structure, if this is a NMR structure, this will only set model 0.

    Parameters:
    chains - the list of chains for this structure.
    See Also:
    setChains(int, List)

    getChains

    List<Chain> getChains(int modelnr)
    retrieve all chains of a model.

    Parameters:
    modelnr - an int
    Returns:
    a List object containing the Chains of Model nr. modelnr
    See Also:
    getModel(int)

    setChains

    void setChains(int modelnr,
                   List<Chain> chains)
    set the chains for a model

    Parameters:
    chains -
    modelnr -

    addChain

    void addChain(Chain chain)
    add a new chain.

    Parameters:
    chain - a Chain object

    addChain

    void addChain(Chain chain,
                  int modelnr)
    add a new chain, if several models are available.

    Parameters:
    chain - a Chain object
    modelnr - an int specifying to which model the Chain should be added

    getChain

    Chain getChain(int pos)
    retrieve a chain by it's position within the Structure .

    Parameters:
    pos - an int for the position in the List of Chains.
    Returns:
    a Chain object

    getChain

    Chain getChain(int pos,
                   int modelnr)
    retrieve a chain by it's position within the Structure and model number.

    Parameters:
    pos - an int
    modelnr - an int
    Returns:
    a Chain object

    findChain

    Chain findChain(String chainId)
                    throws StructureException
    request a particular chain from a structure. by default considers only the first model.

    Parameters:
    chainId - the ID of a chain that should be returned
    Returns:
    Chain the requested chain
    Throws:
    StructureException

    hasChain

    boolean hasChain(String chainId)
    check if a chain with the id chainId is contained in this structure.

    Parameters:
    chainId - the name of the chain
    Returns:
    true if a chain with the id (name) chainId is found

    findChain

    Chain findChain(String chainId,
                    int modelnr)
                    throws StructureException
    request a particular chain from a particular model

    Parameters:
    modelnr - the number of the model to use
    chainId - the ID of a chain that should be returned
    Returns:
    Chain the requested chain
    Throws:
    StructureException

    findGroup

    Group findGroup(String chainId,
                    String pdbResnum)
                    throws StructureException
    request a particular group from a structure. by default considers only the first model in the structure.

    Parameters:
    chainId - the ID of the chain to use
    pdbResnum - the PDB residue number of the requested group
    Returns:
    Group the requested Group
    Throws:
    StructureException

    findGroup

    Group findGroup(String chainId,
                    String pdbResnum,
                    int modelnr)
                    throws StructureException
    request a particular group from a structure. considers only model nr X. count starts with 0.

    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

    getChainByPDB

    Chain getChainByPDB(String chainId)
                        throws StructureException
    request a chain by it's PDB code by default takes only the first model

    Parameters:
    chainId - the chain identifier
    Returns:
    the Chain that matches the chainID
    Throws:
    StructureException

    getChainByPDB

    Chain getChainByPDB(String chainId,
                        int modelnr)
                        throws StructureException
    request a chain by it's PDB code by default takes only the first model

    Parameters:
    chainId - the chain identifier
    modelnr - request a particular model;
    Returns:
    the Chain that matches the chainID in the model
    Throws:
    StructureException

    toPDB

    String toPDB()
    create a String that contains the contents of a PDB file .

    Returns:
    a String that looks like a PDB file
    See Also:
    FileConvert

    setCompounds

    void setCompounds(List<Compound> molList)
    set the compounts

    Parameters:
    molList -

    getCompounds

    List<Compound> getCompounds()
    get all the Compounds that are defined in the PDB Header

    Returns:
    a list of compound

    setDBRefs

    void setDBRefs(List<DBRef> dbrefs)
    set the list of database references for this structure

    Parameters:
    dbrefs - list of DBRef objects

    getDBRefs

    List<DBRef> getDBRefs()
    get the list of database references

    Returns:
    list of DBRef objects

    getCompoundById

    Compound getCompoundById(String molId)
    request a particular compound by its id

    Parameters:
    molId -
    Returns:
    a compound

    getPDBHeader

    PDBHeader getPDBHeader()
    return the header information for this PDB file

    Returns:
    the PDBHeader object

    getSSBonds

    List<SSBond> getSSBonds()
    get the list of SSBonds as they have been defined in the PDB files

    Returns:
    a list of SSBonds

    setSSBonds

    void setSSBonds(List<SSBond> ssbonds)
    set the list of SSBonds for this structure

    Parameters:
    ssbonds -

    addSSBond

    void addSSBond(SSBond ssbond)
    add a single SSBond to this structure

    Parameters:
    ssbond -

    setPDBHeader

    void setPDBHeader(PDBHeader header)
    the the header information for this PDB file

    Parameters:
    header - the PDBHeader object

    getId

    Long getId()
    get the ID used by Hibernate

    Returns:
    the ID used by Hibernate

    setId

    void setId(Long id)
    set the ID used by Hibernate

    Parameters:
    id -