Exemplo n.º 1
0
def exercise_five_cc():
    pdb_inp = iotbx.pdb.input(source_info=None, lines=pdb_str)
    ph = pdb_inp.construct_hierarchy()
    #ph.write_pdb_file(file_name="m1.pdb")
    xrs = ph.extract_xray_structure(
        crystal_symmetry=pdb_inp.crystal_symmetry())
    f_calc = xrs.structure_factors(
        d_min=2.0).f_calc()  #.resolution_filter(d_max=6)
    fft_map = f_calc.fft_map(resolution_factor=0.25)
    m1 = fft_map.real_map_unpadded()
    #
    #xrs = xrs.set_b_iso(value=50)
    sc = xrs.sites_cart()
    #sc = sc + flex.vec3_double(sc.size(), [.5,.5,.5])
    xrs = xrs.replace_sites_cart(new_sites=sc)
    ph.adopt_xray_structure(xrs)
    #ph.write_pdb_file(file_name="m2.pdb")
    o = correlation.five_cc(map=m1,
                            xray_structure=xrs,
                            d_min=2.0,
                            compute_cc_box=True,
                            compute_cc_image=True,
                            box=False).result
    assert approx_equal(o.cc_box, 1.0)
    assert approx_equal(o.cc_image, 1.0)
    assert approx_equal(o.cc_mask, 1.0)
    assert approx_equal(o.cc_peaks, 1.0)
    assert approx_equal(o.cc_volume, 1.0)
Exemplo n.º 2
0
 def initialize(self):
     five_cc_o = five_cc(map=self.target_map_object.map_data,
                         xray_structure=self.model.get_xray_structure(),
                         d_min=self.target_map_object.d_min,
                         compute_cc_box=True,
                         compute_cc_image=False,
                         compute_cc_mask=True,
                         compute_cc_volume=False,
                         compute_cc_peaks=False).result
     self.cc_mask = five_cc_o.cc_mask
     self.cc_box = five_cc_o.cc_box
     # XXX use model.statistics or better method of model!
     if (self.model.restraints_manager_available()):
         es = self.model.get_restraints_manager().geometry.energies_sites(
             sites_cart=self.model.get_sites_cart())
         self.rmsd_a = es.angle_deviations()[2]
         self.rmsd_b = es.bond_deviations()[2]
Exemplo n.º 3
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
Exemplo n.º 4
0
 def initialize(self):
     self.assert_pdb_hierarchy_xray_structure_sync()
     five_cc_o = five_cc(map=self.target_map_object.map_data,
                         xray_structure=self.xray_structure,
                         d_min=self.target_map_object.d_min,
                         compute_cc_box=True,
                         compute_cc_image=False,
                         compute_cc_mask=True,
                         compute_cc_volume=False,
                         compute_cc_peaks=False)
     self.cc_mask = five_cc_o.cc_mask
     self.cc_box = five_cc_o.cc_box
     if (self.geometry_restraints_manager is not None):
         es = self.geometry_restraints_manager.energies_sites(
             sites_cart=self.xray_structure.sites_cart())
         self.rmsd_a = es.angle_deviations()[2]
         self.rmsd_b = es.bond_deviations()[2]
     self.dist_from_start = flex.mean(
         self.xray_structure_start.distances(other=self.xray_structure))
     self.assert_pdb_hierarchy_xray_structure_sync()
Exemplo n.º 5
0
 def initialize(self):
     self.assert_pdb_hierarchy_xray_structure_sync()
     # residue monitors
     self.residue_monitors = []
     backbone_atoms = ["N", "CA", "C", "O", "CB"]
     get_class = iotbx.pdb.common_residue_names_get_class
     sites_cart = self.xray_structure.sites_cart()
     current_map = self.compute_map(xray_structure=self.xray_structure)
     for model in self.pdb_hierarchy.models():
         for chain in model.chains():
             for residue_group in chain.residue_groups():
                 conformers = residue_group.conformers()
                 if (len(conformers) > 1): continue
                 for conformer in residue_group.conformers():
                     residue = conformer.only_residue()
                     id_str = "%s%s%s" % (chain.id, residue.resname,
                                          residue.resseq.strip())
                     if (get_class(residue.resname) == "common_amino_acid"):
                         residue_i_seqs_backbone = flex.size_t()
                         residue_i_seqs_sidechain = flex.size_t()
                         residue_i_seqs_all = flex.size_t()
                         residue_i_seqs_c = flex.size_t()
                         residue_i_seqs_n = flex.size_t()
                         for atom in residue.atoms():
                             an = atom.name.strip()
                             bb = an in backbone_atoms
                             residue_i_seqs_all.append(atom.i_seq)
                             if (bb):
                                 residue_i_seqs_backbone.append(atom.i_seq)
                             else:
                                 residue_i_seqs_sidechain.append(atom.i_seq)
                             if (an == "C"):
                                 residue_i_seqs_c.append(atom.i_seq)
                             if (an == "N"):
                                 residue_i_seqs_n.append(atom.i_seq)
                         sca = sites_cart.select(residue_i_seqs_all)
                         scs = sites_cart.select(residue_i_seqs_sidechain)
                         scb = sites_cart.select(residue_i_seqs_backbone)
                         if (scs.size() == 0): ccs = None
                         else:
                             ccs = self.map_cc(sites_cart=scs,
                                               other_map=current_map)
                         if (sca.size() == 0): cca = None
                         else:
                             cca = self.map_cc(sites_cart=sca,
                                               other_map=current_map)
                         if (scb.size() == 0): ccb = None
                         else:
                             ccb = self.map_cc(sites_cart=scb,
                                               other_map=current_map)
                         self.residue_monitors.append(
                             residue_monitor(
                                 residue=residue,
                                 id_str=id_str,
                                 selection_sidechain=
                                 residue_i_seqs_sidechain,
                                 selection_backbone=residue_i_seqs_backbone,
                                 selection_all=residue_i_seqs_all,
                                 selection_c=residue_i_seqs_c,
                                 selection_n=residue_i_seqs_n,
                                 map_cc_sidechain=ccs,
                                 map_cc_backbone=ccb,
                                 map_cc_all=cca,
                                 rotamer_status=self.rotamer_manager.
                                 evaluate_residue(residue)))
                     else:
                         residue_i_seqs_all = residue.atoms().extract_i_seq(
                         )
                         sca = sites_cart.select(residue_i_seqs_all)
                         cca = self.map_cc(sites_cart=sca,
                                           other_map=current_map)
                         self.residue_monitors.append(
                             residue_monitor(
                                 residue=residue,
                                 id_str=id_str,
                                 selection_all=residue_i_seqs_all,
                                 map_cc_all=cca))
     # globals
     self.five_cc = five_cc(map=self.target_map_object.map_data,
                            xray_structure=self.xray_structure,
                            d_min=self.target_map_object.d_min)
     self.map_cc_whole_unit_cell = self.map_cc(other_map=current_map)
     self.map_cc_around_atoms = self.map_cc(other_map=current_map,
                                            sites_cart=sites_cart)
     self.map_cc_per_atom = self.map_cc(other_map=current_map,
                                        sites_cart=sites_cart,
                                        per_atom=True)
     if (self.geometry_restraints_manager is not None):
         es = self.geometry_restraints_manager.energies_sites(
             sites_cart=sites_cart)
         self.rmsd_a = es.angle_deviations()[2]
         self.rmsd_b = es.bond_deviations()[2]
     self.dist_from_start = flex.mean(
         self.xray_structure_start.distances(other=self.xray_structure))
     self.number_of_rotamer_outliers = 0
     for r in self.residue_monitors:
         if (r.rotamer_status == "OUTLIER"):
             self.number_of_rotamer_outliers += 1
     self.assert_pdb_hierarchy_xray_structure_sync()