class OEIsWater : public OESystem::OEUnaryPredicate<OEChem::OEAtomBase>

This class represents OEIsWater functor that determines if an atom (OEAtomBase) is in a water molecule.

See also

The following methods are publicly inherited from OEUnaryPredicate:




The following methods are publicly inherited from OEUnaryFunction:




OEIsWater(bool checkHydrogens=false, bool allowIons=false)

Constructs the functor to determine if an atom is part of a water molecule. If the optional argument checkHydrogens is set to true, the function checks whether hydrogen atoms are part of a water molecule and returns true. The default behavior only returns true for water oxygen atoms, which is useful for counting water molecules in a system. If optional argument allowIons is set to true, the function allows checking for the water ions \(OH^{-}\) and \(H_{3}O^{+}\).


bool operator()(const OEChem::OEAtomBase &atom) const

Returns true, if the atom

  • read from a pdb file with the following pdb residue names: HOH, H2O, DOD, D2O, WAT, TIP, SOL, OH2, OD2.

  • is an oxygen and has no heavy atom neighbor

otherwise it returns false.


OESystem::OEUnaryFunction<OEChem::OEAtomBase, bool> *CreateCopy() const

Deep copy constructor that returns a copy of the object. The memory for the returned OEIsWater object is dynamically allocated and owned by the caller.