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