omero-integration について
omero-integrationは、Python APIで顕微鏡画像やメタデータを扱うOMEROユーザー向けのスキルです。データ取得、画像解析、ROI管理、バッチ処理スクリプトを扱います。
主な機能
- 01接続とセッションの管理
- 02プロジェクト、データセット、画像の取得
- 03ピクセル解析と画像レンダリング
- 04ROIの作成と測定値の抽出
- 05アノテーションとテーブルデータの管理
- 06バッチ処理スクリプトの作成
活用シーン
- 01データセットから画像を取得してピクセル解析
- 02ROI内の強度を測定して結果を保存
- 03画像を一括処理して出力を生成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ crazymsn/ academic-skills --skill omero-integrationインストール後、Claude Code で/omero-integrationを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/advanced.mdconnection.mddata_access.mdimage_processing.mdmetadata.mdrois.mdscripts.mdtables.md詳細
OMERO 連携
概要
OMERO は、顕微鏡画像とメタデータの管理、可視化、解析を行うオープンソースのプラットフォームです。Python API を通じて画像にアクセスし、データセットを取得し、ピクセルを解析し、ROI やアノテーションを管理できます。ハイコンテンツスクリーニングや顕微鏡ワークフローに利用できます。
このスキルを使用するタイミング
このスキルは、次のような場合に使用します:
- OMERO Python API(omero-py)を使って顕微鏡データにアクセスする作業を行う場合
- プログラムから画像、データセット、プロジェクト、またはスクリーニングデータを取得する場合
- ピクセルデータを解析し、派生画像を作成する場合
- 顕微鏡画像上に ROI(関心領域)を作成または管理する場合
- OMERO オブジェクトにアノテーション、タグ、またはメタデータを追加する場合
- 測定結果を OMERO テーブルに保存する場合
- バッチ処理用のサーバーサイドスクリプトを作成する場合
- ハイコンテンツスクリーニング解析を実行する場合
主な機能
このスキルは 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
権限、ファイルセット、グループをまたぐクエリ、削除操作、その他の高度な機能を扱います。
よくあるシナリオ:
- グループの権限を処理する
- 元のインポートファイルにアクセスする
- グループをまたぐクエリを実行する
- コールバックを使ってオブジェクトを削除する
インストール
uv pip install omero-py
要件:
- Python 3.7+
- Zeroc Ice 3.6+
- OMERO サーバーへのアクセス(ホスト、ポート、認証情報)
クイックスタート
基本的な接続パターン:
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: 画像の取得と解析
- OMERO サーバーに接続します(
references/connection.md) - データセットに移動します(
references/data_access.md) - データセットから画像を取得します(
references/data_access.md) - ピクセルデータを NumPy 配列として取得します(
references/image_processing.md) - 解析を実行します
- 結果をテーブルまたはファイルアノテーションとして保存します(
references/tables.mdまたはreferences/metadata.md)
ワークフロー 2: ROI のバッチ解析
- OMERO サーバーに接続します
- 既存の ROI を持つ画像を取得します(
references/rois.md) - 各画像について ROI 形状を取得します
- ROI 内のピクセル強度を抽出します(
references/rois.md) - 測定値を OMERO テーブルに保存します(
references/tables.md)
ワークフロー 3: 解析スクリプトの作成
- 解析ワークフローを設計します
- OMERO.scripts フレームワークを使用します(
references/scripts.md) - スクリプトパラメーターを通じてデータにアクセスします
- 画像をバッチで処理します
- 出力(新しい画像、テーブル、ファイル)を生成します
エラー処理
OMERO の操作は必ず try-except ブロックで囲み、接続が適切にクローズされるようにしてください:
from omero.gateway import BlitzGateway
import traceback
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()
追加リソース
- 公式ドキュメント: https://omero.readthedocs.io/en/stable/developers/Python.html
- BlitzGateway API: https://omero.readthedocs.io/en/stable/developers/Python.html#omero-blitzgateway
- OMERO モデル: https://omero.readthedocs.io/en/stable/developers/Model.html
- コミュニティフォーラム: https://forum.image.sc/tag/omero
注意事項
- OMERO はグループベースの権限(READ-ONLY、READ-ANNOTATE、READ-WRITE)を使用します
- OMERO の画像は階層構造で整理されています: Project > Dataset > Image
- スクリーニングデータは Screen > Plate > Well > WellSample > Image の構造を使用します
- サーバーリソースを解放するため、接続は必ずクローズしてください
- 自動的なリソース管理にはコンテキストマネージャーを使用してください
- ピクセルデータは解析のために NumPy 配列として返されます