9 #ifndef IMPPMI_CROSS_LINK_RESTRAINT_SET_H
10 #define IMPPMI_CROSS_LINK_RESTRAINT_SET_H
12 #include "pmi_config.h"
14 #include <cereal/access.hpp>
15 #include <cereal/types/base_class.hpp>
17 IMPPMI_BEGIN_NAMESPACE
25 std::string filename_;
26 double length_, slope_;
27 std::string auth_name_, chemical_name_, smiles_, smiles_canonical_, inchi_,
30 friend class cereal::access;
31 template<
class Archive>
void serialize(Archive &ar) {
32 ar(cereal::base_class<RestraintSet>(
this),
33 filename_, length_, slope_, auth_name_, chemical_name_, smiles_,
34 smiles_canonical_, inchi_, inchi_key_);
40 const std::string &name =
"CrossLinkRestraintSet %1%")
44 void set_metadata(std::string filename,
double length,
double slope) {
50 void set_linker_auth_name(std::string name) { auth_name_ = name; }
51 void set_linker_chemical_name(std::string name) { chemical_name_ = name; }
52 void set_linker_smiles(std::string name) { smiles_ = name; }
53 void set_linker_smiles_canonical(std::string name) {
54 smiles_canonical_ = name;
56 void set_linker_inchi(std::string name) { inchi_ = name; }
57 void set_linker_inchi_key(std::string name) { inchi_key_ = name; }
virtual RestraintInfo * get_static_info() const
Used to hold a set of related restraints.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Object used to hold a set of restraints.
Class for storing model, its restraints, constraints, and particles.
A RestraintSet subclass to track cross-link metadata.
#define IMP_OBJECT_SERIALIZE_DECL(Name)
Declare methods needed for serialization of Object pointers.
Report key:value information on restraints.