跳转到主要内容

使用Python进行具有OME元数据的N维生物成像数据I/O

项目描述

iohub

PyPI - Python version PyPI - iohub version Docs deployment

N维生物成像生成各种格式的数据和元数据,iohub旨在成为Biohub及其更广泛的成像社区中最常用格式的统一Python接口。

支持的格式

读取

  • OME-Zarr (OME-NGFF v0.4)
  • Micro-Manager TIFF序列、OME-TIFF (MMStack) 和 NDTiff 数据集
  • 由Biohub显微镜生成的自定义数据格式
    • 支持:Falcon (PTI)、Dorado (ClearControl)、Dragonfly (OpenCell OME-TIFF)、Mantis (NDTiff)
    • 正在进行:DaXi

写入

  • OME-Zarr
  • 按目录层次结构组织的多页TIFF堆栈,类似于OME-NGFF(工作进行中)

快速入门

安装

使用pip安装iohub的预发布版本

pip install iohub

或安装最新的Git版本

git clone https://github.com/czbiohub-sf/iohub.git
pip install /path/to/iohub

有关安装的更多详细信息,请参阅贡献指南中的相关部分:安装开发环境

命令行界面

检查iohub是否适用于数据集

iohub info /path/to/data/

CLI可以显示数据集的摘要,指向相关的Python调用,并将其他数据格式转换为最新的OME-Zarr。在终端中输入iohubiohub [command] --help以查看完整的CLI帮助信息。

与OME-Zarr协同工作

加载和修改示例OME-Zarr数据集

import numpy as np
from iohub import open_ome_zarr

with open_ome_zarr(
    "20200812-CardiomyocyteDifferentiation14-Cycle1.zarr",
    mode="r",
    layout="auto",
) as dataset:
    dataset.print_tree()  # prints the hierarchy of the zarr store
    channel_names = dataset.channel_names
    print(channel_names)
    img_array = dataset[
        "B/03/0/0"
    ]  # lazy Zarr array for the raw image in the first position
    raw_data = img_array.numpy()  # loads a CZYX 4D array into RAM
    print(raw_data.mean())  # does some analysis

with open_ome_zarr(
    "max_intensity_projection.zarr",
    mode="w-",
    layout="hcs",
    channel_names=channel_names,
) as dataset:
    new_fov = dataset.create_position(
        "B", "03", "0"
    )  # creates fov with the same path
    new_fov["0"] = raw_data.max(axis=1).reshape(
        (1, 1, 1, *raw_data.shape[2:])
    )  # max projection along Z axis and prepend dims to 5D
    dataset.print_tree()  # checks that new data has been written

有关API使用的更多信息,请参阅文档示例脚本

读取Micro-Manager TIFF数据

读取包含TIFF数据集的目录

from iohub import read_micromanager

reader = read_micromanager("/path/to/data/")
print(reader.shape)

为什么选择iohub?

该项目受现有Python生物成像数据I/O库的启发,包括ome-zarr-pytifffileaicsimageio。它们支持显微镜中最广泛采用和/或最有前途的格式,如OME-Zarr和OME-TIFF。

iohub通过以下特性弥合了它们之间的差距

  • 高效读取Micro-Manager/Pycro-Manager采集堆栈生成的各种基于TIFF的格式中的数据。
  • 高效且可定制的将数据和元数据从TIFF转换为OME-Zarr。
  • 以Pythonic和原子方式访问OME-Zarr数据,同时考虑并行化分析。
  • 在写入时自动构建和更新OME-Zarr元数据,并在读取时与规范进行验证。
  • 尽可能遵守最新的OME-NGFF规范(v0.4)。

项目详情


下载文件

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

源代码分发

iohub-0.1.0.tar.gz (79.3 kB 查看哈希值)

上传时间 源代码

构建分发

iohub-0.1.0-py3-none-any.whl (56.1 kB 查看哈希值)

上传时间 Python 3

由以下支持