8 #ifndef IMPNPCTRANSPORT_BIPARTITE_PAIRS_STATISTICS_OPTIMIZER_STATE_H
9 #define IMPNPCTRANSPORT_BIPARTITE_PAIRS_STATISTICS_OPTIMIZER_STATE_H
11 #include "npctransport_config.h"
18 #include <boost/unordered_set.hpp>
21 IMPNPCTRANSPORT_BEGIN_NAMESPACE
33 typedef IMP_KERNEL_LARGE_ORDERED_SET<ParticleIndex> t_particle_index_ordered_set;
34 typedef IMP_KERNEL_LARGE_ORDERED_SET<ParticleIndexPair> t_particle_index_pair_ordered_set;
42 double stats_time_ns_;
43 double off_stats_time_ns_;
45 double off_I_stats_time_ns_;
46 double off_II_stats_time_ns_;
47 double on_stats_time_ns_;
49 double on_I_stats_time_ns_;
51 double on_II_stats_time_ns_;
60 close_bipartite_pair_container_;
67 double avg_ncontacts_;
71 t_particle_index_ordered_set bounds_I_;
72 t_particle_index_ordered_set bounds_II_;
73 t_particle_index_pair_ordered_set contacts_;
76 double avg_pct_bound_particles_I_;
77 double avg_pct_bound_particles_II_;
78 double avg_fraction_bound_sites_I_;
79 double avg_fraction_bound_sites_II_;
80 double avg_fraction_nonspecific_I_;
81 double avg_fraction_nonspecific_II_;
82 double avg_off_per_contact_per_ns_;
83 double avg_off_per_bound_I_per_ns_;
84 double avg_off_per_bound_II_per_ns_;
85 double avg_on_per_unbound_I_per_ns_;
86 double avg_on_per_unbound_II_per_ns_;
87 double avg_on_per_missing_contact_per_ns_;
90 unsigned int n_particles_I_;
91 unsigned int n_particles_II_;
92 unsigned int n_bounds_I_;
93 unsigned int n_bounds_II_;
96 unsigned int n_sites_I_;
97 unsigned int n_sites_II_;
123 double contact_range = 1.0,
double slack = 1.0);
141 {
return avg_off_per_contact_per_ns_; }
147 {
return avg_off_per_bound_I_per_ns_; }
153 {
return avg_off_per_bound_II_per_ns_; }
160 {
return avg_on_per_missing_contact_per_ns_; }
166 {
return avg_on_per_unbound_I_per_ns_; }
172 {
return avg_on_per_unbound_II_per_ns_; }
179 return avg_pct_bound_particles_I_;
187 return avg_pct_bound_particles_II_;
193 return avg_fraction_bound_sites_I_;
199 return avg_fraction_bound_sites_II_;
206 return avg_fraction_nonspecific_I_;
213 return avg_fraction_nonspecific_II_;
230 void reset()
override;
232 double get_misc_stats_period_ns()
const
233 {
return stats_time_ns_; };
235 double get_off_stats_period_ns()
const
236 {
return off_stats_time_ns_; };
238 double get_off_I_stats_period_ns()
const
239 {
return off_I_stats_time_ns_; };
241 double get_off_II_stats_period_ns()
const
242 {
return off_II_stats_time_ns_; };
244 double get_on_stats_period_ns()
const
245 {
return on_stats_time_ns_; };
247 double get_on_I_stats_period_ns()
const
248 {
return on_I_stats_time_ns_; };
250 double get_on_II_stats_period_ns()
const
251 {
return on_II_stats_time_ns_; };
255 virtual void do_update(
unsigned int call_num)
override;
276 IMPNPCTRANSPORT_END_NAMESPACE
std::pair< IMP::core::ParticleType, IMP::core::ParticleType > InteractionType
an interaction that involves particles of two types
Smart pointer to Object-derived classes that does not refcount.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Angle restraint between three particles.
virtual void do_update(unsigned int)
Statistics and order parameters about the simulations.
Return all pairs from a SingletonContainer.
virtual void reset()
Reset counters, as if at the start of an optimize run.
Classes to handle individual model particles. (Note that implementation of inline functions is in int...
#define IMP_OBJECTS(Name, PluralName)
Define the types for storing lists of object pointers.
Shared optimizer state that is invoked upon commitment of new coordinates.
int Int
Basic integer value.