IMP logo
IMP Reference Guide  develop.63b38c487d,2024/12/21
The Integrative Modeling Platform
Soap.h
Go to the documentation of this file.
1 /**
2  * \file IMP/score_functor/Soap.h
3  * \brief A Score on the distance between a pair of particles.
4  *
5  * \authors Dina Schneidman
6  * Copyright 2007-2022 IMP Inventors. All rights reserved.
7  *
8  */
9 
10 #ifndef IMPSCORE_FUNCTOR_SOAP_H
11 #define IMPSCORE_FUNCTOR_SOAP_H
12 
13 #include <IMP/score_functor/score_functor_config.h>
14 #include "Dope.h"
15 #include "Statistical.h"
16 
17 IMPSCOREFUNCTOR_BEGIN_NAMESPACE
18 
19 //! Score pairs of atoms based on SOAP.
20 /** This is a simple pairwise atomistic statistical potential. For more
21  details, see
22  Optimized atomic statistical potentials: Assessment of protein interfaces
23  and loops. Dong GQ, Fan H, Schneidman-Duhovny D, Webb B, Sali A.
24  Bioinformatics. 2013
25 
26  \note This potential is independent of the orientation of the pairs of
27  particles. Use OrientedSoap instead for a score that takes
28  orientation into account.
29 
30  You need to use IMP::atom::add_dope_score_data() to add the requisite
31  atom type data to the particles being scored.
32 */
33 class Soap : public Statistical<DopeType, false, false> {
35 
36  public:
37 
38  //! Set up using the default SOAP-PP potential file.
39  /** This uses soap_score.lib, which is the pairwise part of the SOAP-PP
40  score (see https://salilab.org/SOAP/). This is designed for ranking
41  docking solutions. The score should be applied to pairs of atoms
42  from the two docked proteins.
43  \note The full SOAP-PP score also includes a surface accessibility
44  term, which can be applied using SingletonStatistical (but this
45  is unnecessary for simple ranking of solutions).
46  */
47  Soap(double threshold = std::numeric_limits<double>::max())
48  : P(get_soap_type_key(), threshold, get_data_path("soap_score.lib")) {}
49 
50  //! Set up SOAP using an arbitrary potential file
51  Soap(double threshold, TextInput data_file)
52  : P(get_soap_type_key(), threshold, data_file) {}
53 
54  static IntKey get_soap_type_key() {
55  static const IntKey ik("dope atom type");
56  return ik;
57  }
58 };
59 
60 IMPSCOREFUNCTOR_END_NAMESPACE
61 
62 #endif /* IMPSCORE_FUNCTOR_SOAP_H */
Soap(double threshold, TextInput data_file)
Set up SOAP using an arbitrary potential file.
Definition: Soap.h:51
Score pairs of atoms based on SOAP.
Definition: Soap.h:33
A Score on the distance between a pair of particles.
Soap(double threshold=std::numeric_limits< double >::max())
Set up using the default SOAP-PP potential file.
Definition: Soap.h:47
A Score on the distance between a pair of particles.