12 #ifndef IMPNPC_PROTEIN_LOCALIZATION_RESTRAINT_H
13 #define IMPNPC_PROTEIN_LOCALIZATION_RESTRAINT_H
17 #include <IMP/npc/npc_config.h>
19 #include <cereal/access.hpp>
20 #include <cereal/types/base_class.hpp>
22 IMPNPC_BEGIN_NAMESPACE
34 bool consider_radius_;
36 friend class cereal::access;
37 template<
class Archive>
void serialize(Archive &ar) {
38 ar(cereal::base_class<Restraint>(
this),
39 sc_, lower_bound_, upper_bound_, sigma_, consider_radius_);
45 double lower_bound,
double upper_bound,
bool consider_radius,
double sigma=1);
47 double lower_bound,
double upper_bound,
bool consider_radius,
double sigma=1);
75 bool consider_radius_;
77 friend class cereal::access;
78 template<
class Archive>
void serialize(Archive &ar) {
79 ar(cereal::base_class<Restraint>(
this),
80 sc_, lower_bound_, sigma_, consider_radius_);
86 double lower_bound,
bool consider_radius,
double sigma=1);
88 double lower_bound,
bool consider_radius,
double sigma=1);
116 bool consider_radius_;
118 friend class cereal::access;
119 template<
class Archive>
void serialize(Archive &ar) {
120 ar(cereal::base_class<Restraint>(
this),
121 sc_, upper_bound_, sigma_, consider_radius_);
127 double upper_bound,
bool consider_radius,
double sigma=1);
129 double upper_bound,
bool consider_radius,
double sigma=1);
159 bool consider_radius_;
161 friend class cereal::access;
162 template<
class Archive>
void serialize(Archive &ar) {
163 ar(cereal::base_class<Restraint>(
this),
164 sc_, lower_bound_, upper_bound_, sigma_, consider_radius_);
170 double lower_bound,
double upper_bound,
bool consider_radius,
double sigma=1);
172 double lower_bound,
double upper_bound,
bool consider_radius,
double sigma=1);
200 bool consider_radius_;
202 friend class cereal::access;
203 template<
class Archive>
void serialize(Archive &ar) {
204 ar(cereal::base_class<Restraint>(
this),
205 sc_, lower_bound_, sigma_, consider_radius_);
211 double lower_bound,
bool consider_radius,
double sigma=1);
213 double lower_bound,
bool consider_radius,
double sigma=1);
241 bool consider_radius_;
243 friend class cereal::access;
244 template<
class Archive>
void serialize(Archive &ar) {
245 ar(cereal::base_class<Restraint>(
this),
246 sc_, upper_bound_, sigma_, consider_radius_);
252 double upper_bound,
bool consider_radius,
double sigma=1);
254 double upper_bound,
bool consider_radius,
double sigma=1);
284 bool consider_radius_;
286 friend class cereal::access;
287 template<
class Archive>
void serialize(Archive &ar) {
288 ar(cereal::base_class<Restraint>(
this),
289 sc_, lower_bound_, upper_bound_, sigma_, consider_radius_);
295 double lower_bound,
double upper_bound,
bool consider_radius,
double sigma=1);
297 double lower_bound,
double upper_bound,
bool consider_radius,
double sigma=1);
325 bool consider_radius_;
327 friend class cereal::access;
328 template<
class Archive>
void serialize(Archive &ar) {
329 ar(cereal::base_class<Restraint>(
this),
330 sc_, lower_bound_, sigma_, consider_radius_);
336 double lower_bound,
bool consider_radius,
double sigma=1);
338 double lower_bound,
bool consider_radius,
double sigma=1);
366 bool consider_radius_;
368 friend class cereal::access;
369 template<
class Archive>
void serialize(Archive &ar) {
370 ar(cereal::base_class<Restraint>(
this),
371 sc_, upper_bound_, sigma_, consider_radius_);
377 double upper_bound,
bool consider_radius,
double sigma=1);
379 double upper_bound,
bool consider_radius,
double sigma=1);
407 double tolerance_factor_;
410 friend class cereal::access;
411 template<
class Archive>
void serialize(Archive &ar) {
412 ar(cereal::base_class<Restraint>(
this), sc_, tolerance_factor_, sigma_);
418 double tolerance_factor,
double sigma=0.1);
420 double tolerance_factor,
double sigma=0.1);
447 friend class cereal::access;
448 template<
class Archive>
void serialize(Archive &ar) {
449 ar(cereal::base_class<Restraint>(
this), sc_, sigma_);
486 friend class cereal::access;
487 template<
class Archive>
void serialize(Archive &ar) {
488 ar(cereal::base_class<Restraint>(
this), sc_, R_, r_, sigma_, thickness_);
494 double R,
double r,
double thickness,
double sigma=2);
496 double R,
double r,
double thickness,
double sigma=2);
530 friend class cereal::access;
531 template<
class Archive>
void serialize(Archive &ar) {
532 ar(cereal::base_class<Restraint>(
this),
533 sc1_, sc2_, R_, r_, sigma_, thickness_);
539 double R,
double r,
double thickness,
double sigma=2);
541 double R,
double r,
double thickness,
double sigma=2);
576 friend class cereal::access;
577 template<
class Archive>
void serialize(Archive &ar) {
578 ar(cereal::base_class<Restraint>(
this), sc_, R_, r_, sigma_, thickness_);
584 double R,
double r,
double thickness,
double sigma=2);
586 double R,
double r,
double thickness,
double sigma=2);
617 bool consider_radius_;
619 friend class cereal::access;
620 template<
class Archive>
void serialize(Archive &ar) {
621 ar(cereal::base_class<Restraint>(
this),
622 sc_, R_, r_, sigma_, thickness_, consider_radius_);
628 double R,
double r,
double thickness,
bool consider_radius,
double sigma=2);
630 double R,
double r,
double thickness,
bool consider_radius,
double sigma=2);
658 bool consider_radius_;
660 friend class cereal::access;
661 template<
class Archive>
void serialize(Archive &ar) {
662 ar(cereal::base_class<Restraint>(
this),
663 sc_, R_, r_, sigma_, thickness_, consider_radius_);
669 double R,
double r,
double thickness,
bool consider_radius,
double sigma=2);
671 double R,
double r,
double thickness,
bool consider_radius,
double sigma=2);
699 friend class cereal::access;
700 template<
class Archive>
void serialize(Archive &ar) {
701 ar(cereal::base_class<Restraint>(
this), sc_, sigma_);
738 friend class cereal::access;
739 template<
class Archive>
void serialize(Archive &ar) {
740 ar(cereal::base_class<Restraint>(
this), sc_, sigma_);
775 friend class cereal::access;
776 template<
class Archive>
void serialize(Archive &ar) {
777 ar(cereal::base_class<Restraint>(
this), sc_, sigma_, max_dist_);
783 double max_dist,
double sigma=0.1);
785 double max_dist,
double sigma=0.1);
811 bool consider_radius_;
812 friend class cereal::access;
813 template<
class Archive>
void serialize(Archive &ar) {
814 ar(cereal::base_class<Restraint>(
this),
815 sc_, lower_bound_, upper_bound_, sigma_, consider_radius_);
821 double lower_bound,
double upper_bound,
bool consider_radius,
double sigma=1);
823 double lower_bound,
double upper_bound,
bool consider_radius,
double sigma=1);
851 bool consider_radius_;
853 friend class cereal::access;
854 template<
class Archive>
void serialize(Archive &ar) {
855 ar(cereal::base_class<Restraint>(
this),
856 sc_, lower_bound_, sigma_, consider_radius_);
862 double lower_bound,
bool consider_radius,
double sigma=1);
864 double lower_bound,
bool consider_radius,
double sigma=1);
892 bool consider_radius_;
894 friend class cereal::access;
895 template<
class Archive>
void serialize(Archive &ar) {
896 ar(cereal::base_class<Restraint>(
this),
897 sc_, upper_bound_, sigma_, consider_radius_);
903 double upper_bound,
bool consider_radius,
double sigma=1);
905 double upper_bound,
bool consider_radius,
double sigma=1);
946 bool consider_radius_;
948 friend class cereal::access;
949 template<
class Archive>
void serialize(Archive &ar) {
950 ar(cereal::base_class<Restraint>(
this),
951 sc_, x_start_, y_start_, z_start_, tolerance_, sigma_, consider_radius_);
959 double x_start,
double y_start,
double z_start,
double tolerance,
bool consider_radius,
double sigma=1);
961 double x_start,
double y_start,
double z_start,
double tolerance,
bool consider_radius,
double sigma=1);
Try to keep particles on the perinuclear side of a membrane.
Restrain particles by their z coordinate.
void add_particles(RMF::FileHandle fh, const ParticlesTemp &hs)
virtual RestraintInfo * get_static_info() const
A container for Singletons.
Restrain particles by their x coordinate.
Restrain two interparticle dihedrals to be the same.
Restrain particles by their x coordinate.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Restrain particles by their y coordinate.
virtual double unprotected_evaluate(DerivativeAccumulator *da) const
Return the unweighted score for the restraint.
Restrain particles by their distance from the z axis in the xy plane.
void add_particle(RMF::FileHandle fh, Particle *hs)
Try to keep particles on the pore side of a membrane.
Try to keep one set of particles localized on a membrane surface.
Restrain particles by their z coordinate.
Restrain two interparticle distances to be the same.
Class for storing model, its restraints, constraints, and particles.
Try to keep particles away from a membrane.
#define IMP_OBJECT_SERIALIZE_DECL(Name)
Declare methods needed for serialization of Object pointers.
Try to keep particle surfaces in contact in a chain.
Restrain particles by their distance from the z axis in the xy plane.
Report key:value information on restraints.
Try to keep particles localized on a membrane surface.
Restrain particles by their x coordinate.
A nullptr-initialized pointer to an IMP Object.
Restrain a set of particles to be proximate to each other.
Class to handle individual particles of a Model object.
Restrain particle to a specific position.
Abstract base class for all restraints.
Restrain particles by their z coordinate.
Restrain particles by their distance from the z axis in the xy plane.
Restrain particles by their y coordinate.
virtual ModelObjectsTemp do_get_inputs() const =0
Class for adding derivatives from restraints to the model.
Restrain particles by their y coordinate.
A restraint is a term in an IMP ScoringFunction.