PyMmcore 提供了改进的API、事件处理和纯Python获取引擎的超集
项目描述
PyMmcore-Plus
PyMmcore-Plus 扩展了 pymmcore (C++ micro-manager核心 的Python绑定) 的功能,包括许多旨在方便在纯python/C环境中使用 Micro-manager 的特性。
pymmcore_plus.CMMCorePlus是pymmcore.CMMCore的一个即插即用子类,它提供了许多有用的覆盖和额外的便利函数,这些函数超越了标准的 CMMCore API。有关详细信息,请参阅 CMMCorePlus 文档。pymmcore-plus包含一个 采集引擎,用于驱动微管理器执行常规的多维实验。它接受来自 useq-schema 的 MDASequence 以进行实验设计和声明。- 增加了一个 回调系统,该系统将 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中许多事件的发射。 - 为各种对象(如
Configuration和Metadata)提供适当的 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脚本。
贡献
欢迎贡献!请参阅贡献指南。
项目详情
下载文件
下载适合您平台的应用文件。如果您不确定选择哪个,请了解有关安装包的更多信息。