Analyze the convergence of the IMP.em.FitRestraint. The script build a simple model and then displays the derivatives, em score and how well conjugate gradients converges under various displacements of the model.
6 from __future__
import print_function
10 use_rigid_bodies =
True
23 prb.set_name(
"rigid body")
28 print(
"initial frame", drb.get_reference_frame())
30 drb.set_coordinates_are_optimized(
True)
32 refiner.add_particle(prb, [p])
34 print([p.get_name()
for p
in refiner.get_refined(prb)])
39 d.set_coordinates_are_optimized(
True)
48 dheader.set_resolution(1)
50 dmap.set_particles([p])
69 m.set_log_level(IMP.base.SILENT)
74 def try_point(i, j, k):
75 print(
"trying", i, j, k)
77 to_move.set_coordinates(vc)
84 print(
"score and derivatives", v, to_move.get_derivatives())
88 print(
"after", d.get_coordinates())
89 mag = to_move.get_coordinates().get_magnitude()
94 sg.set_color(converge_color)
95 sg.set_name(
"converge")
98 try_point(-bd, -bd, -bd)