This is a preliminary API and may be improved based on user feedback. It is currently available in C++ and Python.

class OEROCSQueryModelBuilder

The OEROCSQueryModelBuilder is used to build models of OEShapeQuery that can be used as reference systems for ROCS, OEROCS, OEOverlay, and other similar functions.

The OEROCSQueryModelBuilder can be used for building a query from known ligands in their binding modes. The input ligands should be prepared by aligning the protein crystal structures. The prepared OEDesignUnit structures can be used dirctly, or the ligands can be extracted and used, as input to the query model builder. The query model builder constructs a ROCS query employing a few of the ligands that are most representative of the set as a whole.

The OEROCSQueryModelBuilder class defines the following public methods:


OEROCSQueryModelBuilder(const OEROCSQueryModelOptions& options);
OEROCSQueryModelBuilder(const OEROCSQueryModelBuilder&)

Default and copy constructors.


OEROCSQueryModelBuilder &operator=(const OEROCSQueryModelBuilder &)


bool AddLigand(const OEBio::OEDesignUnit& du);
bool AddLigand(const OEChem::OEMolBase& mol);

Adds the specified ligand to the set of ligands from which the query model(s) would be build. The first overload of the method adds the bound ligand from the design unit. Method returns True if a ligand is added sccessfully.


OESystem::OEIterBase<OEShape::OEShapeQuery>* Build(OESystem::OETracerBase* tracer = &OESystem::NullTracer)

Build the query model(s). Method returns an itertator over the generated OEShapeQuery.


bool ClearLigands();

Clears set of ligands from which the query model(s) would be build. Method returns True if all the ligands are removed successfully.


const OEROCSQueryModelOptions& GetROCSQueryModelOptions() const;

Get the OEROCSQueryModelOptions associated with this builder.


bool SetLigands(OEChem::oemolistream& ifs);
bool SetLigands(OEPlatform::oeistream& ifs);

Sets the ligands from which the query model(s) would be build. Calling this method would clear any existing ligand that were previously added. The first overload adds all the OEMolBase from the specified oemolistream, and the second overload adds the bound ligands from all the OEDesignUnit of the specified oeistream. Method returns True if ligand are added sccessfully.