IMP  2.0.1
The Integrative Modeling Platform
protein_ligand_score.h
Go to the documentation of this file.
1 /**
2  * \file IMP/atom/protein_ligand_score.h
3  * \brief Functions to read mol2s
4  *
5  * Copyright 2007-2013 IMP Inventors. All rights reserved.
6  *
7  */
8 
9 #ifndef IMPATOM_PROTEIN_LIGAND_SCORE_H
10 #define IMPATOM_PROTEIN_LIGAND_SCORE_H
11 
12 #include <IMP/atom/atom_config.h>
13 #include "Hierarchy.h"
15 #include <IMP/Model.h>
16 #include <IMP/Particle.h>
17 #include <IMP/Restraint.h>
18 #include <IMP/PairScore.h>
20 #include <IMP/algebra/Vector3D.h>
21 #include <IMP/file.h>
22 #include <limits>
23 
24 IMPATOM_BEGIN_NAMESPACE
25 
26 /** \name Protein-ligand scoring
27  \anchor protein_ligand
28 
29  \imp provides a statistical scoring function for scoring
30  protein-ligand complexes. See the
31  \ref application_ligand_score "ligand scoring"
32  application for more information.
33  @{
34  */
35 class ProteinLigandRestraint;
36 
37 #if !defined(IMP_DOXYGEN) && !defined(SWIG)
38 IMP_DECLARE_CONTROLLED_KEY_TYPE(ProteinLigandType, 783462);
39 #elif defined(SWIG)
40 class ProteinLigandType;
41 #endif
42 
43 /** add_protein_ligand_score_data() must be called on the molecules
44  containing the atoms before the PairScore is used in order
45  to properly initialize the particles.
46 
47  The default library to use is \c protein_ligand_rank_score.lib.
48  \imp also provides \c protein_ligand_pose_score.lib which can be
49  found at IMP::atom::get_data_path("protein_ligand_pose_score.lib").
50 */
51 class IMPATOMEXPORT ProteinLigandAtomPairScore:
52  public core::StatisticalPairScore<ProteinLigandType, true, false> {
53  friend class ProteinLigandRestraint;
55  double threshold_;
56  public:
57  ProteinLigandAtomPairScore(double threshold
58  = std::numeric_limits<double>::max());
59  ProteinLigandAtomPairScore(double threshold,
60  base::TextInput data_file);
61  double get_maximum_distance() const {
62  return threshold_;
63  }
64 };
65 
67 
68 /** Score a pair of molecules. See ProteinLigandAtomPairScore for
69  simply scoring the atom pairs.
70 
71  \see ProteinLigandAtomPairScore
72 */
74  void initialize(Hierarchy protein,
75  Hierarchy ligand);
76  public:
78  double threshold= std::numeric_limits<double>::max());
80  double threshold,
81  base::TextInput data_file);
82 };
83 
85 
86 
87 IMPATOMEXPORT void add_protein_ligand_score_data(Hierarchy h);
88 
89 /** @} */
90 IMPATOM_END_NAMESPACE
91 
92 #endif /* IMPATOM_PROTEIN_LIGAND_SCORE_H */