8 #ifndef IMPATOM_SELECTION_H
9 #define IMPATOM_SELECTION_H
11 #include <IMP/atom/atom_config.h>
12 #include <IMP/atom/internal/SelectionPredicate.h>
18 #include <IMP/algebra/algebra_config.h>
23 #include <boost/unordered_map.hpp>
25 IMPATOM_BEGIN_NAMESPACE
94 boost::dynamic_bitset<> parent,
95 bool include_children,
96 bool found_rep_node=
false)
const;
98 void add_predicate(internal::SelectionPredicate *p);
99 void init_predicate();
112 double resolution = 0,
114 std::string molecule = None,
115 int residue_index = None, std::string chain_id = None,
117 Ints hierarchy_types = None,
Element element = None,
118 Terminus terminus = None,
121 Ints copy_indexes = [],
int state_index = -1,
122 Ints state_indexes = []);
133 #if !defined(IMP_DOXYGEN) && !defined(SWIG)
147 void set_molecules(
Strings mols);
153 { representation_type_ = t; }
157 void set_state_indexes(
Ints states);
162 void set_terminus(Terminus t);
166 void set_chain_ids(
Strings chains);
168 void set_chains(
Strings chains) { set_chain_ids(chains); }
171 void set_residue_indexes(
Ints indexes);
177 void set_domains(
Strings names);
179 void set_molecule(std::string mol);
181 void set_chain_id(std::string c);
184 void set_chain(std::string c) { set_chain_id(c); }
187 void set_residue_index(
int i);
189 void set_atom_type(AtomType types);
191 void set_residue_type(ResidueType type);
193 void set_domain(std::string name);
195 void set_copy_index(
unsigned int copy);
197 void set_copy_indexes(
Ints copies);
205 void set_hierarchy_types(
Ints types);
208 void set_intersection(
const Selection &s);
211 void set_union(
const Selection &s);
214 void set_symmetric_difference(
const Selection &s);
217 void set_difference(
const Selection &s);
221 ParticlesTemp get_selected_particles(
bool with_representation=
true)
const;
235 get_selected_particle_indexes(
bool with_representation=
true)
const;
238 operator ParticleIndexes()
const {
return get_selected_particle_indexes(); }
239 operator ParticlesTemp()
const {
return get_selected_particles(); }
269 const Selections &s,
double k, std::string name =
"Connectivity%1%");
280 std::string name =
"Connectivity%1%");
289 const Selection &s,
double k, std::string name =
"Connectivity%1%");
301 std::string name =
"Connectivity%1%");
317 std::string name = std::string());
324 #ifdef IMP_ALGEBRA_USE_IMP_CGAL
354 mutable boost::unordered_map<Particle *, Pointer<Geometry> >
364 IMPATOM_END_NAMESPACE
A decorator for Representations.
Define the elements used in IMP.
IMP::Vector< ParticleType > ParticleTypes
void set_representation_type(RepresentationType t)
Try to find this representation type.
double get_mass(const Selection &s)
Get the total mass of a hierarchy, in Daltons.
The base class for geometry.
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
double get_volume(const Cone3D &g)
Provenance create_clone(Provenance p)
Clone provenance (including previous provenance)
void set_resolution(double r)
Select at a Representation node with a resolution close to r.
IMP::Vector< AtomType > AtomTypes
#define IMP_SHOWABLE(Name)
Key< 34897493 > ParticleType
An IMP::Key object for identifying types of particles by strings.
double get_radius_of_gyration(const Selection &s)
Implement geometry for the basic shapes from IMP.algebra.
void set_state_index(int state)
Select State with the passed index.
A particle with a user-defined type.
Take Decorator, Particle or ParticleIndex.
Class for storing model, its restraints, constraints, and particles.
Decorator for helping deal with a hierarchy of molecules.
#define IMP_VALUES(Name, PluralName)
Define the type for storing sets of values.
Restraint * create_internal_connectivity_restraint(const Selection &s, double x0, double k, std::string name="Connectivity%1%")
Create a restraint connecting the selection.
core::XYZR create_cover(const Selection &s, std::string name=std::string())
The standard decorator for manipulating molecular structures.
A decorator for Residues.
double get_surface_area(const Cone3D &g)
IMP::Vector< ResidueType > ResidueTypes
virtual Geometries get_components() const
Return a set of geometry composing this one.
Class to handle individual particles of a Model object.
Restraint * create_distance_restraint(const Selection &n0, const Selection &n1, double x0, double k, std::string name="Distance%1%")
IMP::Vector< Int > Ints
Standard way to pass a bunch of Int values.
Restraint * create_connectivity_restraint(const Selections &s, double x0, double k, std::string name="Connectivity%1%")
Create a restraint connecting the selections.
Hierarchies get_leaves(Hierarchy h)
Element
The various elements currently supported/known.
Restraint * create_excluded_volume_restraint(const Selections &s)
Create an excluded volume restraint for a list of selections.
Select hierarchy particles identified by the biological name.
Decorator for a sphere-like particle.
A restraint is a term in an IMP ScoringFunction.
A decorator for a particle with x,y,z coordinates and a radius.