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
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)))
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
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
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)
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)
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