Ejemplo n.º 1
0
def tst_02(args, prefix=None):

    if prefix is None:
        prefix = 'tst_02'
    # Full good answer model
    pdb_file_name_answer_full = "%s_answer_full.pdb" % prefix
    pdb_inp = iotbx.pdb.input(source_info=None, lines=pdb_str_answer_full)
    pdb_inp.write_pdb_file(file_name="%s_answer.pdb" % prefix)
    ph_answer_full = pdb_inp.construct_hierarchy()
    ph_answer_full.atoms().reset_i_seq()
    xrs_answer_full = pdb_inp.xray_structure_simple()

    # Poor full model that we want to refine so it matches the answer
    pdb_file_name_poor = "%s_poor.pdb" % prefix
    pdb_inp = iotbx.pdb.input(source_info=None, lines=pdb_str_poor_full)
    pdb_inp.write_pdb_file(file_name="%s_poor.pdb" % prefix)
    ph_poor_full = pdb_inp.construct_hierarchy()
    ph_poor_full.atoms().reset_i_seq()
    xrs_poor_full = pdb_inp.xray_structure_simple()

    # Compute target map
    fc = xrs_answer_full.structure_factors(d_min=3.5).f_calc()
    fft_map = fc.fft_map(resolution_factor=0.25)
    fft_map.apply_sigma_scaling()
    target_map_data = fft_map.real_map_unpadded()
    ccp4_map(crystal_symmetry=fc.crystal_symmetry(),
             file_name="%s_map.ccp4" % prefix,
             map_data=target_map_data)
    # Output map coefficients
    mtz_dataset = fc.as_mtz_dataset(column_root_label="FC")
    mtz_object = mtz_dataset.mtz_object()
    mtz_object.write(file_name="%s_map.mtz" % prefix)

    hierarchy, multiple_model_hierarchy = run(
        args=args,
        map_data=target_map_data,
        crystal_symmetry=fc.crystal_symmetry(),
        pdb_string=pdb_str_poor_full)

    pdb_inp = hierarchy.as_pdb_input(crystal_symmetry=fc.crystal_symmetry())
    xrs_refined = pdb_inp.xray_structure_simple()
    hierarchy.write_pdb_file(file_name="%s_refined.pdb" % prefix)
    multiple_model_hierarchy.write_pdb_file(
        file_name="%s_refined_all_states.pdb" % prefix)
    rmsd = xrs_refined.sites_cart().rms_difference(
        xrs_answer_full.sites_cart())
    print "RMSD from TARGET for FULL-model refinement: %8.2f " % (rmsd)
    return rmsd
Ejemplo n.º 2
0
def tst_02(args,prefix=None):

  if prefix is None:
    prefix='tst_02'
  # Full good answer model
  pdb_file_name_answer_full = "%s_answer_full.pdb"%prefix
  pdb_inp = iotbx.pdb.input(source_info=None, lines = pdb_str_answer_full)
  pdb_inp.write_pdb_file(file_name="%s_answer.pdb"%prefix)
  ph_answer_full = pdb_inp.construct_hierarchy()
  ph_answer_full.atoms().reset_i_seq()
  xrs_answer_full = pdb_inp.xray_structure_simple()

  # Poor full model that we want to refine so it matches the answer
  pdb_file_name_poor = "%s_poor.pdb"%prefix
  pdb_inp = iotbx.pdb.input(source_info=None, lines = pdb_str_poor_full)
  pdb_inp.write_pdb_file(file_name="%s_poor.pdb"%prefix)
  ph_poor_full = pdb_inp.construct_hierarchy()
  ph_poor_full.atoms().reset_i_seq()
  xrs_poor_full = pdb_inp.xray_structure_simple()

  # Compute target map
  fc = xrs_answer_full.structure_factors(d_min=3.5).f_calc()
  fft_map = fc.fft_map(resolution_factor = 0.25)
  fft_map.apply_sigma_scaling()
  target_map_data = fft_map.real_map_unpadded()
  ccp4_map(crystal_symmetry=fc.crystal_symmetry(),
    file_name="%s_map.ccp4" %prefix,
    map_data=target_map_data)
  # Output map coefficients
  mtz_dataset = fc.as_mtz_dataset(column_root_label="FC")
  mtz_object = mtz_dataset.mtz_object()
  mtz_object.write(file_name = "%s_map.mtz"%prefix)

  hierarchy,multiple_model_hierarchy=run(
     args=args,map_data=target_map_data,
     crystal_symmetry=fc.crystal_symmetry(),
     pdb_string=pdb_str_poor_full)

  pdb_inp=hierarchy.as_pdb_input(crystal_symmetry=fc.crystal_symmetry())
  xrs_refined=pdb_inp.xray_structure_simple()
  hierarchy.write_pdb_file(file_name="%s_refined.pdb"%prefix)
  multiple_model_hierarchy.write_pdb_file(
      file_name="%s_refined_all_states.pdb"%prefix)
  rmsd=xrs_refined.sites_cart().rms_difference(xrs_answer_full.sites_cart())
  print "RMSD from TARGET for FULL-model refinement: %8.2f " %(rmsd)
  return rmsd
Ejemplo n.º 3
0
def tst_01():
  print "\nTesting merge_model\n"
  prefix='tst_01'
  # Full good answer model
  pdb_file_name_answer_full = "%s_answer_full.pdb"%prefix
  pdb_inp = iotbx.pdb.input(source_info=None, lines = pdb_str_answer_AE)
  pdb_inp.write_pdb_file(file_name="%s_answer.pdb"%prefix)
  ph_answer_full = pdb_inp.construct_hierarchy()
  ph_answer_full.atoms().reset_i_seq()
  xrs_answer_full = pdb_inp.xray_structure_simple()

  # Two models we want to merge
  pdb_file_name_two_models = "%s_poor_two_models.pdb"%prefix
  pdb_inp = iotbx.pdb.input(source_info=None, lines = pdb_str_two_models)
  pdb_inp.write_pdb_file(file_name="%s_two_models.pdb"%prefix)
  xrs_two_models_full = pdb_inp.xray_structure_simple()

  # Compute target map
  fc = xrs_answer_full.structure_factors(d_min=3.5).f_calc()
  fft_map = fc.fft_map(resolution_factor = 0.25)
  fft_map.apply_sigma_scaling()
  target_map_data = fft_map.real_map_unpadded()
  ccp4_map(crystal_symmetry=fc.crystal_symmetry(),
    file_name="%s_map.ccp4" %prefix,
    map_data=target_map_data)
  # Output map coefficients
  mtz_dataset = fc.as_mtz_dataset(column_root_label="FC")
  mtz_object = mtz_dataset.mtz_object()
  mtz_object.write(file_name = "%s_map.mtz"%prefix)

  from mmtbx.building.merge_models import run as merge_models
  hierarchy=merge_models(
      map_data=target_map_data,
      pdb_inp=pdb_inp,
      dist_max=100,
      verbose=True)

  pdb_inp=hierarchy.as_pdb_input(crystal_symmetry=fc.crystal_symmetry())
  xrs=pdb_inp.xray_structure_simple()
  hierarchy.write_pdb_file(file_name="%s_refined.pdb"%prefix)
  rmsd=xrs.sites_cart().rms_difference(xrs_answer_full.sites_cart())
  print "RMSD from TARGET allowing any CROSSOVERS: %8.2f " %(rmsd)
  return rmsd
Ejemplo n.º 4
0
def tst_01():
    print "\nTesting merge_model\n"
    prefix = 'tst_01'
    # Full good answer model
    pdb_file_name_answer_full = "%s_answer_full.pdb" % prefix
    pdb_inp = iotbx.pdb.input(source_info=None, lines=pdb_str_answer_AE)
    pdb_inp.write_pdb_file(file_name="%s_answer.pdb" % prefix)
    ph_answer_full = pdb_inp.construct_hierarchy()
    ph_answer_full.atoms().reset_i_seq()
    xrs_answer_full = pdb_inp.xray_structure_simple()

    # Two models we want to merge
    pdb_file_name_two_models = "%s_poor_two_models.pdb" % prefix
    pdb_inp = iotbx.pdb.input(source_info=None, lines=pdb_str_two_models)
    pdb_inp.write_pdb_file(file_name="%s_two_models.pdb" % prefix)
    xrs_two_models_full = pdb_inp.xray_structure_simple()

    # Compute target map
    fc = xrs_answer_full.structure_factors(d_min=3.5).f_calc()
    fft_map = fc.fft_map(resolution_factor=0.25)
    fft_map.apply_sigma_scaling()
    target_map_data = fft_map.real_map_unpadded()
    ccp4_map(crystal_symmetry=fc.crystal_symmetry(),
             file_name="%s_map.ccp4" % prefix,
             map_data=target_map_data)
    # Output map coefficients
    mtz_dataset = fc.as_mtz_dataset(column_root_label="FC")
    mtz_object = mtz_dataset.mtz_object()
    mtz_object.write(file_name="%s_map.mtz" % prefix)

    from mmtbx.building.merge_models import run as merge_models
    hierarchy = merge_models(map_data=target_map_data,
                             pdb_inp=pdb_inp,
                             dist_max=100,
                             verbose=True)

    pdb_inp = hierarchy.as_pdb_input(crystal_symmetry=fc.crystal_symmetry())
    xrs = pdb_inp.xray_structure_simple()
    hierarchy.write_pdb_file(file_name="%s_refined.pdb" % prefix)
    rmsd = xrs.sites_cart().rms_difference(xrs_answer_full.sites_cart())
    print "RMSD from TARGET allowing any CROSSOVERS: %8.2f " % (rmsd)
    return rmsd