mrc文件i/o库

mrcfile的Python项目详细描述


Build StatusPython Package IndexPython VersionsDocumentation

mrcfileMRC2014 file format的python实现,它 用于结构生物学中存储图像和体积数据。

它允许使用非常简单的api轻松创建和打开mrc文件, 它将文件头和数据公开为numpy数组。代码运行在 python 2和python 3是完全单元测试的。

这个库旨在允许用户和开发人员读写 python中的标准兼容mrc文件尽可能简单,并且没有 依赖于除numpy之外的任何已编译库。你可以用它 以交互方式检查文件、更正标题等,或在脚本和 更大的软件包提供基本的mrc文件i/o功能。

主要功能

  • 用于访问mrc文件的干净、简单的api
  • 易于安装和使用
  • 根据MRC2014格式验证文件
  • 对gzip和bzip2文件的无缝支持
  • 内存映射文件选项,用于快速随机访问非常大的文件
  • 用于后台加载多个文件的异步打开选项
  • 在Python2&3中运行,在Linux、Mac OS X和Windows上运行

安装

mrcfile库可从python包索引获得:

pip install mrcfile

它还包含在CCP-EM中的ccpem-python环境中 软件套件。

可以找到源代码(包括完整的测试套件)on GitHub

基本用法

打开文件的最简单方法是使用mrcfile.openmrcfile.new 功能。它们返回一个MrcFile对象,该对象表示 磁盘。

打开mrc文件并读取数据片段:

>>> import mrcfile
>>> with mrcfile.open('tests/test_data/EMD-3197.map') as mrc:
...     mrc.data[10,10]
...
array([ 2.58179283,  3.1406002 ,  3.64495397,  3.63812137,  3.61837363,
        4.0115056 ,  3.66981959,  2.07317996,  0.1251585 , -0.87975615,
        0.12517013,  2.07319379,  3.66982722,  4.0115037 ,  3.61837196,
        3.6381247 ,  3.64495087,  3.14059472,  2.58178973,  1.92690361], dtype=float32)

使用二维数据数组创建新文件并更改某些值:

>>> with mrcfile.new('tmp.mrc') as mrc:
...     mrc.set_data(np.zeros((5, 5), dtype=np.int8))
...     mrc.data[1:4,1:4] = 10
...     mrc.data
...
array([[ 0,  0,  0,  0,  0],
       [ 0, 10, 10, 10,  0],
       [ 0, 10, 10, 10,  0],
       [ 0, 10, 10, 10,  0],
       [ 0,  0,  0,  0,  0]], dtype=int8)

当文件关闭时,数据将被保存到磁盘,或者在 with块的结尾(类似于普通的python文件对象)或手动 正在调用close()。您也可以调用flush()将任何更改写入磁盘 把文件打开。

要验证mrc文件:

>>> mrcfile.validate('tests/test_data/EMD-3197.map')
File does not declare MRC format version 20140: nversion = 0
False

>>> mrcfile.validate('tmp.mrc')
True

文档

完整的文档可以在Read the Docs上找到。

引用mrcfile

如果您发现mrcfile对您的工作有用,请引用:

Burnley T,Palmer C&Winn M(2017)中国共产党新兴市场的最新发展 软件套件。acta cryst.这是一个故事。d73:469–477。 doi: 10.1107/S2059798317007859

贡献

请将GitHub issue tracker用于错误报告和功能请求,或者 email CCP-EM

也欢迎代码贡献,请向 GitHub repository

要运行测试套件,请转到顶级项目目录(其中包含 并运行mrcfiletests包。 (或者,如果安装了tox,请运行tox

许可证

该项目是根据bsd许可证发布的。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java SimpleFramework和工厂方法   Java适当地处理异常   java单例类不起作用   java小程序和Swing在eclipse中不显示组件   多个键上的java Redisson FastRemove不起作用   java验证请求正文不等于模式   在Java中从URL读取数据   eche RecyclerView项的java Set自定义字体   string Java如何从Date获取HH:mm:ss   当Java应用程序落后于负载均衡器时,在某些URL上强制使用SSL   使用esapi时发生java错误   java使用流根据第二个列表中的值更新一个列表中的对象   组织。openqa。硒。Java中的NoTouchElementException WebDriver?   从JSON字符串Java创建CSV文件