Package org.openscience.cdk
Class Atom
java.lang.Object
org.openscience.cdk.ChemObject
org.openscience.cdk.Element
org.openscience.cdk.Isotope
org.openscience.cdk.AtomType
org.openscience.cdk.Atom
- All Implemented Interfaces:
Serializable,Cloneable,IAtom,IAtomType,ICDKObject,IChemObject,IElement,IIsotope
- Direct Known Subclasses:
DebugAtom,PDBAtom,PharmacophoreAtom,PharmacophoreQueryAtom,PseudoAtom
Represents the idea of an chemical atom.
An Atom class is instantiated with at least the atom symbol:
Atom a = new Atom("C");
Once instantiated all field not filled by passing parameters to the constructor are null. Atoms can be configured by using the IsotopeFactory.configure() method:
IsotopeFactory if = IsotopeFactory.getInstance(a.getNewBuilder()); if.configure(a);
More examples about using this class can be found in the Junit test for this class.
- Author:
- steinbeck
- See Also:
- Keywords:
- atom
- Created on:
- 2000-10-02
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.openscience.cdk.interfaces.IAtomType
IAtomType.Hybridization -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected DoubleThe partial charge of the atom.protected javax.vecmath.Point3dA 3 point specifying the location of this atom in a crystal unit cell.protected IntegerThe number of implicitly bound hydrogen atoms for this atom.protected javax.vecmath.Point2dA 2D point specifying the location of this atom in a 2D coordinate space.protected javax.vecmath.Point3dA 3 point specifying the location of this atom in a 3D coordinate space.protected IntegerA stereo parity descriptor for the stereochemistry of this atom.Fields inherited from class org.openscience.cdk.AtomType
electronValency, formalCharge, formalNeighbourCount, hybridizationFields inherited from class org.openscience.cdk.Isotope
exactMass, naturalAbundanceFields inherited from class org.openscience.cdk.Element
atomicNumberFields inherited from interface org.openscience.cdk.interfaces.IChemObject
ALIPHATIC, AROMATIC, CONJUGATED, HYDROGEN_BOND_ACCEPTOR, HYDROGEN_BOND_DONOR, IN_RING, MAPPED, MARKUSH, NOT_IN_RING, PLACED, REACTIVE_CENTER, SINGLE_OR_DOUBLE, TYPEABLE, VISITEDFields inherited from interface org.openscience.cdk.interfaces.IElement
Ac, Ag, Al, Am, Ar, As, At, Au, B, Ba, Be, Bh, Bi, Bk, Br, C, Ca, Cd, Ce, Cf, Cl, Cm, Cn, Co, Cr, Cs, Cu, Db, Ds, Dy, Er, Es, Eu, F, Fe, Fl, Fm, Fr, Ga, Gd, Ge, H, He, Hf, Hg, Ho, Hs, I, In, Ir, K, Kr, La, Li, Lr, Lu, Lv, Mc, Md, Mg, Mn, Mo, Mt, N, Na, Nb, Nd, Ne, Nh, Ni, No, Np, O, Og, Os, P, Pa, Pb, Pd, Pm, Po, Pr, Pt, Pu, Ra, Rb, Re, Rf, Rg, Rh, Rn, Ru, S, Sb, Sc, Se, Sg, Si, Sm, Sn, Sr, Ta, Tb, Tc, Te, Th, Ti, Tl, Tm, Ts, U, V, W, Wildcard, Xe, Y, Yb, Zn, Zr -
Constructor Summary
ConstructorsConstructorDescriptionAtom()Constructs an completely unset Atom.Atom(int elem) Create a new atom with of the specified element.Atom(int elem, int hcnt) Create a new atom with of the specified element and hydrogen count.Atom(int elem, int hcnt, int fchg) Create a new atom with of the specified element, hydrogen count, and formal charge.Constructs an Atom from a string containing an element symbol and optionally the atomic mass, hydrogen count, and formal charge.Constructs an Atom from an Element and a Point2d.Constructs an Atom from an Element and a Point3d.Constructs an isotope by copying the symbol, atomic number, flags, identifier, exact mass, natural abundance, mass number, maximum bond order, bond order sum, van der Waals and covalent radii, formal charge, hybridization, electron valency, formal neighbour count and atom type name from the given IAtomType.Constructs an isotope by copying the symbol, atomic number, flags, identifier, exact mass, natural abundance, mass number, maximum bond order, bond order sum, van der Waals and covalent radii, formal charge, hybridization, electron valency, formal neighbour count and atom type name from the given IAtomType. -
Method Summary
Modifier and TypeMethodDescriptionbonds()Returns the bonds connected to this atom.clone()Clones this atom object and its content.booleanCompares a atom with this atom.booleanReturns the bond connecting 'this' atom to the provided atom.intGet the number of explicit bonds connected to this atom.Returns the partial charge of this atom.Access theIAtomContainerof which this atom is a member of.javax.vecmath.Point3dReturns a point specifying the location of this atom in a Crystal unit cell.Returns the hydrogen count of this atom.intgetIndex()Acces the index of an atom in the context of anIAtomContainer.intAccess the map index for this atom.javax.vecmath.Point2dReturns a point specifying the location of this atom in a 2D space.javax.vecmath.Point3dReturns a point specifying the location of this atom in a 3D space.Returns the stereo parity of this atom.inthashCode()voidSets the partial charge of this atom.voidsetFractionalPoint3d(javax.vecmath.Point3d point3d) Sets a point specifying the location of this atom in a Crystal unit cell.voidsetImplicitHydrogenCount(Integer hydrogenCount) Sets the number of implicit hydrogen count of this atom.voidsetMapIdx(int mapidx) Set the map index for this atom.voidsetPoint2d(javax.vecmath.Point2d point2d) Sets a point specifying the location of this atom in a 2D space.voidsetPoint3d(javax.vecmath.Point3d point3d) Sets a point specifying the location of this atom in 3D space.voidsetStereoParity(Integer stereoParity) Sets the stereo parity for this atom.toString()Returns a one line string representation of this Atom.Methods inherited from class org.openscience.cdk.AtomType
getAtomTypeName, getBondOrderSum, getCovalentRadius, getFormalCharge, getFormalNeighbourCount, getHybridization, getMaxBondOrder, getValency, setAtomTypeName, setBondOrderSum, setCovalentRadius, setFormalCharge, setFormalNeighbourCount, setHybridization, setMaxBondOrder, setValencyMethods inherited from class org.openscience.cdk.Isotope
getExactMass, getMassNumber, getNaturalAbundance, setExactMass, setMassNumber, setNaturalAbundanceMethods inherited from class org.openscience.cdk.Element
getAtomicNumber, getSymbol, setAtomicNumber, setSymbolMethods inherited from class org.openscience.cdk.ChemObject
addListener, addProperties, clear, flags, getBuilder, getFlag, getFlags, getFlagValue, getID, getListenerCount, getNotification, getProperties, getProperty, getProperty, is, notifyChanged, notifyChanged, removeListener, removeProperty, set, setFlag, setFlags, setID, setNotification, setProperties, setProperty, shallowCopyMethods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.openscience.cdk.interfaces.IAtom
getTotalHydrogenCount, isAromatic, isInRing, neighbors, setIsAromatic, setIsInRingMethods inherited from interface org.openscience.cdk.interfaces.IAtomType
getAtomTypeName, getBondOrderSum, getCovalentRadius, getFormalCharge, getFormalNeighbourCount, getHybridization, getMaxBondOrder, getValency, setAtomTypeName, setBondOrderSum, setCovalentRadius, setFormalCharge, setFormalNeighbourCount, setHybridization, setMaxBondOrder, setValencyMethods inherited from interface org.openscience.cdk.interfaces.ICDKObject
getBuilderMethods inherited from interface org.openscience.cdk.interfaces.IChemObject
addListener, addProperties, clear, flags, getFlag, getFlags, getFlagValue, getID, getListenerCount, getNotification, getProperties, getProperty, getProperty, is, notifyChanged, notifyChanged, removeListener, removeProperty, set, setFlag, setFlags, setID, setNotification, setProperties, setPropertyMethods inherited from interface org.openscience.cdk.interfaces.IElement
getAtomicNumber, getSymbol, setAtomicNumber, setSymbolMethods inherited from interface org.openscience.cdk.interfaces.IIsotope
getExactMass, getMassNumber, getNaturalAbundance, setExactMass, setMassNumber, setNaturalAbundance
-
Field Details
-
point2d
protected javax.vecmath.Point2d point2dA 2D point specifying the location of this atom in a 2D coordinate space. -
point3d
protected javax.vecmath.Point3d point3dA 3 point specifying the location of this atom in a 3D coordinate space. -
fractionalPoint3d
protected javax.vecmath.Point3d fractionalPoint3dA 3 point specifying the location of this atom in a crystal unit cell. -
hydrogenCount
The number of implicitly bound hydrogen atoms for this atom. -
stereoParity
A stereo parity descriptor for the stereochemistry of this atom. -
charge
The partial charge of the atom. The default value isCDKConstants.UNSETand serves to provide a check whether the charge has been set or not
-
-
Constructor Details
-
Atom
public Atom()Constructs an completely unset Atom. -
Atom
public Atom(int elem) Create a new atom with of the specified element.- Parameters:
elem- atomic number
-
Atom
public Atom(int elem, int hcnt) Create a new atom with of the specified element and hydrogen count.- Parameters:
elem- atomic numberhcnt- hydrogen count
-
Atom
public Atom(int elem, int hcnt, int fchg) Create a new atom with of the specified element, hydrogen count, and formal charge.- Parameters:
elem- atomic numberhcnt- hydrogen countfchg- formal charge
-
Atom
Constructs an Atom from a string containing an element symbol and optionally the atomic mass, hydrogen count, and formal charge. The symbol grammar allows easy construction from common symbols, for example:new Atom("NH+"); // nitrogen cation with one hydrogen new Atom("OH"); // hydroxy new Atom("O-"); // oxygen anion new Atom("13CH3"); // methyl isotope 13atom := {mass}? {symbol} {hcnt}? {fchg}? mass := \d+ hcnt := 'H' \d+ fchg := '+' \d+? | '-' \d+?- Parameters:
symbol- string with the element symbol
-
Atom
Constructs an Atom from an Element and a Point3d.- Parameters:
elementSymbol- The symbol of the atompoint3d- The 3D coordinates of the atom
-
Atom
Constructs an Atom from an Element and a Point2d.- Parameters:
elementSymbol- The Elementpoint2d- The Point
-
Atom
Constructs an isotope by copying the symbol, atomic number, flags, identifier, exact mass, natural abundance, mass number, maximum bond order, bond order sum, van der Waals and covalent radii, formal charge, hybridization, electron valency, formal neighbour count and atom type name from the given IAtomType. It does not copy the listeners and properties. If the element is an instance of IAtom, then the 2D, 3D and fractional coordinates, partial atomic charge, hydrogen count and stereo parity are copied too.- Parameters:
element- IAtomType to copy information from
-
Atom
Constructs an isotope by copying the symbol, atomic number, flags, identifier, exact mass, natural abundance, mass number, maximum bond order, bond order sum, van der Waals and covalent radii, formal charge, hybridization, electron valency, formal neighbour count and atom type name from the given IAtomType. It does not copy the listeners and properties. If the element is an instance of IAtom, then the 2D, 3D and fractional coordinates, partial atomic charge, hydrogen count and stereo parity are copied too.- Parameters:
org- IAtomType to copy information from
-
-
Method Details
-
getContainer
Access theIAtomContainerof which this atom is a member of. Because atoms can be in multiple molecules this method will only work if the atom has been accessed in the context of anIAtomContainer, for example:IAtomContainer mol = new AtomContainer(); IAtom atom = new Atom(6); atom.getContainer(); // null mol.add(atom); atom.getContainer(); // still null mol.getAtom(0).getContainer(); // not-null, returns 'mol'- Specified by:
getContainerin interfaceIAtom- Returns:
- the atom container or null if not accessed in the context of a container
-
getIndex
public int getIndex()Acces the index of an atom in the context of anIAtomContainer. If the index is not known, < 0 is returned. -
bonds
Returns the bonds connected to this atom. If the bonds are not known an exception is thrown. This method will only throw an exception ifIAtom.getIndex()returns < 0 orIAtom.getContainer()returns null.IAtom atom = ...; if (atom.getIndex() >= 0) { for (IBond bond : atom.bonds()) { } } if (atom.getContainer() != null) { for (IBond bond : atom.bonds()) { } } IAtomContainer mol = ...; // guaranteed not throw an exception for (IBond bond : mol.getAtom(i).bonds()) { } -
getBondCount
public int getBondCount()Get the number of explicit bonds connected to this atom.- Specified by:
getBondCountin interfaceIAtom- Returns:
- the total bond count
-
getBond
Returns the bond connecting 'this' atom to the provided atom. If the atoms are not bonded, null is returned. -
setCharge
Sets the partial charge of this atom. -
getCharge
Returns the partial charge of this atom. If the charge has not been set the return value is Double.NaN -
setImplicitHydrogenCount
Sets the number of implicit hydrogen count of this atom.- Specified by:
setImplicitHydrogenCountin interfaceIAtom- Parameters:
hydrogenCount- The number of hydrogen atoms bonded to this atom.- See Also:
-
getImplicitHydrogenCount
Returns the hydrogen count of this atom.- Specified by:
getImplicitHydrogenCountin interfaceIAtom- Returns:
- The hydrogen count of this atom.
- See Also:
-
setPoint2d
public void setPoint2d(javax.vecmath.Point2d point2d) Sets a point specifying the location of this atom in a 2D space.- Specified by:
setPoint2din interfaceIAtom- Parameters:
point2d- A point in a 2D plane- See Also:
-
setPoint3d
public void setPoint3d(javax.vecmath.Point3d point3d) Sets a point specifying the location of this atom in 3D space.- Specified by:
setPoint3din interfaceIAtom- Parameters:
point3d- A point in a 3-dimensional space- See Also:
-
setFractionalPoint3d
public void setFractionalPoint3d(javax.vecmath.Point3d point3d) Sets a point specifying the location of this atom in a Crystal unit cell.- Specified by:
setFractionalPoint3din interfaceIAtom- Parameters:
point3d- A point in a 3d fractional unit cell space- See Also:
-
setStereoParity
Sets the stereo parity for this atom.- Specified by:
setStereoParityin interfaceIAtom- Parameters:
stereoParity- The stereo parity for this atom- See Also:
-
getPoint2d
public javax.vecmath.Point2d getPoint2d()Returns a point specifying the location of this atom in a 2D space.- Specified by:
getPoint2din interfaceIAtom- Returns:
- A point in a 2D plane. Null if unset.
- See Also:
-
getPoint3d
public javax.vecmath.Point3d getPoint3d()Returns a point specifying the location of this atom in a 3D space.- Specified by:
getPoint3din interfaceIAtom- Returns:
- A point in 3-dimensional space. Null if unset.
- See Also:
-
getFractionalPoint3d
public javax.vecmath.Point3d getFractionalPoint3d()Returns a point specifying the location of this atom in a Crystal unit cell.- Specified by:
getFractionalPoint3din interfaceIAtom- Returns:
- A point in 3d fractional unit cell space. Null if unset.
- See Also:
-
getStereoParity
Returns the stereo parity of this atom. It uses the predefined values found in CDKConstants.- Specified by:
getStereoParityin interfaceIAtom- Returns:
- The stereo parity for this atom
- See Also:
-
compare
Compares a atom with this atom. -
getMapIdx
public int getMapIdx()Description copied from interface:IAtomAccess the map index for this atom. -
setMapIdx
public void setMapIdx(int mapidx) Description copied from interface:IAtomSet the map index for this atom. -
toString
Returns a one line string representation of this Atom. Methods is conform RFC #9.- Specified by:
toStringin interfaceIChemObject- Overrides:
toStringin classAtomType- Returns:
- The string representation of this Atom
-
clone
Clones this atom object and its content.- Specified by:
clonein interfaceIAtom- Specified by:
clonein interfaceIChemObject- Overrides:
clonein classAtomType- Returns:
- The cloned object
- Throws:
CloneNotSupportedException- if the IChemObject cannot be cloned
-
hashCode
public int hashCode() -
equals
-