跳转到主要内容

在napari中自动生成Python代码,以便创建与napari-assistant兼容的插件

项目描述

napari-assistant-plugin-generator

License PyPI Python Version tests codecov Development Status napari hub DOI

napari-assistant-plugin-generator是napari插件,可以生成可以pip安装并作为与napari-assistant兼容的插件的Python代码。

用法

为了展示如何从现有的工作流程中生成Napari插件,我们通过重用napari-segment-blobs-and-things-with-membranes (nsbatwm)中的函数来生成插件,演示了此过程。

  • 安装nsbatwm后,您可以从菜单工具 > 通用 > 助手 (na)启动助手或从命令行运行naparia

  • 打开blob示例图像Blobs,例如,在此处下载后。

  • 在助手中,单击移除噪声按钮,并从操作下拉菜单中选择高斯(scikit-image,nsbatwm)

  • 单击二值化按钮并选择阈值(Otsu 1979,scikit-image,nsbatwm)操作。

  • 单击标记按钮,并从操作下拉菜单中选择'连接组件标记(scikit-image,nsbatwm)'。

之后,您配置工作流后的 Napari 应该看起来像这样

img.png

插件生成

在运行插件生成器之前,请确保您已连接到互联网,因为将下载一个 插件模板。插件生成器可以在菜单 工具 > 工具 > 从工作流生成 Napari 插件(na) 中找到,也可以在助手的 生成代码... 中找到。

img.png

在插件生成器对话框中,请输入以下信息

  • 输出目录: Napari 插件代码应保存的文件夹。如果没有指定,插件将保存在 Napari 启动时的当前目录中。
  • 插件名称: 插件的名称。将在上述指定的文件夹中生成一个以此命名的文件夹。插件名称不能包含特殊字符或空格。请使用 _ 代替。
  • 开发者名称: 您的名字,稍后将在 napari-hub 上显示,如果您决定发布您的插件。
  • 开发者邮箱: 您的邮箱,它将存储在您的插件配置中。此邮箱地址对公众可见。
  • GitHub 用户名: 您在 GitHub 上的用户名。插件文档中的 URL 将指向您的 GitHub 个人资料。
  • 简短描述: 请写一句话解释插件的功能。
  • 许可协议: 选择您插件代码将使用的开源许可协议。如果您不确定使用哪个,请参考 choosealicense.com
  • 工具菜单: 安装后,您将在 工具 菜单下找到您的插件。
  • 菜单名称: 菜单条目将具有此标题。

img.png

生成 Napari 插件代码后,在您选择的集成开发环境(IDE)中打开它。检查目录中的文件并搜索 TODO 条目。从 readme.mdrequirements.txt 文件开始。

img.png

高度相关的是 Python 文件 my_napari_assistant_plugin/_function.py。它包含一个代表我们通过点击以上设计的流程的 Python 代码的函数。

from napari_plugin_engine import napari_hook_implementation
from napari_tools_menu import register_function
from napari_time_slicer import time_slicer

@napari_hook_implementation
def napari_experimental_provide_function():
    return [process_image]

@register_function(menu="Segmentation / labeling > Segment image")
@time_slicer
def process_image(image0_b: "napari.types.ImageData", gaussian_blur_sigma_2: float = 1.0, connected_component_labeling_exclude_on_edges_3: bool = False) -> "napari.types.LabelsData":
    """
    Short plugin description
    
    # TODO: Provide more detailed documentation here. E.g. specify the parameters and what values users should enter.
    """
    # TODO: Check the list of parameters of the function definition above. 
    # If there are parameters that should not be editable by the end user, move their definition and values here instead.
    
    import napari_segment_blobs_and_things_with_membranes as nsbatwm  # version 0.3.3
    
    
    # gaussian blur
    image1_G = nsbatwm.gaussian_blur(image0_b, sigma=gaussian_blur_sigma_2)
    
    # threshold otsu
    image2_T = nsbatwm.threshold_otsu(image1_G)
    
    # connected component labeling
    image3_C = nsbatwm.connected_component_labeling(
        image2_T, exclude_on_edges=connected_component_labeling_exclude_on_edges_3)
    return image3_C

建议检查生成的代码并将变量重命名为更有意义。对于重命名变量,请使用您的 IDE 工具。例如,在 PyCharm 中,您可以使用右键菜单方便地重命名变量。

img.png

readme.md 文件还包含有关安装和分发您的插件说明。简而言之:作为插件开发者,您通常在插件的根目录中的终端中执行此命令以在可编辑模式下安装您的插件。此命令允许您修改代码并测试它,而无需重新安装插件。

pip install -e .

如果安装成功,您将在指定的菜单中找到您的插件,并会打开一个对话框,请求在 <your_plugin_folder>/<your_plugin_folder>/_function.py 中生成的 Python 函数的参数。

img.png

img.png

安装

建议首先安装 devbio-napari。它包含许多图像处理功能,可以组合在工作流程中,并且很容易从中生成插件。

之后,可以使用 pip 安装插件生成器。

pip install napari-assistant-plugin-generator

还请确保您已安装 git。例如,使用 mamba/conda

mamba install git

欢迎反馈!

napari-assistant 是在开放环境中开发的,因为我们相信开源社区。请随时通过 GitHub 问题 或通过 image.sc 提供反馈。

贡献

非常欢迎贡献。请在提交拉取请求之前确保测试覆盖率至少保持不变。

许可证

BSD-3 许可证的条款下分发,"napari-assistant-plugin-generator" 是免费和开源的软件。

致谢

本项目得到了德国卓越战略(Deutsche Forschungsgemeinschaft)的支持,属于德累斯顿工业大学(TU Dresden)的卓越集群“生命物理学”(EXC2068)。本项目部分资金来源于Chan Zuckerberg Initiative DAF(硅谷社区基金会的一个顾问基金)的2021-240341号拨款(Napari插件加速器拨款),详情请见此处

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源代码分发

napari-assistant-plugin-generator-0.1.0.tar.gz (9.9 kB 查看哈希值)

上传时间 源代码

构建分发

napari_assistant_plugin_generator-0.1.0-py3-none-any.whl (10.2 kB 查看哈希值)

上传时间 Python 3

由以下机构支持