mrc文件i/o库
mrcfile的Python项目详细描述
mrcfile是MRC2014 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.open和mrcfile.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。
要运行测试套件,请转到顶级项目目录(其中包含 并运行mrcfile和tests包。 (或者,如果安装了tox,请运行tox。
许可证
该项目是根据bsd许可证发布的。