예제 #1
0
def exercise_overloads():
    open("overloads.sca", "w").write("""\
    1
 -987
    50.000    50.000    80.000    90.000    90.000   120.000 p3121
  19   2   3 ******* 47482.6 ******* 26861.1
  19   2   2 16333.4 17143.9 38472.0 22574.8
  19   2   1 49448.5 24728.9 28427.6 18873.9
  19   2   0 34296.1 24479.1 25846.4 22660.4
  19   2  -1 27513.6 23318.8 30341.0 19273.1""")
    file_in = merge.reader(file_handle=open("overloads.sca"))
    arrays = file_in.as_miller_arrays()
    assert (len(arrays[0].indices()) == 8)
예제 #2
0
def exercise_overloads () :
  open("overloads.sca", "w").write("""\
    1
 -987
    50.000    50.000    80.000    90.000    90.000   120.000 p3121
  19   2   3 ******* 47482.6 ******* 26861.1
  19   2   2 16333.4 17143.9 38472.0 22574.8
  19   2   1 49448.5 24728.9 28427.6 18873.9
  19   2   0 34296.1 24479.1 25846.4 22660.4
  19   2  -1 27513.6 23318.8 30341.0 19273.1""")
  file_in = merge.reader(file_handle=open("overloads.sca"))
  arrays = file_in.as_miller_arrays()
  assert (len(arrays[0].indices()) == 8)
예제 #3
0
def recycle(miller_array):
    merge.write(file_name="tmp.sca", miller_array=miller_array)
    read_back_file = merge.reader(file_handle=open("tmp.sca"))
    read_back_arrays = read_back_file.as_miller_arrays()
    assert len(read_back_arrays) == 1
    read_back_array = read_back_arrays[0]
    read_back_input_indexing = read_back_array.adopt_set(miller_array)
    if (miller_array.is_xray_amplitude_array()):
        read_back_input_indexing = read_back_input_indexing.f_sq_as_f()
    regression = flex.linear_regression(miller_array.data(),
                                        read_back_input_indexing.data())
    assert approx_equal(regression.slope(), 1, eps=1.e-3)
    assert abs(regression.y_intercept()) < 1
    regression = flex.linear_regression(miller_array.sigmas(),
                                        read_back_input_indexing.sigmas())
    if (miller_array.is_xray_intensity_array()):
        assert approx_equal(regression.slope(), 1, eps=1.e-3)
    else:
        assert approx_equal(regression.slope(), 1, eps=1.e-1)
    assert abs(regression.y_intercept()) < 1
예제 #4
0
def recycle(miller_array):
  merge.write(file_name="tmp.sca", miller_array=miller_array)
  read_back_file = merge.reader(file_handle=open("tmp.sca"))
  read_back_arrays = read_back_file.as_miller_arrays()
  assert len(read_back_arrays) == 1
  read_back_array = read_back_arrays[0]
  read_back_input_indexing = read_back_array.adopt_set(miller_array)
  if (miller_array.is_xray_amplitude_array()):
    read_back_input_indexing = read_back_input_indexing.f_sq_as_f()
  regression = flex.linear_regression(
    miller_array.data(),
    read_back_input_indexing.data())
  assert approx_equal(regression.slope(), 1, eps=1.e-3)
  assert abs(regression.y_intercept()) < 1
  regression = flex.linear_regression(
    miller_array.sigmas(),
    read_back_input_indexing.sigmas())
  if (miller_array.is_xray_intensity_array()):
    assert approx_equal(regression.slope(), 1, eps=1.e-3)
  else:
    assert approx_equal(regression.slope(), 1, eps=1.e-1)
  assert abs(regression.y_intercept()) < 1
def try_all_readers(file_name):
  try: content = mtz.object(file_name=file_name)
  except RuntimeError: pass
  else: return ("ccp4_mtz", content)
  if (detect_binary_file.from_initial_block(file_name=file_name)):
    try: content = unpickle_miller_arrays(file_name=file_name)
    except KeyboardInterrupt: raise
    except Exception: pass
    else: return ("cctbx.miller.array", content)
    return (None, None)
  try: content = cns_reflection_reader.cns_reflection_file(
    open(file_name))
  except cns_reflection_reader.CNS_input_Error: pass
  else: return ("cns_reflection_file", content)
  try: content = cns_index_fobs_sigma_reader.reader(
    file_name=file_name)
  except RuntimeError: pass
  else: return ("cns_index_fobs_sigma", content)
  try: content = scalepack_merge.reader(
    open(file_name))
  except scalepack_merge.FormatError: pass
  else: return ("scalepack_merge", content)
  try: content = scalepack_no_merge.reader(file_name)
  except KeyboardInterrupt: raise
  except Exception: pass
  else: return ("scalepack_no_merge_original_index", content)
  try: content = dtrek_reflnlist_reader.reflnlist(
    open(file_name))
  except KeyboardInterrupt: raise
  except Exception: pass
  else: return ("dtrek_reflnlist", content)
  try: content = shelx_hklf.reader(
    file_name=file_name)
  except KeyboardInterrupt: raise
  except Exception: pass
  else: return ("shelx_hklf", content)
  try:
    content = cif_reader(file_path=file_name)
    looks_like_a_reflection_file = False
    for block in content.model().values():
      if '_refln_index_h' in block or '_refln.index_h' in block:
        looks_like_a_reflection_file = True
        break
    if not looks_like_a_reflection_file:
      raise RuntimeError
  except KeyboardInterrupt: raise
  except Exception: pass
  else: return ("cif", content)
  try: content = xds_ascii_reader(
    open(file_name))
  except KeyboardInterrupt: raise
  except Exception: pass
  else: return ("xds_ascii", content)
  try:
    content = xds_integrate_hkl_reader()
    content.read_file(file_name)
  except KeyboardInterrupt: raise
  except Exception: pass
  else: return ("xds_integrate_hkl", content)
  try: content = solve_fpfm_reader(file_name=file_name)
  except KeyboardInterrupt: raise
  except Exception: pass
  else: return ("solve_fpfm", content)
  return (None, None)
예제 #6
0
def extract_from_merge(file):
    return merge.reader(file, header_only=True).crystal_symmetry()
예제 #7
0
def try_all_readers(file_name):
    try:
        content = mtz.object(file_name=file_name)
    except RuntimeError:
        pass
    else:
        return ("ccp4_mtz", content)
    if (detect_binary_file.from_initial_block(file_name=file_name)):
        try:
            content = unpickle_miller_arrays(file_name=file_name)
        except KeyboardInterrupt:
            raise
        except Exception:
            pass
        else:
            return ("cctbx.miller.array", content)
        return (None, None)
    try:
        content = cns_reflection_reader.cns_reflection_file(open(file_name))
    except cns_reflection_reader.CNS_input_Error:
        pass
    else:
        return ("cns_reflection_file", content)
    try:
        content = cns_index_fobs_sigma_reader.reader(file_name=file_name)
    except RuntimeError:
        pass
    else:
        return ("cns_index_fobs_sigma", content)
    try:
        content = scalepack_merge.reader(open(file_name))
    except scalepack_merge.FormatError:
        pass
    else:
        return ("scalepack_merge", content)
    try:
        content = scalepack_no_merge.reader(file_name)
    except KeyboardInterrupt:
        raise
    except Exception:
        pass
    else:
        return ("scalepack_no_merge_original_index", content)
    try:
        content = dtrek_reflnlist_reader.reflnlist(open(file_name))
    except KeyboardInterrupt:
        raise
    except Exception:
        pass
    else:
        return ("dtrek_reflnlist", content)
    try:
        content = shelx_hklf.reader(file_name=file_name)
    except KeyboardInterrupt:
        raise
    except Exception:
        pass
    else:
        return ("shelx_hklf", content)
    try:
        content = cif_reader(file_path=file_name)
        looks_like_a_reflection_file = False
        for block in content.model().values():
            if '_refln_index_h' in block or '_refln.index_h' in block:
                looks_like_a_reflection_file = True
                break
        if not looks_like_a_reflection_file:
            raise RuntimeError
    except KeyboardInterrupt:
        raise
    except Exception:
        pass
    else:
        return ("cif", content)
    try:
        content = xds_ascii_reader(open(file_name))
    except KeyboardInterrupt:
        raise
    except Exception:
        pass
    else:
        return ("xds_ascii", content)
    try:
        content = xds_integrate_hkl_reader()
        content.read_file(file_name)
    except KeyboardInterrupt:
        raise
    except Exception:
        pass
    else:
        return ("xds_integrate_hkl", content)
    try:
        content = solve_fpfm_reader(file_name=file_name)
    except KeyboardInterrupt:
        raise
    except Exception:
        pass
    else:
        return ("solve_fpfm", content)
    return (None, None)
def extract_from_merge(file):
  return merge.reader(file, header_only=True).crystal_symmetry()