跳转到主要内容

PyMmcore 提供了改进的API、事件处理和纯Python获取引擎的超集

项目描述

PyMmcore-Plus

License PyPI - Python Version PyPI Conda CI docs codecov Benchmarks

PyMmcore-Plus 扩展了 pymmcore (C++ micro-manager核心 的Python绑定) 的功能,包括许多旨在方便在纯python/C环境中使用 Micro-manager 的特性。

  • pymmcore_plus.CMMCorePluspymmcore.CMMCore 的一个即插即用子类,它提供了许多有用的覆盖和额外的便利函数,这些函数超越了标准的 CMMCore API。有关详细信息,请参阅 CMMCorePlus 文档
  • pymmcore-plus 包含一个 采集引擎,用于驱动微管理器执行常规的多维实验。它接受来自 useq-schemaMDASequence 以进行实验设计和声明。
  • 增加了一个 回调系统,该系统将 CMMCore 回调对象适配到现有的 Python 事件循环(例如 Qt,或 asyncio 等)。CMMCorePlus 类还修复了一些 CMMCore API 当前未发出的 "遗漏" 事件。

文档

https://pymmcore-plus.github.io/pymmcore-plus/

为什么不用 pymmcore 直接使用呢?

pymmcore 是 Micro-Manager 项目核心 C++ 代码的一个薄 SWIG 包装(可能应该保持这样)。它足以通过 Python 控制 Micro-Manager,但缺乏 Python 用户习惯的一些 "便利" 功能。这个库

  • 扩展了 pymmcore.CMMCore 对象的 额外方法
  • 修复了 MMCore 中许多事件的发射。
  • 为各种对象(如 ConfigurationMetadata)提供适当的 Python 接口。
  • 为设备和它们的属性提供了一个 面向对象的 API
  • 对于 各种常量,使用更易理解的 Enums 而不是 int
  • 改进了 docstrings 和类型注解。
  • 总体上感觉更符合 Pythonic(然而请注意,CMMCore API 的 camelCase 方法名称 不会 被替换为 snake_case)。

这与 Pycro-Manager 有什么关系?

Pycro-Manager 是由 Henry Pinkard 编写的一个令人印象深刻的库,旨在通过 Python 更容易地使用和控制 Java Micro-manager 应用程序。因此,它需要在后台安装和运行 Java(无论是通过 Micro-Manager GUI 应用程序直接,还是通过无头进程)。Python 部分通过与 ZeroMQ 消息通信与 Java 部分进行通信。

简而言之:虽然 Pycro-Manager 提供了一个 Python API 来控制 Java Micro-manager 应用程序(该应用程序反过来控制 C++ 核心),但 pymmcore-plus 提供了一个 Python API 来直接控制 C++ 核心,而无需在循环中使用 Java。每种方法都有其优点和缺点!使用 pycro-manager,您立即获得整个现有的 Micro-Manager 生态系统和 GUI 应用程序。使用 pymmcore-plus,您无需安装 Java,并且可以直接访问 C++ 核心使用的内存缓冲区。

快速入门

安装

从 pip

pip install pymmcore-plus

# or, add the [cli] extra if you wish to use the `mmcore` command line tool:
pip install "pymmcore-plus[cli]"

# add the [io] extra if you wish to use the tiff or zarr writers
pip install "pymmcore-plus[io]"

从 conda

conda install -c conda-forge pymmcore-plus

从 github 的开发版本

pip install 'pymmcore-plus[cli] @ git+https://github.com/pymmcore-plus/pymmcore-plus'

通常,您可能还想安装设备适配器。假设您使用 pip install "pymmcore-plus[cli]" 进行安装,您可以运行

mmcore install

(您也可以从 micro-manager.org 手动下载这些)

有关详细信息,请参阅 安装文档

使用方法

然后像使用 pymmcore.CMMCore 一样使用核心对象...但带有 更多功能 :smile

from pymmcore_plus import CMMCorePlus

core = CMMCorePlus()
...

示例

请参阅文档中的多个 使用示例

您可以在本仓库的examples目录中找到一些基本的Python脚本。

贡献

欢迎贡献!请参阅贡献指南

项目详情


下载文件

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

源代码分发

pymmcore_plus-0.11.1.tar.gz (139.3 kB 查看哈希值)

上传时间 源代码

构建分发

pymmcore_plus-0.11.1-py3-none-any.whl (142.3 kB 查看哈希值)

上传时间 Python 3

支持者: