Class QueryAtom

java.lang.Object
org.openscience.cdk.isomorphism.matchers.QueryChemObject
org.openscience.cdk.isomorphism.matchers.QueryAtom
All Implemented Interfaces:
Cloneable, IAtom, IAtomType, ICDKObject, IChemObject, IElement, IIsotope, IQueryAtom
Direct Known Subclasses:
InverseSymbolSetQueryAtom, SMARTSAtom, SymbolAndChargeQueryAtom, SymbolChargeIDQueryAtom, SymbolQueryAtom, SymbolSetQueryAtom

public class QueryAtom extends QueryChemObject implements IQueryAtom
Source code:
main
Belongs to CDK module:
isomorphism
  • Field Details

    • charge

      protected Double charge
      The partial charge of the atom.

      The default value is CDKConstants.UNSET and serves to provide a check whether the charge has been set or not

    • point2d

      protected javax.vecmath.Point2d point2d
      A 2D point specifying the location of this atom in a 2D coordinate space.
    • point3d

      protected javax.vecmath.Point3d point3d
      A 3 point specifying the location of this atom in a 3D coordinate space.
    • fractionalPoint3d

      protected javax.vecmath.Point3d fractionalPoint3d
      A 3 point specifying the location of this atom in a crystal unit cell.
    • hydrogenCount

      protected Integer hydrogenCount
      The number of implicitly bound hydrogen atoms for this atom.
    • stereoParity

      protected Integer stereoParity
      A stereo parity descriptor for the stereochemistry of this atom.
    • formalCharge

      protected Integer formalCharge
      The formal charge of the atom with CDKConstants.UNSET as default. Implements RFC #6.

      Note that some constructors e.g. (AtomType(String) and AtomType(String, String) ) will explicitly set this field to 0

    • hybridization

      protected IAtomType.Hybridization hybridization
      The hybridization state of this atom with CDKConstants.HYBRIDIZATION_UNSET as default.
    • electronValency

      protected Integer electronValency
      The electron Valency of this atom with CDKConstants.UNSET as default.
    • formalNeighbourCount

      protected Integer formalNeighbourCount
      The formal number of neighbours this atom type can have with CDKConstants_UNSET as default. This includes explicitely and implicitely connected atoms, including implicit hydrogens.
    • exactMass

      public Double exactMass
      Exact mass of this isotope.
    • naturalAbundance

      public Double naturalAbundance
      Natural abundance of this isotope.
    • symbol

      protected String symbol
      The element symbol for this element as listed in the periodic table.
    • atomicNumber

      protected Integer atomicNumber
      The atomic number for this element giving their position in the periodic table.
  • Constructor Details

    • QueryAtom

      public QueryAtom(String symbol, IChemObjectBuilder builder)
    • QueryAtom

      public QueryAtom(IChemObjectBuilder builder)
    • QueryAtom

      public QueryAtom(Expr expr)
      Create a new query atom with the given an expression.
      
       // oxygen in a ring
       Expr expr = new Expr(IS_IN_RING);
       expr.and(new Expr(ELEMENT, 8));
       new QueryAtom(expr);
       
      Parameters:
      expr - the expr
    • QueryAtom

      public QueryAtom(Expr.Type type)
      Create a new query atom with the given an predicate expression type.
      
       new QueryAtom(IS_IN_RING);
       
      Parameters:
      type - the expr type
    • QueryAtom

      public QueryAtom(Expr.Type type, int val)
      Create a new query atom with the given an value expression type.
      
       // oxygen
       new QueryAtom(ELEMENT, 8);
       
      Parameters:
      type - the expr type
      val - the expr value
  • Method Details

    • getIndex

      public int getIndex()
      Acces the index of an atom in the context of an IAtomContainer. If the index is not known, < 0 is returned.
      Specified by:
      getIndex in interface IAtom
      Returns:
      atom index or < 0 if the index is not known
    • getContainer

      public IAtomContainer getContainer()
      Access the IAtomContainer of 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 an IAtomContainer, 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:
      getContainer in interface IAtom
      Returns:
      the atom container or null if not accessed in the context of a container
    • bonds

      public Iterable<IBond> 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 if IAtom.getIndex() returns < 0 or IAtom.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()) {
      
       }
       
      Specified by:
      bonds in interface IAtom
      Returns:
      iterable of bonds
    • getBondCount

      public int getBondCount()
      Get the number of explicit bonds connected to this atom.
      Specified by:
      getBondCount in interface IAtom
      Returns:
      the total bond count
    • getBond

      public IBond getBond(IAtom atom)
      Returns the bond connecting 'this' atom to the provided atom. If the atoms are not bonded, null is returned.
      Specified by:
      getBond in interface IAtom
      Parameters:
      atom - the other atom
      Returns:
      the bond connecting the atoms
    • setCharge

      public void setCharge(Double charge)
      Sets the partial charge of this atom.
      Specified by:
      setCharge in interface IAtom
      Parameters:
      charge - The partial charge
      See Also:
    • getCharge

      public Double getCharge()
      Returns the partial charge of this atom.

      If the charge has not been set the return value is Double.NaN

      Specified by:
      getCharge in interface IAtom
      Returns:
      the charge of this atom
      See Also:
    • setImplicitHydrogenCount

      public void setImplicitHydrogenCount(Integer hydrogenCount)
      Sets the number of implicit hydrogen count of this atom.
      Specified by:
      setImplicitHydrogenCount in interface IAtom
      Parameters:
      hydrogenCount - The number of hydrogen atoms bonded to this atom.
      See Also:
    • getImplicitHydrogenCount

      public Integer getImplicitHydrogenCount()
      Returns the hydrogen count of this atom.
      Specified by:
      getImplicitHydrogenCount in interface IAtom
      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:
      setPoint2d in interface IAtom
      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:
      setPoint3d in interface IAtom
      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:
      setFractionalPoint3d in interface IAtom
      Parameters:
      point3d - A point in a 3d fractional unit cell space
      See Also:
    • setStereoParity

      public void setStereoParity(Integer stereoParity)
      Sets the stereo parity for this atom.
      Specified by:
      setStereoParity in interface IAtom
      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:
      getPoint2d in interface IAtom
      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:
      getPoint3d in interface IAtom
      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:
      getFractionalPoint3d in interface IAtom
      Returns:
      A point in 3d fractional unit cell space. Null if unset.
      See Also:
    • getStereoParity

      public Integer getStereoParity()
      Returns the stereo parity of this atom. It uses the predefined values found in CDKConstants.
      Specified by:
      getStereoParity in interface IAtom
      Returns:
      The stereo parity for this atom
      See Also:
    • setAtomTypeName

      public void setAtomTypeName(String identifier)
      Sets the if attribute of the AtomType object.
      Specified by:
      setAtomTypeName in interface IAtomType
      Parameters:
      identifier - The new AtomTypeID value. Null if unset.
      See Also:
    • setMaxBondOrder

      public void setMaxBondOrder(IBond.Order maxBondOrder)
      Sets the MaxBondOrder attribute of the AtomType object.
      Specified by:
      setMaxBondOrder in interface IAtomType
      Parameters:
      maxBondOrder - The new MaxBondOrder value
      See Also:
    • setBondOrderSum

      public void setBondOrderSum(Double bondOrderSum)
      Sets the the exact bond order sum attribute of the AtomType object.
      Specified by:
      setBondOrderSum in interface IAtomType
      Parameters:
      bondOrderSum - The new bondOrderSum value
      See Also:
    • getAtomTypeName

      public String getAtomTypeName()
      Gets the id attribute of the AtomType object.
      Specified by:
      getAtomTypeName in interface IAtomType
      Returns:
      The id value
      See Also:
    • getMaxBondOrder

      public IBond.Order getMaxBondOrder()
      Gets the MaxBondOrder attribute of the AtomType object.
      Specified by:
      getMaxBondOrder in interface IAtomType
      Returns:
      The MaxBondOrder value
      See Also:
    • getBondOrderSum

      public Double getBondOrderSum()
      Gets the bondOrderSum attribute of the AtomType object.
      Specified by:
      getBondOrderSum in interface IAtomType
      Returns:
      The bondOrderSum value
      See Also:
    • setFormalCharge

      public void setFormalCharge(Integer charge)
      Sets the formal charge of this atom.
      Specified by:
      setFormalCharge in interface IAtomType
      Parameters:
      charge - The formal charge
      See Also:
    • getFormalCharge

      public Integer getFormalCharge()
      Returns the formal charge of this atom.
      Specified by:
      getFormalCharge in interface IAtomType
      Returns:
      the formal charge of this atom
      See Also:
    • setFormalNeighbourCount

      public void setFormalNeighbourCount(Integer count)
      Sets the formal neighbour count of this atom.
      Specified by:
      setFormalNeighbourCount in interface IAtomType
      Parameters:
      count - The neighbour count
      See Also:
    • getFormalNeighbourCount

      public Integer getFormalNeighbourCount()
      Returns the formal neighbour count of this atom.
      Specified by:
      getFormalNeighbourCount in interface IAtomType
      Returns:
      the formal neighbour count of this atom
      See Also:
    • setHybridization

      public void setHybridization(IAtomType.Hybridization hybridization)
      Sets the hybridization of this atom.
      Specified by:
      setHybridization in interface IAtomType
      Parameters:
      hybridization - The hybridization
      See Also:
    • getHybridization

      public IAtomType.Hybridization getHybridization()
      Returns the hybridization of this atom.
      Specified by:
      getHybridization in interface IAtomType
      Returns:
      the hybridization of this atom
      See Also:
    • setNaturalAbundance

      public void setNaturalAbundance(Double naturalAbundance)
      Sets the NaturalAbundance attribute of the Isotope object.
      Specified by:
      setNaturalAbundance in interface IIsotope
      Parameters:
      naturalAbundance - The new NaturalAbundance value
      See Also:
    • setExactMass

      public void setExactMass(Double exactMass)
      Sets the ExactMass attribute of the Isotope object.
      Specified by:
      setExactMass in interface IIsotope
      Parameters:
      exactMass - The new ExactMass value
      See Also:
    • getNaturalAbundance

      public Double getNaturalAbundance()
      Gets the NaturalAbundance attribute of the Isotope object.

      Once instantiated all field not filled by passing parameters to the constructor are null. Isotopes can be configured by using the IsotopeFactory.configure() method:

         Isotope isotope = new Isotope("C", 13);
         IsotopeFactory if = IsotopeFactory.getInstance(isotope.getNewBuilder());
         if.configure(isotope);
       
      Specified by:
      getNaturalAbundance in interface IIsotope
      Returns:
      The NaturalAbundance value
      See Also:
    • getExactMass

      public Double getExactMass()
      Gets the ExactMass attribute of the Isotope object.

      Once instantiated all field not filled by passing parameters to the constructor are null. Isotopes can be configured by using the IsotopeFactory.configure() method:

         Isotope isotope = new Isotope("C", 13);
         IsotopeFactory if = IsotopeFactory.getInstance(isotope.getNewBuilder());
         if.configure(isotope);
       
      Specified by:
      getExactMass in interface IIsotope
      Returns:
      The ExactMass value
      See Also:
    • getMassNumber

      public Integer getMassNumber()
      Returns the atomic mass of this element.

      Once instantiated all field not filled by passing parameters to the constructor are null. Isotopes can be configured by using the IsotopeFactory.configure() method:

         Isotope isotope = new Isotope("C", 13);
         IsotopeFactory if = IsotopeFactory.getInstance(isotope.getNewBuilder());
         if.configure(isotope);
       
      Specified by:
      getMassNumber in interface IIsotope
      Returns:
      The atomic mass of this element
      See Also:
    • setMassNumber

      public void setMassNumber(Integer massNumber)
      Sets the atomic mass of this element.
      Specified by:
      setMassNumber in interface IIsotope
      Parameters:
      massNumber - The atomic mass to be assigned to this element
      See Also:
    • getAtomicNumber

      public Integer getAtomicNumber()
      Returns the atomic number of this element.

      Once instantiated all field not filled by passing parameters to the constructor are null. Elements can be configured by using the IsotopeFactory.configure() method:

         Element element = new Element("C");
         IsotopeFactory if = IsotopeFactory.getInstance(element.getNewBuilder());
         if.configure(element);
       
      Specified by:
      getAtomicNumber in interface IElement
      Returns:
      The atomic number of this element
      See Also:
    • setAtomicNumber

      public void setAtomicNumber(Integer atomicNumber)
      Sets the atomic number of this element.
      Specified by:
      setAtomicNumber in interface IElement
      Parameters:
      atomicNumber - The atomic mass to be assigned to this element
      See Also:
    • getSymbol

      public String getSymbol()
      Returns the element symbol of this element.
      Specified by:
      getSymbol in interface IElement
      Returns:
      The element symbol of this element. Null if unset.
      See Also:
    • setSymbol

      public void setSymbol(String symbol)
      Sets the element symbol of this element.
      Specified by:
      setSymbol in interface IElement
      Parameters:
      symbol - The element symbol to be assigned to this atom
      See Also:
    • setCovalentRadius

      public void setCovalentRadius(Double radius)
      Sets the covalent radius for this AtomType.
      Specified by:
      setCovalentRadius in interface IAtomType
      Parameters:
      radius - The covalent radius for this AtomType
      See Also:
    • getCovalentRadius

      public Double getCovalentRadius()
      Returns the covalent radius for this AtomType.
      Specified by:
      getCovalentRadius in interface IAtomType
      Returns:
      The covalent radius for this AtomType
      See Also:
    • setValency

      public void setValency(Integer valency)
      Sets the the exact electron valency of the AtomType object.
      Specified by:
      setValency in interface IAtomType
      Parameters:
      valency - The new valency value
      See Also:
    • getValency

      public Integer getValency()
      Gets the the exact electron valency of the AtomType object.
      Specified by:
      getValency in interface IAtomType
      Returns:
      The valency value
      See Also:
    • isAromatic

      public boolean isAromatic()
      Access whether this atom has been marked as aromatic. The default value is false and you must explicitly perceive aromaticity with one of the available models.
      Specified by:
      isAromatic in interface IAtom
      Returns:
      aromatic status
      See Also:
    • setIsAromatic

      public void setIsAromatic(boolean arom)
      Mark this atom as being aromatic.
      Specified by:
      setIsAromatic in interface IAtom
      Parameters:
      arom - aromatic status
      See Also:
    • isInRing

      public boolean isInRing()
      Access whether this atom has been flagged as in a ring. The default value is false and you must explicitly find rings first.
      Specified by:
      isInRing in interface IAtom
      Returns:
      ring status
      See Also:
    • setIsInRing

      public void setIsInRing(boolean ring)
      Mark this atom as being in a ring.
      Specified by:
      setIsInRing in interface IAtom
      Parameters:
      ring - ring status
      See Also:
    • getMapIdx

      public int getMapIdx()
      Access the map index for this atom.
      Specified by:
      getMapIdx in interface IAtom
      Returns:
      the map index (0 if not set)
    • setMapIdx

      public void setMapIdx(int mapidx)
      Set the map index for this atom.
      Specified by:
      setMapIdx in interface IAtom
      Parameters:
      mapidx - the new map index
    • setExpression

      public void setExpression(Expr expr)
      Set the atom-expression predicate for this query atom.
      Parameters:
      expr - the expression
    • getExpression

      public Expr getExpression()
      Get the atom-expression predicate for this query atom.
      Returns:
      the expression
    • matches

      public boolean matches(IAtom atom)
      Returns true of the given atom matches this IQueryAtom.
      Specified by:
      matches in interface IQueryAtom
      Overrides:
      matches in class QueryChemObject
      Parameters:
      atom - IAtom to match against
      Returns:
      true, if this IQueryAtom matches the given IAtom
    • clone

      public IAtom clone() throws CloneNotSupportedException
      Description copied from interface: IChemObject
      Returns a deep clone of this IChemObject.
      Specified by:
      clone in interface IAtom
      Specified by:
      clone in interface IChemObject
      Overrides:
      clone in class QueryChemObject
      Returns:
      Object the clone of this IChemObject.
      Throws:
      CloneNotSupportedException - if the IChemObject cannot be cloned
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object