mcpField
A
alterlab-omero

alterlab-omero

github.com/alterlab-ieuデータ・データベース7866 回インストール5 週間前に更新
リポジトリ

alterlab-omero について

alterlab-omeroは、OMERO Python APIで顕微鏡画像とメタデータを管理・分析するスキルです。画像取得、ピクセル処理、ROI、アノテーション、サーバー側の一括処理を扱います。

主な機能

  1. 01OMEROへの接続とセッション管理
  2. 02プロジェクト・データセット・画像の参照
  3. 03ピクセル取得と派生画像の作成
  4. 04ROIの作成と領域強度の分析
  5. 05アノテーションとOMEROテーブルの管理
  6. 06サーバー側バッチスクリプトの作成

活用シーン

  1. 01データセットの画像を分析用に取得
  2. 02ROI内のピクセル測定値を集計
  3. 03画像を一括処理して結果を保存

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/alterlab-ieu/alterlab-academic-skills --skill alterlab-omero

インストール後、Claude Code で/alterlab-omeroを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

evals/
evals.json
references/
advanced.md
connection.md
data_access.md
image_processing.md
metadata.md
rois.md
scripts.md
tables.md

詳細

OMERO 連携

概要

OMERO は、顕微鏡画像とメタデータを管理、可視化、分析するためのオープンソースプラットフォームです。Python API を使って画像にアクセスし、データセットを取得し、ピクセルを分析し、ROI とアノテーションを管理して、ハイコンテントスクリーニングや顕微鏡ワークフローに活用できます。

このスキルを使用する場面

次の場合に、このスキルを使用してください:

  • 顕微鏡データへのアクセスに OMERO Python API(omero-py)を使用する
  • 画像、データセット、プロジェクト、またはスクリーニングデータをプログラムで取得する
  • ピクセルデータを分析し、派生画像を作成する
  • 顕微鏡画像上の ROI(関心領域)を作成または管理する
  • OMERO オブジェクトにアノテーション、タグ、またはメタデータを追加する
  • OMERO テーブルに測定結果を保存する
  • バッチ処理用のサーバーサイドスクリプトを作成する
  • ハイコンテントスクリーニング分析を実施する
対象外
シナリオ代わりに使用
NCI Imaging Data Commons から公開されているがんの放射線画像/病理画像 DICOM をダウンロードするalterlab-imaging-data-commons
ローカルファイルの全スライド画像をタイリングまたは前処理するalterlab-histolab
エンドツーエンドの計算病理モデル(セグメンテーション、グラフ、トレーニング)alterlab-pathml
臨床 DICOM ファイルを読み取る、または匿名化するalterlab-pydicom

主な機能

このスキルでは、8 つの主要な機能領域を扱います。それぞれについて、references/ ディレクトリに詳しく記載されています。

1. 接続とセッション管理

ファイル:references/connection.md

OMERO サーバーへのセキュアな接続を確立し、セッションを管理し、認証を処理して、グループコンテキストを操作します。初期設定や接続パターンに使用します。

一般的なシナリオ:

  • 認証情報を使って OMERO サーバーに接続する
  • 既存のセッション ID を使用する
  • グループコンテキストを切り替える
  • コンテキストマネージャーで接続のライフサイクルを管理する
2. データへのアクセスと取得

ファイル:references/data_access.md

OMERO の階層的なデータ構造(Projects → Datasets → Images)とスクリーニングデータ(Screens → Plates → Wells)をたどります。オブジェクトを取得し、属性でクエリを実行して、メタデータにアクセスします。

一般的なシナリオ:

  • ユーザーのすべてのプロジェクトとデータセットを一覧表示する
  • ID またはデータセットから画像を取得する
  • スクリーニング用プレートデータにアクセスする
  • フィルターを使ってオブジェクトをクエリする
3. メタデータとアノテーション

ファイル:references/metadata.md

タグ、キーと値のペア、ファイル添付、コメントなどのアノテーションを作成、管理します。画像、データセット、その他のオブジェクトにアノテーションをリンクします。

一般的なシナリオ:

  • 画像にタグを追加する
  • 分析結果をファイルとして添付する
  • カスタムのキーと値のメタデータを作成する
  • 名前空間でアノテーションをクエリする
4. 画像処理とレンダリング

ファイル:references/image_processing.md

生のピクセルデータに NumPy 配列としてアクセスし、レンダリング設定を操作し、派生画像を作成して、物理寸法を管理します。

一般的なシナリオ:

  • 計算分析用にピクセルデータを抽出する
  • サムネイル画像を生成する
  • 最大強度投影を作成する
  • チャンネルのレンダリング設定を変更する
5. 関心領域(ROI)

ファイル:references/rois.md

さまざまな形状(長方形、楕円、ポリゴン、マスク、点、線)の ROI を作成、取得、分析します。ROI 領域の強度統計を抽出します。

一般的なシナリオ:

  • 画像上に長方形の ROI を描画する
  • セグメンテーション用のポリゴンマスクを作成する
  • ROI 内のピクセル強度を分析する
  • ROI 座標をエクスポートする
6. OMERO テーブル

ファイル:references/tables.md

OMERO オブジェクトに関連付けられた構造化された表形式データを保存、クエリします。分析結果、測定値、メタデータに役立ちます。

一般的なシナリオ:

  • 画像の定量測定値を保存する
  • 複数の列型を持つテーブルを作成する
  • 条件を指定してテーブルデータをクエリする
  • テーブルを特定の画像またはデータセットにリンクする
7. スクリプトとバッチ処理

ファイル: references/scripts.md

バッチ処理、自動化ワークフロー、OMERO クライアントとの連携のために、サーバー側で実行する OMERO.scripts を作成します。

一般的なシナリオ:

  • 複数の画像をバッチ処理する
  • 自動化された解析パイプラインを作成する
  • データセット全体の要約統計を生成する
  • カスタム形式でデータをエクスポートする
8. 高度な機能

ファイル: references/advanced.md

権限、ファイルセット、グループ横断クエリ、削除操作など、その他の高度な機能について説明します。

一般的なシナリオ:

  • グループ権限を扱う
  • インポートされた元ファイルにアクセスする
  • グループ横断クエリを実行する
  • コールバックを使用してオブジェクトを削除する

インストール

# 1. Install a prebuilt ZeroC Ice 3.6 wheel for your Python version and OS first
#    (Glencoe Software builds; links on the OMERO.py page below)
uv pip install /path/to/zeroc_ice-3.6.5-<python>-<platform>.whl
# 2. Then OMERO.py
uv pip install omero-py

要件(omero-py 5.23.x、2026-09 現在):

  • Python 3.10 以降および NumPy 2
  • ZeroC Ice:omero-py は zeroc-ice>=3.6.5,<3.7 を指定しています。PyPI には Python 2.7/3.7 用の 3.6.5 ホイールしかないため、ビルド済みホイールがない場合、pip は Ice をソースからコンパイルしようとします。Ice 3.7/3.8 はサポートされていません。ホイールの一覧については https://omero.readthedocs.io/en/stable/developers/Python.html を参照してください。
  • OMERO サーバーへのアクセス(ホスト、ポート、認証情報)。omero CLI を使用する場合は OMERODIR を設定してください

クイックスタート

基本的な接続パターン:

from omero.gateway import BlitzGateway

# Connect to OMERO server
conn = BlitzGateway(username, password, host=host, port=port)
connected = conn.connect()

if connected:
    # Perform operations
    for project in conn.listProjects():
        print(project.getName())

    # Always close connection
    conn.close()
else:
    print("Connection failed")

コンテキストマネージャーを使用する推奨パターン:

from omero.gateway import BlitzGateway

with BlitzGateway(username, password, host=host, port=port) as conn:
    # Connection automatically managed
    for project in conn.listProjects():
        print(project.getName())
    # Automatically closed on exit

適切な機能の選択

データを調べる場合:

  • 接続を確立するには references/connection.md から始めてください
  • 階層をたどるには references/data_access.md を使用してください
  • アノテーションの詳細は references/metadata.md を確認してください

画像を解析する場合:

  • ピクセルデータへのアクセスには references/image_processing.md を使用してください
  • 領域ベースの解析には references/rois.md を使用してください
  • 結果の保存には references/tables.md を使用してください

自動化する場合:

  • サーバー側の処理には references/scripts.md を使用してください
  • バッチでのデータ取得には references/data_access.md を使用してください

高度な操作の場合:

  • 権限と削除には references/advanced.md を使用してください
  • グループ横断クエリについては references/connection.md を確認してください

よくあるワークフロー

ワークフロー 1:画像の取得と解析
  1. OMERO サーバーに接続します(references/connection.md)
  2. データセットに移動します(references/data_access.md)
  3. データセットから画像を取得します(references/data_access.md)
  4. ピクセルデータに NumPy 配列としてアクセスします(references/image_processing.md)
  5. 解析を実行します
  6. 結果をテーブルまたはファイルアノテーションとして保存します(references/tables.md または references/metadata.md)
ワークフロー 2:ROI のバッチ解析
  1. OMERO サーバーに接続します
  2. 既存の ROI を含む画像を取得します(references/rois.md)
  3. 各画像について、ROI のシェイプを取得します
  4. ROI 内のピクセル強度を抽出します(references/rois.md)
  5. 測定値を OMERO テーブルに保存します(references/tables.md)
ワークフロー 3:解析スクリプトの作成
  1. 解析ワークフローを設計します
  2. OMERO.scripts フレームワークを使用します(references/scripts.md)
  3. スクリプトパラメーターを通じてデータにアクセスします
  4. 画像をバッチ処理します
  5. 出力(新しい画像、テーブル、ファイル)を生成します

エラー処理

OMERO の操作は必ず try-except ブロックで囲み、接続が適切に閉じられるようにしてください:

from omero.gateway import BlitzGateway
import traceback

conn = None  # bind first so the finally block is safe if the constructor raises
try:
    conn = BlitzGateway(username, password, host=host, port=port)
    if not conn.connect():
        raise Exception("Connection failed")

    # Perform operations

except Exception as e:
    print(f"Error: {e}")
    traceback.print_exc()
finally:
    if conn:
        conn.close()

その他のリソース

注意事項

  • OMERO ではグループベースの権限(READ-ONLY、READ-ANNOTATE、READ-WRITE)を使用します
  • OMERO 内の画像は階層的に整理されています:Project > Dataset > Image
  • スクリーニングデータでは次の階層を使用します:Screen > Plate > Well > WellSample > Image
  • サーバーリソースを解放するため、接続は必ず閉じてください
  • リソース管理を自動化するには、コンテキストマネージャーを使用してください
  • 解析用のピクセルデータは NumPy 配列として返されます

AlterLab Academic Skills スイートの一部です。

コメント