Exemple #1
0
 def _compute_d99(self):
     if (not self.params.compute.d99): return
     d99 = maptbx.d99(f_map=self.f_map)
     self.d99 = d99.result.d99
     d99_obj_1, d99_obj_2 = None, None
     if (self.map_data_1 is not None):
         d99_1 = maptbx.d99(map=self.map_data_1,
                            crystal_symmetry=self.crystal_symmetry)
         d99_2 = maptbx.d99(map=self.map_data_2,
                            crystal_symmetry=self.crystal_symmetry)
         self.d99_1 = d99_1.result.d99
         self.d99_2 = d99_2.result.d99
         self.f_map_1 = d99_1.f_map
         self.f_map_2 = d99_2.f_map
Exemple #2
0
def get_atom_radius(xray_structure=None,
                    d_min=None,
                    map_data=None,
                    crystal_symmetry=None,
                    radius=None):
    if (radius is not None): return radius
    radii = []
    if (d_min is not None):
        radii.append(d_min)
    if ([xray_structure, crystal_symmetry].count(None) == 0):
        assert crystal_symmetry.is_similar_symmetry(
            xray_structure.crystal_symmetry())
    if ([map_data, crystal_symmetry].count(None) == 0):
        d99 = maptbx.d99(map=map_data,
                         crystal_symmetry=crystal_symmetry).result.d99
        radii.append(d99)
    if (xray_structure is not None and d_min is not None):
        b_iso = adptbx.u_as_b(
            flex.mean(xray_structure.extract_u_iso_or_u_equiv()))
        o = maptbx.atom_curves(scattering_type="C",
                               scattering_table="electron")
        rad_image = o.image(d_min=d_min,
                            b_iso=b_iso,
                            radius_max=max(15., d_min),
                            radius_step=0.01).radius
        radii.append(rad_image)
    return max(3, min(10, max(radii)))
Exemple #3
0
 def _compute_d99(self):
     if (not self.params.compute_d99): return
     d99_obj = maptbx.d99(map=self.map_data,
                          crystal_symmetry=self.crystal_symmetry)
     self.d9 = d99_obj.result.d9
     self.d99 = d99_obj.result.d99
     self.d999 = d99_obj.result.d999
     self.f = d99_obj.f
     d99_obj_1, d99_obj_2 = None, None
     if (self.half_map_data_1 is not None):
         d99_obj_1 = maptbx.d99(map=self.half_map_data_1,
                                crystal_symmetry=self.crystal_symmetry)
         d99_obj_2 = maptbx.d99(map=self.half_map_data_2,
                                crystal_symmetry=self.crystal_symmetry)
         self.d99_1 = d99_obj_1.result.d99
         self.d99_2 = d99_obj_2.result.d99
         self.f1 = d99_obj_1.f
         self.f2 = d99_obj_2.f
Exemple #4
0
 def _compute_d99(self):
     if (not self.params.compute.d99): return
     d99 = maptbx.d99(f_map=self.f_map)
     self.d99 = d99.result.d99
     self.d999 = d99.result.d999
     self.d9999 = d99.result.d9999
     self.f_map = self.f_map.resolution_filter(d_min=self.d9999 -
                                               0.1)  # TRUNCATED!
     d99_obj_1, d99_obj_2 = None, None
     if (self.base.half_map_data_1() is not None):
         d99_1 = maptbx.d99(map=self.base.half_map_data_1(),
                            crystal_symmetry=self.base.crystal_symmetry())
         d99_2 = maptbx.d99(map=self.base.half_map_data_2(),
                            crystal_symmetry=self.base.crystal_symmetry())
         self.d99_1 = d99_1.result.d99
         self.d99_2 = d99_2.result.d99
         self.f_map_1 = d99_1.f_map
         self.f_map_2 = d99_2.f_map
Exemple #5
0
 def _compute_radius(self):
     if (not self.params.mask_maps): return
     if (self.xray_structure is None): return
     if (self.xray_structure is not None
             and [self.radius_smooth, self.resolution].count(None) == 2):
         f_map = miller.structure_factor_box_from_map(
             map=self.map_data, crystal_symmetry=self.crystal_symmetry)
         self.radius_smooth = maptbx.d99(f_map=f_map).result.d99
     self.radius_smooth = get_atom_radius(
         xray_structure=self.xray_structure,
         radius=self.radius_smooth,
         resolution=self.resolution)
Exemple #6
0
def exercise_d99():
    pdb_inp = iotbx.pdb.input(source_info=None, lines=pdb_str)
    ph = pdb_inp.construct_hierarchy()
    xrs = ph.extract_xray_structure(
        crystal_symmetry=pdb_inp.crystal_symmetry())
    crystal_gridding = maptbx.crystal_gridding(
        unit_cell=xrs.unit_cell(),
        space_group_info=xrs.space_group_info(),
        resolution_factor=0.25,
        d_min=2.,
        symmetry_flags=maptbx.use_space_group_symmetry)
    fc = xrs.structure_factors(d_min=2.).f_calc()
    fft_map = fc.fft_map(crystal_gridding=crystal_gridding)
    map = fft_map.real_map_unpadded()
    #
    o = maptbx.d99(map=map, crystal_symmetry=xrs.crystal_symmetry())
    assert approx_equal(o.result.d999, 2.0, 0.03)
Exemple #7
0
def show_cc(map_data, xray_structure, log=None):
    import mmtbx.maps.mtriage
    from mmtbx.maps.correlation import five_cc
    xrs = xray_structure
    xrs.scattering_type_registry(table="electron")
    d99 = maptbx.d99(map=map_data,
                     crystal_symmetry=xrs.crystal_symmetry()).result.d99
    if (log is not None): print("Resolution of map is: %6.4f" % d99, file=log)
    result = five_cc(map=map_data,
                     xray_structure=xrs,
                     d_min=d99,
                     compute_cc_box=False,
                     compute_cc_mask=True,
                     compute_cc_peaks=False,
                     compute_cc_volume=False).result
    if (log is not None):
        print("Map-model correlation coefficient (CC)", file=log)
        print("  CC_mask  : %6.4f" % result.cc_mask, file=log)
    return result.cc_mask