def debug_write_reciprocal_lattice_points_as_pdb(
    points, file_name='reciprocal_lattice.pdb'):
  from cctbx import crystal, xray
  cs = crystal.symmetry(unit_cell=(1000,1000,1000,90,90,90), space_group="P1")
  xs = xray.structure(crystal_symmetry=cs)
  sel = flex.random_selection(points.size(),
                              min(20000, points.size()))
  rsp = points.select(sel)
  for site in rsp:
    xs.add_scatterer(xray.scatterer("C", site=site))

  xs.sites_mod_short()
  with open(file_name, 'wb') as f:
    print >> f, xs.as_pdb_file()
def debug_write_reciprocal_lattice_points_as_pdb(
    points, file_name="reciprocal_lattice.pdb"
):
    from cctbx import crystal, xray

    cs = crystal.symmetry(unit_cell=(1000, 1000, 1000, 90, 90, 90), space_group="P1")
    xs = xray.structure(crystal_symmetry=cs)
    sel = flex.random_selection(points.size(), min(20000, points.size()))
    rsp = points.select(sel)
    for site in rsp:
        xs.add_scatterer(xray.scatterer("C", site=site))

    xs.sites_mod_short()
    with open(file_name, "wb") as f:
        print(xs.as_pdb_file(), file=f)
Beispiel #3
0
 def select_random_den_restraints(self):
     from cctbx.array_family import flex
     print("Selecting random DEN pairs...", file=self.log)
     random_pairs = {}
     for chain in self.ref_atom_pairs.keys():
         random_pairs[chain] = []
         pair_list_size = len(self.ref_atom_pairs[chain])
         num_restraints = round(self.atoms_per_chain_ref[chain] *
                                self.ndistance_ratio)
         if num_restraints > pair_list_size:
             num_restraints = pair_list_size
         random_selection = \
           flex.random_selection(pair_list_size, int(num_restraints))
         for i in random_selection:
             random_pairs[chain].append(self.ref_atom_pairs[chain][i])
     return random_pairs
Beispiel #4
0
 def select_random_den_restraints(self):
   from cctbx.array_family import flex
   print >> self.log, "Selecting random DEN pairs..."
   random_pairs = {}
   for chain in self.ref_atom_pairs.keys():
     random_pairs[chain] = []
     pair_list_size = len(self.ref_atom_pairs[chain])
     num_restraints = round(self.atoms_per_chain_ref[chain] *
                            self.ndistance_ratio)
     if num_restraints > pair_list_size:
       num_restraints = pair_list_size
     random_selection = \
       flex.random_selection(pair_list_size, int(num_restraints))
     for i in random_selection:
         random_pairs[chain].append(self.ref_atom_pairs[chain][i])
   return random_pairs