21 #ifndef OB_CONFORMERSEARCH_H 22 #define OB_CONFORMERSEARCH_H 64 virtual bool IsGood(
const OBMol &mol,
const RotorKey &key,
double *coords) = 0;
93 bool IsGood(
const OBMol &mol,
const RotorKey &key,
double *coords)
95 for (
unsigned int i = 0; i < m_filters.size(); ++i)
96 if (!m_filters[i]->IsGood(mol, key, coords))
118 bool IsGood(
const OBMol &mol,
const RotorKey &key,
double *coords);
122 bool m_check_hydrogens;
166 virtual double Score(
OBMol &mol,
unsigned int index,
const RotorKeys &keys,
167 const std::vector<double*> &conformers) = 0;
184 double Score(
OBMol &mol,
unsigned int index,
const RotorKeys &keys,
185 const std::vector<double*> &conformers);
205 double Score(
OBMol &mol,
unsigned int index,
const RotorKeys &keys,
206 const std::vector<double*> &conformers);
208 mapRotorEnergy energy_map;
209 long unsigned int energy_ncompute;
210 long unsigned int energy_nrequest;
230 double Score(
OBMol &mol,
unsigned int index,
const RotorKeys &keys,
231 const std::vector<double*> &conformers);
233 mapRotorEnergy energy_map;
234 long unsigned int energy_ncompute;
235 long unsigned int energy_nrequest;
252 double Score(
OBMol &mol,
unsigned int index,
const RotorKeys &keys,
253 const std::vector<double*> &conformers);
286 bool Setup(
const OBMol &mol,
int numConformers = 30,
int numChildren = 5,
287 int mutability = 5,
int convergence = 25);
342 void PrintRotors(
bool printrotors) { m_printrotors = printrotors; }
354 void GetConformers(
OBMol &mol);
411 void NextGeneration();
415 double MakeSelection();
419 bool IsUniqueKey(
const RotorKeys &keys,
const RotorKey &key)
const;
423 bool IsGood(
const RotorKey &key);
426 int key_distance (
const RotorKey &key1,
const RotorKey &key2);
430 int reproduce (RotorKey &key1, RotorKey &key2);
432 int score_population ();
434 int share_fitness ();
436 double sharing_generation ();
438 unsigned int m_numConformers;
443 std::vector<double> vscores;
444 std::vector<double> vshared_fitnes;
445 std::vector<std::vector <int> > dynamic_niches;
446 std::vector<int> niche_map;
460 RotorKeys m_rotorKeys;
466 std::ostream *m_logstream;
Rotate torsional according to rotor rules.
Given an OBMol, set up a list of possibly rotatable torsions,.
Definition: rotor.h:457
Molecule Class.
Definition: mol.h:118
Handle molecules. Declarations of OBMol, OBAtom, OBBond, OBResidue. (the main header for Open Babel) ...
std::vector< int > RotorKey
Definition: conformersearch.h:30
A speed-optimized vector of bits.
Definition: bitvec.h:57
std::map< std::vector< int >, double > mapRotorEnergy
Definition: conformersearch.h:32
std::vector< RotorKey > RotorKeys
Definition: conformersearch.h:31
Handle rotamer list data.
Global namespace for all Open Babel code.
Definition: alias.h:22