8 #ifndef IMPNPCTRANSPORT_SCORING_H 
    9 #define IMPNPCTRANSPORT_SCORING_H 
   11 #include "npctransport_config.h" 
   24 #include <boost/unordered_map.hpp> 
   33 #include <IMP/internal/SimpleTimer.h> 
   34 #include "boost/tuple/tuple.hpp" 
   39 IMPNPCTRANSPORT_BEGIN_NAMESPACE
 
   42 class LinearWellPairScore;
 
   43 class HarmonicSpringSingletonScore;
 
   50   Parameter<int> box_is_on_;
 
   51   Parameter<double> interaction_k_;
 
   52   Parameter<double> interaction_range_;
 
   53   Parameter<double> backbone_k_;
 
   54   Parameter<bool> is_backbone_harmonic_;
 
   55   Parameter<double> slack_;
 
   56   Parameter<double> nonspecific_k_;
 
   57   Parameter<double> nonspecific_range_;
 
   58   Parameter<double> excluded_volume_k_;
 
   59   Parameter<double> range_;
 
   61   boost::unordered_map<core::ParticleType, double> interaction_range_factors_;
 
   62   boost::unordered_map<core::ParticleType, double> interaction_k_factors_;
 
   88   typedef  boost::unordered_map< int, PointerMember<IMP::PairScore > >
 
   89     t_map_pair_type_to_pair_score;
 
   93   t_map_pair_type_to_pair_score
 
   94     interaction_pair_scores_;
 
  111   typedef boost::unordered_set
 
  113   FGChainsSet chains_set_;
 
  117   typedef boost::unordered_map
 
  119     t_particle_index_to_fg_chain_map;
 
  120   t_particle_index_to_fg_chain_map bead_to_chain_map_;
 
  124   typedef boost::unordered_map<double, ParticlesTemp> t_z_bias_particles_map;
 
  125   t_z_bias_particles_map z_bias_particles_map_;
 
  143           const ::npctransport_proto::Assignment &data);
 
  171     get_scoring_function_restraints(
bool force_update=
false);
 
  196     get_custom_scoring_function
 
  200       bool is_attr_interactions_on = 
true ) 
const;
 
  208     get_custom_scoring_function
 
  212       bool is_attr_interactions_on = 
true ) 
const 
  216               (get_model(), non_optimizable_beads));
 
  217       return get_custom_scoring_function(extra_restraints,
 
  220                                          is_attr_interactions_on);
 
  293   Restraint *get_bounding_volume_restraint(
bool update=
false);
 
  309   Restraint *get_slab_restraint(
bool update=
false);
 
  329     ( const ::npctransport_proto::Assignment_InteractionAssignment &idata);
 
  370               (get_model(), non_optimizable_beads));
 
  371       return create_close_beads_container(nob_lsc,
 
  388       bool is_attr_interactions_on = 
true) 
const;
 
  403   Restraint* create_bounding_volume_restraint
 
  431   Model* get_model() 
const;
 
  449     return box_is_on_==1;
 
  454     return box_is_on_==2;
 
  459     return get_has_bounding_box() || get_has_bounding_sphere();
 
  468   bool get_is_backbone_harmonic()
 const { 
return is_backbone_harmonic_; }
 
  484   boost::tuple< Restraint*, Object*>
 
  485     create_backbone_restraint
 
  486     ( 
double rest_length_factor,
 
  489       std::string name) 
const;
 
  521   double get_interaction_range_for
 
  523      bool site_specific = 
true,
 
  524      bool non_specific = 
false) 
const;
 
  538   boost::tuple< 
unsigned int,
 
  539                 std::vector<unsigned int>,
 
  540                 std::vector<unsigned int>,
 
  542     get_site_interactions_statistics
 
  555   boost::tuple< unsigned int, std::vector<unsigned int>, std::vector<unsigned int>, 
bool >
 
  556     get_site_interactions_statistics
 
  560       get_site_interactions_statistics
 
  591   void add_chain_restraints(FGChain* chain);
 
  607     ( SingletonContainerAdaptor beads ) 
const;
 
  631   void add_z_bias_restraint(SingletonContainerAdaptor ps, 
double k);
 
  642   void add_z_bias_restraint(Particle* p, 
double k);
 
  658   IMP::Restraint* create_z_bias_restraint(SingletonContainerAdaptor ps,
 
  662   { custom_restraints_.push_back(r); }
 
  665   { custom_restraints_ += R; }
 
  667   void clear_custom_restraints()
 
  668   { custom_restraints_.clear(); }
 
  671     { 
return custom_restraints_; }
 
  683   Restraint* get_pore_radius_restraint() 
const;
 
  692     return FGChains(chains_set_.begin(), chains_set_.end());
 
  696   double get_range()
 const { 
return range_; }
 
  703   void set_interaction_range_factor
 
  708       interaction_range_factors_[type] = value;
 
  716   void set_interaction_k_factor
 
  721       interaction_k_factors_[type] = value;
 
  733 IMPNPCTRANSPORT_END_NAMESPACE
 
Abstract class for scoring object(s) of type ParticleIndexPair. 
 
A shared container for Pairs. 
 
Apply a PairScore to each Pair in a list. 
 
SimulationData const * get_sd() const 
 
IMP::Vector< IMP::Pointer< Restraint > > Restraints
 
Store a list of ParticleIndexes. 
 
Return a unique predicate value for each ordered set of ParticleTypes. 
 
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object. 
 
Store a set of PairContainers. 
 
Storage of a model, its restraints, constraints and particles. 
 
Applies a PairScore to each Pair in a list based on a predicate. 
 
Index< ParticleIndexTag > ParticleIndex
 
bool get_has_bounding_sphere() const 
returns true if simulation has a bounding simulation sphere ('cell-like') 
 
Score particles based on a bounding box. 
 
Key< 34897493 > ParticleType
An IMP::Key object for identifying types of particles by strings. 
 
Create a scoring function on a list of restraints. 
 
A weak pointer to an Object or RefCountedObject. 
 
A particle with a user-defined type. 
 
double get_excluded_volume_k() const 
 
#define IMP_NEW(Typename, varname, args)
Declare a ref counted pointer to a new object. 
 
Class for storing model, its restraints, constraints, and particles. 
 
Decorator for helping deal with a hierarchy of molecules. 
 
bool get_has_bounding_box() const 
returns true if simulation has a bounding simulation box 
 
Scoring associated with a SimulationData object. 
 
Common base class for heavy weight IMP objects. 
 
Store a list of ParticleIndexes. 
 
Return all pairs from a SingletonContainer. 
 
SimulationData * get_sd()
 
IMP::Vector< IMP::Pointer< FGChain > > FGChains
 
A smart pointer to a ref-counted Object that is a class member. 
 
double get_default_backbone_k() const 
 
A weak pointer to an Object or RefCountedObject. 
 
Store all parameters for a simulation. 
 
A nullptr-initialized pointer to an IMP Object. 
 
Represents a scoring function on the model. 
 
double get_interaction_k() const 
 
Represents a scoring function on the model. 
 
Class to handle individual particles of a Model object. 
 
bool get_has_bounding_volume() const 
returns true if simulation has any bounding volume (box or sphere are supported) 
 
ParticleIndex get_index() const 
returns the particle index of this particle in its model 
 
A scoring function on a list of restraints. 
 
#define IMP_ALWAYS_CHECK(condition, message, exception_name)
Throw an exception if a check fails. 
 
An exception for an invalid value being passed to IMP. 
 
A restraint is a term in an IMP ScoringFunction. 
 
forward declaration of incomplete protobuf files for the main data structures used ...