예제 #1
0
def exercise_cns_input () :
  from mmtbx.regression import make_fake_anomalous_data
  pdb_file, mtz_file = make_fake_anomalous_data.generate_cd_cl_inputs(
    file_base="tst_cmdline_cns")
  from iotbx.file_reader import any_file
  mtz_in = any_file("tst_cmdline_cns.mtz")
  f_obs = mtz_in.file_server.miller_arrays[0].average_bijvoet_mates()
  flags = mtz_in.file_server.miller_arrays[1].average_bijvoet_mates()
  f = open("tst_cmdline_cns.hkl", "w")
  out = StringIO()
  f_obs.export_as_cns_hkl(
    file_object=out,
    r_free_flags=flags)
  # get rid of embedded symmetry
  for line in out.getvalue().splitlines() :
    if (not "{" in line) :
      f.write("%s\n" % line)
  f.close()
  cmdline = mmtbx.command_line.load_model_and_data(
    args=["tst_cmdline_cns.pdb", "tst_cmdline_cns.hkl"],
    master_phil=mmtbx.command_line.generic_simple_input_phil(),
    process_pdb_file=False,
    create_fmodel=True,
    out=null_out())
  out = StringIO()
  cmdline.crystal_symmetry.show_summary(f=out)
  assert (out.getvalue() == """\
Unit cell: (21.362, 23.436, 23.594, 90, 90, 90)
Space group: P 1 (No. 1)
"""), out.getvalue()
def exercise():
    from mmtbx.command_line import refine_anomalous_substructure
    from mmtbx.regression.make_fake_anomalous_data import generate_cd_cl_inputs
    pdb_file, mtz_file = generate_cd_cl_inputs(file_base="tst_anom_ref")
    groups = refine_anomalous_substructure.run(args=[pdb_file, mtz_file],
                                               out=null_out())
    assert len(groups) == 2
예제 #3
0
def exercise_anomalous_maps_misc():
    from mmtbx.regression.make_fake_anomalous_data import generate_cd_cl_inputs
    import mmtbx.utils
    from iotbx import file_reader
    mtz_file, pdb_file = generate_cd_cl_inputs(file_base="tst_mmtbx_maps_misc")
    pdb_in = file_reader.any_file(pdb_file)
    hierarchy = pdb_in.file_object.hierarchy
    xrs = pdb_in.file_object.xray_structure_simple()
    for s in xrs.scatterers():
        if (s.scattering_type == "Cd2+"):
            s.fp = -0.29
            s.fdp = 2.676
            s.flags.set_use_fp_fdp(True)
    mtz_in = file_reader.any_file(mtz_file)
    f_obs = mtz_in.file_server.miller_arrays[0]
    flags = mtz_in.file_server.miller_arrays[0]
    flags = flags.customized_copy(data=flags.data() == 1)
    fmodel = mmtbx.utils.fmodel_simple(f_obs=f_obs,
                                       r_free_flags=flags,
                                       xray_structures=[xrs],
                                       scattering_table="n_gaussian",
                                       skip_twin_detection=True)
    map_coeffs = fmodel.map_coefficients(map_type="anom_residual",
                                         exclude_free_r_reflections=True)
    map_anom = map_coeffs.fft_map(
        resolution_factor=0.25).apply_sigma_scaling().real_map_unpadded()
    for s in xrs.scatterers():
        if (s.scattering_type == "Cd2+"):
            assert (map_anom.eight_point_interpolation(s.site) < 0)
        elif (s.scattering_type == 'Cl1-'):
            assert (map_anom.eight_point_interpolation(s.site) > 10)
    # this simply checks whether anomalous data will cause problems when
    # mixed with other options (i.e. array size errors)
    map2 = fmodel.map_coefficients(map_type="2mFo-DFc",
                                   exclude_free_r_reflections=True)
def exercise():
    from mmtbx.command_line import refine_anomalous_substructure
    from mmtbx.regression.make_fake_anomalous_data import generate_cd_cl_inputs

    pdb_file, mtz_file = generate_cd_cl_inputs(file_base="tst_anom_ref")
    groups = refine_anomalous_substructure.run(args=[pdb_file, mtz_file], out=null_out())
    assert len(groups) == 2
def exercise () :
  from mmtbx.command_line import refine_anomalous_substructure
  from mmtbx.regression.make_fake_anomalous_data import generate_cd_cl_inputs
  mtz_file, pdb_file = generate_cd_cl_inputs(
    file_base = "tst_mmtbx_substructure")
  # XXX for some reason even though I'm using synthetic data, it ends up with
  # an extra water with a peak height of 3.1
  anom_groups = refine_anomalous_substructure.run(
    args=[mtz_file, pdb_file, "skip_twin_detection=True", "map_sigma_min=4"],
    out=null_out())
  assert (len(anom_groups) == 2)
  print "OK"
예제 #6
0
def exercise():
    from mmtbx.command_line import refine_anomalous_substructure
    from mmtbx.regression.make_fake_anomalous_data import generate_cd_cl_inputs
    mtz_file, pdb_file = generate_cd_cl_inputs(
        file_base="tst_mmtbx_substructure")
    # XXX for some reason even though I'm using synthetic data, it ends up with
    # an extra water with a peak height of 3.1
    anom_groups = refine_anomalous_substructure.run(args=[
        mtz_file, pdb_file, "skip_twin_detection=True", "map_sigma_min=4"
    ],
                                                    out=null_out())
    assert (len(anom_groups) == 2)
    print("OK")
예제 #7
0
def exercise_example () :
  from mmtbx.regression import make_fake_anomalous_data
  pdb_file, mtz_file = make_fake_anomalous_data.generate_cd_cl_inputs(
    file_base="tst_cmdline_example")
  script = os.path.join(libtbx.env.dist_path("mmtbx"), "examples",
    "simple_command_line_cc.py")
  assert os.path.isfile(script)
  args = [
    "mmtbx.python",
    "\"%s\"" % script,
    pdb_file,
    mtz_file,
    "skip_twin_detection=True",
  ]
  result = easy_run.fully_buffered(" ".join(args)).raise_if_errors()
  assert ("""CC(obs-calc): 0.999""" in result.stdout_lines)
def exercise () :
  from mmtbx.command_line import compute_map_coefficients
  from mmtbx.regression.make_fake_anomalous_data import generate_cd_cl_inputs
  from iotbx import file_reader
  mtz_file, pdb_file = generate_cd_cl_inputs(
    file_base="tst_map_coeffs_simple")
  args = [mtz_file, pdb_file, "map_type=anom_residual",
          "skip_twin_detection=True"]
  out = StringIO()
  compute_map_coefficients.run(args=args, out=out)
  assert """Using wavelength = 1.116 from PDB header""" in out.getvalue()
  assert os.path.isfile("tst_map_coeffs_simple_anom_residual.mtz")
  mtz_in = file_reader.any_file("tst_map_coeffs_simple_anom_residual.mtz")
  assert (mtz_in.file_server.miller_arrays[0].info().label_string() ==
          "ANOM_DIFF,PHANOM_DIFF")
  print "OK"
예제 #9
0
def exercise_anomalous_maps_misc () :
  from mmtbx.regression.make_fake_anomalous_data import generate_cd_cl_inputs
  import mmtbx.utils
  from iotbx import file_reader
  mtz_file, pdb_file = generate_cd_cl_inputs(
    file_base = "tst_mmtbx_maps_misc")
  pdb_in = file_reader.any_file(pdb_file)
  hierarchy = pdb_in.file_object.hierarchy
  xrs = pdb_in.file_object.xray_structure_simple()
  for s in xrs.scatterers() :
    if (s.scattering_type == "Cd2+") :
      s.fp = -0.29
      s.fdp = 2.676
      s.flags.set_use_fp_fdp(True)
  mtz_in = file_reader.any_file(mtz_file)
  f_obs = mtz_in.file_server.miller_arrays[0]
  flags = mtz_in.file_server.miller_arrays[0]
  flags = flags.customized_copy(data=flags.data()==1)
  fmodel = mmtbx.utils.fmodel_simple(
    f_obs=f_obs,
    r_free_flags=flags,
    xray_structures=[xrs],
    scattering_table="n_gaussian",
    skip_twin_detection=True)
  map_coeffs = fmodel.map_coefficients(
    map_type="anom_residual",
    exclude_free_r_reflections=True)
  map_anom = map_coeffs.fft_map(
    resolution_factor=0.25).apply_sigma_scaling().real_map_unpadded()
  for s in xrs.scatterers() :
    if (s.scattering_type == "Cd2+") :
      assert (map_anom.eight_point_interpolation(s.site) < 0)
    elif (s.scattering_type == 'Cl1-') :
      assert (map_anom.eight_point_interpolation(s.site) > 10)
  # this simply checks whether anomalous data will cause problems when
  # mixed with other options (i.e. array size errors)
  map2 = fmodel.map_coefficients(
    map_type="2mFo-DFc",
    exclude_free_r_reflections=True)
예제 #10
0
def exercise () :
  from mmtbx.regression.make_fake_anomalous_data import generate_cd_cl_inputs
  from mmtbx.command_line import mtz2map
  import mmtbx.utils
  from iotbx import file_reader
  from scitbx.array_family import flex
  mtz_file, pdb_file = generate_cd_cl_inputs(file_base = "tst_mmtbx_mtz2map")
  pdb_in = file_reader.any_file(pdb_file)
  hierarchy = pdb_in.file_object.hierarchy
  xrs = pdb_in.file_object.xray_structure_simple()
  mtz_in = file_reader.any_file(mtz_file)
  f_obs = mtz_in.file_server.miller_arrays[0]
  f_obs_mean = f_obs.average_bijvoet_mates()
  flags = mtz_in.file_server.miller_arrays[1]
  flags = flags.customized_copy(data=flags.data()==1)
  fmodel = mmtbx.utils.fmodel_simple(
    f_obs=f_obs,
    r_free_flags=flags,
    xray_structures=[xrs],
    scattering_table="n_gaussian",
    skip_twin_detection=True)
  assert f_obs.anomalous_flag()
  mtz_data = f_obs.as_mtz_dataset(column_root_label="F")
  #mtz_data.add_miller_array(
  #  miller_array=f_obs.average_bijvoet_mates(),
  #  column_root_label="F_mean")
  mtz_data.add_miller_array(
    miller_array=fmodel.f_model(),
    column_root_label="FMODEL")
  mtz_data.add_miller_array(
    miller_array=fmodel.f_model().average_bijvoet_mates().phases(deg=True),
    column_root_label="PHI",
    column_types="P")
  mtz_data.add_miller_array(
    miller_array=f_obs_mean.customized_copy(
      data=flex.double(f_obs_mean.data().size(), 0.95),
      sigmas=None).set_observation_type(None),
    column_root_label="FOM",
    column_types="W")
  two_fofc_map = fmodel.map_coefficients(map_type="2mFo-DFc")
  fofc_map = fmodel.map_coefficients(map_type="mFo-Dfc")
  anom_map = fmodel.map_coefficients(map_type="anom")
  mtz_data.add_miller_array(
    miller_array=two_fofc_map.average_bijvoet_mates(),
    column_root_label="2FOFCWT")
  mtz_data.add_miller_array(
    miller_array=fmodel.map_coefficients(map_type="mFo-DFc"),
    column_root_label="FOFCWT")
  mtz_data.add_miller_array(
    miller_array=fmodel.map_coefficients(map_type="anom"),
    column_root_label="ANOM")
  mtz_data.add_miller_array(flags,
    column_root_label="FreeR_flag")
  map_file = "tst_mmtbx_mtz2map_map_coeffs.mtz"
  mtz_data.mtz_object().write(map_file)
  # exercise defaults with PDB file
  file_info = mtz2map.run([pdb_file, map_file], log=null_out())
  file_info = [ (os.path.basename(fn), desc) for fn, desc in file_info ]
  assert (file_info == [
    ('tst_mmtbx_mtz2map_map_coeffs_2mFo-DFc.ccp4', 'CCP4 map'),
    ('tst_mmtbx_mtz2map_map_coeffs_mFo-DFc.ccp4', 'CCP4 map'),
    ('tst_mmtbx_mtz2map_map_coeffs_anom.ccp4', 'CCP4 map'),
    ('tst_mmtbx_mtz2map_map_coeffs_4.ccp4', 'CCP4 map')
  ])
  # without PDB file
  file_info_2 = mtz2map.run([map_file], log=null_out())
  file_info_2 = [ (os.path.basename(fn), desc) for fn, desc in file_info_2 ]
  assert file_info_2 == file_info, file_info_2
  # with FMODEL
  file_info_3 = mtz2map.run([pdb_file, map_file, "include_fmodel=True"],
    log=null_out())
  file_info_3 = [ (os.path.basename(fn), desc) for fn, desc in file_info_3 ]
  assert (file_info_3 == [
    ('tst_mmtbx_mtz2map_map_coeffs_fmodel.ccp4', 'CCP4 map'),
    ('tst_mmtbx_mtz2map_map_coeffs_2mFo-DFc.ccp4', 'CCP4 map'),
    ('tst_mmtbx_mtz2map_map_coeffs_mFo-DFc.ccp4', 'CCP4 map'),
    ('tst_mmtbx_mtz2map_map_coeffs_anom.ccp4', 'CCP4 map'),
    ('tst_mmtbx_mtz2map_map_coeffs_5.ccp4', 'CCP4 map')
  ])
  # exercise bad parameter
  try :
    file_info = mtz2map.run([pdb_file, "1yjp_mtz2map_map_coeffs.mtz",
      "output.directory=1yjp_mtz2map_map_coeffs.mtz"],
      log=null_out())
  except Sorry :
    pass
  else :
    raise Exception_expected
  # bad atom selection
  try :
    file_info = mtz2map.run([pdb_file, map_file, "selection=\"resname ZN\""],
      log=null_out())
  except Sorry, s  :
    assert (str(s) == "No atoms found matching the specified selection.")
예제 #11
0
def exercise():
    from mmtbx.regression.make_fake_anomalous_data import generate_cd_cl_inputs
    from mmtbx.command_line import mtz2map
    import mmtbx.utils
    from iotbx import file_reader
    from scitbx.array_family import flex
    mtz_file, pdb_file = generate_cd_cl_inputs(file_base="tst_mmtbx_mtz2map")
    pdb_in = file_reader.any_file(pdb_file)
    hierarchy = pdb_in.file_object.hierarchy
    xrs = pdb_in.file_object.xray_structure_simple()
    mtz_in = file_reader.any_file(mtz_file)
    f_obs = mtz_in.file_server.miller_arrays[0]
    f_obs_mean = f_obs.average_bijvoet_mates()
    flags = mtz_in.file_server.miller_arrays[1]
    flags = flags.customized_copy(data=flags.data() == 1)
    fmodel = mmtbx.utils.fmodel_simple(f_obs=f_obs,
                                       r_free_flags=flags,
                                       xray_structures=[xrs],
                                       scattering_table="n_gaussian",
                                       skip_twin_detection=True)
    assert f_obs.anomalous_flag()
    mtz_data = f_obs.as_mtz_dataset(column_root_label="F")
    #mtz_data.add_miller_array(
    #  miller_array=f_obs.average_bijvoet_mates(),
    #  column_root_label="F_mean")
    mtz_data.add_miller_array(miller_array=fmodel.f_model(),
                              column_root_label="FMODEL")
    mtz_data.add_miller_array(
        miller_array=fmodel.f_model().average_bijvoet_mates().phases(deg=True),
        column_root_label="PHI",
        column_types="P")
    mtz_data.add_miller_array(miller_array=f_obs_mean.customized_copy(
        data=flex.double(f_obs_mean.data().size(),
                         0.95), sigmas=None).set_observation_type(None),
                              column_root_label="FOM",
                              column_types="W")
    two_fofc_map = fmodel.map_coefficients(map_type="2mFo-DFc")
    fofc_map = fmodel.map_coefficients(map_type="mFo-Dfc")
    anom_map = fmodel.map_coefficients(map_type="anom")
    mtz_data.add_miller_array(
        miller_array=two_fofc_map.average_bijvoet_mates(),
        column_root_label="2FOFCWT")
    mtz_data.add_miller_array(
        miller_array=fmodel.map_coefficients(map_type="mFo-DFc"),
        column_root_label="FOFCWT")
    mtz_data.add_miller_array(
        miller_array=fmodel.map_coefficients(map_type="anom"),
        column_root_label="ANOM")
    mtz_data.add_miller_array(flags, column_root_label="FreeR_flag")
    map_file = "tst_mmtbx_mtz2map_map_coeffs.mtz"
    mtz_data.mtz_object().write(map_file)
    # exercise defaults with PDB file
    file_info = mtz2map.run([pdb_file, map_file], log=null_out())
    file_info = [(os.path.basename(fn), desc) for fn, desc in file_info]
    assert (file_info == [
        ('tst_mmtbx_mtz2map_map_coeffs_2mFo-DFc.ccp4', 'CCP4 map'),
        ('tst_mmtbx_mtz2map_map_coeffs_mFo-DFc.ccp4', 'CCP4 map'),
        ('tst_mmtbx_mtz2map_map_coeffs_anom.ccp4', 'CCP4 map'),
        ('tst_mmtbx_mtz2map_map_coeffs_4.ccp4', 'CCP4 map')
    ])
    # without PDB file
    file_info_2 = mtz2map.run([map_file], log=null_out())
    file_info_2 = [(os.path.basename(fn), desc) for fn, desc in file_info_2]
    assert file_info_2 == file_info, file_info_2
    # with FMODEL
    file_info_3 = mtz2map.run([pdb_file, map_file, "include_fmodel=True"],
                              log=null_out())
    file_info_3 = [(os.path.basename(fn), desc) for fn, desc in file_info_3]
    assert (file_info_3 == [
        ('tst_mmtbx_mtz2map_map_coeffs_fmodel.ccp4', 'CCP4 map'),
        ('tst_mmtbx_mtz2map_map_coeffs_2mFo-DFc.ccp4', 'CCP4 map'),
        ('tst_mmtbx_mtz2map_map_coeffs_mFo-DFc.ccp4', 'CCP4 map'),
        ('tst_mmtbx_mtz2map_map_coeffs_anom.ccp4', 'CCP4 map'),
        ('tst_mmtbx_mtz2map_map_coeffs_5.ccp4', 'CCP4 map')
    ])
    # exercise bad parameter
    try:
        file_info = mtz2map.run([
            pdb_file, "1yjp_mtz2map_map_coeffs.mtz",
            "output.directory=1yjp_mtz2map_map_coeffs.mtz"
        ],
                                log=null_out())
    except Sorry:
        pass
    else:
        raise Exception_expected
    # bad atom selection
    try:
        file_info = mtz2map.run(
            [pdb_file, map_file, "selection=\"resname ZN\""], log=null_out())
    except Sorry, s:
        assert (str(s) == "No atoms found matching the specified selection.")