5 #ifndef BALL_SCORING_COMMON_SCORINGFUNCTION_H
6 #define BALL_SCORING_COMMON_SCORINGFUNCTION_H
155 virtual void clear();
170 void setMaximumNumberOfErrors(
Size nr);
173 Size getMaximumNumberOfErrors()
const;
208 void setIntercept(
double intercept);
211 double getIntercept()
const;
247 void removeComponent(
const String& name);
260 void setCoefficient(
const String& name,
float coefficient);
267 float& coefficient)
const;
273 bool getCoefficient(
const String& name,
float& coefficient)
const;
286 double calculateScore();
304 double getExpEnergyStddev();
306 void enableStoreInteractionsOnlyForPhContraints();
311 String convertTime(
double seconds);
316 virtual void update();
321 virtual double updateScore();
327 virtual void printResult(
bool detail = 0);
329 void getScoreContributions(vector<double>& score_contributions, vector<String>& names);
334 static void getDefaultOptions(
Options& options);
345 void enableStoreInteractions(
bool b =
true);
352 int getBurialDepthScale();
354 String valueToString(
double value);
360 void unsetTrainingParameters();
366 void setNormalizationParameters(
double stddev,
double mean);
373 const Vector3& getLigandCenter()
const;
375 double getLigandRadius()
const;
381 bool storeInteractionsEnabled();
387 virtual int getNoNeighboringReceptorAtoms();
392 int getNoLigandAtoms();
410 void createStaticLigandFragments();
412 const vector<Bond*>* getRotatableLigandBonds()
const;
414 const vector<StaticLigandFragment*>* getStaticLigandFragments()
const;
416 bool hasFlexibleResidues();
418 void setFlexibleResidues(
const std::set<Residue*>& flexible_residues);
434 void resetFlexibleResidues();
441 Size countNeighboringReceptorAtoms(
const Atom* atom,
442 double distance_threshold,
444 int* number_of_overlaps = 0)
const;
446 void resetResiduePositions(
Residue* residue, list<Vector3>& old_positions);
453 const std::map<Atom*, int>* getAtomFragmentMap();
460 list<Constraint*> constraints {};
485 void setName(
String name);
500 void setupFlexibleResidues_();
507 virtual void setupReferenceLigand();
525 AtomPairVector* createNonbondedPairVector(
HashGrid3<Atom*>* hashgrid,
int& overlaps,
bool rec_lig,
bool check_fragments = 0,
bool intra_fragment = 0);
535 AtomPairVector* createLigandNonbondedPairVector(
bool intra_fragment,
int& overlaps);
537 bool hasPharmacophoreConstraints_();
542 void clearStoredInteractions_();
547 double calculateConstraintsScore();
553 void enableInteractionComponents_(
const list<String>& type_names);
555 virtual double getES();
560 void enableAllComponents_();
567 void fetchStaticLigandFragment(
Atom* a1,
int index);
573 int countCovalentBonds(
const Atom* atom,
int threshold = -1);
580 virtual void createAllLigandNonBondedPairs();
586 virtual double calculateStaticLigandFragmentEnergy();
591 bool isPeptideBond(
const Bond* bond)
const;
621 double intercept_ {0.0};
631 vector<ScoringComponent*> scoring_components_ {};
641 Size max_number_of_errors_ {0};
651 double ligand_radius_ {0.0};
657 int ligand_atoms_ {0};
676 double resolution_ {0.0};
681 std::map<Atom*, int> atoms_to_fragments_ {};
687 int reference_neighbors_ {0};
693 int neighboring_target_atoms_ {0};
699 int misplaced_ligand_atoms_ {0};
704 int hashgrid_search_radius_ {0};
709 double nonbonded_cutoff_ {0.0};
714 double nonbonded_cutoff_2_ {0.0};
719 bool ignore_h_clashes_ {
false};
729 int ligand_intramol_overlaps_ {0};
735 double allowed_intermolecular_overlap_ {0.0};
741 double allowed_intramolecular_overlap_ {0.0};
747 double neighbor_cutoff_2_ {0.0};
756 vector<StaticLigandFragment*> static_ligand_fragments_ {};
763 bool store_interactions_ {
false};
765 bool store_interactions_phC_only_ {
false};
775 double conformation_scale_ {0.0};
780 bool use_all_lig_nonb_ {
false};
785 bool use_static_lig_fragments_ {
false};
787 int burial_depth_scale_ {0};
792 double exp_energy_stddev_ {0.0};
797 double exp_energy_mean_ {0.0};
799 std::set<Residue*> flexible_residues_ {};
809 double static_ligand_energy_ {0.0};
815 vector<Bond*> rotatable_ligand_bonds_ {};
821 list<list<Vector3> > flexres_org_positions_ {};
827 #endif // BALL_SCORING_COMMON_SCORINGFUNCTION_H