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.