コード例 #1
0
ファイル: fit_residue.py プロジェクト: keitaroyam/cctbx_fork
 def __init__(self,
              residue,
              mon_lib_srv,
              rotamer_manager,
              sin_cos_table,
              target_map=None,
              unit_cell=None,
              backbone_sample=True,
              accept_only_if_max_shift_is_smaller_than=None):
   adopt_init_args(self, locals())
   #
   if(target_map is None):
     assert not backbone_sample
     assert unit_cell is None
   # Initial state
   rotamer_start = rotamer_manager.rotamer(residue=self.residue)
   sites_cart_start=self.residue.atoms().extract_xyz()
   if(target_map is not None):
     target_start = self.get_target_value(sites_cart=sites_cart_start)
   # Actual calculations
   self.chi_angles = self.rotamer_manager.get_chi_angles(
     resname=self.residue.resname)
   co = mmtbx.refinement.real_space.aa_residue_axes_and_clusters(
     residue         = self.residue,
     mon_lib_srv     = self.mon_lib_srv,
     backbone_sample = True)
   if(backbone_sample):
     self.fit_c_beta(c_beta_rotation_cluster = co.clusters[0])
   self.fit_side_chain(clusters = co.clusters[1:])
   # Final state
   if(target_map is not None):
     rotamer_final = rotamer_manager.rotamer(residue=self.residue)
     target_final = self.get_target_value(
       sites_cart=self.residue.atoms().extract_xyz())
     # Sanity and consistency check
     #XXX not always hold due to approx fast math assert rotamer_final != "OUTLIER"
     # Potentially this will keep an OUTLIER if no better fit found
     if(target_start > target_final):
       self.residue.atoms().set_xyz(sites_cart_start)
コード例 #2
0
 def __init__(self,
              residue,
              mon_lib_srv,
              rotamer_manager,
              sin_cos_table,
              vdw_radii=None,
              xyzrad_bumpers=None,
              target_map=None,
              target_map_for_cb=None,
              unit_cell=None,
              backbone_sample=True,
              accept_only_if_max_shift_is_smaller_than=None):
   adopt_init_args(self, locals())
   #
   if(target_map is None):
     assert not backbone_sample
   # Initial state
   rotamer_start = rotamer_manager.rotamer(residue=self.residue)
   sites_cart_start = self.residue.atoms().extract_xyz()
   self.co = mmtbx.refinement.real_space.aa_residue_axes_and_clusters(
     residue         = self.residue,
     mon_lib_srv     = self.mon_lib_srv,
     backbone_sample = True)
   if(target_map is not None):
     target_start = self.get_target_value(sites_cart = sites_cart_start)
   # Actual calculations
   self.chi_angles = self.rotamer_manager.get_chi_angles(
     resname = self.residue.resname)
   if(len(self.co.clusters)>0):
     if(backbone_sample):
       self.fit_c_beta(c_beta_rotation_cluster = self.co.clusters[0])
     self.fit_side_chain(clusters = self.co.clusters[1:])
     # Final state
     if(target_map is not None):
       target_final = self.get_target_value(
         sites_cart=self.residue.atoms().extract_xyz())
       if(target_start > target_final):
         self.residue.atoms().set_xyz(sites_cart_start)