Beispiel #1
0
def shake_sites(xrs, random, shift, grm=None):
    if (random):
        xrs.shake_sites_in_place(mean_distance=shift)
    else:
        grad_calc = cartesian_dynamics.gradients_calculator_geometry_restraints(
            restraints_manager=grm)
        cartesian_dynamics.run(xray_structure=xrs,
                               gradients_calculator=grad_calc,
                               temperature=1000,
                               n_steps=100000,
                               time_step=0.0005,
                               stop_cm_motion=True,
                               stop_at_diff=shift)
    return xrs
Beispiel #2
0
def shake_sites(xrs, random, shift, grm=None):
  if(random):
    xrs.shake_sites_in_place(mean_distance = shift)
  else:
    grad_calc = cartesian_dynamics.gradients_calculator_geometry_restraints(
      restraints_manager = grm)
    cartesian_dynamics.run(
      xray_structure       = xrs,
      gradients_calculator = grad_calc,
      temperature          = 1000,
      n_steps              = 100000,
      time_step            = 0.0005,
      stop_cm_motion       = True,
      stop_at_diff         = shift)
  return xrs
 def gradients_calculator(self):
   if(not self.real_space):
     if(self.fmodel is not None):
       grad_calc = cartesian_dynamics.gradients_calculator_reciprocal_space(
         restraints_manager        = self.restraints_manager, # XXX WHY?
         fmodel                    = self.fmodel,
         sites_cart                = self.fmodel.xray_structure.sites_cart(),
         wx                        = self.wx,
         wc                        = self.wc,
         update_gradient_threshold = self.params.update_grads_shift)
     else:
       grad_calc = cartesian_dynamics.gradients_calculator_geometry_restraints(
         restraints_manager = self.restraints_manager)
   else:
     grad_calc = cartesian_dynamics.gradients_calculator_real_space_simple(
       restraints_manager        = self.restraints_manager.geometry, # XXX WHY?
       target_map                = self.target_map,
       unit_cell                 = self.xray_structure.unit_cell(),
       sites_cart                = self.xray_structure.sites_cart(),
       wx                        = self.wx,
       wc                        = self.wc,
       update_gradient_threshold = 0)
   return grad_calc
 def gradients_calculator(self):
     if (not self.real_space):
         if (self.fmodel is not None):
             grad_calc = cartesian_dynamics.gradients_calculator_reciprocal_space(
                 restraints_manager=self.restraints_manager,  # XXX WHY?
                 fmodel=self.fmodel,
                 sites_cart=self.fmodel.xray_structure.sites_cart(),
                 wx=self.wx,
                 wc=self.wc,
                 update_gradient_threshold=self.params.update_grads_shift)
         else:
             grad_calc = cartesian_dynamics.gradients_calculator_geometry_restraints(
                 restraints_manager=self.restraints_manager)
     else:
         grad_calc = cartesian_dynamics.gradients_calculator_real_space_simple(
             restraints_manager=self.restraints_manager.
             geometry,  # XXX WHY?
             target_map=self.target_map,
             unit_cell=self.xray_structure.unit_cell(),
             sites_cart=self.xray_structure.sites_cart(),
             wx=self.wx,
             wc=self.wc,
             update_gradient_threshold=0)
     return grad_calc