Package org.biojava.nbio.structure
Interface Structure
-
- All Superinterfaces:
Cloneable,Serializable
- All Known Implementing Classes:
StructureImpl
public interface Structure extends Cloneable, Serializable
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|AtomThe tutorial for the BioJava structure modules can be found at github.
Q: How can I get a Structure object from a PDB file?
A:
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:
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(GroupType.AMINOACID); AminoAcida;AminoAcidb;AminoAcidc ; 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 (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 to the first modelvoidaddChain(Chain chain, int modelnr)Add a new chain to the model specified by the given indexvoidaddEntityInfo(EntityInfo entityInfo)Add an EntityInfo to this StructurevoidaddModel(List<Chain> model)Add a new model.voidaddSSBond(Bond ssbond)Add a single disulfide Bond to this structureStructureclone()Return an identical copy of this Structure objectGroupfindGroup(String authId, String pdbResnum)Request a particular group from a structure.GroupfindGroup(String authId, String pdbResnum, int modelnr)Request a particular group from a structure.ChaingetChain(String asymId)Retrieve a Chain (polymeric, non-polymeric or water) based on the 'internal' chain id (asymId) for the first modelChaingetChain(String asymId, int modelIdx)Retrieve a Chain (polymeric, non-polymeric or water) based on the 'internal' chain id (asymId) for the given model indexChaingetChainByIndex(int chainIndex)Retrieve a chain by its index within the Structure .ChaingetChainByIndex(int modelnr, int chainIndex)Retrieve a chain by its indices within the Structure and model.List<Chain>getChains()Retrieve all chains for the first model.List<Chain>getChains(int modelnr)Retrieve all chains of a model.PDBCrystallographicInfogetCrystallographicInfo()Get crystallographic information for this structureList<DBRef>getDBRefs()Get the list of database referencesEntityInfogetEntityById(int entityId)Request a particular entity by its entity id (mol id in legacy PDB format)List<EntityInfo>getEntityInfos()Get all the EntityInfo for this Structure.StringgetIdentifier()Get a string representing this structure's contents.JournalArticlegetJournalArticle()Get the associated publication as defined by the JRNL records in a PDB file.List<Chain>getModel(int modelnr)Retrieve all Chains belonging to a model .StringgetName()Get biological name of Structure.ChaingetNonPolyChain(String asymId)Retrieve a non-polymeric Chain based on the 'internal' chain id (asymId) for the first modelChaingetNonPolyChain(String asymId, int modelIdx)Retrieve a non-polymeric Chain based on the 'internal' chain id (asymId) for the given model indexList<Chain>getNonPolyChains()Return all non-polymeric chains for the first modelList<Chain>getNonPolyChains(int modelIdx)Return all non-polymeric chains for the given model index.List<Chain>getNonPolyChainsByPDB(String authId)Retrieve all non-polymeric Chains corresponding to the given 'public' chain name (authId) for the first model.List<Chain>getNonPolyChainsByPDB(String authId, int modelIdx)Retrieve all non-polymeric Chains corresponding to the 'public' chain name (authId) and the given model index.StringgetPDBCode()Deprecated.PDBHeadergetPDBHeader()Return the header information for this PDB file.PdbIdgetPdbId()Returns the PDB identifier associated with this StructureIdentifier.ChaingetPolyChain(String asymId)Retrieve a polymeric Chain based on the 'internal' chain id (asymId) for the first modelChaingetPolyChain(String asymId, int modelIdx)Retrieve a polymeric Chain based on the 'internal' chain id (asymId) for the given model indexChaingetPolyChainByPDB(String authId)Retrieve a polymeric Chain based on the 'public' chain name (authId) for the first modelChaingetPolyChainByPDB(String authId, int modelIdx)Retrieve a polymeric Chain based on the 'public' chain name (authId) for the given model index.List<Chain>getPolyChains()Return all polymeric chains for the first modelList<Chain>getPolyChains(int modelIdx)Return all polymeric chains for the given model index.List<Site>getSites()List<Bond>getSSBonds()Get the list of disulfide Bonds as they have been defined in the PDB filesStructureIdentifiergetStructureIdentifier()Get an identifier corresponding to this structureChaingetWaterChain(String asymId)Retrieve a water Chain based on the 'internal' chain id (asymId) for the first modelChaingetWaterChain(String asymId, int modelIdx)Retrieve a water chain based on the 'internal' chain id (asymId) for the given model indexChaingetWaterChainByPDB(String authId)Retrieve a water Chain based on the 'public' chain name (authId) for the first modelChaingetWaterChainByPDB(String authId, int modelIdx)Retrieve a water Chain based on the 'public' chain name (authId) for the given model indexList<Chain>getWaterChains()Return all water chains for the first modelList<Chain>getWaterChains(int modelIdx)Return all water chains for the given model indexbooleanhasChain(String asymId)Check if a chain with the chainId aymId is contained in this structure.booleanhasJournalArticle()Return whether or not the entry has an associated journal article or ation.booleanhasNonPolyChain(String asymId)Check if a non polymeric chain with chainId asymId is contained in the structure.booleanhasPdbChain(String authId)Check if a chain with chain name authId is contained in the structurebooleanisBiologicalAssembly()Get flag that indicates if this structure is a biological assemblybooleanisCrystallographic()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.booleanisNmr()Test if this structure is an NMR structure.intnrModels()Return the number of models .voidresetModels()Resets all models of this StructurevoidsetBiologicalAssembly(boolean biologicalAssembly)Set a flag to indicate if this structure is a biological assemblyvoidsetChains(int modelnr, List<Chain> chains)Set the chains for a modelvoidsetChains(List<Chain> chains)Set the chains of a structure, if this is a NMR structure, this will only set model 0.voidsetCrystallographicInfo(PDBCrystallographicInfo crystallographicInfo)Set crystallographic information for this structurevoidsetDBRefs(List<DBRef> dbrefs)Set the list of database references for this structurevoidsetEntityInfos(List<EntityInfo> molList)Set the EntityInfovoidsetJournalArticle(JournalArticle journalArticle)Set the associated publication as defined by the JRNL records in a PDB file.voidsetModel(int position, List<Chain> model)A convenience function if one wants to edit and replace the models in a structure.voidsetName(String name)Set biological name of Structure .voidsetPDBCode(String pdb_id)Deprecated.use#setPDBCode(PdbId)voidsetPDBHeader(PDBHeader header)Set the the header information for this PDB filevoidsetPdbId(PdbId pdbId)Sets thePdbIdidentifier associated with this structure.voidsetSites(List<Site> sites)voidsetSSBonds(List<Bond> ssbonds)Set the list of SSBonds for this structurevoidsetStructureIdentifier(StructureIdentifier structureIdentifier)Set the identifier corresponding to this structureintsize()Return number of polymer Chains in this Structure for first model.intsize(int modelnr)Return number of chains of model.StringtoMMCIF()Create a String that contains this Structure's contents in MMCIF file format.StringtoPDB()Create a String that contains this Structure's contents in PDB file format.StringtoString()String representation of object.
-
-
-
Method Detail
-
clone
Structure clone()
Return an identical copy of this Structure object- Returns:
- identical copy of this Structure object
-
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)
-
getStructureIdentifier
StructureIdentifier getStructureIdentifier()
Get an identifier corresponding to this structure- Returns:
- The StructureIdentifier used to create this structure
-
setStructureIdentifier
void setStructureIdentifier(StructureIdentifier structureIdentifier)
Set the identifier corresponding to this structure- Parameters:
structureIdentifier- the structureIdentifier corresponding to this structure
-
size
int size()
Return number of polymer Chains in this Structure for first model.- Returns:
- the number of polymer 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()
-
isNmr
boolean isNmr()
Test if this structure is an NMR structure.- Returns:
- true if this Structure has been solved by NMR
- See Also:
nrModels()
-
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
-
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 0model- list of chains representing a 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 for 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- the chains for a modelmodelnr- the number of the model
-
getPolyChains
List<Chain> getPolyChains()
Return all polymeric chains for the first model- Returns:
- all polymeric chains.
- Since:
- 5.0
-
getPolyChains
List<Chain> getPolyChains(int modelIdx)
Return all polymeric chains for the given model index.- Parameters:
modelIdx- the model index- Returns:
- all polymeric chains.
- Since:
- 5.0
-
getNonPolyChains
List<Chain> getNonPolyChains()
Return all non-polymeric chains for the first model- Returns:
- all non-polymeric chains.
- Since:
- 5.0
-
getNonPolyChains
List<Chain> getNonPolyChains(int modelIdx)
Return all non-polymeric chains for the given model index.- Parameters:
modelIdx- the model index- Returns:
- all non-polymeric chains.
- Since:
- 5.0
-
getWaterChains
List<Chain> getWaterChains()
Return all water chains for the first model- Returns:
- Since:
- 5.0
-
getWaterChains
List<Chain> getWaterChains(int modelIdx)
Return all water chains for the given model index- Parameters:
modelIdx-- Returns:
- Since:
- 5.0
-
addChain
void addChain(Chain chain)
Add a new chain to the first model- Parameters:
chain- a Chain object
-
addChain
void addChain(Chain chain, int modelnr)
Add a new chain to the model specified by the given index- Parameters:
chain- a Chain objectmodelnr- an int specifying to which model the Chain should be added
-
getChainByIndex
Chain getChainByIndex(int chainIndex)
Retrieve a chain by its index within the Structure .- Parameters:
chainIndex- the index of the desired chain in the structure- Returns:
- a Chain object
-
getChainByIndex
Chain getChainByIndex(int modelnr, int chainIndex)
Retrieve a chain by its indices within the Structure and model.- Parameters:
chainIndex- the index of the desired chain in the structuremodelnr- the model the desired chain is in- Returns:
- a Chain object
-
hasChain
boolean hasChain(String asymId)
Check if a chain with the chainId aymId is contained in this structure.- Parameters:
asymId- the Id of the chain- Returns:
- true if a chain with the id asymId is found
-
hasNonPolyChain
boolean hasNonPolyChain(String asymId)
Check if a non polymeric chain with chainId asymId is contained in the structure.- Parameters:
asymId- the id of the chain- Returns:
- true if a nonpolymeric chain with the asymId is found
- Since:
- 5.0
-
hasPdbChain
boolean hasPdbChain(String authId)
Check if a chain with chain name authId is contained in the structure- Parameters:
authId- the chain name- Returns:
- true if a chain with the name authId is found
-
findGroup
Group findGroup(String authId, String pdbResnum) throws StructureException
Request a particular group from a structure. by default considers only the first model in the structure.- Parameters:
authId- the name of the chain to usepdbResnum- the PDB residue number of the requested group- Returns:
- Group the requested Group
- Throws:
StructureException
-
findGroup
Group findGroup(String authId, String pdbResnum, int modelnr) throws StructureException
Request a particular group from a structure. considers only model nr X. count starts with 0.- Parameters:
authId- the chain name 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
-
getChain
Chain getChain(String asymId)
Retrieve a Chain (polymeric, non-polymeric or water) based on the 'internal' chain id (asymId) for the first model- Parameters:
asymId- the asymId (chainId)- Returns:
- See Also:
getPolyChain(String),getNonPolyChain(String),getWaterChain(String)
-
getChain
Chain getChain(String asymId, int modelIdx)
Retrieve a Chain (polymeric, non-polymeric or water) based on the 'internal' chain id (asymId) for the given model index- Parameters:
asymId- the asymId (chainId)modelIdx- the index of the required model (0-based)- Returns:
- See Also:
getPolyChain(String, int),getNonPolyChain(String, int),getWaterChain(String, int)
-
getPolyChain
Chain getPolyChain(String asymId)
Retrieve a polymeric Chain based on the 'internal' chain id (asymId) for the first modelSee
getPolyChainByPDB(String)for a similar method using the chain name (authId).- Parameters:
asymId- the asymId (chainId)- Returns:
- a polymeric Chain or null if it can't be found
- Since:
- 5.0
-
getPolyChain
Chain getPolyChain(String asymId, int modelIdx)
Retrieve a polymeric Chain based on the 'internal' chain id (asymId) for the given model indexSee
getPolyChainByPDB(String, int)for a similar method using the chain name (authId).- Parameters:
asymId- the asymId (chainId)modelIdx- the index of the required model (0-based)- Returns:
- a polymeric Chain or null if it can't be found
- Since:
- 5.0
-
getPolyChainByPDB
Chain getPolyChainByPDB(String authId)
Retrieve a polymeric Chain based on the 'public' chain name (authId) for the first modelSee
getPolyChain(String)for a similar method using the chain id (asymId).- Parameters:
authId- the author id (chainName, public chain id)- Returns:
- a polymeric Chain or null if it can't be found
- Since:
- 5.0
-
getPolyChainByPDB
Chain getPolyChainByPDB(String authId, int modelIdx)
Retrieve a polymeric Chain based on the 'public' chain name (authId) for the given model index.See
getPolyChain(String, int)for a similar method using the chain id (asymId).- Parameters:
authId- the author id (chainName, public chain id)modelIdx- the index of the required model (0-based)- Returns:
- a polymeric Chain or null if it can't be found
- Since:
- 5.0
-
getNonPolyChain
Chain getNonPolyChain(String asymId)
Retrieve a non-polymeric Chain based on the 'internal' chain id (asymId) for the first model- Parameters:
asymId- the asymId (chainId)- Returns:
- a non-polymeric chain or null if it can't be found
- Since:
- 5.0
-
getNonPolyChain
Chain getNonPolyChain(String asymId, int modelIdx)
Retrieve a non-polymeric Chain based on the 'internal' chain id (asymId) for the given model index- Parameters:
asymId- the asymId (chainId)modelIdx- the index of the required model (0-based)- Returns:
- a non-polymeric Chain or null if it can't be found
- Since:
- 5.0
-
getNonPolyChainsByPDB
List<Chain> getNonPolyChainsByPDB(String authId)
Retrieve all non-polymeric Chains corresponding to the given 'public' chain name (authId) for the first model.- Parameters:
authId- the author id (chainName, public chain id)- Returns:
- a list of non-polymeric Chains, if none found the list will be empty
- Since:
- 5.0
-
getNonPolyChainsByPDB
List<Chain> getNonPolyChainsByPDB(String authId, int modelIdx)
Retrieve all non-polymeric Chains corresponding to the 'public' chain name (authId) and the given model index.- Parameters:
authId- the author id (chainName, public chain id)modelIdx- the index of the required model (0-based)- Returns:
- a list of non-polymeric Chains, if none found the list will be empty
- Since:
- 5.0
-
getWaterChain
Chain getWaterChain(String asymId)
Retrieve a water Chain based on the 'internal' chain id (asymId) for the first model- Parameters:
asymId- the asymId (chainId)- Returns:
- a water Chain or null if it can't be found
- Since:
- 5.0
-
getWaterChain
Chain getWaterChain(String asymId, int modelIdx)
Retrieve a water chain based on the 'internal' chain id (asymId) for the given model index- Parameters:
asymId- the asymId (chainId)modelIdx- the index of the required model (0-based)- Returns:
- Since:
- 5.0
-
getWaterChainByPDB
Chain getWaterChainByPDB(String authId)
Retrieve a water Chain based on the 'public' chain name (authId) for the first model- Parameters:
authId- the author id (chainName, public chain id)- Returns:
- Since:
- 5.0
-
getWaterChainByPDB
Chain getWaterChainByPDB(String authId, int modelIdx)
Retrieve a water Chain based on the 'public' chain name (authId) for the given model index- Parameters:
authId- the author id (chainName, public chain id)modelIdx- the index of the required model (0-based)- Returns:
- Since:
- 5.0
-
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:
FileConvert
-
toMMCIF
String toMMCIF()
Create a String that contains this Structure's contents in MMCIF file format.- Returns:
- a String representation of the Structure object in mmCIF.
-
setEntityInfos
void setEntityInfos(List<EntityInfo> molList)
Set the EntityInfo- Parameters:
molList- list of entityinfo objects
-
getEntityInfos
List<EntityInfo> getEntityInfos()
Get all the EntityInfo for this Structure.- Returns:
- a list of EntityInfos
-
addEntityInfo
void addEntityInfo(EntityInfo entityInfo)
Add an EntityInfo to this Structure
-
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
-
getEntityById
EntityInfo getEntityById(int entityId)
Request a particular entity by its entity id (mol id in legacy PDB format)- Parameters:
entityId- the number of the entity- Returns:
- an entity, or null if the molId was not found
-
getPDBHeader
PDBHeader getPDBHeader()
Return the header information for this PDB file. N.B. Take care when you blindly use the returned object from this method, because it might be null in some cases.- Returns:
- the PDBHeader object
-
hasJournalArticle
boolean hasJournalArticle()
Return whether or not the entry has an associated journal article or ation. 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- a JournalArticle object
-
getSSBonds
List<Bond> getSSBonds()
Get the list of disulfide Bonds as they have been defined in the PDB files- Returns:
- a list of Bonds
-
setSSBonds
void setSSBonds(List<Bond> ssbonds)
Set the list of SSBonds for this structure- Parameters:
ssbonds-
-
addSSBond
void addSSBond(Bond ssbond)
Add a single disulfide Bond to this structure- Parameters:
ssbond- a disulfide bond
-
setPDBHeader
void setPDBHeader(PDBHeader header)
Set the the header information for this PDB file- Parameters:
header- the PDBHeader object
-
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
void setCrystallographicInfo(PDBCrystallographicInfo crystallographicInfo)
Set crystallographic information for this structure- Parameters:
crystallographicInfo- 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
-
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, inSubstructureIdentifierformat.
- 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()
-
getPDBCode
@Deprecated String getPDBCode()
Deprecated.Get PDB code of structure.- Returns:
- a String representing the PDBCode value
- See Also:
setPDBCode(java.lang.String)
-
setPDBCode
@Deprecated void setPDBCode(String pdb_id)
Deprecated.use#setPDBCode(PdbId)Set PDB code of structure .- Parameters:
pdb_id- a String specifying the PDBCode- See Also:
getPDBCode()
-
getPdbId
PdbId getPdbId()
Returns the PDB identifier associated with this StructureIdentifier.- Returns:
- the
PdbIdobject - Since:
- 6.0.0
-
-