核磁共振重叠峰反褶积

peakip的Python项目详细描述


peakipy-nmr峰值积分/使用python反褶积

Build Status

peakipy documentation

说明

核磁共振波峰的简单反褶积以提取强度。提供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 readpeakipy editpeakipy fitpeakipy check) 本应添加到您的路径中。

输入

  1. 峰值列表(nmrpipe,分析v2.4,sparky)
  2. nmrpipe频域数据集(2d或伪3d)

有四个主要命令:

  1. peakipy read转换峰值列表并选择峰值簇。
  2. peakipy edit用于在初始聚类不满意时交互检查和调整拟合参数(即簇和遮罩半径)。
  3. peakipy fit符合峰簇。
  4. peakipy check用于检查单个拟合或拟合组并绘制绘图。

您可以使用-h--help标志来指示如何运行程序(例如peakipy read-h)

输出

  1. 包含合适强度/线宽/中心等的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...
  1. 如果选择了--plot=<path>选项,则每个拟合的第一个平面将以<;path>;格式打印,其中的文件将根据拟合的群集ID(clustid)命名。添加--show选项会在每个拟合上调用plt.show(),这样您就可以看到它的样子。但是,最好使用peakipy check,因为在拟合期间绘制拟合图 使过程慢了很多。

  2. 要绘制所有平面的配合图或交互检查它们,可以运行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模型

Pseudo-Voigt

其中高斯线型

G

洛伦兹是

L

拟合使各维函数的残差最小化

PV_xy

分数参数是洛伦兹线型的分数。

G线型的线宽为

G_lw

pv和l线型的线宽为

PV FWHM

测试数据

从git repo下载。为自己测试程序cdtest目录。我为代码本身编写了一些测试,这些测试应该从顶部目录运行,比如sopython test/test_core.py

与nmrpipe的比较

健康检查…使用nmrpipe的nlinls程序拟合峰值强度,并与相同数据集的peakipy输出进行比较。

NMRPipe vs peakipy

向福达致敬

如果您希望使用fuda,那么尝试使用peakipy read--fuda标志运行peakipy read来创建fuda参数文件 (params.fuda)和峰值列表(peaks.fuda)。 希望这样可以节省一些配置时间。

致谢

感谢jonathan helmus写了一个很棒的nmrglue包。 因为他们出色的工作,lmfit团队。 bokehmatplotlib用于美丽的绘图。 scikit-image

我的同事,黄睿,Alex Conicella、Enrico Rennella、Rob Harkness和Tae Hun Kim,感谢他们提供了非常有用的意见。

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

推荐PyPI第三方库


热门话题
交换数组中重复值的位置(Java)   java搜索使用百分比匹配Elasticsearch SpringBoot中的文本   java Spring JPA和按输入字段排序   java我在输入CSV时出错了   java如何在RecyclerView中精确显示5项   使用java安全吗。util。servlet中的计时器?   使用Cp1252编码的java比较字符串   javafx打包java桌面应用程序,并引用开源许可证   java Spring和Camel CXF在战争中表现出色   java当EJB客户端失去与应用服务器的连接时,是否存在可以捕获的异常?   更改字符串值的java注释   java如何在sharedperfernce中保存自定义数组列表   RequestResponseLink:当使用java客户端读取队列时,Azure服务总线上RequestResponseLink到“$cbs”的内部发送链接因错误而关闭