5 from __future__
import print_function
20 def __init__(self, m, restraints):
21 IMP.OptimizerState.__init__(self, m,
"WriteStats")
23 self.restraints = restraints
26 if (self.count != 10):
31 o = self.get_optimizer()
33 for r
in self.restraints:
34 print(r.get_name(), r.get_last_score())
49 print(
"there are", len(chains),
"chains in 1z5s.pdb")
52 native_chain_centers = []
57 rbd.set_coordinates_are_optimized(
True)
58 rigid_bodies.append(rbd)
59 print(
"chain has", rbd.get_number_of_members(), \
60 "atoms",
"coordinates: ", rbd.get_coordinates())
61 native_chain_centers.append(rbd.get_coordinates())
66 for rbd
in rigid_bodies:
70 rbd.get_coordinates(), rotation)
76 transformation1, transformation2)
78 print(
"Writing transformed assembly")
84 native_chain_centers[0], native_chain_centers[1])
87 r01.set_name(
"distance 0-1")
89 native_chain_centers[1], native_chain_centers[2])
92 r12.set_name(
"distance 1-2")
94 native_chain_centers[2], native_chain_centers[3])
97 r23.set_name(
"distance 2-3")
99 native_chain_centers[3], native_chain_centers[0])
102 r30.set_name(
"distance 3-0")
103 print(
"Distances in the solution: d01 =", \
104 d01,
"d12 =", d12,
"d23 =", d23,
"d30 =", d30)
107 print(
"adding distance restraints ")
108 for r
in [r01, r12, r23, r30]:
110 print(
"model has ", m.get_number_of_restraints(),
"restraints")
116 IMP.em2d.read_selection_file(selection_file)]
118 print(len(em_images),
"images read")
132 params.coarse_registration_method = IMP.em2d.ALIGN2D_PREPROCESSING
135 params.save_match_images =
False
139 em2d_restraint.setup(score_function, params)
140 em2d_restraint.set_images(em_images)
141 em2d_restraint.set_name(
"em2d restraint")
143 em2d_restraint.set_particles(container)
152 print(
"adding em2d restraint ")
153 m.add_restraint(em2d_restraints_set)
155 print(
"model has ", m.get_number_of_restraints(),
"restraints")
162 for rbd
in rigid_bodies:
165 print(
"MonteCarlo sampler has", s.get_number_of_movers(),
"movers")
168 o_state.set_period(10)
169 s.add_optimizer_state(o_state)
171 ostate2 = WriteStatisticsOptimizerScore(m, m.get_restraints())
172 s.add_optimizer_state(ostate2)
175 temperatures = [200, 100, 60, 40, 20, 5]
178 optimization_steps = 10
179 for T
in temperatures:
181 s.optimize(optimization_steps)
186 print(
"*** End optimization ***")
188 for rbd
in rigid_bodies:
189 print(
"chain has", rbd.get_number_of_members(), \
190 "atoms",
"coordinates: ", rbd.get_coordinates())
191 new_centers.append(rbd.get_coordinates())
197 print(
"Distances at the end of the optimization: d01 =", \
198 d01,
"d12 =", d12,
"d23 =", d23,
"d30 =", d30)
void write_pdb(const Selection &mhd, base::TextOutput out, unsigned int model=1)
static RigidBody setup_particle(kernel::Model *m, ParticleIndex pi, kernel::ParticleIndexesAdaptor ps)
Restraints using electron microscopy 2D images (class averages).
Various classes to hold sets of particles.
void set_log_level(LogLevel l)
Set the current global log level.
Rotation3D get_random_rotation_3d(const Rotation3D ¢er, double distance)
Pick a rotation at random near the provided one.
Shared optimizer state that is invoked upon commitment of new coordinates.
void add_radii(Hierarchy d, const ForceFieldParameters *ffp=get_all_atom_CHARMM_parameters(), FloatKey radius_key=FloatKey("radius"))
std::string get_example_path(std::string file_name)
Return the path to installed example data for this module.
Object used to hold a set of restraints.
Modify the transformation of a rigid body.
Low level functionality (logging, error handling, profiling, command line flags etc) that is used by ...
GenericHierarchies get_leaves(Hierarchy mhd)
Get all the leaves of the bit of hierarchy.
Distance restraint between two particles.
Transformation3D get_rotation_about_point(const Vector3D &point, const Rotation3D &rotation)
Generate a Transformation3D object from a rotation around a point.
Vector3D get_random_vector_in(const Cylinder3D &c)
Generate a random vector in a cylinder with uniform density.
Select all non-alternative ATOM records.
std::string get_relative_path(std::string base, std::string relative)
Return a path to a file relative to another file.
Store a kernel::ParticleIndexes.
void transform(XYZ a, const algebra::Transformation3D &tr)
Apply a transformation to the particle.
Hierarchies get_by_type(Hierarchy mhd, GetByType t)
Images read_images(const Strings &names, const ImageReaderWriter *rw)
Transformation3D compose(const Transformation3D &a, const Transformation3D &b)
Compose two transformations.
Basic functionality that is expected to be used by a wide variety of IMP users.
General purpose algebraic and geometric methods that are expected to be used by a wide variety of IMP...
Parameters used by Em2DRestraint and ProjectionFinder.
double get_distance(const VectorD< D > &v1, const VectorD< D > &v2)
Compute the distance between two vectors.
Functionality for loading, creating, manipulating and scoring atomic structures.
void read_pdb(base::TextInput input, int model, Hierarchy h)
Class for storing model, its restraints, constraints, and particles.
Harmonic function (symmetric about the mean)