核磁共振重叠峰反褶积
peakip的Python项目详细描述
peakipy-nmr峰值积分/使用python反褶积
说明
核磁共振波峰的简单反褶积以提取强度。提供nmrpipe格式频谱(2d或伪3d) 和一个峰值列表(nmrpipe、sparky或analysis2),重叠的峰值被自动/交互地聚集和分组 重叠峰的拟合采用高斯、洛伦兹或伪voigt(高斯+洛伦兹)线型。
安装
安装peakipy最简单的方法是使用poetry…
cd peakipy; poetry install
如果您没有诗歌,可以使用以下命令安装它
curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python
否则,请参阅poetry documentation了解更多详细信息
您还可以使用setup.py
安装peakipy。您需要安装python3.6或更高版本。
cd peakipy; python setup.py install
此时应安装包和主脚本(peakipy read
、peakipy edit
、peakipy fit
和peakipy check
)
本应添加到您的路径中。
输入
- 峰值列表(nmrpipe,分析v2.4,sparky)
- nmrpipe频域数据集(2d或伪3d)
有四个主要命令:
peakipy read
转换峰值列表并选择峰值簇。peakipy edit
用于在初始聚类不满意时交互检查和调整拟合参数(即簇和遮罩半径)。peakipy fit
符合峰簇。peakipy check
用于检查单个拟合或拟合组并绘制绘图。
您可以使用-h
或--help
标志来指示如何运行程序(例如peakipy read-h)
输出
- 包含合适强度/线宽/中心等的Pandas数据帧。
,fit_prefix,assignment,amp,amp_err,center_x,center_y,sigma_x,sigma_y,fraction,clustid,plane,x_radius,y_radius,x_radius_ppm,y_radius_ppm,lineshape,fwhm_x,fwhm_y,center_x_ppm,center_y_ppm,sigma_x_ppm,sigma_y_ppm,fwhm_x_ppm,fwhm_y_ppm,fwhm_x_hz,fwhm_y_hz 0,_None_,None,291803398.52980924,5502183.185104156,158.44747896487527,9.264911100915297,1.1610674220702277,1.160506074898704,0.0,1,0,4.773,3.734,0.035,0.35,G,2.3221348441404555,2.321012149797408,9.336283145411077,129.6698850201278,0.008514304888101518,0.10878688239041588,0.017028609776203036,0.21757376478083176,13.628064792721176,17.645884354478063 1,_None_,None,197443035.67109975,3671708.463467884,158.44747896487527,9.264911100915297,1.1610674220702277,1.160506074898704,0.0,1,1,4.773,3.734,0.035,0.35,G,2.3221348441404555,2.321012149797408,9.336283145411077,129.6698850201278,0.008514304888101518,0.10878688239041588,0.017028609776203036,0.21757376478083176,13.628064792721176,17.645884354478063 etc...
如果选择了
--plot=<path>
选项,则每个拟合的第一个平面将以<;path>;格式打印,其中的文件将根据拟合的群集ID(clustid)命名。添加--show
选项会在每个拟合上调用plt.show()
,这样您就可以看到它的样子。但是,最好使用peakipy check
,因为在拟合期间绘制拟合图 使过程慢了很多。要绘制所有平面的配合图或交互检查它们,可以运行
peakipy check
peakipy check fits.csv test.ft2 --dims=0,1,2 --clusters=1,10,20 --show --outname=plot.pdf
将在交互式matplotlib窗口中绘制集群1、10和20,显示每个平面,并将这些绘图保存到名为plot.pdf的多页PDF中。调用peakipy check
使用--first
标记只绘制每个拟合的第一个平面。
运行peakipy check -h
获取更多选项。
您可以使用pandas
方便地浏览输出数据。
In[1]:importpandasaspdIn[2]:importmatplotlib.pyplotaspltIn[3]:data=pd.read_csv("fits.csv")In[4]:groups=data.groupby("assignment")In[5]:forind,groupingroups:...:plt.errorbar(group.vclist,group.amp,yerr=group.amp_err,fmt="o",label=group.assignment.iloc[0])...:plt.legend()...:plt.show()
伪voigt模型
其中高斯线型
洛伦兹是
拟合使各维函数的残差最小化
分数参数是洛伦兹线型的分数。
G线型的线宽为
pv和l线型的线宽为
测试数据
从git repo下载。为自己测试程序cd
到test
目录。我为代码本身编写了一些测试,这些测试应该从顶部目录运行,比如sopython test/test_core.py
。
与nmrpipe的比较
健康检查…使用nmrpipe的nlinls程序拟合峰值强度,并与相同数据集的peakipy输出进行比较。
向福达致敬
如果您希望使用fuda,那么尝试使用peakipy read
和--fuda
标志运行peakipy read
来创建fuda参数文件
(params.fuda)和峰值列表(peaks.fuda)。
希望这样可以节省一些配置时间。
致谢
感谢jonathan helmus写了一个很棒的nmrglue
包。
因为他们出色的工作,lmfit
团队。
bokeh
和matplotlib
用于美丽的绘图。
scikit-image
!
我的同事,黄睿,Alex Conicella、Enrico Rennella、Rob Harkness和Tae Hun Kim,感谢他们提供了非常有用的意见。