template<class Key, bool BIPARTITE, bool INTERPOLATE, bool SPARSE = false>
class IMP::core::StatisticalPairScore< Key, BIPARTITE, INTERPOLATE, SPARSE >
Create a pairwise statistical potential from a file. The Keys passed as a template argument are used to determine how to map the names of the types as described in the loaded file to indexes. That is, if atom::ResidueKey is passed as the Keys, the potential will expect a file which has one line for each pair of residue names.
The expected file format is:
bin_width number_a number_b [offset]
key_0a key_0b bin0 bin1 bin2...
key_1a key_1b bin0 bin1 bin2...
The order of the lines (after the first one) does not matter.
The bin_width is how much distance is allocated per bin (the distance used
is that between the points). number_a and number_b are the numbers of
particle types (number_b should only be specified if BIPARTITE is set).
\note The values read in the file are for bins. That is, the first bin
is from offset to offset+width. The second is offset+width to offset+
2width.
As a result, when interpolation is used, the function achieves the
bin value at the center of the bin.
\param[in] Key is an IMP::Key which maps between names and indices
\param[in] BIPARTITE If true, the two sets of particles being stored are
different (e.g. a protein atom and a ligand atom), otherwise they are
assumed to both be the same. Appropriate values must be provided
in the file.
\param[in] INTERPOLATE If true, even the scores without derivatives are
spline interpolated. If false, only the evaluation of derivatives is
interpolated with a spline.
Public Member Functions |
| | StatisticalPairScore (IntKey k, double threshold, base::TextInput data_file) |
| | StatisticalPairScore (IntKey k, double threshold, base::TextInput data_file, unsigned int shift) |
|
double | get_maximum_distance () const |
|
| PairScore (std::string name="PairScore %1%") |
| Restraints | create_current_decomposition (const ParticlePair &vt) const |
| virtual double | evaluate (const ParticlePair &vt, DerivativeAccumulator *da) const =0 |
| | Compute the score and the derivative if needed.
|
| virtual double | evaluate (const ParticlePairsTemp &o, DerivativeAccumulator *da) const |
| virtual double | evaluate_if_good_index (Model *m, const ParticleIndexPair &vt, DerivativeAccumulator *da, double max) const |
| | Compute the score and the derivative if needed.
|
| virtual double | evaluate_if_good_indexes (Model *m, const ParticleIndexPairs &o, DerivativeAccumulator *da, double max) const |
| virtual double | evaluate_index (Model *m, const ParticleIndexPair &vt, DerivativeAccumulator *da) const |
| | Compute the score and the derivative if needed.
|
| virtual double | evaluate_indexes (Model *m, const ParticleIndexPairs &o, DerivativeAccumulator *da) const |
| virtual ContainersTemp | get_input_containers (Particle *p) const =0 |
| virtual ParticlesTemp | get_input_particles (Particle *p) const =0 |
|
std::size_t | __hash__ () const |
| virtual std::string | get_type_name () const =0 |
| | Return a string identifying the type of the object.
|
| virtual IMP::base::VersionInfo | get_version_info () const =0 |
| | Get information about the module and version of the object.
|
| void | set_check_level (CheckLevel l) |
| void | set_log_level (LogLevel l) |
| | Set the logging level used in this object.
|
| void | set_was_used (bool tf) const |
|
void | show (std::ostream &out=std::cout) const |
|
const std::string & | get_name () const |
|
void | set_name (std::string name) |