OpenHCS について
OpenHCSは、イメージング科学者や研究ソフトウェアチーム向けの顕微鏡ワークフロープラットフォームです。GUI、Pythonパイプライン、ローカルエージェント自動化を統合し、実行前検証とレビュー可能な工程を備えています。
主な機能
- 01実行前のパイプライン検証
- 02GUIとPythonでのワークフロー編集
- 03CellProfilerパイプラインのインポート
- 04ローカルMCPによる自動化
- 05マルチプロセスとGPU処理
- 06解析結果の物質化とストリーミング
活用シーン
- 01再現可能なハイコンテント画像解析の構築
- 02処理前のワークフローエラー検出
- 03CellProfilerパイプラインの変換と実行
- 04エージェントによる実行と結果確認
MCP 対応
ローカルstdioのMCPサーバーが、対応エージェントにワークフロー作成、検証、実行、実行時の確認、ビューアでのレビューを公開します。別途、セキュリティを備えたHTTPインターフェースも利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
73掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
OpenHCS は、多数のウェル、サイト、チャネル、Z 面、または時点を一貫して解析する必要があるハイコンテント研究に取り組む、イメージング研究者や研究ソフトウェアチーム向けに設計されています。ソースの選択、処理ステップ、結果の定義が、インターフェイス上だけの状態、スクリプト、自動化に分散することなく、検証済みの単一のパイプラインにまとめられます。
ビジュアル編集、コード、自動化を通じてワークフローをレビュー可能な状態に保つ必要がある場合に適しています。同じパイプラインをデスクトップ GUI または Python として編集でき、対応する CellProfiler の .cppipe ファイルからインポートできるほか、ローカル MCP サーフェスを通じて構築またはレビューできます。
インストール
Windows インストーラー · macOS インストーラー · インストール方法
グラフィカルインストーラーは、OpenHCS GUI、CellProfiler との互換性、ローカル MCP サーバー、Napari、Fiji/ImageJ、Bio-Formats を含む、CPU 対応の隔離されたデスクトップ環境をセットアップします。GPU ライブラリはオプションです。
OpenHCS の使用例
UI とビューワーのギャラリーを見る · エージェントがワークフローを構築、デバッグ、実行、検査する様子を見る
OpenHCS は、コンパイルしてから実行する アーキテクチャで大規模な顕微鏡データセットを処理します。パイプラインは、処理開始前に選択した実行軸にわたって検証されるため、コストのかかる処理を長時間実行した後の失敗を防げます。GUI でパイプラインを設計し、Python にエクスポートしてコードとして編集し、再インポートできます。これにより、ビジュアルなワークフローとプログラムによるワークフローを切り替えられます。ローカル MCP は、対応するエージェントに同じワークフローモデルを公開するため、エージェントが作成したパイプラインも GUI や生成された Python で確認、編集、レビューできます。
graph LR
subgraph Sources
IX[ImageXpress]
OP[Opera Phenix]
BF[Bio-Formats]
OM[OMERO]
end
subgraph OpenHCS Platform
PD["Pipeline Designer<br/>(GUI ⇄ Code ⇄ Agent)"]
CO["Typed Compiler<br/>(resolve + validate)"]
EX["Bounded Worker Executor<br/>(well scheduling · multi-GPU)"]
FN["Registry-Discovered Functions<br/>scikit-image · CuPy · pyclesperanto<br/>PyTorch · JAX · TF · CuCIM · custom"]
PS["PolyStore<br/>(Memory ↔ Disk ↔ Zarr ↔ Stream)"]
end
subgraph Viewers
NA[Napari]
FJ[Fiji/ImageJ]
end
IX --> PD
OP --> PD
BF --> PD
OM --> PD
PD --> CO --> EX
EX --> FN --> PS
PS --> NA
PS --> FJ
⚡ 主な機能
🛡️ コンパイル時の検証設定は一度だけステップスナップショットとコンパイルセッションに解決されます。その後、型付きプランによって、実行開始前にソース、アーティファクト、具体化、メモリー契約、ワーカー要件が検証されます。エラーは、何時間も処理した後ではなく、すぐに明らかになります。 |
🔄 GUI ↔ コードの双方向連携パイプラインをビジュアルに設計し、実行可能な Python としてエクスポートして IDE で編集し、GUI に再インポートできます。コード生成はあらゆるスコープレベルで動作します。関数パターン、個々のステップ、パイプライン設定、オーケストレーター全体のスクリプトなど、オブジェクトを保持するウィンドウであれば、どこからでもコードを生成して再インポートできます。 |
| ### 🧠 エージェント支援ワークフロー 対応する MCP クライアントに、顕微鏡画像のフォルダーまたはプレートと分析目標を渡します。クライアントは、接続された実行サーバーの関数を調べ、型付きパイプラインを構築して検証し、実行して、OpenHCS またはビューアーで結果を確認し、生成された Python を修正できます。 |
⚡ マルチプロセスと GPU アクセラレーション制限付きのワーカーレーンでは、デフォルトで |
🔌 あらゆる Python 関数あらゆる Python 関数を、 |
📊 結果の具体化呼び出し可能コントラクトとモジュールアーティファクトコントラクトでは、Python の引数名とは独立して、意味的な出力を宣言します。アーティファクトグラフと具体化プランは、画像、測定値、オブジェクトラベル、関係、テーブル、ファイルを、設定されたストアやエクスポーターに振り分けます。 |
🔬 プロセス分離された Napari と Fijiパイプラインの実行中に、画像を Napari と Fiji/ImageJ にリアルタイムでストリーミングします。OpenHCS の |
🪟 ウィンドウ間のリアルタイム更新
|
🧬 CellProfiler パイプラインのインポートデスクトップアプリケーションで |
🤖 MCP エージェント自動化ローカルの stdio MCP サーバーを ChatGPT desktop、Codex、Claude Desktop、その他の対応クライアントで使用するか、セキュリティを別途確保した HTTP サーフェスをデプロイします。グラフィカルインストーラーは、検出されたローカルクライアントを自動的に登録します。機能プロファイル、スキーマ、ナレッジ、UI アタッチメント、作成、実行、ランタイムの調査、ビューアーでの確認、ガバナンスに基づくカスタム関数の登録は、重複したツールリストではなく、型付きの権威ある情報源から投影されます。 |
🧩 OpenHCS エコシステム
OpenHCS は、目的ごとに切り出され、個別に公開されている 8 つのライブラリで構成されています。それぞれが汎用的な課題を解決し、すべてが 1 つのプラットフォームに統合されています。
graph TD
OH["OpenHCS Platform<br/>(domain wiring + pipelines)"]
OH --> OS["ObjectState<br/>(config)"]
OH --> AB["ArrayBridge<br/>(arrays)"]
OH --> PS["PolyStore<br/>(I/O + streaming)"]
OH --> ZR["ZMQRuntime<br/>(exec)"]
OH --> QR["PyQT-reactive<br/>(Qt forms)"]
OH --> FB["formbridge<br/>(form model + UI bridge)"]
QR --> FB
OS --> PI["python-introspect<br/>(signatures)"]
OH --> MR["metaclass-registry<br/>(plugins)"]
OH --> PC["pycodify<br/>(serialization)"]
| ライブラリ | OpenHCS での役割 | 機能 |
|---|---|---|
| ObjectState | 設定フレームワーク | コンテキスト階層 × クラス MRO の 2 軸継承と、contextvars に基づく解決を備えた遅延評価データクラス |
| ArrayBridge | メモリー型変換 | DLPack によるゼロコピー転送を備えた、NumPy、CuPy、PyTorch、JAX、TensorFlow、pyclesperanto 間の統一 API |
| PolyStore | 統合 I/O とストリームペイロード | 汎用ストレージおよびストリーミングペイロードのプリミティブ、バックエンドのライフサイクル、仮想ワークスペース、アトミック書き込み、形式検出、ROI 抽出 |
| ZMQRuntime | プロセスおよびトランスポートのランタイム | 汎用リクエスト、ステータス、進捗、キャンセル、プロセスライフサイクル、ビューアー制御のトランスポートプロトコル |
| PyQT-reactive | UI フォーム生成 | データクラスから React スタイルのリアクティブフォームを生成。ウィンドウ間の同期とフラッシュアニメーションに対応 |
| formbridge | ツールキットに依存しないフォームと UI ブリッジ | フォームモデル、ヘルプおよびコードドキュメント、実行中の UI ブリッジの契約、クライアント、サーバーを提供します。GUI ツールキットをインポートしないため、ヘッドレス MCP では Qt なしで利用できます |
| pycodify | コード ↔ オブジェクト変換 | Python ソースをシリアライズ形式として使用します。型を保持し、差分比較や編集が可能で、衝突にも対応します |
| python-introspect | シグネチャー分析 | UI の自動生成と契約分析のための、純粋な Python による関数およびデータクラスのイントロスペクション |
| metaclass-registry | プラグイン検出 | 顕微鏡ハンドラーとストレージバックエンドの自動検出を支える、ボイラープレート不要のレジストリーシステム |
🔬 顕微鏡と関数のサポート
|
画像ソース
ソースハンドラーは自動検出され、 |
関数 — 自動検出
接続された実行サーバーが利用可能なカタログを管理するため、リモート GPU や
カスタム関数の利用可否は、手動でリストを管理しなくても反映されます。
|
処理領域:画像の前処理 · セグメンテーション · 細胞計数 · スティッチング(MIST + Ashlar GPU) · 神経突起のトレース · 形態解析 · 計測
次元性はグローバルなモードではなく、関数によって定義されます。真のボリューム セグメンテーションおよび計測の経路と、平面単位で処理する関数が共存し、後者の ラベルが Z 軸方向に暗黙的に結合されることはありません。 次元性と計測機能のリファレンスを参照してください。
🚀 クイックスタート
ほとんどのデスクトップユーザーは、 Windows インストーラー または macOS インストーラーをダウンロードしてください。 どちらのダウンロードも、ZIP ファイルの展開や既存の Python のインストールは不要です。 OpenHCS 0.7.23 以前からアップグレードする場合は、 一度限りのインストーラー移行に従ってください。
macOS が、署名も公証もされていない公式ブートストラップをブロックした場合は、 OpenHCS Installer.app を開いてから、System Settings > Privacy & Security に移動し、Security までスクロールして Open Anyway をクリックし、認証してから Open を確定してください。Gatekeeper の上書きは、公式 OpenHCS GitHub リリースから ダウンロードしたディスクイメージに対してのみ行ってください。現在の復旧手順は Apple のドキュメントを こちらで確認できます。
手動でインストールする場合は、仮想環境を作成し、グラフィカルインストーラーと同じ CPU セーフなデスクトップ環境をインストールしてください。
# Complete CPU-safe desktop environment
python -m pip install "openhcs[gui,viz,bioformats,mcp,cellprofiler-compat]"
# Launch the application
openhcs
# Launch the local MCP server over stdio
openhcs-mcp
より小規模な環境では、必要な機能だけを選択できます。
# Basic installation with GUI
python -m pip install "openhcs[gui]"
# Add Napari viewer
python -m pip install "openhcs[gui,napari]"
# Add Fiji/ImageJ viewer
python -m pip install "openhcs[gui,fiji]"
# Add both viewers
python -m pip install "openhcs[gui,viz]"
# Add GPU acceleration on a compatible CUDA 12 system
python -m pip install "openhcs[gui,gpu]"
# Full installation (GUI + viewers + GPU)
python -m pip install "openhcs[gui,viz,gpu]"
# Add the local MCP server for agent clients
python -m pip install "openhcs[gui,mcp,viz]"
# Or lower a CellProfiler pipeline into public OpenHCS declarations
from pathlib import Path
from objectstate import ensure_global_config_context
from openhcs.core.config import GlobalPipelineConfig
from openhcs.core.orchestrator.orchestrator import PipelineOrchestrator
from openhcs.interop.cellprofiler.pipeline_import import import_cellprofiler_pipeline
plate_path = Path("/data/plate").resolve()
ensure_global_config_context(GlobalPipelineConfig, GlobalPipelineConfig())
steps, pipeline_config = import_cellprofiler_pipeline(
"analysis.cppipe",
source_root=plate_path,
)
orchestrator = PipelineOrchestrator(
plate_path,
pipeline_config=pipeline_config,
).initialize()
execution_bundle = orchestrator.compile_pipelines(steps)
GUI と実行サービスは、同じ list[FunctionStep]、
PipelineConfig、型付き実行バンドルを使用します。明示的な低レベル実行呼び出しと
進行状況のライフサイクルについては、API の概要をご覧ください。
CellProfiler/OpenHCS の比較を実行するメンテナーは、パッケージに含まれる
openhcs-benchmark コマンドを使用できます。openhcs-benchmark list-cases --manifest PATH
は、データを取得したり実行を開始したりせずに、宣言されたケースのソースを確認します。エキスパート向けの
openhcs_list_benchmark_cases MCP ツールでは、同じ選択機能を利用できます。
比較の実行ごとに、ライフサイクル状態、正確な再実行コマンド、宣言された処理、
構造化された結果アーティファクトを含む、型付きレシートが記録されます。
新規または空の出力ディレクトリを使用してください。使用中のディレクトリは、実行によるマニフェストの読み込み前に拒否されます。
エキスパート向けの full MCP サーフェスでは、
openhcs_inspect_benchmark_run
を使用して、ローカルの読み取りパスのポリシーで許可された既存の結果ディレクトリを調べることができます。
openhcs-benchmark inspect-run --output-dir PATH も同じ型付き検査を行います。
どちらの経路も、上限のない一覧を返す代わりに、artifact_limit と
artifact_offset を使用して構造化アーティファクトをページ分割します。
openhcs_report_benchmark_run と openhcs-benchmark inspect-run --output-dir PATH --report は、型付きレシートと観測結果から、ケースごとの結果を上限付きで表示します。これらの MCP 経路は読み取り専用です。ベンチマークの起動、再開、キャンセル、再実行は行わず、記録されたレシートは来歴情報であり、科学的な同等性を示す主張ではありません。
単一の通常の測定済みパイプラインについては、openhcs-benchmark inspect-measured --output-dir PATH
とエキスパート向け MCP 検査・レポートツールが、同じ
検証済み実行レシートを読み取り、保持されているソース、観測結果、要約のダイジェストを確認します。
後者 2 つのダイジェストがないアーカイブ済みレシートも読み取り可能ですが、これらのファイルは検証できません。これらの経路によって、
2 つ目のパイプラインランナーやジョブステータスシステムが作られることはありません。
openhcs-benchmark run-measured --plate PLATE --pipeline-source-file PIPELINE.py --output-dir EVIDENCE --run-id ID --wait-timeout-ms 120000 は、通常のヘッドレスジョブ制御を通じて
パイプラインを送信し、その後 MCP と同じレシートの最終処理を呼び出します。入力ワークスペースを
別途準備している場合は --execution-plate PREPARED_PLATE を使用してください。証拠ディレクトリは空である必要があります。
--observation-scope outcomes を使用すると、実行時配列を転送せずに軸ごとの成功と来歴を保持できます。この機能は出力値を比較しません。
通常のヘッドレスジョブが完了した後、エキスパート向けの
openhcs_finalize_measured_pipeline_run ツールを使用すると、実行時の観測結果を検証し、正確に送信されたパイプラインとサーバーの完了記録からそのレシートを保持できます。
このツールは別のジョブを送信しません。
📦 すべてのインストールオプション
python -m pip install "openhcs" # Headless engine
python -m pip install "openhcs[gui]" # Desktop GUI
python -m pip install "openhcs[gui,napari]" # GUI + Napari viewer
python -m pip install "openhcs[gui,viz]" # GUI + Napari + Fiji
python -m pip install "openhcs[gui,viz,gpu]" # Full installation
python -m pip install "openhcs[gpu]" # Headless + GPU
python -m pip install "openhcs[omero]" # OMERO integration
python -m pip install -e ".[all,dev]" # Development (all features)
🗄️ OMERO 連携
OMERO には zeroc-ice が必要ですが、互換性のあるホイールは通常のプロジェクトメタデータからは公開されていません。追加機能をインストールする前に、ヘルパー要件をインストールしてください。
python scripts/install_omero_deps.py
pip install 'openhcs[omero]'
同等の要件ファイルを使ったインストール方法:
pip install -r requirements-omero.txt
pip install 'openhcs[omero]'
Python 3.11 および 3.12 でサポートされています。手動インストールについては、Glencoe Software を参照してください。
📖 ドキュメント
| 📘 Read the Docs | API ドキュメント、チュートリアル、ガイド一式 |
| 🏗️ アーキテクチャ | 型付きコンパイラー · ソース · アーティファクト · 実行時の値 · パッケージの境界 |
| 🎓 はじめに | インストール · 最初のパイプライン |
⚙️ アーキテクチャのハイライト
解決済みの型付きパイプラインコンパイル — 実行開始前にエラーを検出します
PipelineConfig + list[FunctionStep]
↓ resolve once
StepSnapshot + CompilationSession
↓ derive and validate
typed CompiledStepPlan objects
↓ package
CompiledExecutionBundle
↓ execute
runtime values + materialized artifacts
オーサリング画面は、順序付きの線形ステップリストのままです。ObjectState の継承によりデフォルト設定を簡潔に保ちながら、コンパイル時に実行に必要なソースと アーティファクトの依存関係を正確に導出して公開します。導出された依存関係グラフは、 ユーザーが作成する必要のある2つ目のワークフローではありません。
処理を開始する前に、選択されたすべての実行軸についてパイプラインをコンパイルします。実行時ワーカーは、変更可能な宣言オブジェクトを再解釈するのではなく、コンパイル済みバンドルを使用します。詳しく読む →
二軸構成 — コンテキスト階層 × クラス MRO
解決処理では、コンテキストスタック(Global → Pipeline → Step)とクラス MRO(継承チェーン)の2つの軸を同時にたどります。contextvars を基盤としており、スレッドセーフでスコープが分離された解決を実現します。フィールド単位で適切に継承できるよう、None と具体的な値の違いを保持します。ObjectState を基盤としています。詳しく読む →
GUI ↔ コードの双方向連携 — 任意のスコープレベルでコードを生成します
ObjectState オブジェクトを保持するウィンドウでは、実行可能な Python コードを生成して再インポートできます。
Function patterns · Individual steps · Pipeline configs · Full orchestrator scripts
↕ generate / AST-parse back ↕
各スコープには、下位スコープのインポートがすべて含まれます。生成されたコードは、追加のセットアップなしで完全に実行できます。IDE または外部エディターで編集して保存すると、GUI が AST 解析を通じて再インポートします。pycodify と python-introspect を基盤としています。詳しく読む →
ウィンドウ間のライブ更新 — クラスレベルのレジストリ + Qt シグナル
クラスレベルのレジストリで、アクティブなフォームマネージャーをすべて追跡します。いずれかの構成ウィンドウで値が変更されると、Qt シグナルが変更の影響を受けるすべてのウィンドウに変更を伝播し、デバウンス処理とスコープ分離された更新を行います。オーケストレーターごとの分離を保ちながら、Global → Pipeline → Step の順に変更が連鎖します。PyQT-reactive を基盤としています。詳しく読む →
その他のパターン — ストレージ、ビューアー連携、関数検出、メモリータイプ
- ストレージとビューアーストリーミング:PolyStore は汎用ストレージとストリーミングペイロードのプリミティブを管理します。ZMQRuntime はプロセス、トランスポート、準備完了状態、確認応答、ライフサイクルのプロトコルを管理します。OpenHCS の
StreamingConfig宣言と Napari/Fiji アダプターは、ビューアーの識別、表示、アプリケーションポリシーを管理します。 - 関数の自動検出:レジストリで検出された関数をコントラクト分析し、
python-introspectとmetaclass-registryを通じて型安全に統合します - メモリータイプ管理:コンパイル時に配列型の互換性を検証し、
ArrayBridgeを通じてコピーなしの変換を行います - カスタム関数の登録:
@numpy、@cupy、@pyclesperantoなどでデコレートされた任意の Python 関数を、コントラクト、UI フォーム、関数レジストリに自動的に統合します - 進化に強い UI:Python のアノテーションから型ベースでフォームを生成するため、シグネチャの変更にも自動的に対応します
🤝 コントリビューション
git clone --recurse-submodules https://github.com/OpenHCSDev/OpenHCS.git
cd OpenHCS
# Install the eight local packages using docs/source/development/repository_setup.rst,
# then install OpenHCS itself:
python -m pip install -e ".[dev,gui]"
OPENHCS_CPU_ONLY=1 python -m pytest tests/unit
コントリビューション分野:顕微鏡フォーマット · 処理関数 · GPU バックエンド · ドキュメント
📄 ライセンス
MIT — LICENSE を参照してください。
🙏 謝辞
OpenHCS は EZStitcher を発展させたもので、Ashlar(スティッチング)、MIST(位相相関)、pyclesperanto(GPU 画像処理)、scikit-image(画像解析)を基盤としています。
OpenHCS の CellProfiler との相互運用性および同等性検証は、CellProfiler プロジェクトのオープンソースソフトウェア、ドキュメント、公開されているサンプル、チュートリアル、ベンチマーク資料を基盤としています。CellProfiler の著者と貢献者、および同プロジェクトが配布する生物学的データセットの著者に感謝いたします。Stirling et al., CellProfiler 4: improvements in speed, utility and usability (2021) を含め、CellProfiler の公式引用ガイドラインに従って引用してください。
サードパーティプロジェクトの名称とロゴは、OpenHCS がサポートする統合、互換性のある クライアント、または OpenHCS が使用するソフトウェアを示すものです。それらは引き続き、 各プロジェクトまたは所有者の財産です。これらの表示は、提携や推奨を意味するものでは ありません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
