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:
  • Field Details

  • Constructor Details

    • HetatomImpl

      public HetatomImpl()
      Construct a Hetatom instance.
  • Method Details

    • has3D

      public boolean has3D()
      Description copied from interface: Group
      Return true or false, depending if this group has 3D coordinates or not.
      Specified by:
      has3D in interface Group
      Returns:
      true if Group has 3D coordinates
    • setPDBFlag

      public void setPDBFlag(boolean flag)
      Description copied from interface: Group
      Flag if group has 3D data .
      Specified by:
      setPDBFlag in interface Group
      Parameters:
      flag - true to set flag that this Group has 3D coordinates
    • setPDBName

      public void setPDBName(String s)
      Description copied from interface: Group
      Set the PDB 3-letter name for this group. (e.g. ALA)
      Specified by:
      setPDBName in interface Group
      Parameters:
      s - a String specifying the PDBName value
      See Also:
    • getPDBName

      public String getPDBName()
      Description copied from interface: Group
      Get the PDB 3-letter name for this group. (e.g. ALA)
      Specified by:
      getPDBName in interface Group
      Returns:
      a String representing the PDBName value
      See Also:
    • addAtom

      public void addAtom(Atom atom)
      Add an atom to this group.
      Specified by:
      addAtom in interface Group
      Parameters:
      atom - an Atom object
    • clearAtoms

      public void clearAtoms()
      Description copied from interface: Group
      Remove all atoms from this group.
      Specified by:
      clearAtoms in interface Group
    • size

      public int size()
      Get number of atoms.
      Specified by:
      size in interface Group
      Returns:
      number of atoms of this Group
    • getAtoms

      public List<Atom> getAtoms()
      Get list of atoms.
      Specified by:
      getAtoms in interface Group
      Returns:
      a List object representing the atoms
      See Also:
    • setAtoms

      public void setAtoms(List<Atom> atoms)
      Set the atoms of this group.
      Specified by:
      setAtoms in interface Group
      Parameters:
      atoms - a list of atoms
      See Also:
    • 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 with Atom.getElement()

      Note this method will return only the atom in the default alternative location (be it '.' or a letter).

      Specified by:
      getAtom in interface Group
      Parameters:
      name - a trimmed String representing the atom's PDB name, e.g. "CA"
      Returns:
      an Atom object or null if no such atom exists within this group
    • getAtom

      public Atom getAtom(int position)
      Get at atom by position.
      Specified by:
      getAtom in interface Group
      Parameters:
      position - an int
      Returns:
      an Atom object or null if no Atom exists for given position
    • 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.
      Specified by:
      hasAtom in interface Group
      Parameters:
      fullName - a trimmed String representing the atom's PDB name, e.g. "CA"
      Returns:
      true if Atom with name exists within this group
    • getType

      public GroupType getType()
      Specified by:
      getType in interface Group
      Returns:
      a String representing the type value
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • 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 is Group.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 interface Group
      Returns:
      true if all Atoms required for an AminoAcid are available (N, CA, C, O)
      See Also:
    • isPolymeric

      public boolean 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 interface Group
      Returns:
      true if a polymeric group
    • isAminoAcid

      public boolean 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 interface Group
      Returns:
      true if an amino acid
    • isNucleotide

      public boolean 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 interface Group
      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:
      setProperties in interface Group
      Parameters:
      props - a Map object specifying the properties value
      See Also:
    • getProperties

      Description copied from interface: Group
      Return properties.
      Specified by:
      getProperties in interface Group
      Returns:
      a HashMap object representing the properties value
      See Also:
    • setProperty

      public void setProperty(String key, Object value)
      Description copied from interface: Group
      Set a single property .
      Specified by:
      setProperty in interface Group
      Parameters:
      key - a String
      value - an Object
      See Also:
    • getProperty

      public Object getProperty(String key)
      Description copied from interface: Group
      Get a single property .
      Specified by:
      getProperty in interface Group
      Parameters:
      key - a String
      Returns:
      an Object
      See Also:
    • iterator

      public Iterator<Atom> iterator()
      Description copied from interface: Group
      Get an Atom Iterator.
      Specified by:
      iterator in interface Group
      Returns:
      an Iterator object
    • clone

      public Object clone()
      returns and identical copy of this Group object .
      Specified by:
      clone in interface Group
      Overrides:
      clone in class Object
      Returns:
      and identical copy of this Group 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

      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 interface Group
      Returns:
      the Chemical Component definition for this Group.
    • setChemComp

      public void setChemComp(ChemComp cc)
      Description copied from interface: Group
      Set the Chemical Component that closer describes this group.
      Specified by:
      setChemComp in interface Group
      Parameters:
      cc - the chemical component
    • setChain

      public void setChain(Chain chain)
      Sets the back-reference to its parent Chain.
      Specified by:
      setChain in interface Group
      Parameters:
      chain - the parent Chain
      See Also:
    • getChain

      public Chain getChain()
      Returns the parent Chain of the Group.
      Specified by:
      getChain in interface Group
      Returns:
      Chain the Chain object that contains the Group
      See Also:
    • 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:
      getChainId in interface Group
      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 interface Group
      Returns:
      ResidueNumber for the group.
      See Also:
    • setResidueNumber

      public void setResidueNumber(ResidueNumber residueNumber)
      Description copied from interface: Group
      Sets the ResidueNumber for this Group
      Specified by:
      setResidueNumber in interface Group
      Parameters:
      residueNumber - the PDB residueNumber
    • setResidueNumber

      public void setResidueNumber(String chainId, Integer resNum, Character iCode)
      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 interface Group
      Parameters:
      chainId -
      resNum -
      iCode -
    • hasAltLoc

      public boolean hasAltLoc()
      Description copied from interface: Group
      Check if this group has alternate location groups.
      Specified by:
      hasAltLoc in interface Group
      Returns:
      boolean flag if there are alternate locations.
      See Also:
    • getAltLocs

      public List<Group> 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 interface Group
      Returns:
      List of other groups that are on alternate locations
    • getAltLocGroup

      public Group getAltLocGroup(Character altLoc)
      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 interface Group
      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: Group
      Add a group that is an alternate location for this group.
      Specified by:
      addAltLoc in interface Group
      Parameters:
      group - the altloc group to add
    • isWater

      public boolean isWater()
      Description copied from interface: Group
      Determines if this group is water.
      Specified by:
      isWater in interface Group
      Returns:
      true if it's water, false otherwise.
      See Also:
    • trimToSize

      public void 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 interface Group
    • toSDF

      public String toSDF()
      Description copied from interface: Group
      Function to get the Group as an MDL molblock
      Specified by:
      toSDF in interface Group
      Returns:
      the string of the MDL molblock
    • isHetAtomInFile

      public boolean 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 interface Group
      Returns:
    • setHetAtomInFile

      public void setHetAtomInFile(boolean isHetAtomInFile)
      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 interface Group
      Parameters:
      isHetAtomInFile -