Package org.biojava.nbio.structure
Class HetatomImpl
java.lang.Object
org.biojava.nbio.structure.HetatomImpl
- All Implemented Interfaces:
Serializable
,Group
- Direct Known Subclasses:
AminoAcidImpl
,NucleotideImpl
Generic Implementation of a Group interface.
AminoAcidImpl and NucleotideImpl are closely related classes.
- Since:
- 1.4
- Version:
- %I% %G%
- Author:
- Andreas Prlic, Horvath Tamas
- See Also:
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic enum
Behaviors for how to balance memory vs. performance. -
Field Summary
Modifier and TypeFieldDescriptionprotected ChemComp
protected boolean
stores if 3d coordinates are available.protected String
3 letter name of amino acid in pdb file.protected ResidueNumber
static final GroupType
The GroupType is HETATM -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Add a group that is an alternate location for this group.void
Add an atom to this group.void
Remove all atoms from this group.clone()
returns and identical copy of this Group object .protected void
cloneAtomsAndBonds
(Group newGroup) getAltLocGroup
(Character altLoc) Gets the alternate location group to this group that has the alt-loc character code passed.Get the list of other alternate location groups.getAtom
(int position) Get at atom by position.Get an atom given its PDB name.getAtoms()
Get list of atoms.getChain()
Returns the parent Chain of the Group.Utility method for returning the chainId of the Group or null if no Chain has been set.Get the chemical component that closer describes this group.long
getId()
the Hibernate database IDGet the PDB 3-letter name for this group.Return properties.getProperty
(String key) Get a single property .Returns a dynamically created ResidueNumber for the group - this contains the chainId, resNum and insCode of the group.getType()
boolean
has3D()
Return true or false, depending if this group has 3D coordinates or not.boolean
Check if this group has alternate location groups.boolean
Calculate if this group has all atoms required for an amino acid backbone.boolean
Tell whether a particular atom exists within this group.boolean
Check if this group is an aminoacid group, from the definition in Chemical Component Dictionaryboolean
Tells whether the group is annotated as HETATM in the file.boolean
Check if this group is a nucleotide group, from the definition in Chemical Component Dictionaryboolean
Check if this group is a polymeric group, from the definition in Chemical Component Dictionaryboolean
isWater()
Determines if this group is water.iterator()
Get an Atom Iterator.void
Set the atoms of this group.void
Sets the back-reference to its parent Chain.void
setChemComp
(ChemComp cc) Set the Chemical Component that closer describes this group.void
setHetAtomInFile
(boolean isHetAtomInFile) Sets the field isHetAtomInFile which is intented only for helping in infering if a polymeric group is in a ligand chain or in a polymeric chain.void
setId
(long id) the Hibernate database IDvoid
setPDBFlag
(boolean flag) Flag if group has 3D data .void
setPDBName
(String s) Set the PDB 3-letter name for this group.void
setProperties
(Map<String, Object> props) Properties of this amino acid.void
setProperty
(String key, Object value) Set a single property .void
setResidueNumber
(String chainId, Integer resNum, Character iCode) Utility method to temporarily set a chainID for a group, if a parent chain object does not exist yet.void
setResidueNumber
(ResidueNumber residueNumber) Sets the ResidueNumber for this Groupint
size()
Get number of atoms.toSDF()
Function to get the Group as an MDL molblocktoString()
void
Attempts to reduce the memory imprint of this group by trimming all internal Collection objects to the required size.
-
Field Details
-
type
The GroupType is HETATM -
pdb_flag
stores if 3d coordinates are available. -
pdb_name
3 letter name of amino acid in pdb file. -
residueNumber
-
atoms
-
chemComp
-
-
Constructor Details
-
HetatomImpl
public HetatomImpl()Construct a Hetatom instance.
-
-
Method Details
-
has3D
Description copied from interface:Group
Return true or false, depending if this group has 3D coordinates or not. -
setPDBFlag
Description copied from interface:Group
Flag if group has 3D data .- Specified by:
setPDBFlag
in interfaceGroup
- Parameters:
flag
- true to set flag that this Group has 3D coordinates
-
setPDBName
Description copied from interface:Group
Set the PDB 3-letter name for this group. (e.g. ALA)- Specified by:
setPDBName
in interfaceGroup
- Parameters:
s
- a String specifying the PDBName value- See Also:
-
getPDBName
Description copied from interface:Group
Get the PDB 3-letter name for this group. (e.g. ALA)- Specified by:
getPDBName
in interfaceGroup
- Returns:
- a String representing the PDBName value
- See Also:
-
addAtom
Add an atom to this group. -
clearAtoms
Description copied from interface:Group
Remove all atoms from this group.- Specified by:
clearAtoms
in interfaceGroup
-
size
Get number of atoms. -
getAtoms
Get list of atoms. -
setAtoms
Set the atoms of this group. -
getAtom
Get an atom given its PDB name. Beware that some PDB atom names are ambiguous (e.g. CA, which means C-alpha or Calcium), ambiguities should not occur within the same group though. To solve these ambiguities one would need to check the atom returned for the required element withAtom.getElement()
Note this method will return only the atom in the default alternative location (be it '.' or a letter).
-
getAtom
Get at atom by position. -
hasAtom
Tell whether a particular atom exists within this group. Beware that some PDB atom names are ambiguous (e.g. CA, which means C-alpha or Calcium), ambiguities should not occur within the same group though. -
getType
-
toString
-
hasAminoAtoms
Calculate if this group has all atoms required for an amino acid backbone. This allows to include chemically modified amino acids that are labeled hetatoms into some computations, the usual way to identify if a group is an amino acid isGroup.getType()
amino atoms are : N, CA, C, O
Example: 1DW9 chain A first group is a Selenomethionine, provided as HETATM, but here returns true.HETATM 1 N MSE A 1 11.720 20.973 1.584 0.00 0.00 N HETATM 2 CA MSE A 1 10.381 20.548 1.139 0.00 0.00 C HETATM 3 C MSE A 1 9.637 20.037 2.398 0.00 0.00 C HETATM 4 O MSE A 1 10.198 19.156 2.985 0.00 0.00 O HETATM 5 CB MSE A 1 10.407 19.441 0.088 0.00 0.00 C
- Specified by:
hasAminoAtoms
in interfaceGroup
- Returns:
- true if all Atoms required for an AminoAcid are available (N, CA, C, O)
- See Also:
-
isPolymeric
Description copied from interface:Group
Check if this group is a polymeric group, from the definition in Chemical Component Dictionary- Specified by:
isPolymeric
in interfaceGroup
- Returns:
- true if a polymeric group
-
isAminoAcid
Description copied from interface:Group
Check if this group is an aminoacid group, from the definition in Chemical Component Dictionary- Specified by:
isAminoAcid
in interfaceGroup
- Returns:
- true if an amino acid
-
isNucleotide
Description copied from interface:Group
Check if this group is a nucleotide group, from the definition in Chemical Component Dictionary- Specified by:
isNucleotide
in interfaceGroup
- Returns:
- true if a nucleotide
-
setProperties
Properties of this amino acid. Currently available properties are: phi psi secstruc- Specified by:
setProperties
in interfaceGroup
- Parameters:
props
- a Map object specifying the properties value- See Also:
-
getProperties
Description copied from interface:Group
Return properties.- Specified by:
getProperties
in interfaceGroup
- Returns:
- a HashMap object representing the properties value
- See Also:
-
setProperty
Description copied from interface:Group
Set a single property .- Specified by:
setProperty
in interfaceGroup
- Parameters:
key
- a Stringvalue
- an Object- See Also:
-
getProperty
Description copied from interface:Group
Get a single property .- Specified by:
getProperty
in interfaceGroup
- Parameters:
key
- a String- Returns:
- an Object
- See Also:
-
iterator
Description copied from interface:Group
Get an Atom Iterator. -
clone
returns and identical copy of this Group object . -
cloneAtomsAndBonds
-
getId
the Hibernate database ID- Returns:
- the id
-
setId
the Hibernate database ID- Parameters:
id
- the hibernate id
-
getChemComp
Description copied from interface:Group
Get the chemical component that closer describes this group. If the information does not exist yet, fetches the information from PDB web site.- Specified by:
getChemComp
in interfaceGroup
- Returns:
- the Chemical Component definition for this Group.
-
setChemComp
Description copied from interface:Group
Set the Chemical Component that closer describes this group.- Specified by:
setChemComp
in interfaceGroup
- Parameters:
cc
- the chemical component
-
setChain
Sets the back-reference to its parent Chain. -
getChain
Returns the parent Chain of the Group. -
getChainId
Utility method for returning the chainId of the Group or null if no Chain has been set. This is equivalent to calling getChain().getId() Prior to version 5.0 this method returned the chain name.- Specified by:
getChainId
in interfaceGroup
- Returns:
- the ID of the chain
-
getResidueNumber
Returns a dynamically created ResidueNumber for the group - this contains the chainId, resNum and insCode of the group.- Specified by:
getResidueNumber
in interfaceGroup
- Returns:
- ResidueNumber for the group.
- See Also:
-
setResidueNumber
Description copied from interface:Group
Sets the ResidueNumber for this Group- Specified by:
setResidueNumber
in interfaceGroup
- Parameters:
residueNumber
- the PDB residueNumber
-
setResidueNumber
Description copied from interface:Group
Utility method to temporarily set a chainID for a group, if a parent chain object does not exist yet. Not recommended for general use other than parsing.- Specified by:
setResidueNumber
in interfaceGroup
- Parameters:
chainId
-resNum
-iCode
-
-
hasAltLoc
Description copied from interface:Group
Check if this group has alternate location groups. -
getAltLocs
Description copied from interface:Group
Get the list of other alternate location groups.The main group (this group) will contain the first altloc (be it the default '.' or 'A' or a mix of '.' and 'A').
This method will return the altloc groups that are not the main group, e.g.:
- if '.' (default), 'A' and 'B' altlocs are present in file, the main group will contain the default '.' and this method will return 2 altloc groups
- if 'A' and 'B' are present in file without a default '.' group, then the main group will contain the 'A' location whilst this method will return only 1 altloc group with the 'B' location
Note that atoms with the default altloc (.) are included in all groups. Atoms with other altlocs (typically A, B, etc) will be sorted into groups by altloc.
Thus it can happen that an altloc group duplicate the contents of the main group.
- Specified by:
getAltLocs
in interfaceGroup
- Returns:
- List of other groups that are on alternate locations
-
getAltLocGroup
Description copied from interface:Group
Gets the alternate location group to this group that has the alt-loc character code passed.- Specified by:
getAltLocGroup
in interfaceGroup
- Parameters:
altLoc
- the alternate location code of the group desired- Returns:
- the alternate location group if found, or null otherwise
-
addAltLoc
Description copied from interface:Group
Add a group that is an alternate location for this group. -
isWater
Description copied from interface:Group
Determines if this group is water. -
trimToSize
Description copied from interface:Group
Attempts to reduce the memory imprint of this group by trimming all internal Collection objects to the required size.- Specified by:
trimToSize
in interfaceGroup
-
toSDF
Description copied from interface:Group
Function to get the Group as an MDL molblock -
isHetAtomInFile
Description copied from interface:Group
Tells whether the group is annotated as HETATM in the file. To be used only at parsing time to be able to infer that a polymeric group is in a ligand chain or not.- Specified by:
isHetAtomInFile
in interfaceGroup
- Returns:
-
setHetAtomInFile
Description copied from interface:Group
Sets the field isHetAtomInFile which is intented only for helping in infering if a polymeric group is in a ligand chain or in a polymeric chain.- Specified by:
setHetAtomInFile
in interfaceGroup
- Parameters:
isHetAtomInFile
-
-