A Python library that unifies Positron Emission Particle Tracking (PEPT) research, including tracking, simulation, data analysis and visualisation tools.
A Python library that integrates all the tools necessary to perform research using Positron Emission Particle Tracking (PEPT). The library includes algorithms for the location, identification and tracking of particles, in addition to tools for visualisation and analysis, and utilities allowing the realistic simulation of PEPT data.
Positron Emission Particle Tracking
PEPT is a technique developed at the University of Birmingham which allows the non-invasive, three-dimensional tracking of one or more 'tracer' particles through particulate, fluid or multiphase systems. The technique allows particle or fluid motion to be tracked with sub-millimetre accuracy and sub-millisecond temporal resolution and, due to its use of highly-penetrating 511keV gamma rays, can be used to probe the internal dynamics of even large, dense, optically opaque systems - making it ideal for industrial as well as scientific applications.
These instructions will help you get started PEPT data analysis.
This package supports Python 3. You also need to have
on your system in order to install it.
You can install
pept from PyPI:
pip install pept
Or you can install the latest version from the GitHub repository:
pip install git+https://github.com/uob-positron-imaging-centre/pept
You can download data samples from the UoB Positron Imaging Centre's Repository:
$> git clone https://github.com/uob-positron-imaging-centre/example_data
A minimal analysis script using the
import pept from pept.scanners import ParallelScreens from pept.tracking import peptml from pept.visualisation import PlotlyGrapher lors = ParallelScreens('example_data/sample_2p_42rpm.csv', skiprows = 16) max_distance = 0.1 cutpoints = peptml.Cutpoints(lors, max_distance) clusterer = peptml.HDBSCANClusterer(min_sample_size = 30) centres, clustered_cutpoints = clusterer.fit_cutpoints(cutpoints) fig = PlotlyGrapher().create_figure() fig.add_trace(centres.all_points_trace()) fig.show()
A more in-depth tutorial is available on Google Colab.
Significant effort has been put into making the algorithms in this package as
fast as possible. The most compute-intensive parts have been implemented in
C and parallelised, where possible, using
joblib. For example, using the
subpackage, analysing 1,000,000 LoRs on the author's machine (mid 2012 MacBook Pro)
takes ~26 s (with another 12 s to read in the data). This efficiency is largely
due to the availabiliy of a great high-performance implementation of the
HDBSCAN clustering algorithm.
Help and Support
We recommend you check out our tutorials. If your issue is not suitably resolved there, please check the issues page on our GitHub. Finally, if no solution is available there, feel free to open an issue; the authors will attempt to respond in a reasonably timely fashion.
We welcome contributions in any form! Assistance with documentation, particularly expanding tutorials, is always welcome. To contribute please fork the project, make your changes and submit a pull request. We will do our best to work through any issues with you and get your code merged into the main branch.
pept package is GNU v3.0 licensed.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size pept-0.1.2-cp37-cp37m-macosx_10_14_x86_64.whl (409.9 kB)||File type Wheel||Python version cp37||Upload date||Hashes View hashes|
|Filename, size pept-0.1.2.tar.gz (507.6 kB)||File type Source||Python version None||Upload date||Hashes View hashes|
Hashes for pept-0.1.2-cp37-cp37m-macosx_10_14_x86_64.whl