Chemical Data Processing Library C++ API - Version 1.4.0
PharmacophoreGenerator.hpp
Go to the documentation of this file.
1 /*
2  * PharmacophoreGenerator.hpp
3  *
4  * This file is part of the Chemical Data Processing Toolkit
5  *
6  * Copyright (C) 2003 Thomas Seidel <thomas.seidel@univie.ac.at>
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2 of the License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public License
19  * along with this library; see the file COPYING. If not, write to
20  * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21  * Boston, MA 02111-1307, USA.
22  */
23 
29 #ifndef CDPL_PHARM_PHARMACOPHOREGENERATOR_HPP
30 #define CDPL_PHARM_PHARMACOPHOREGENERATOR_HPP
31 
32 #include <set>
33 #include <map>
34 
35 #include "CDPL/Pharm/APIPrefix.hpp"
37 
38 
39 namespace CDPL
40 {
41 
42  namespace Pharm
43  {
44 
50  {
51 
52  public:
54  typedef std::shared_ptr<PharmacophoreGenerator> SharedPointer;
55 
60 
66 
69 
76 
83  void enableFeature(unsigned int type, bool enable);
84 
91  bool isFeatureEnabled(unsigned int type) const;
92 
99 
105  void setFeatureGenerator(unsigned int type, const FeatureGenerator::SharedPointer& ftr_gen);
106 
111  void removeFeatureGenerator(unsigned int type);
112 
119 
127  void generate(const Chem::MolecularGraph& molgraph, Pharmacophore& pharm, bool append = false);
128 
134 
140 
146 
147  private:
148  typedef std::set<unsigned int> EnabledFeatureSet;
149  typedef std::map<unsigned int, FeatureGenerator::SharedPointer> FeatureGeneratorMap;
150 
151  FeatureGeneratorMap featureGeneratorMap;
152  EnabledFeatureSet enabledFeatures;
154  };
155  } // namespace Pharm
156 } // namespace CDPL
157 
158 #endif // CDPL_PHARM_PHARMACOPHOREGENERATOR_HPP
Definition of class CDPL::Pharm::FeatureGenerator.
Definition of the preprocessor macro CDPL_PHARM_API.
#define CDPL_PHARM_API
Tells the compiler/linker which classes, functions and variables are part of the library API.
Abstract base class for representations of a chemical structure as a graph of bonded atoms.
Definition: MolecularGraph.hpp:57
std::shared_ptr< FeatureGenerator > SharedPointer
A reference-counted smart pointer [SHPTR] for dynamically allocated FeatureGenerator instances.
Definition: FeatureGenerator.hpp:62
Base class for pharmacophore generators that orchestrate per-feature-type Pharm::FeatureGenerator ins...
Definition: PharmacophoreGenerator.hpp:50
void clearEnabledFeatures()
Disables the generation of all types features.
PharmacophoreGenerator(const PharmacophoreGenerator &gen)
Constructs a copy of the PharmacophoreGenerator instance gen.
virtual ~PharmacophoreGenerator()
Virtual destructor.
Definition: PharmacophoreGenerator.hpp:68
PharmacophoreGenerator & operator=(const PharmacophoreGenerator &gen)
Copy assignment operator.
const Chem::Atom3DCoordinatesFunction & getAtom3DCoordinatesFunction() const
Returns the function that was registered for the retrieval of atom 3D-coordinates.
void generate(const Chem::MolecularGraph &molgraph, Pharmacophore &pharm, bool append=false)
Perceives the enabled pharmacophore features of the molecular graph molgraph and adds them to the pha...
void setFeatureGenerator(unsigned int type, const FeatureGenerator::SharedPointer &ftr_gen)
Specifies a Pharm::FeatureGenerator instance that gets used for the generation of the specified type ...
void setAtom3DCoordinatesFunction(const Chem::Atom3DCoordinatesFunction &func)
Specifies a function for the retrieval of atom 3D-coordinates for feature generation.
SharedPointer clone() const
Creates a deep copy of the PharmacophoreGenerator instance (including all registered feature generato...
void enableFeature(unsigned int type, bool enable)
Enables or disables the generation of features of the specified type.
bool isFeatureEnabled(unsigned int type) const
Tells whether the generation of features of the specified type is currently enabled or disabled.
PharmacophoreGenerator()
Constructs the PharmacophoreGenerator instance.
void removeFeatureGenerator(unsigned int type)
Removes the Pharm::FeatureGenerator instance for the specified type of features.
FeatureGenerator::SharedPointer getFeatureGenerator(unsigned int type) const
Returns the Pharm::FeatureGenerator instance that was registered for the generation of the specified ...
std::shared_ptr< PharmacophoreGenerator > SharedPointer
A reference-counted smart pointer [SHPTR] for dynamically allocated PharmacophoreGenerator instances.
Definition: PharmacophoreGenerator.hpp:54
Abstract base class for mutable containers of Pharm::Feature instances representing a pharmacophore m...
Definition: Pharmacophore.hpp:53
std::function< const Math::Vector3D &(const Chem::Atom &)> Atom3DCoordinatesFunction
Generic wrapper class used to store a user-defined Chem::Atom 3D-coordinates function.
Definition: Atom3DCoordinatesFunction.hpp:43
The namespace of the Chemical Data Processing Library.