跳转到主要内容

读取PicoQuant PTU和相关文件

项目描述

Ptufile是一个Python库,用于从PicoQuant PTU和相关文件(PHU、PCK、PCO、PFS、PUS和PQRES)中读取图像和元数据。PTU文件包含时间相关单光子计数(TCSPC)测量数据和仪器参数。

作者:

Christoph Gohlke

许可证:

BSD 3-Clause

版本:

2024.9.14

DOI:

10.5281/zenodo.10120021

快速入门

Python包索引安装ptufile包及其所有依赖项。

python -m pip install -U "ptufile[all]"

请参阅示例了解如何使用编程接口。

源代码和支持可在GitHub上获得。

需求

此版本已使用以下要求和依赖项进行测试(其他版本可能也有效)

修订版

2024.9.14

  • 改进类型。

2024.7.13

  • 检测图像模式中的点扫描。

  • 弃用Python 3.9,支持Python 3.13。

2024.5.24

  • 修复GitHub上docstring示例未正确渲染的问题。

2024.4.24

  • 使用NumPy 2构建轮子。

2024.2.20

  • 修改 PtuFile.frequency 的定义(破坏性更改)。

  • 添加选项以指定 decode_histogram 返回的 bin 数量。

  • 添加选项以返回一个周期的直方图。

2024.2.15

  • 添加 PtuFile.scanner 属性。

  • 添加与 numcodecs 兼容的 PTU 编码器。

2024.2.8

  • 支持正弦扫描校正。

2024.2.2

  • 将正 dtime 参数从索引更改为大小(破坏性更改)。

  • 修复 ImgHdr_TimePerPixel = 0 时的 segfault。

  • 将 MultiHarp 重命名为 Generic,以符合 PicoQuant 参考中的更改。

2023.11.16

  • 修复当第一条记录是起始标记时的空行问题。

2023.11.13

  • 将图像直方图维度顺序更改为 TYXCH(破坏性更改)。

  • 将帧起始位置更改为帧中第一行的起始位置(破坏性更改)。

  • 改进不完整帧的裁剪(破坏性更改)。

  • 删除 trim_dtime 选项(破坏性更改)。

  • 修复 PtuFile.decode_image 中的选择处理。

  • 添加选项以裁剪图像直方图的 T、C 和 H 轴。

  • 添加选项以将直方图解码到内存映射或用户提供的数组中。

  • 向图像直方图添加 __getitem__ 接口。

2023.11.1

  • 初始 alpha 版本。

注意

Chan Zuckerberg Initiative 为此库的开发提供了财务支持。[链接](https://chanzuckerberg.com/eoss/proposals/phasorpy-a-python-library-for-phasor-analysis-of-flim-and-spectral-imaging)

PicoQuant GmbH 是光子组件和仪器的制造商。[链接](https://www.picoquant.com/)

PicoQuant 统一文件格式在 [此处](https://github.com/PicoQuant/PicoQuant-Time-Tagged-File-Format-Demos/tree/master/doc) 文档。

以下功能目前尚未实现:PT2 和 PT3 文件,从 T2 格式解码图像,双向扫描和过时的图像重建。

其他用于读取 PicoQuant 文件的 Python 或 C/C++ 模块包括

示例

从任何类型的 PicoQuant 统一标记文件读取属性和标签

>>> pq = PqFile('tests/Settings.pfs')
>>> pq.magic
<PqFileMagic.PFS: ...>
>>> pq.guid
UUID('86d428e2-cb0b-4964-996c-04456ba6be7b')
>>> pq.tags
{...'CreatorSW_Name': 'SymPhoTime 64', 'CreatorSW_Version': '2.1'...}
>>> pq.close()

从 PicoQuant PTU FLIM 文件中读取元数据

>>> ptu = PtuFile('tests/FLIM.ptu')
>>> ptu.magic
<PqFileMagic.PTU: ...>
>>> ptu.type
<PtuRecordType.PicoHarpT3: 66307>
>>> ptu.measurement_mode
<PtuMeasurementMode.T3: 3>
>>> ptu.measurement_submode
<PtuMeasurementSubMode.IMAGE: 3>

将 PTU 文件中的 TTTR 记录解码到 numpy.recarray

>>> decoded = ptu.decode_records()

从标记中获取帧变化的全局时间

>>> decoded['time'][(decoded['marker'] & ptu.frame_change_mask) > 0]
array([1571185680], dtype=uint64)

将 TTTR 记录解码到每个通道的总体延迟时间直方图

>>> ptu.decode_histogram(dtype='uint8')
array([[ 5,  7,  7, ..., 10,  9,  2]], dtype=uint8)

获取 PTU 文件中 FLIM 图像直方图的信息

>>> ptu.shape
(1, 256, 256, 2, 3126)
>>> ptu.dims
('T', 'Y', 'X', 'C', 'H')
>>> ptu.coords
{'T': ..., 'Y': ..., 'X': ..., 'H': ...}
>>> ptu.dtype
dtype('uint16')

使用切片符号将图像直方图的一部分解码到 numpy.ndarray。切片步长定义了 binning,-1 用于沿轴积分

>>> ptu[:, ..., 0, ::-1]
array([[[103, ..., 38],
              ...
        [ 47, ..., 30]]], dtype=uint16)

或者,解码第一个通道并将所有直方图 bin 集成到 xarray.DataArray 中,保留减少的轴

>>> ptu.decode_image(channel=0, dtime=-1, asxarray=True)
<xarray.DataArray (T: 1, Y: 256, X: 256, C: 1, H: 1)> ...
array([[[[[103]],
           ...
         [[ 30]]]]], dtype=uint16)
Coordinates:
  * T        (T) float64... 0.05625
  * Y        (Y) float64... -0.0001304 ... 0.0001294
  * X        (X) float64... -0.0001304 ... 0.0001294
  * H        (H) float64... 0.0
Dimensions without coordinates: C
Attributes...
    frequency:      19999200.0
...
>>> ptu.close()

从控制台预览 PTU 文件中的图像和元数据

python -m ptufile tests/FLIM.ptu

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

ptufile-2024.9.14.tar.gz (48.2 kB 查看散列值)

上传日期

构建分发

ptufile-2024.9.14-cp313-cp313-win_arm64.whl (147.9 kB 查看哈希值)

上传时间 CPython 3.13 Windows ARM64

ptufile-2024.9.14-cp313-cp313-win_amd64.whl (178.8 kB 查看哈希值)

上传时间 CPython 3.13 Windows x86-64

ptufile-2024.9.14-cp313-cp313-win32.whl (147.8 kB 查看哈希值)

上传时间 CPython 3.13 Windows x86

ptufile-2024.9.14-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB 查看哈希值)

上传时间 CPython 3.13 manylinux: glibc 2.17+ x86-64

ptufile-2024.9.14-cp313-cp313-macosx_11_0_arm64.whl (195.6 kB 查看哈希值)

上传时间 CPython 3.13 macOS 11.0+ ARM64

ptufile-2024.9.14-cp313-cp313-macosx_10_13_x86_64.whl (212.1 kB 查看哈希值)

上传时间 CPython 3.13 macOS 10.13+ x86-64

ptufile-2024.9.14-cp312-cp312-win_arm64.whl (148.2 kB 查看哈希值)

上传时间 CPython 3.12 Windows ARM64

ptufile-2024.9.14-cp312-cp312-win_amd64.whl (178.3 kB 查看哈希值)

上传时间 CPython 3.12 Windows x86-64

ptufile-2024.9.14-cp312-cp312-win32.whl (148.1 kB 查看哈希值)

上传时间 CPython 3.12 Windows x86

ptufile-2024.9.14-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ x86-64

ptufile-2024.9.14-cp312-cp312-macosx_11_0_arm64.whl (195.8 kB 查看哈希值)

上传时间 CPython 3.12 macOS 11.0+ ARM64

ptufile-2024.9.14-cp312-cp312-macosx_10_13_x86_64.whl (212.8 kB 查看哈希值)

上传时间 CPython 3.12 macOS 10.13+ x86-64

ptufile-2024.9.14-cp311-cp311-win_arm64.whl (146.9 kB 查看哈希值)

上传时间 CPython 3.11 Windows ARM64

ptufile-2024.9.14-cp311-cp311-win_amd64.whl (174.7 kB 查看哈希值)

上传时间 CPython 3.11 Windows x86-64

ptufile-2024.9.14-cp311-cp311-win32.whl (144.6 kB 查看哈希值)

上传时间 CPython 3.11 Windows x86

ptufile-2024.9.14-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ x86-64

ptufile-2024.9.14-cp311-cp311-macosx_11_0_arm64.whl (191.1 kB 查看哈希值)

上传时间 CPython 3.11 macOS 11.0+ ARM64

ptufile-2024.9.14-cp311-cp311-macosx_10_9_x86_64.whl (209.1 kB 查看哈希值)

上传时间 CPython 3.11 macOS 10.9+ x86-64

ptufile-2024.9.14-cp310-cp310-win_amd64.whl (174.8 kB 查看哈希值)

上传时间 CPython 3.10 Windows x86-64

ptufile-2024.9.14-cp310-cp310-win32.whl (145.5 kB 查看哈希值)

上传时间 CPython 3.10 Windows x86

ptufile-2024.9.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB 查看哈希值)

上传时间 CPython 3.10 manylinux: glibc 2.17+ x86-64

ptufile-2024.9.14-cp310-cp310-macosx_11_0_arm64.whl (193.1 kB 查看哈希值)

上传时间 CPython 3.10 macOS 11.0+ ARM64

ptufile-2024.9.14-cp310-cp310-macosx_10_9_x86_64.whl (207.7 kB 查看哈希值)

上传于 CPython 3.10 macOS 10.9+ x86-64

ptufile-2024.9.14-cp39-cp39-win_amd64.whl (175.2 kB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

ptufile-2024.9.14-cp39-cp39-win32.whl (146.0 kB 查看哈希值)

上传于 CPython 3.9 Windows x86

ptufile-2024.9.14-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

ptufile-2024.9.14-cp39-cp39-macosx_11_0_arm64.whl (193.8 kB 查看哈希值)

上传于 CPython 3.9 macOS 11.0+ ARM64

ptufile-2024.9.14-cp39-cp39-macosx_10_9_x86_64.whl (208.3 kB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ x86-64

由以下机构支持