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
public class HetatomImpl extends Object implements Group
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:
 AminoAcidImpl,NucleotideImpl, Serialized Form
 
- 
- 
Nested Class Summary
Nested Classes Modifier and Type Class Description static classHetatomImpl.PerformanceBehaviorBehaviors for how to balance memory vs. performance. 
- 
Field Summary
Fields Modifier and Type Field Description protected List<Atom>atomsprotected ChemCompchemCompprotected booleanpdb_flagstores if 3d coordinates are available.protected Stringpdb_name3 letter name of amino acid in pdb file.static HetatomImpl.PerformanceBehaviorperformanceBehaviorprotected ResidueNumberresidueNumberstatic GroupTypetypeThe GroupType is HETATM 
- 
Constructor Summary
Constructors Constructor Description HetatomImpl()Construct a Hetatom instance. 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddAltLoc(Group group)Add a group that is an alternate location for this group.voidaddAtom(Atom atom)Add an atom to this group.voidclearAtoms()remove all atomsObjectclone()returns and identical copy of this Group object .protected voidcloneAtomsAndBonds(Group newGroup)GroupgetAltLocGroup(Character altLoc)Gets the alternate location group to this group that has the alt-loc character code passed.List<Group>getAltLocs()Get the list of other alternate location groups.AtomgetAtom(int position)Get at atom by position.AtomgetAtom(String name)Get an atom given its PDB name.List<Atom>getAtoms()Get list of atoms.ChaingetChain()Returns the parent Chain of the Group.StringgetChainId()Utility method for returning the chainId of the Group or null if no Chain has been set.ChemCompgetChemComp()Get the chemical component that closer describes this group.longgetId()the Hibernate database IDStringgetPDBName()Returns the PDBName.Map<String,Object>getProperties()return properties.ObjectgetProperty(String key)get a single property .ResidueNumbergetResidueNumber()Returns a dynamically created ResidueNumber for the group - this contains the chainId, resNum and insCode of the group.GroupTypegetType()booleanhas3D()returns true or false, depending if this group has 3D coordinates or not.booleanhasAltLoc()Check if this group has alternate location groups.booleanhasAminoAtoms()Calculate if this group has all atoms required for an amino acid backbone.booleanhasAtom(String fullName)Tell whether a particular atom exists within this group.booleanisAminoAcid()Check if this group is an aminoacid group, from the definition in Chemical Component DictionarybooleanisHetAtomInFile()Tells whether the group is annotated as HETATM in the file.booleanisNucleotide()Check if this group is a nucleotide group, from the definition in Chemical Component DictionarybooleanisPolymeric()Check if this group is a polymeric group, from the definition in Chemical Component DictionarybooleanisWater()Determines if this group is water.Iterator<Atom>iterator()return an AtomIterator.voidsetAtoms(List<Atom> atoms)Set the atoms of this group.voidsetChain(Chain chain)Sets the back-reference to its parent Chain.voidsetChemComp(ChemComp cc)Set the Chemical Component that closer describes this group.voidsetHetAtomInFile(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.voidsetId(long id)the Hibernate database IDvoidsetPDBFlag(boolean flag)flag if group has 3D data.voidsetPDBName(String s)Set three character name of Group .voidsetProperties(Map<String,Object> props)Properties of this amino acid.voidsetProperty(String key, Object value)set a single property .voidsetResidueNumber(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.voidsetResidueNumber(ResidueNumber residueNumber)Sets the ResidueNumber for this Groupintsize()Get number of atoms.StringtoSDF()Function to get the Group as an MDL molblockStringtoString()voidtrimToSize()attempts to reduce the memory imprint of this group by trimming all internal Collection objects to the required size. 
 - 
 
- 
- 
Field Detail
- 
pdb_flag
protected boolean pdb_flag
stores if 3d coordinates are available. 
- 
residueNumber
protected ResidueNumber residueNumber
 
- 
performanceBehavior
public static HetatomImpl.PerformanceBehavior performanceBehavior
 
 - 
 
- 
Constructor Detail
- 
HetatomImpl
public HetatomImpl()
Construct a Hetatom instance. 
 - 
 
- 
Method Detail
- 
has3D
public boolean has3D()
returns true or false, depending if this group has 3D coordinates or not. 
- 
setPDBFlag
public void setPDBFlag(boolean flag)
flag if group has 3D data.- Specified by:
 setPDBFlagin interfaceGroup- Parameters:
 flag- true to set flag that this Group has 3D coordinates
 
- 
setPDBName
public void setPDBName(String s)
Set three character name of Group .- Specified by:
 setPDBNamein interfaceGroup- Parameters:
 s- a String specifying the PDBName value- See Also:
 getPDBName()
 
- 
getPDBName
public String getPDBName()
Returns the PDBName.- Specified by:
 getPDBNamein interfaceGroup- Returns:
 - a String representing the PDBName value
 - See Also:
 setPDBName(java.lang.String)
 
- 
clearAtoms
public void clearAtoms()
remove all atoms- Specified by:
 clearAtomsin interfaceGroup
 
- 
size
public int size()
Get number of atoms. 
- 
getAtoms
public List<Atom> getAtoms()
Get list of atoms.- Specified by:
 getAtomsin interfaceGroup- Returns:
 - a List object representing the atoms
 - See Also:
 Group.setAtoms(List)
 
- 
getAtom
public Atom getAtom(String name)
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() 
- 
hasAtom
public boolean hasAtom(String fullName)
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. 
- 
hasAminoAtoms
public boolean 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:
 hasAminoAtomsin interfaceGroup- Returns:
 - true if all Atoms required for an AminoAcid are available (N, CA, C, O)
 - See Also:
 Group.getType()
 
- 
isPolymeric
public boolean isPolymeric()
Description copied from interface:GroupCheck if this group is a polymeric group, from the definition in Chemical Component Dictionary- Specified by:
 isPolymericin interfaceGroup- Returns:
 - true if a polymeric group
 
 
- 
isAminoAcid
public boolean isAminoAcid()
Description copied from interface:GroupCheck if this group is an aminoacid group, from the definition in Chemical Component Dictionary- Specified by:
 isAminoAcidin interfaceGroup- Returns:
 - true if an amino acid
 
 
- 
isNucleotide
public boolean isNucleotide()
Description copied from interface:GroupCheck if this group is a nucleotide group, from the definition in Chemical Component Dictionary- Specified by:
 isNucleotidein interfaceGroup- Returns:
 - true if a nucleotide
 
 
- 
setProperties
public void setProperties(Map<String,Object> props)
Properties of this amino acid. Currently available properties are: phi psi secstruc- Specified by:
 setPropertiesin interfaceGroup- Parameters:
 props- a Map object specifying the properties value- See Also:
 Group.getProperties()
 
- 
getProperties
public Map<String,Object> getProperties()
return properties.- Specified by:
 getPropertiesin interfaceGroup- Returns:
 - a HashMap object representing the properties value
 - See Also:
 setProperties(java.util.Map<java.lang.String, java.lang.Object>)
 
- 
setProperty
public void setProperty(String key, Object value)
set a single property .- Specified by:
 setPropertyin interfaceGroup- Parameters:
 key- a Stringvalue- an Object- See Also:
 getProperties(),getProperty(java.lang.String)
 
- 
getProperty
public Object getProperty(String key)
get a single property .- Specified by:
 getPropertyin interfaceGroup- Parameters:
 key- a String- Returns:
 - an Object
 - See Also:
 setProperty(java.lang.String, java.lang.Object),setProperties(java.util.Map<java.lang.String, java.lang.Object>)
 
- 
cloneAtomsAndBonds
protected void cloneAtomsAndBonds(Group newGroup)
 
- 
getId
public long getId()
the Hibernate database ID- Returns:
 - the id
 
 
- 
setId
public void setId(long id)
the Hibernate database ID- Parameters:
 id- the hibernate id
 
- 
getChemComp
public ChemComp getChemComp()
Description copied from interface:GroupGet the chemical component that closer describes this group. If the information does not exist yet, fetches the information from PDB web site.- Specified by:
 getChemCompin interfaceGroup- Returns:
 - the Chemical Component definition for this Group.
 
 
- 
setChemComp
public void setChemComp(ChemComp cc)
Description copied from interface:GroupSet the Chemical Component that closer describes this group.- Specified by:
 setChemCompin interfaceGroup- Parameters:
 cc- the chemical component
 
- 
setChain
public void setChain(Chain chain)
Sets the back-reference to its parent Chain.- Specified by:
 setChainin interfaceGroup- Parameters:
 chain- the parent Chain- See Also:
 Group.getChain()
 
- 
getChain
public Chain getChain()
Returns the parent Chain of the Group.- Specified by:
 getChainin interfaceGroup- Returns:
 - Chain the Chain object that contains the Group
 - See Also:
 Group.setChain(Chain)
 
- 
getChainId
public String 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:
 getChainIdin interfaceGroup- Returns:
 - the ID of the chain
 
 
- 
getResidueNumber
public ResidueNumber getResidueNumber()
Returns a dynamically created ResidueNumber for the group - this contains the chainId, resNum and insCode of the group.- Specified by:
 getResidueNumberin interfaceGroup- Returns:
 - ResidueNumber for the group.
 - See Also:
 ResidueNumber
 
- 
setResidueNumber
public void setResidueNumber(ResidueNumber residueNumber)
Description copied from interface:GroupSets the ResidueNumber for this Group- Specified by:
 setResidueNumberin interfaceGroup- Parameters:
 residueNumber- the PDB residueNumber
 
- 
setResidueNumber
public void setResidueNumber(String chainId, Integer resNum, Character iCode)
Description copied from interface:GroupUtility 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:
 setResidueNumberin interfaceGroup
 
- 
hasAltLoc
public boolean hasAltLoc()
Description copied from interface:GroupCheck if this group has alternate location groups.- Specified by:
 hasAltLocin interfaceGroup- Returns:
 - boolean flag if there are alternate locations.
 - See Also:
 Group.getAltLocs()
 
- 
getAltLocs
public List<Group> getAltLocs()
Description copied from interface:GroupGet 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:
 getAltLocsin interfaceGroup- Returns:
 - List of other groups that are on alternate locations
 
 
- 
getAltLocGroup
public Group getAltLocGroup(Character altLoc)
Description copied from interface:GroupGets the alternate location group to this group that has the alt-loc character code passed.- Specified by:
 getAltLocGroupin interfaceGroup- Parameters:
 altLoc- the alternate location code of the group desired- Returns:
 - the alternate location group if found, or null otherwise
 
 
- 
addAltLoc
public void addAltLoc(Group group)
Description copied from interface:GroupAdd a group that is an alternate location for this group. 
- 
isWater
public boolean isWater()
Description copied from interface:GroupDetermines if this group is water.- Specified by:
 isWaterin interfaceGroup- Returns:
 - true if it's water, false otherwise.
 - See Also:
 GroupType.WATERNAMES
 
- 
trimToSize
public void trimToSize()
attempts to reduce the memory imprint of this group by trimming all internal Collection objects to the required size.- Specified by:
 trimToSizein interfaceGroup
 
- 
toSDF
public String toSDF()
Description copied from interface:GroupFunction to get the Group as an MDL molblock 
- 
isHetAtomInFile
public boolean isHetAtomInFile()
Description copied from interface:GroupTells 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:
 isHetAtomInFilein interfaceGroup- Returns:
 
 
- 
setHetAtomInFile
public void setHetAtomInFile(boolean isHetAtomInFile)
Description copied from interface:GroupSets 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:
 setHetAtomInFilein interfaceGroup
 
 - 
 
 -