org.biojava.bio.structure
Interface Structure

All Superinterfaces:
java.lang.Cloneable
All Known Implementing Classes:
StructureImpl

public interface Structure
extends java.lang.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(java.util.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(java.lang.String chainId)
          request a particular chain from a structure.
 Chain findChain(java.lang.String chainId, int modelnr)
          request a particular chain from a particular model
 Group findGroup(java.lang.String chainId, java.lang.String pdbResnum)
          request a particular group from a structure.
 Group findGroup(java.lang.String chainId, java.lang.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(java.lang.String chainId)
          request a chain by it's PDB code by default takes only the first model
 Chain getChainByPDB(java.lang.String chainId, int modelnr)
          request a chain by it's PDB code by default takes only the first model
 java.util.List<Chain> getChains()
          retrieve all chains - if it is a NMR structure will return the chains of the first model.
 java.util.List<Chain> getChains(int modelnr)
          retrieve all chains of a model.
 Compound getCompoundById(java.lang.String molId)
          request a particular compound by its id
 java.util.List<Compound> getCompounds()
          get all the Compounds that are defined in the PDB Header
 java.util.List<java.util.Map<java.lang.String,java.lang.Integer>> getConnections()
          Returns the connections value.
 java.util.List<DBRef> getDBRefs()
          get the list of database references
 java.util.Map<java.lang.String,java.lang.Object> getHeader()
          Deprecated. use getPDBHeader instead
 java.lang.Long getId()
          get the ID used by Hibernate
 JournalArticle getJournalArticle()
          get the associated publication as defined by the JRNL records in a PDB file.
 java.util.List<Chain> getModel(int modelnr)
          retrieve all Chains belonging to a model .
 java.lang.String getName()
          get biological name of Structure.
 java.lang.String getPDBCode()
          get PDB code of structure.
 PDBHeader getPDBHeader()
          return the header information for this PDB file
 java.util.List<SSBond> getSSBonds()
          get the list of SSBonds as they have been defined in the PDB files
 boolean hasChain(java.lang.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()
          test if this structure is an nmr structure.
 int nrModels()
          return number of models .
 void setChains(int modelnr, java.util.List<Chain> chains)
          set the chains for a model
 void setChains(java.util.List<Chain> chains)
          set the chains of a structure, if this is a NMR structure, this will only set model 0.
 void setCompounds(java.util.List<Compound> molList)
          set the compounts
 void setConnections(java.util.List<java.util.Map<java.lang.String,java.lang.Integer>> connections)
          sets/gets an List of Maps which corresponds to the CONECT lines in the PDB file:
 void setDBRefs(java.util.List<DBRef> dbrefs)
          set the list of database references for this structure
 void setHeader(java.util.Map<java.lang.String,java.lang.Object> h)
          set the Header data .
 void setId(java.lang.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, java.util.List<Chain> model)
          a convenience function if one wants to edit and replace the models in a structure.
 void setName(java.lang.String name)
          set biological name of Structure .
 void setNmr(boolean nmr)
          set NMR flag.
 void setPDBCode(java.lang.String pdb_id)
          set PDB code of structure .
 void setPDBHeader(PDBHeader header)
          the the header information for this PDB file
 void setSSBonds(java.util.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.
 java.lang.String toPDB()
          create a String that contains the contents of a PDB file .
 java.lang.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

java.lang.String toString()
String representation of object.

Overrides:
toString in class java.lang.Object

setPDBCode

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

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

getPDBCode

java.lang.String getPDBCode()
get PDB code of structure.

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

setName

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

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

getName

java.lang.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(java.util.Map<java.lang.String,java.lang.Object> h)
set the Header data .

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

getHeader

java.util.Map<java.lang.String,java.lang.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(java.util.List<java.util.Map<java.lang.String,java.lang.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

    java.util.List<java.util.Map<java.lang.String,java.lang.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(java.util.List<Chain> model)
    add a new model.

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

    setModel

    void setModel(int position,
                  java.util.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

    java.util.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

    java.util.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(java.util.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

    java.util.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,
                   java.util.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(java.lang.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(java.lang.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(java.lang.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(java.lang.String chainId,
                    java.lang.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(java.lang.String chainId,
                    java.lang.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(java.lang.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(java.lang.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

    java.lang.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(java.util.List<Compound> molList)
    set the compounts

    Parameters:
    molList -

    getCompounds

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

    Returns:
    a list of compound

    setDBRefs

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

    Parameters:
    dbrefs - list of DBRef objects

    getDBRefs

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

    Returns:
    list of DBRef objects

    getCompoundById

    Compound getCompoundById(java.lang.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

    hasJournalArticle

    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.

    Returns:
    flag if a JournalArticle has been found.

    getJournalArticle

    JournalArticle getJournalArticle()
    get the associated publication as defined by the JRNL records in a PDB file.

    Returns:
    a JournalArticle

    setJournalArticle

    void setJournalArticle(JournalArticle journalArticle)
    set the associated publication as defined by the JRNL records in a PDB file.

    Parameters:
    journalArticle -

    getSSBonds

    java.util.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(java.util.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

    java.lang.Long getId()
    get the ID used by Hibernate

    Returns:
    the ID used by Hibernate

    setId

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

    Parameters:
    id -