class OEFeature

OEFeature is a pure virtual class that defines a single custom docking constraint used by OEDock.

OEFeature objects are created by the OECustomConstraints class (see OECustomConstraints.AddFeature).

To satisfy a docking constraint a pose must either have:

  1. At least one atom that matches one of the SMARTS patterns returned by OEFeature.GetSmarts and falls within one of the spheres returned by OEFeature.GetSpheres.

  2. At least one heavy atom that falls within one of the spheres returned by OEFeature.GetSpheres, if the OEFeature has no SMARTS patterns.


OEFeature& operator=(const OEFeature&)

Assignment operator.


virtual ~OEFeature() {}



virtual OESystem::OEIterBase<const OESphereBase>* GetSpheres() = 0
virtual OESystem::OEIterBase<      OESphereBase>* GetSpheres() = 0

Returns all spheres associated with this custom constraint feature.


virtual OESphereBase* AddSphere() = 0
virtual OESphereBase* AddSphere(const OESphereBase& sph) = 0

Adds an OESphereBase object to this class. If sph is passed the created sphere will be a copy of sph otherwise a default constructed sphere will be created.

Note that the returned memory is owned by this class and will be destroyed by the destructor of this class.


virtual bool DeleteSphere(const OESphereBase* sph) = 0

Deletes a OESphereBase held by this class. Note that after this call sph will no longer point to a valid OESphereBase object.


virtual unsigned int NumSpheres() const = 0

Returns the number of spheres held by this object.


virtual bool ClearSpheres() = 0

Returns this object to its default constructed state. Deleting all spheres and SMARTS patterns it currently holds.


virtual OESystem::OEIterBase<const std::string>* GetSmarts() const = 0
virtual OESystem::OEIterBase<      std::string>* GetSmarts()       = 0

Returns an iterator over all SMARTS patterns associated with this OEFeature.


virtual bool AddSmarts(std::string smarts) = 0

Adds a SMARTS pattern to this OEFeature.


virtual bool DeleteSmarts(std::string smarts) = 0

Deletes the specified SMARTS pattern from this OEFeature.


virtual unsigned int NumSmarts() const = 0

Returns the number of SMARTS patterns held by this OEFeature.


virtual bool ClearSmarts() = 0

Deletes all SMARTS patterns associated with this OEFeature.


virtual void SetFeatureName(std::string) = 0

Sets the name of this feature.


virtual std::string GetFeatureName() const = 0

Returns the name of the feature.


virtual void SetEnabled(bool enabled) = 0

Sets whether this feature is enabled or not. If the feature is disabled the constraint will be ignored during the docking process.


virtual bool GetEnabled() const = 0

Returns whether this feature is enabled. If this function returns false this constraint will be ignored during the docking process.


virtual OEFeature* CreateCopy() const = 0

Creates a copy of this OEFeature. Note that the memory returned by this function is not owned by this class, and is the responsibility of the calling function.