跳转到主要内容

2D和3D大成像数据集的注册和融合。

项目描述

License {{cookiecutter.license}} PyPI Python Version tests DOI

multiview-stitcher

multiview-stitcher 是一个开源的模块化工具箱,用于Python中的2-3D图像数据的分布式和拼接。它是一组算法(开发中),用于从多位置和多视图光片显微镜以及相关冷冻电镜数据集等其他模态中注册和融合小到大数据集。

对于可视化,相关的 napari-stitcher 使用 Napari 查看器提供可视化功能,包括独立的控件。

专注于互操作性和与现有工具和生态系统的集成,该软件包旨在尽可能紧密地与 NGFF规范 集成。

它利用了xarray结合spatial-imagemultiscale-spatial-image进行图像处理,以及daskdask-image进行分块和分布式图像处理。

快速入门

笔记本

查看示例笔记本:example notebooks

Napari 插件

有一个相关的 Napari 插件:napari-stitcher

图像数据由 Arthur Michaut 提供,来自 Institut Pasteur 的 Jérôme Gros 实验室:Jérôme Gros Lab

代码示例

以下代码片段将引导您完成一个小型拼接工作流程,包括

  1. 准备输入图像数据和元数据(瓦片位置、间距、通道)
  2. 注册瓦片
  3. 拼接/融合瓦片

1) 准备拼接数据

import numpy as np
from multiview_stitcher import msi_utils
from multiview_stitcher import spatial_image_utils as si_utils

# input data (can be any numpy compatible array: numpy, dask, cupy, etc.)
tile_arrays = [np.random.randint(0, 100, (2, 10, 100, 100)) for _ in range(3)]

# indicate the tile offsets and spacing
tile_translations = [
    {"z": 2.5, "y": -10, "x": 30},
    {"z": 2.5, "y": 30, "x": 10},
    {"z": 2.5, "y": 30, "x": 50},
]
spacing = {"z": 2, "y": 0.5, "x": 0.5}

channels = ["DAPI", "GFP"]

# build input for stitching
msims = []
for tile_array, tile_translation in zip(tile_arrays, tile_translations):
    sim = si_utils.get_sim_from_array(
        tile_array,
        dims=["c", "z", "y", "x"],
        scale=spacing,
        translation=tile_translation,
        transform_key="stage_metadata",
        c_coords=channels,
    )
    msims.append(msi_utils.get_msim_from_sim(sim, scale_factors=[]))

# plot the tile configuration
# from multiview_stitcher import vis_utils
# fig, ax = vis_utils.plot_positions(msims, transform_key='stage_metadata', use_positional_colors=False)

Visualization of input tile configuration

2) 注册瓦片

from dask.diagnostics import ProgressBar
from multiview_stitcher import registration

with ProgressBar():
    params = registration.register(
        msims,
        reg_channel="DAPI",  # channel to use for registration
        transform_key="stage_metadata",
        new_transform_key="translation_registered",
    )

# plot the tile configuration after registration
# vis_utils.plot_positions(msims, transform_key='translation_registered', use_positional_colors=False)

3) 拼接/融合瓦片

from multiview_stitcher import fusion

fused_sim = fusion.fuse(
    [msi_utils.get_sim_from_msim(msim) for msim in msims],
    transform_key="translation_registered",
)

# get fused array as a dask array
fused_sim.data

# get fused array as a numpy array
fused_sim.data.compute()

安装

您可以通过 PyPI 使用 pip 安装 multiview-stitcher

pip install multiview-stitcher

或从本 GitHub 仓库的源代码安装

pip install git+https://github.com/multiview-stitcher/multiview-stitcher.git

浏览器中的拼接

multiview-stitcher 可在您的浏览器中无需安装运行。

试试看

限制

  • 拼接将以单个线程运行
  • 虽然代码在本地运行,但您的本地文件系统无法从浏览器环境中直接访问

工作进行中

警告:这还在进行中。 multiview-stitcher 正在公开开发中,尚未达到稳定版本。API 可能会发生变化。

先前工作

multiview-stitcher 改进了并取代了 MVRegFUS

问题

如果您遇到任何问题,请提供详细描述并提交问题

贡献

欢迎贡献。

许可证

根据 BSD-3 许可证分发,"multiview-stitcher" 是免费和开源软件。

项目详情


下载文件

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

源代码分发

multiview_stitcher-0.1.17.tar.gz (4.1 MB 查看哈希值)

上传时间 源代码

构建的发行版

multiview_stitcher-0.1.17-py3-none-any.whl (2.1 MB 查看哈希值)

上传于 Python 3

由以下支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面