Shows how to locally refine a fit of a protein inside its density using a MC/CG optimization protocol. This example does not necessarily converges to the global minimum as that may require more optimization steps. If one wishes to use this example as a template for real refinement purposes, please adjust the parameters of the function IMP.em.local_rigid_fitting accordingly.
10 from __future__
import print_function
38 dmap.get_header_writable().set_resolution(resolution)
47 sampled_input_density.set_particles(ps)
48 sampled_input_density.resample()
49 sampled_input_density.calcRMS()
53 dmap, sampled_input_density, sampled_input_density.get_header().dmin)
54 print(
"The CC score of the native transformation is:", best_score)
61 IMP.algebra.get_unit_bounding_box_3d())
63 rand_angle = random.uniform(-70. / 180 * math.pi, 70. / 180 * math.pi)
79 sampled_input_density.resample()
80 sampled_input_density.calcRMS()
83 dmap, sampled_input_density, sampled_input_density.get_header().dmin)
85 print(
"The start score is:", start_score,
"with rmsd of:", start_rmsd)
88 print(
"preforming local refinement, may run for 3-4 minutes")
93 sampled_input_density.resample()
94 sampled_input_density.calcRMS()
97 dmap, sampled_input_density, sampled_input_density.get_header().dmin)
98 print(
"The score after centering is:", score2,
"with rmsd of:", rmsd)
106 mh.get_particle(), refiner,
112 print(
"The start score is:", start_score,
"with rmsd of:", start_rmsd)
113 for i
in range(fitting_sols.get_number_of_solutions()):
121 print(
"Fit with index:", i,
" with cc: ", 1. - fitting_sols.get_score(i),
" and rmsd to native of:", rmsd)
124 prot_rb, fitting_sols.get_transformation(i).get_inverse())