Package org.biojava.bio.structure
Interface Structure
-
- All Superinterfaces:
java.lang.Cloneable
- All Known Implementing Classes:
StructureImpl
public interface Structure extends java.lang.CloneableInterface 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 |For more documentation on how to work with the Structure API please see http://biojava.org/wiki/BioJava:CookBook#Protein_StructureChain|Group|Atom
Q: How can I get a Structure object from a PDB file?
A:
public
StructureloadStructure(String pathToPDBFile){PDBFileReaderpdbreader = newPDBFileReader();Structurestructure = 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(
Structurestructure){ // get the first chain from the structureChainchain = structure.getChain(0); // A protein chain consists of a number of groups. These can be either //AminoAcid,HetatomorNucleotidegroups. // // 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. Listgroups = chain.getAtomGroups("amino"); AminoAcida;AminoAcidb;AminoAcidc ; 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 (StructureExceptione){ e.printStackTrace(); phi = 360.0 ; } } if ( i < groups.size()-1) { c = (AminoAcid)groups.get(i+1) ; try { psi =Calc.getPsi(b,c); }catch (StructureExceptione){ 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
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description voidaddChain(Chain chain)add a new chain.voidaddChain(Chain chain, int modelnr)add a new chain, if several models are available.voidaddModel(java.util.List<Chain> model)add a new model.voidaddSSBond(SSBond ssbond)add a single SSBond to this structureStructureclone()returns an identical copy of this Structure objectChainfindChain(java.lang.String chainId)request a particular chain from a structure.ChainfindChain(java.lang.String chainId, int modelnr)request a particular chain from a particular modelGroupfindGroup(java.lang.String chainId, java.lang.String pdbResnum)request a particular group from a structure.GroupfindGroup(java.lang.String chainId, java.lang.String pdbResnum, int modelnr)request a particular group from a structure.ChaingetChain(int pos)retrieve a chain by it's position within the Structure .ChaingetChain(int pos, int modelnr)retrieve a chain by it's position within the Structure and model number.ChaingetChainByPDB(java.lang.String chainId)request a chain by it's PDB code by default takes only the first modelChaingetChainByPDB(java.lang.String chainId, int modelnr)request a chain by it's PDB code by default takes only the first modeljava.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.CompoundgetCompoundById(java.lang.String molId)request a particular compound by its idjava.util.List<Compound>getCompounds()get all the Compounds that are defined in the PDB Headerjava.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 referencesjava.util.Map<java.lang.String,java.lang.Object>getHeader()Deprecated.use getPDBHeader insteadjava.lang.LonggetId()get the ID used by HibernateJournalArticlegetJournalArticle()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.StringgetName()get biological name of Structure.java.lang.StringgetPDBCode()get PDB code of structure.PDBHeadergetPDBHeader()return the header information for this PDB filejava.util.List<SSBond>getSSBonds()get the list of SSBonds as they have been defined in the PDB filesbooleanhasChain(java.lang.String chainId)check if a chain with the id chainId is contained in this structure.booleanhasJournalArticle()return whether or not the entry has an associated journal article or publication.booleanisNmr()test if this structure is an nmr structure.intnrModels()return number of models .voidsetChains(int modelnr, java.util.List<Chain> chains)set the chains for a modelvoidsetChains(java.util.List<Chain> chains)set the chains of a structure, if this is a NMR structure, this will only set model 0.voidsetCompounds(java.util.List<Compound> molList)set the compountsvoidsetConnections(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:voidsetDBRefs(java.util.List<DBRef> dbrefs)set the list of database references for this structurevoidsetHeader(java.util.Map<java.lang.String,java.lang.Object> h)set the Header data .voidsetId(java.lang.Long id)set the ID used by HibernatevoidsetJournalArticle(JournalArticle journalArticle)set the associated publication as defined by the JRNL records in a PDB file.voidsetModel(int position, java.util.List<Chain> model)a convenience function if one wants to edit and replace the models in a structure.voidsetName(java.lang.String name)set biological name of Structure .voidsetNmr(boolean nmr)set NMR flag.voidsetPDBCode(java.lang.String pdb_id)set PDB code of structure .voidsetPDBHeader(PDBHeader header)the the header information for this PDB filevoidsetSSBonds(java.util.List<SSBond> ssbonds)set the list of SSBonds for this structureintsize()return number of Chains in this Structure.intsize(int modelnr)return number of chains of model.java.lang.StringtoPDB()create a String that contains the contents of a PDB file .java.lang.StringtoString()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:
toStringin classjava.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 insteadget Header data .- Returns:
- a Map object representing the header value
- See Also:
setHeader(java.util.Map<java.lang.String, java.lang.Object>),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 atomthe 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<java.util.Map<java.lang.String, java.lang.Integer>>)
-
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 0model-
-
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 objectmodelnr- 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 intmodelnr- 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 usechainId- 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 usepdbResnum- 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 usepdbResnum- the PDB residue number of the requested groupmodelnr- 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 identifiermodelnr- 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-
-
-