一个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使用不安全的方法复制整个C结构?   java JavaFx表格视图滚动错误   java应该向应用服务器或数据库添加逻辑吗   java小程序参数标记的用途是什么?   扩展AbstractTestNGSpringContextTests时,java Autowired spring依赖项在抽象基类中始终为空   java1。4关于java版本1.3到1.4   java MVC循环依赖   Java中的oauth电子邮件同步   java Facebook/Parse登录行为异常:代理应用程序尚未安装   java JPA不持久化对象J2EE   如何使用java读取和修改存储在FTP服务器上的图像文件   java测试时为什么要创建/删除testdatabase?   CriteriaBuilder查询中不区分java重音   使用Java从http url获取文件扩展名   Java多维数组/打印空值   java Javax持久性无法在maven上编译   使用mac地址的java制造商名称   java将图像旋转到“指向”鼠标位置   tiff如何打开一个非常大的幻灯片图像,如下所示。使用Java的tif图像文件?   内存Java:是否将Xms设置为XX:PermSize或XX:MaxPermSize?