一个Python库,统一了正电子发射粒子跟踪(PEPT)研究,包括跟踪、模拟、数据分析和可视化工具。

pept的Python项目详细描述


PyPI versionConda VersionDocumentation StatusOpen In ColabAzure StatusConda DownloadsAnaconda-Server BadgeAnaconda-Server Badge

pept

一个Python库,集成了使用正电子发射粒子跟踪(PEPT)进行研究所需的所有工具。它包括定位、识别和跟踪粒子的算法,以及可视化和分析工具,以及允许真实模拟PEPT数据的实用程序。在

正电子发射粒子跟踪

PEPT是伯明翰大学开发的一种技术,它允许通过微粒、流体或多相系统对一个或多个“示踪剂”粒子进行无创、三维跟踪。这项技术能够以亚毫米的精度和亚毫秒的时间分辨率跟踪粒子或流体的运动,并且由于它使用了高穿透性的511keV伽马射线,可以用来探测甚至是大型、密集、光学不透明系统的内部动力学,使其成为工业和科学应用的理想选择。在

PEPT是通过用发射正电子的放射性同位素(如氟-18(18F)或镓-66(66Ga))对粒子进行放射性标记,并利用示踪剂内部和周围的电子-正电子湮没事件产生的连续γ射线来三角测量其空间位置。每个检测到的伽马射线代表一条响应线(LoR)。在

Transforming LoRs into trajectories using pept

入门

这些说明将帮助您开始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

^{pr2}$

也可以从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中绘制它们:

LoRs analysed using the PEPT-ML minimal script

您可以从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.

https://doi.org/10.1063/1.5129251

许可

pept包是GNUv3.0授权的。 版权所有(C)2020 Andrei Leonard Nicusan。在

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

推荐PyPI第三方库


热门话题
java我能知道文件的哪个条目正在被修改吗?   多线程Java并发线程   java抓取包含多个页面的多个字母标签的网站   为什么if语句不排除Java中的另一个if语句?   Java可序列化哈希映射到ByteArray以创建blob   JavaEclipseLombokBuilder添加新建议   java将文件路径数组转换为文件数组,并计算每个文件的大小   在Java8流中添加大小数   Bouncy Castle 1.46之前版本的java兼容性问题   无法在AWS设备场上运行安卓 Java Appium测试   java为什么不使用mavenwarplugin将键与“WEBINF/classes/METAINF/MANIFEST.MF”合并?   java如何在引用子类的成员时调用super()   找不到java TestFx无头MonoclePlatformFactory   java AbstractMethodError onClientSessionEvent和“缺少控制媒体的权限”   正则表达式如何使用JAVA在字符串的大写字母前插入空格?   我的Spring安全项目中的java BCrypt(Spring安全)   java在我的网站上查看小程序更新时遇到问题   java如何使用schedule方法