Package org.biojava.nbio.structure
Interface Structure
- All Superinterfaces:
Cloneable
- All Known Implementing Classes:
StructureImpl
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
The tutorial for the BioJava structure modules can be found at github.
Q: How can I get a Structure object from a PDB file?
A:
publicStructure
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(GroupType.AMINOACID); AminoAcid
a;AminoAcid
b;AminoAcid
c ; for ( int i=0; i < groups.size(); i++){ // since we requested only groups of type AMINOACID 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
Modifier and TypeMethodDescriptionvoid
Add a new chain.void
Add a new chain, if several models are available.void
addCompound
(Compound compound) Add a Compound to this Structurevoid
Add a new model.void
Add a single disulfide Bond to this structureclone()
Return an identical copy of this Structure objectRequest a particular chain from a structure.Request a particular chain from a particular modelRequest a particular group from a structure.Request a particular group from a structure.getChain
(int pos) Retrieve a chain by its position within the Structure .getChain
(int modelnr, int pos) Retrieve a chain by its position within the Structure and model number.getChainByPDB
(String chainId) Request a chain by its PDB code by default takes only the first modelgetChainByPDB
(String chainId, int modelnr) Request a chain by its PDB code by default takes only the first modelRetrieve all chains - if it is a NMR structure will return the chains of the first model.getChains
(int modelnr) Retrieve all chains of a model.getCompoundById
(int molId) Request a particular compound by its molId (entity_id in mmCIF dictionary)Get all the Compounds for this Structure.Deprecated.Get crystallographic information for this structureGet the list of database referencesgetId()
Get the ID used by HibernateGet a string representing this structure's contents.Get the associated publication as defined by the JRNL records in a PDB file.getModel
(int modelnr) Retrieve all Chains belonging to a model .getName()
Get biological name of Structure.Get PDB code of structure.Return the header information for this PDB filegetPdbId()
Deprecated.From BioJava 4.2, usegetPDBCode()
orgetStructureIdentifier().toCanonical().getPdbId()
Deprecated.From BioJava 4.2, usegetStructureIdentifier().toCanonical().getRanges()
List<? extends ResidueRange>
Deprecated.From BioJava 4.2, usegetStructureIdentifier().toCanonical().getResidueRanges()
getSites()
Get the list of disulfide Bonds as they have been defined in the PDB filesGet an identifier corresponding to this structureboolean
Check if a chain with the id chainId is contained in this structure.boolean
Return whether or not the entry has an associated journal article or publication.boolean
Get flag that indicates if this structure is a biological assemblyboolean
Test if this structure is a crystallographic structure, i.e.boolean
isNmr()
Test if this structure is an NMR structure.int
nrModels()
Return the number of models .void
Resets all models of this Structurevoid
setBiologicalAssembly
(boolean biologicalAssembly) Set a flag to indicate if this structure is a biological assemblyvoid
Set the chains for a modelvoid
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 Compoundsvoid
setConnections
(List<Map<String, Integer>> connections) Deprecated.useAtom.addBond(Bond)
insteadvoid
setCrystallographicInfo
(PDBCrystallographicInfo crystallographicInfo) Set crystallographic information for this structurevoid
Set the list of database references for this structurevoid
set the ID used by Hibernatevoid
setJournalArticle
(JournalArticle journalArticle) Set the associated publication as defined by the JRNL records in a PDB file.void
A convenience function if one wants to edit and replace the models in a structure.void
Set biological name of Structure .void
setNmr
(boolean nmr) Deprecated.void
setPDBCode
(String pdb_id) Set PDB code of structure .void
setPDBHeader
(PDBHeader header) Set the the header information for this PDB filevoid
void
setSSBonds
(List<Bond> ssbonds) Set the list of SSBonds for this structurevoid
setStructureIdentifier
(StructureIdentifier structureIdentifier) Set the identifier corresponding to this structureint
size()
Return number of Chains in this Structure.int
size
(int modelnr) Return number of chains of model.toMMCIF()
Create a String that contains this Structure's contents in MMCIF file format.toPDB()
Create a String that contains this Structure's contents in PDB file format.toString()
String representation of object.
-
Method Details
-
clone
Structure clone()Return an identical copy of this Structure object- Returns:
- identical copy of this Structure object
-
toString
String toString()String representation of object. -
setPDBCode
Set PDB code of structure .- Parameters:
pdb_id
- a String specifying the PDBCode- See Also:
-
getPDBCode
String getPDBCode()Get PDB code of structure.- Returns:
- a String representing the PDBCode value
- See Also:
-
setName
Set biological name of Structure .- Parameters:
name
- a String specifying the biological name of the Structure- See Also:
-
getName
String getName()Get biological name of Structure.- Returns:
- a String representing the biological name of the Structure
- See Also:
-
getStructureIdentifier
StructureIdentifier getStructureIdentifier()Get an identifier corresponding to this structure- Returns:
- The StructureIdentifier used to create this structure
-
setStructureIdentifier
Set the identifier corresponding to this structure- Parameters:
structureIdentifier
- the structureIdentifier corresponding to this structure
-
setConnections
Deprecated.useAtom.addBond(Bond)
insteadsets/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
Deprecated.useAtom.getBonds()
insteadReturn the connections value.- Returns:
- a List object representing the connections value
- See Also:
-
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 the 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 useisNmr()
.- Returns:
- an int representing the number of models in this Structure
- See Also:
-
isNmr
boolean isNmr()Test if this structure is an NMR structure.- Returns:
- true if this Structure has been solved by NMR
- See Also:
-
isCrystallographic
boolean isCrystallographic()Test if this structure is a crystallographic structure, i.e. it is an asymmetric unit from which it is possible to reconstruct the crystal lattice given cell parameters and space group.- Returns:
- true if crystallographic, false otherwise
-
setNmr
Deprecated.set NMR flag.- Parameters:
nmr
- true to declare that this Structure has been solved by NMR.
-
addModel
Add a new model.- Parameters:
model
- a List object containing the Chains of the new Model
-
setModel
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
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
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:
-
setChains
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:
-
getChains
Retrieve all chains of a model.- Parameters:
modelnr
- an int- Returns:
- a List object containing the Chains of Model nr. modelnr
- See Also:
-
setChains
Set the chains for a model- Parameters:
chains
-modelnr
-
-
addChain
Add a new chain.- Parameters:
chain
- a Chain object
-
addChain
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
Retrieve a chain by its position within the Structure .- Parameters:
pos
- an int for the position in the List of Chains.- Returns:
- a Chain object
-
getChain
Retrieve a chain by its position within the Structure and model number.- Parameters:
pos
- an intmodelnr
- an int- Returns:
- a Chain object
-
findChain
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
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
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
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
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
Request a chain by its PDB code by default takes only the first model- Parameters:
chainId
- the chain identifier- Returns:
- the Chain that matches the chainID
- Throws:
StructureException
-
getChainByPDB
Request a chain by its 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
String toPDB()Create a String that contains this Structure's contents in PDB file format.- Returns:
- a String that looks like a PDB file
- See Also:
-
toMMCIF
String toMMCIF()Create a String that contains this Structure's contents in MMCIF file format.- Returns:
-
setCompounds
Set the Compounds- Parameters:
molList
-
-
getCompounds
Get all the Compounds for this Structure. Compounds are called Entities in mmCIF dictionary.- Returns:
- a list of Compounds
-
addCompound
Add a Compound to this Structure -
setDBRefs
Set the list of database references for this structure- Parameters:
dbrefs
- list of DBRef objects
-
getDBRefs
Get the list of database references- Returns:
- list of DBRef objects
-
getCompoundById
Request a particular compound by its molId (entity_id in mmCIF dictionary)- 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
Set the associated publication as defined by the JRNL records in a PDB file.- Parameters:
journalArticle
-
-
getSSBonds
Get the list of disulfide Bonds as they have been defined in the PDB files- Returns:
- a list of Bonds
-
setSSBonds
Set the list of SSBonds for this structure- Parameters:
ssbonds
-
-
addSSBond
Add a single disulfide Bond to this structure- Parameters:
ssbond
-
-
setPDBHeader
Set 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
set the ID used by Hibernate- Parameters:
id
-
-
setSites
- Parameters:
sites
- the sites to set in the structure
-
getSites
- Returns:
- the sites contained in this structure
-
getHetGroups
-
setBiologicalAssembly
void setBiologicalAssembly(boolean biologicalAssembly) Set a flag to indicate if this structure is a biological assembly- Parameters:
biologicalAssembly
- true if biological assembly, otherwise false- Since:
- 3.2
-
isBiologicalAssembly
boolean isBiologicalAssembly()Get flag that indicates if this structure is a biological assembly- Returns:
- true if biological assembly, otherwise false
- Since:
- 3.2
-
setCrystallographicInfo
Set crystallographic information for this structure- Parameters:
PDBCrystallographicInfo
- crystallographic information- Since:
- 3.2
-
getCrystallographicInfo
PDBCrystallographicInfo getCrystallographicInfo()Get crystallographic information for this structure- Returns:
- PDBCrystallographicInfo crystallographic information
- Since:
- 3.2
-
resetModels
void resetModels()Resets all models of this Structure- Since:
- 4.0.1
-
getPdbId
Deprecated.From BioJava 4.2, usegetPDBCode()
orgetStructureIdentifier().toCanonical().getPdbId()
Returns the PDB identifier associated with this StructureIdentifier. -
getResidueRanges
Deprecated.From BioJava 4.2, usegetStructureIdentifier().toCanonical().getResidueRanges()
Returns the list ofResidueRanges
that this StructureIdentifier defines. This is a unique representation. -
getRanges
Deprecated.From BioJava 4.2, usegetStructureIdentifier().toCanonical().getRanges()
Returns a list of residue ranges. For example:getRanges().get(0): 'A' getRanges().get(1): 'B_5-100'
This is a unique representation. -
getIdentifier
String getIdentifier()Get a string representing this structure's contents. The following places are searched for a non-null value, with the first being returned:getStructureIdentifier()
.getIdentifier(), which should give the string originally used to create the structuregetName()
- A combination of
getPDBCode()
with a heuristic description of the residue ranges, inSubstructureIdentifier
format.
- Returns:
- A
SubstructureIdentifier
-format string describing the residue ranges in this structure - Since:
- The behavior of this method changed in BioJava 4.2. Previously it
returned the same value as
getPDBCode()
-
Atom.getBonds()
instead