Shows how to locally refine a fit of a protein inside its density using a MC/CG optimization protocol. This example does not necessarily converge 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
39 dmap = IMP.em.read_map(
41 dmap.get_header_writable().set_resolution(resolution)
50 sampled_input_density.set_particles(ps)
51 sampled_input_density.resample()
52 sampled_input_density.calcRMS()
56 dmap, sampled_input_density, sampled_input_density.get_header().dmin)
57 print(
"The CC score of the native transformation is:", best_score)
64 IMP.algebra.get_unit_bounding_box_3d())
66 rand_angle = random.uniform(-70. / 180 * math.pi, 70. / 180 * math.pi)
82 sampled_input_density.resample()
83 sampled_input_density.calcRMS()
86 dmap, sampled_input_density, sampled_input_density.get_header().dmin)
88 print(
"The start score is:", start_score,
"with rmsd of:", start_rmsd)
91 print(
"performing local refinement, may run for 3-4 minutes")
96 sampled_input_density.resample()
97 sampled_input_density.calcRMS()
100 dmap, sampled_input_density, sampled_input_density.get_header().dmin)
101 print(
"The score after centering is:", score2,
"with rmsd of:", rmsd)
109 mh.get_particle(), refiner,
115 print(
"The start score is:", start_score,
"with rmsd of:", start_rmsd)
116 for i
in range(fitting_sols.get_number_of_solutions()):
124 print(
"Fit with index:", i,
" with cc: ", 1. - fitting_sols.get_score(i),
" and rmsd to native of:", rmsd)
127 prot_rb, fitting_sols.get_transformation(i).get_inverse())