尖峰计划。ft光谱处理程序的协同开发
spike-p的Python项目详细描述
斯派克是什么?
SpikeFT光谱学处理程序的协作开发。
这是0.99.10版-2019年7月
spike是一个程序,允许处理、显示和分析从各种傅里叶变换光谱获得的数据集。该名称表示处理innovativekernel。
它允许处理1d和2dft光谱,实现真实、复杂和超复杂的n维傅里叶变换,以及许多其他功能。
它是用python编写的(在python 2.7和3.6中进行了测试),可以用作一组工具,例如使用jupyter笔记本作为交互式前端。
据我们所知,这是第一个免费提供的程序,允许处理、显示和分析二维傅立叶变换离子回旋共振(fourier transform ion cyclotron resonance,简称ft-icr)以及轨道时域数据。正在处理。
它仍在非常积极的发展中。 许多功能缺失,而许多其他功能在出现时并没有完全修复。 但是,考虑到此代码中已经存在的工作量,我们决定提供它。 我们相信,即使在这个部分开发阶段,这个程序也可能被证明对某些用途有用。
引用峰值
如果您碰巧成功使用spike,请引用它,并参考本网站,以及以下可能的参考资料:
- 程序本身的第一次发布-被anal拒绝。化学。评审员1说"核磁共振太多",评审员2说"质谱太多"!!< /EM >
- Chiron L.,Coutouly M-A.,Starck J-P.,Rolando C.,Delsuc M-A.Spike A处理软件专用于Fourier光谱仪https://arxiv.org/abs/1608.06777(2016)
- 当前峰值部分基于的python设置的第一个版本 2。Tramesel,D.,Catherinot,V.和Delsuc,M.-A.。核磁共振处理建模,朝着核磁共振实验的高效无人值守处理方向发展。《磁共振杂志》188,56-67(2007年)。
- 二维FT-ICR-MS处理的第一个版本 三。Van Agthoven,M.A.,Chiron,L.,Coutouly,M.-A.,Delsuc,M.-A.&Rolando,C.肽和糖肽的二维ECD FT-ICR质谱。分析化学84,5589-95(2012年)。
- 核磁共振自动化的可能性 4。Margueritte,L.,Markov,P.,Chiron,L.,Starck,J.-P.,Vonthron Sénécheau,C.,Bourjot,M.,和Delsuc,M.-A.(2018年)。复杂样品核磁共振实验的自动微分分析。Magn。Reon。化学,80(5),1387.http://doi.org/10.1002/mrc.4683
参考文献1)是通用参考文献,其他参考文献更具体。
峰值功能
- 一维数据集的ft分析
- apodisation,phasing,module,…
- 二维数据集分析
- 相位或幅度调制
- 复代数或超复代数
- 稳健处理
- 数据集大小没有限制
- 最重处理的并行处理
- 在使用标准python资源的多核桌面上
- 在大型集群上,使用mpi库
- 高级功能
- 降噪(滤波、线性预测、cadzow、urqrd、sane等)
- 自动或手动基线校正
- nus数据处理
- 1d和2d峰值选择器
- 插件架构
- 允许轻松扩展核心程序
- 减少交叉依赖性
- 使用matplotlib或bokeh透明的完整光谱显示利
- 变焦,有多种单位可供选择(取决于光谱:秒、赫兹、ppm、m/z等)
- 存储为PNG或PDF格式
- 与Jupyter笔记本电脑环境的交互
处理以下光谱图
- 核磁共振
- 完全支持1d和2d
- 还没有nd
- FT-ICR
- 完全支持1d和2d
- 轨道捕获
- 仅1D(!)
- 其他光谱图正在考虑中
文件可以从
-
NMR:
- 布鲁克上旋
- 手册
- NPK-GIFA
- 旋转
- 布鲁克顶点
- 布鲁克索拉丽克斯
- 轨道飞行器:
- Thermofisher原始数据
<其他> - csv和txt文件
- 内存中
numpy
缓冲区中的任何数据。
用法
作为处理库
spike主要用作库,代码可以简单到:
fromspike.FileimportSolarixdd=Solarix.Import_1D('FTICR-Files/ESI_pos_Ubiquitin_000006.d')# Import create a basic SPIKE objectdd.hamming().zf(2).rfft().modulus()# we have a simple piped processing scheme# here doing apodisation - zerofilling (doubling the size) - FT and modulus.# calibration is imported from Bruker - advanced calibration is availabledd.unit="m/z"dd.display(zoom=(500,2000))# display the spectrum for m/z ranging from 500 to 2000dd.pp(threshold=1E7)# peak-pick the spectrum in this rangedd.centroid()# compute centroidsdd.display(zoom=(856.5,858.5))# and zoom on the isotopic peakdd.display_peaks(zoom=(856.5,858.5),peak_label=True)
交互模式
spike允许从jupyter(ipython)提示符交互地处理数据集,并且在jupyter笔记本中工作得非常好甚至在jupyter lab中工作得非常好
- 请查看示例文件(
eg_*.py
和*.ipynb
)以获取示例和一些文档。 (*不完全符合数据*) - 使用
matplotlib
库执行显示。 - 使用
processing.py
批处理程序批量处理大型2d-ft-icr,由名为*.mscf
的参数文件控制。
- 批处理模式支持多处理,包括MPI和多核机器上的本机处理(仍在进行中)
- 大型2D-FT-ICR以分层格式存储,可通过交互式程序轻松显示。
- 数据集以HDF5标准文件格式处理,它允许几乎无限的文件大小(测试高达500 GB)。
运行独立程序
processing.py和visu2d.py是两个独立的程序,写在spike的顶部。
- 允许高效处理的processing.py FT-ICR二维数据集,不限制最终文件的大小 生成多分辨率文件
- visu2d.py版本 是一个交互式工具,用于可视化二维FT-ICR多分辨率文件
语法:
python -m spike.processing param_file.mscf
或
python -m spike.visu2D param_file.mscf
我怎么得到斯派克?
spike是用纯python编写的,它依赖于几个外部库。 它与Python2.7和Python3.6兼容并经过了全面测试
但是,它依赖于应该独立安装的数学库。
- matplotlib
- 努比
- scipy
- 表格
- 熊猫
一些插件或扩展需要额外的库(mpi
,bokeh
,mayavi
,…)
要获得它,您只需
- 依靠科学的分布,如水蟒或水母
- 自己安装上面的python发行版(很棘手)
然后您可以使用pip安装它:
pip install spike_py
或者,如果您想播放代码,
- 在这里下载最新的稳定版本:https://bitbucket.org/delsuc/spike/downloads
- 或者
hg克隆
devel分支并使其保持最新
python setup.py install
或者,如果您不想永久安装它
python setup.py develop
使用pip
pip install spike_py
依赖关系
它需要以下非标准的python库:
可选
它已经在enthough和anaconda发行版中成功测试。
历史记录
spike源于gifa程序,由m-a delsuc和其他人在fortran 77
中自80年代后期开发。
gifa已经知道了几个突变,最后以一个称为npk的部分重写结束。
然而,npk显示出许多弱点,主要是由于32位的组织结构和糟糕的文件格式。因此,当一个强大的科学环境在python中可用时,纯python中的重写就开始了。在这个名为npk-v2的初始项目中,添加了许多新功能,并且主要是在nmr之外的其他光谱领域工作的能力。
在2014年的某个时候,我们选择将NPK-V2分叉到Spike,并将其公之于众。
为Spike开发
spike是一个开源程序,这意味着欢迎外部贡献。
如果您认为您的改进对其他人有用,请提交一个拉取请求。
注意拉取请求应该与devel
分支相关联。
这一分支致力于尚未经过充分测试的新特性,并且仍然容易受到变化的影响,
而默认值
分支用于稳定代码。
插件
如果您考虑添加一些新特性,那么最好将其作为插件实现。 代码中已经包含了相当多的插件,有些插件相当复杂-请参见peaks.py例如,它实现了1d和2d峰值选择器,以及质心求值和完整的列表功能。
您还可以检查一个非常简单的插件的fastclean.py
,或者检查依赖于必须安装的外部库的插件的wavelet.py
。
一些良好实践
- spike包含许多工具,大多数用于数据交互的基本功能都可以在
npkdata.py
主文件中找到;实用程序也分散在util
模块中。 使用后,用户的生活会更轻松。 - 请写测试,即使是为插件!我们使用标准的python
unittest
,所以没有什么特别之处。所有测试每天晚上都会自动运行(代码是tests.py),因此它会快速检测所有潜在的问题。 - 将pull请求推到
devel
branch-default
用于稳定版本。
代码的组织
主程序是npkdata.py
,它定义了npkdata对象,所有东西都是在这个对象上构建的。
光谱图在fticr.py
和orbitrap.py
代码中定义,这两个子类是npkdata。
它被原型化为核磁共振数据集。此设置是临时的。
许多程序包含例程测试(在对象unittest中),这些例程测试也用作示例。
代码每天都要经过大量的测试,使用unittest
python图书馆。但是,许多测试依赖于一组大于1 g的测试数据集,而不是在这里分发。
主要节目:
文件的小描述:
npkdata.py公司 主库,允许核磁共振实验的所有处理(1d、2d和3d) 用作库、独立程序或iPython交互会话中的库
用于处理FT-ICR数据集(1D和2D)的NPKData的扩展
轨道飞行器.py npkdata的扩展,用于处理orbitrap数据集(1d)
处理.py 一个独立的程序,写在fticr.py的顶部,允许高效的处理 FT-ICR二维数据集,不限制最终文件的大小 生成多分辨率文件 语法:
python -m spike.processing param_file.mscf
Visual2D.Py 用于可视化二维FT-ICR多分辨率文件的交互式工具
python -m spike.visu2D param_file.mscf
目录
算法 包含处理数据集的算法 (马克森特、拉普拉斯等)不是所有的东西都是活动的!
显示 一个小实用程序,用于选择"模拟无效果显示"(用于测试)的常规matplotlib显示。
文件
用于光谱分析的各种文件格式以及HDF5峰值本机格式的导入程序。插件 自动插入npk内核的工具:显示实用程序、urqrd算法和各种其他工具。
其他
"en vrac"实用程序 代码中到处使用的一组低级工具
v1
实现与npkv_v1程序部分兼容的库峰值使用率 使用各种可用库的python程序示例
配置文件示例
- 处理如mscf
- 测试.mscf
以及各种实用程序
- npkconfigparser.py
读取.mscf文件 - npkerror.py
生成错误消息 - qc.py
质量检查 - 测试.py
运行所有测试 - dev_setup.py
推出新版本 - 版本.py
定义版本号 - 初始化.py
定义库 - rcpylint
- 待办事项列表.txt
- qc.txt
- release.txt
- npkconfigparser.py
作者和许可证
Spike当前的活跃作者是:
- marc andrédelsuc
madelsuc-at-unistra.fr
- 劳拉·杜西尔
以前的作者:
- christian rolando
christian.rolando-at-univ-lille1.fr
- lionel chiron
lionel.chiron-at-casc4de.eu
- petar markov
petar.markov-at-igbmc.fr
- 玛丽·奥德·库图利。
marie-aude.coutouly-at-datastorm.fr
本许可证项下的受保护代码是在"原样"的基础上提供的,无任何明示或暗示的保证,包括但不限于保证受保护代码无缺陷。有关所涵盖代码的质量和性能的全部风险由您承担。如果任何覆盖的代码在任何方面被证明有缺陷,您(不是最初的开发人员或任何其他贡献者)将承担任何必要的维护、修理或更正的费用。
从本页下载代码和数据集表示接受本许可协议。此处分发的代码包含在cecill许可证中:http://www.cecill.info/index.en.html" rel="nofollow">http://www.cecill.info/index.en.html