一个Python库,统一了正电子发射粒子跟踪(PEPT)研究,包括跟踪、模拟、数据分析和可视化工具。
pept的Python项目详细描述
pept
库
一个Python库,集成了使用正电子发射粒子跟踪(PEPT)进行研究所需的所有工具。它包括定位、识别和跟踪粒子的算法,以及可视化和分析工具,以及允许真实模拟PEPT数据的实用程序。在
正电子发射粒子跟踪
PEPT是伯明翰大学开发的一种技术,它允许通过微粒、流体或多相系统对一个或多个“示踪剂”粒子进行无创、三维跟踪。这项技术能够以亚毫米的精度和亚毫秒的时间分辨率跟踪粒子或流体的运动,并且由于它使用了高穿透性的511keV伽马射线,可以用来探测甚至是大型、密集、光学不透明系统的内部动力学,使其成为工业和科学应用的理想选择。在
PEPT是通过用发射正电子的放射性同位素(如氟-18(18F)或镓-66(66Ga))对粒子进行放射性标记,并利用示踪剂内部和周围的电子-正电子湮没事件产生的连续γ射线来三角测量其空间位置。每个检测到的伽马射线代表一条响应线(LoR)。在
入门
这些说明将帮助您开始PEPT数据分析。在
先决条件
这个软件包支持Python3.6及更高版本—它是针对Python3.6、3.7和3.8在Windows、Linux和macOS上构建和测试的(感谢^{
您可以使用Anaconda distribution或裸电池Python interpreter来安装它。您也可以查看我们的Python和pept
教程here。在
安装
最简单、最快速的安装,如果您使用的是Python:
conda install -c conda-forge pept
您也可以从PyPI安装最新版本的pept
:
也可以从GitHub存储库安装开发版本:
pip install --upgrade git+https://github.com/uob-positron-imaging-centre/pept
示例用法
使用pept.tracking.peptml
包中的PEPT-ML算法的最小分析脚本:
importpeptfrompept.trackingimportpeptml# Read in LoRs from a web-hosted CSV file.lors_raw=pept.utilities.read_csv(("https://raw.githubusercontent.com/uob-positron-imaging-centre/""example_data/master/sample_2p_42rpm.csv"),# Concatenate long stringskiprows=16# Skip file header)# Encapsulate LoRs in a `LineData` subclass and compute cutpoints.lors=pept.scanners.ParallelScreens(lors_raw,screen_separation=712,sample_size=200)cutpoints=peptml.Cutpoints(lors,max_distance=0.15)# Cluster cutpoints using HDBSCAN and extract tracer locations.clusterer=peptml.HDBSCANClusterer()centres=clusterer.fit(cutpoints)# Plot tracer locations using Plotly.grapher=pept.visualisation.PlotlyGrapher()grapher.add_points(centres)grapher.show()
运行上述代码将初始化来自在线位置的80000行PEPT数据(包含与之前相同的实验-两个以42 RPM旋转的跟踪器),将响应线转换为准确的示踪位置,并在三维交互式browser-based graph中绘制它们:
您可以从UoB Positron Imaging Centre's Repository下载一些PEPT数据示例:
$> git clone https://github.com/uob-positron-imaging-centre/example_data
教程和文档
一个非常快的Python入门,可以使用{{A15};它的目标是工程师,其背景可能是几行写的MATLAB,以及适度的C/C++程序员。在
关于使用pept
包的初学者友好教程here可用。在
上面的链接指向googlecolaboratory,一个Jupyter笔记本托管网站,允许你将文本与Python代码结合起来,在Google服务器上执行。很整洁,不是吗?在
pept
包的完整文档here可用。在
性能
我们已经投入了大量的精力使这个软件包中的算法尽可能快。计算量最大的部分在^{joblib
和{peptml
子包,在作者的机器(2012年年中MacBookPro)上分析1000000个LOR需要大约26秒
帮助和支持
我们建议您退出our tutorials。如果您的问题没有得到适当的解决,请查看我们的GitHub上的issues页面。最后,如果没有可用的解决方案,请随时open an issue;作者将尝试尽快响应。在
贡献
目前,pept.tracking
中的子包偏向于PEPT-ML,
因为没有多少算法集成到包中。新算法
我们非常欢迎您的建议!pept
的目标是
一个社区的努力,无论是学术的,工业的,医学的,还是仅仅来自PEPT的
爱好者-所以它是开放的,在文档,算法,实用程序的帮助
或者分析脚本、教程和一般的拉请求!若要贡献,请分叉项目,进行更改并提交请求。我们将尽最大努力解决您的任何问题,并将您的代码合并到主分支中。在
引用
如果你在科学研究中使用这个代码库或任何使用它的软件 出版物,请您引用以下论文:
Nicuşan AL, Windows-Yule CR. Positron emission particle tracking using machine learning. Review of Scientific Instruments. 2020 Jan 1;91(1):013329.
许可
pept
包是GNUv3.0授权的。
版权所有(C)2020 Andrei Leonard Nicusan。在
- 项目
标签: