Пример #1
0
 def refine_window(self, window):
   from mmtbx.building.alternate_conformations import real_space_annealing
   processed_pdb_file = self.get_processed_pdb_file()
   assert (processed_pdb_file is not None)
   hierarchy = processed_pdb_file.all_chain_proxies.pdb_hierarchy
   #print window.residue_id_str
   log = null_out()
   if (self.debug):
     log = sys.stdout
   refinements = real_space_annealing.refine_into_difference_density(
     fmodel=self.fmodel,
     pdb_hierarchy=hierarchy.deep_copy(),
     processed_pdb_file=processed_pdb_file,
     selection=window.selection,
     selection_score=window.residue_selection,
     params=self.params,
     nproc=self.nproc_2,
     out=null_out()).get_filtered_trials(log=log)
   result = ensemble(
     window=window,
     sites_trials=refinements)
   n_keep = result.filter_trials(
     sites_cart=self.sites_cart,
     min_rmsd=self.params.min_rmsd,
     min_dev=self.min_required_deviation)
   if (n_keep > 0):
     if (self.asynchronous_output):
       print(result, file=self.out)
     return result
   return None
Пример #2
0
 def refine_window (self, window) :
   from mmtbx.building.alternate_conformations import real_space_annealing
   processed_pdb_file = self.get_processed_pdb_file()
   assert (processed_pdb_file is not None)
   hierarchy = processed_pdb_file.all_chain_proxies.pdb_hierarchy
   #print window.residue_id_str
   log = null_out()
   if (self.debug) :
     log = sys.stdout
   refinements = real_space_annealing.refine_into_difference_density(
     fmodel=self.fmodel,
     pdb_hierarchy=hierarchy.deep_copy(),
     processed_pdb_file=processed_pdb_file,
     selection=window.selection,
     selection_score=window.residue_selection,
     params=self.params,
     nproc=self.nproc_2,
     out=null_out()).get_filtered_trials(log=log)
   result = ensemble(
     window=window,
     sites_trials=refinements)
   n_keep = result.filter_trials(
     sites_cart=self.sites_cart,
     min_rmsd=self.params.min_rmsd,
     min_dev=self.min_required_deviation)
   if (n_keep > 0) :
     if (self.asynchronous_output) :
       print >> self.out, result
     return result
   return None
def run(args, out=None):
    if out is None:
        out = sys.stdout
    from mmtbx.building.alternate_conformations import real_space_annealing
    import mmtbx.maps.utils
    import mmtbx.utils

    cmdline = mmtbx.utils.cmdline_load_pdb_and_data(
        args=args, master_phil=master_phil, process_pdb_file=True, scattering_table="n_gaussian", out=out
    )
    params = cmdline.params
    working_phil = master_phil.format(python_object=params)
    master_phil.fetch_diff(source=working_phil).show(out=out)
    fmodel = cmdline.fmodel
    hierarchy = cmdline.pdb_hierarchy
    sele_cache = hierarchy.atom_selection_cache()
    if params.selection is None:
        raise Sorry("Please specify the selection parameter.")
    selection = sele_cache.selection(params.selection)
    assert selection.count(True) > 0
    t1 = time.time()
    models = []
    refined_hierarchy = real_space_annealing.refine_into_difference_density(
        fmodel=fmodel,
        pdb_hierarchy=hierarchy,
        processed_pdb_file=cmdline.processed_pdb_file,
        selection=selection,
        params=params,
        nproc=params.nproc,
        out=out,
    ).as_pdb_ensemble(log=out)
    t2 = time.time()
    print >> out, "refinement time: %.3fs" % (t2 - t1)
    if refined_hierarchy is not None:
        refined_hierarchy.write_pdb_file(
            file_name=params.output_file_name, crystal_symmetry=fmodel.xray_structure.crystal_symmetry()
        )
        print "wrote %s" % params.output_file_name
    else:
        raise Sorry("No conformations surviving filtering step!")
Пример #4
0
def run(args, out=None):
  if (out is None) : out = sys.stdout
  from mmtbx.building.alternate_conformations import real_space_annealing
  import mmtbx.maps.utils
  import mmtbx.utils
  cmdline = mmtbx.utils.cmdline_load_pdb_and_data(
    args=args,
    master_phil=master_phil,
    process_pdb_file=True,
    scattering_table="n_gaussian",
    out=out)
  params = cmdline.params
  working_phil = master_phil.format(python_object=params)
  master_phil.fetch_diff(source=working_phil).show(out=out)
  fmodel = cmdline.fmodel
  hierarchy = cmdline.pdb_hierarchy
  sele_cache = hierarchy.atom_selection_cache()
  if (params.selection is None):
    raise Sorry("Please specify the selection parameter.")
  selection = sele_cache.selection(params.selection)
  assert (selection.count(True) > 0)
  t1 = time.time()
  models = []
  refined_hierarchy = real_space_annealing.refine_into_difference_density(
    fmodel=fmodel,
    pdb_hierarchy=hierarchy,
    processed_pdb_file=cmdline.processed_pdb_file,
    selection=selection,
    params=params,
    nproc=params.nproc,
    out=out).as_pdb_ensemble(log=out)
  t2 = time.time()
  print >> out, "refinement time: %.3fs" % (t2-t1)
  if (refined_hierarchy is not None):
    refined_hierarchy.write_pdb_file(file_name=params.output_file_name,
      crystal_symmetry = fmodel.xray_structure.crystal_symmetry())
    print "wrote %s" % params.output_file_name
  else :
    raise Sorry("No conformations surviving filtering step!")