跳转到主要内容

napari时间点处理元插件,按时间点处理时间序列数据

项目描述

napari-time-slicer

License PyPI Python Version tests codecov Development Status napari hub

按时间点处理时间序列数据的元插件。它允许一系列napari插件在用户浏览时间序列时逐步处理2D+t或3D+t数据。目前,这些插件正在使用napari-time-slicer

napari-time-slicer使插件之间能够通信,例如,允许将上述插件组合到一个图像处理工作流程中,以分割时间序列数据集

然后还可以将工作流程导出为脚本。'生成代码'按钮可以在工作流程检查器中找到

如果您想将3D数据集转换为2D+时间数据集,请使用菜单工具 > 工具 > 将3D堆栈转换为2D时间序列(时间切片器)。它将3D数据集转换为4D数据集,其中Z维度(索引1)只有一个元素,在napari中将使用时间滑块显示。注意:建议在转换后删除原始3D数据集。

处理大型即时处理数据集

您可以在时间序列数据集上设置napari-assistant复杂图像处理工作流程。结合时间切片器,可以处理大于可用计算机内存的时间序列数据。如果工作流程仅由图像和标签图像组成,并且出现内存不足问题,请考虑按照以下程序将中间结果存储在磁盘上:在工作流程设置并测试几个选定帧后,使用菜单工具 > 工具 > 将数据转换为基于文件的时序数据(时间切片器)将整个处理后的时间序列数据集存储到磁盘上。它将打开此对话框,您可以在其中选择img.png

建议在文本字段中输入文件夹位置。如果没有提供,将创建一个临时文件夹,通常在用户主目录中的用户临时文件夹中。用户负责定期清空此文件夹。此文件夹中存储的数据也可以通过其文件 > 打开文件夹...菜单加载到napari中。

执行此操作可能需要时间,因为每次时间点都会计算。之后,在napari中将出现另一个层,通常导航速度更快。考虑删除仅用于确定新基于文件的层的层。

img.png

插件开发人员使用方法

实现napari_experimental_provide_function钩子的插件可以利用@time_slicer。目前,仅支持接受napari.types.ImageDatanapari.types.LabelsData和基本Python类型(如intfloat)的函数。如果您使用@time_slicer注解此类函数,它将内部将任何4D数据集转换为3D数据集,该数据集根据napari中当前选择的时间点。此外,当napari用户更改当前时间点或函数的输入数据更改时,将调用重新计算。因此,建议仅对可提供[几乎]实时性能的函数使用time_slicer。另一个约束是,这些注解函数必须具有viewer参数。这是必要的,以便在调用重新计算时从查看器中读取当前时间点。

示例

import napari
from napari_time_slicer import time_slicer

@time_slicer
def threshold_otsu(image:napari.types.ImageData, viewer: napari.Viewer = None) -> napari.types.LabelsData:
    # ...

您可以在上面列出的napari插件中看到此概念的完整实现。

如果您想结合时间和逐层处理Z堆栈图像的切片,可以使用@slice_by_slice注解。确保将其插入到@time_slicer之后,如以下所示并实现于napari-pillow-image-processing

from napari_time_slicer import slice_by_slice

@time_slicer
@slice_by_slice
def blur_2d(image:napari.types.ImageData, sigma:float = 1, viewer: napari.Viewer = None) -> napari.types.LabelsData:
    # ...

napari插件是用Cookiecutter@naparicookiecutter-napari-plugin模板生成的。

安装

您可以通过pip安装napari-time-slicer

pip install napari-time-slicer

要安装最新开发版本

pip install git+https://github.com/haesleinhuepf/napari-time-slicer.git

贡献

欢迎贡献。可以使用 tox 运行测试,请在提交 pull request 前确保覆盖率至少保持不变。

许可

BSD-3 许可证下分发,"napari-time-slicer" 是免费和开源软件。

问题

如果您遇到任何问题,请附上详细描述,通过 提交问题

项目详情


下载文件

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

源代码分发

napari-time-slicer-0.5.0.tar.gz (12.5 kB 查看哈希值)

上传时间 源代码

构建分发

napari_time_slicer-0.5.0-py3-none-any.whl (10.7 kB 查看哈希值)

上传时间 Python 3

支持者: