Package 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 |
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
Structure
loadStructure(String pathToPDBFile){PDBFileReader
pdbreader = newPDBFileReader
();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 structureChain
chain = structure.getChain(0); // A protein chain consists of a number of groups. These can be either //AminoAcid
,Hetatom
orNucleotide
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. Listgroups = 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
All Methods Instance Methods Abstract Methods Deprecated Methods Modifier and Type Method Description 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 structureStructure
clone()
returns an identical copy of this Structure objectChain
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 modelGroup
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 modelChain
getChainByPDB(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.Compound
getCompoundById(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.Long
getId()
get the ID used by HibernateJournalArticle
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 filejava.util.List<SSBond>
getSSBonds()
get the list of SSBonds as they have been defined in the PDB filesboolean
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 modelvoid
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 compountsvoid
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 structurevoid
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 Hibernatevoid
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 filevoid
setSSBonds(java.util.List<SSBond> ssbonds)
set the list of SSBonds for this structureint
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 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 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<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
-
-
-