Class QueryAtom

    • Field Detail

      • 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 Detail

      • 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 Detail

      • 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()
      • 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:
        setCharge(java.lang.Double)
      • 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()
      • 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:
        getPoint2d()
      • 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:
        getPoint3d()
      • 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:
        getFractionalPoint3d(), Crystal
      • 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:
        setPoint2d(javax.vecmath.Point2d)
      • 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:
        setPoint3d(javax.vecmath.Point3d)
      • 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:
        getAtomTypeName()
      • 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:
        getMaxBondOrder()
      • 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:
        getBondOrderSum()
      • 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:
        getNaturalAbundance()
      • 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:
        getExactMass()
      • 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:
        setNaturalAbundance(java.lang.Double)
      • 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:
        setExactMass(java.lang.Double)
      • 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(Integer)
      • 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:
        getMassNumber()
      • 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(java.lang.Integer)
      • 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:
        getAtomicNumber()
      • 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:
        getSymbol()
      • 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()
      • 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()
      • 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:
        IChemObject.getFlag(int), Aromaticity
      • 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:
        IChemObject.getFlag(int), RingSearch
      • 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
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object