cellprofiler について
cellprofiler は、再現可能な核計数や蛍光測定を必要とする研究者向けの定量顕微鏡解析スキルです。単一チャンネルの 2D TIFF を対象に、マニフェスト準備から CellProfiler のバッチ処理、結果検証までを行い、パイプラインと入力の QC 情報を記録します。
主な機能
- 01画像マニフェストと LoadData ファイルの準備
- 02CellProfiler のバッチパイプライン実行
- 03核数、強度、面積、形状の測定
- 04分割確認用オーバーレイの作成
- 05測定表の検証と画像・パイプライン QC の記録
活用シーン
- 01顕微鏡画像群の核数カウント
- 02核 DNA 蛍光と面積の測定
- 03分割の見落としやオブジェクト結合の確認
- 04バッチ間の飽和と計数分布の点検
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ k-dense-ai/ scientific-agent-skills --skill cellprofilerインストール後、Claude Code で/cellprofilerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/nuclei.cppipereferences/runtime-and-qc.mdscripts/nuclei_assay.py詳細
CellProfiler 定量的顕微鏡解析
このスキルは、再現可能な CellProfiler の .cppipe、核のカウント、核の蛍光測定、またはバッチ顕微鏡測定が必要な場合に使用します。同梱のアッセイは、1 視野につき 1 つの 2D グレースケール TIFF 核チャネルを受け付け、ピクセルは黒がゼロ(MINISBLACK)で、暗い背景に明るい核が写っていることを前提とします。パレット形式や白がゼロの TIFF には明示的な変換が必要です。ボリュームセグメンテーション、マルチチャネルのセルペインティング、または組織特異的モデルについては、画像を黙って投影したり分割したりするのではなく、別のパイプラインを設計し、それらの前提を検証してください。
公式アプリケーションとマニュアルは 4.2.8 のままです。PyPI では 4.2.8.1 が公開されています。ここで使用している 7 つのモジュールと埋め込みの Threshold モジュールは 4.2.8 のソースと一致しますが、このレビューではそのネイティブディストリビューションを実行していません。ヘルパー環境は CellProfiler の古い依存関係スタックとは分離してください。検証の範囲についてはランタイムリファレンスを参照してください。
ワークフロー
- 取得単位を確定します。プレート、ウェル、サイト、存在する場合はタイムポイント、ピクセルサイズ、核チャネルの識別情報、カメラのビット深度、露出、および生物学的レプリケートです。元の画像輝度を保持してください。独自形式は、このヘルパーを使用する前に Bio-Formats で明示的に変換してください。
- 以下の CSV マニフェストを作成します。
image_pathは絶対パス、またはマニフェストからの相対パスです。サンプル ID には英字、数字、ドット、ダッシュ、またはアンダースコアを使用します。サンプル ID とプレート/ウェル/サイトの組み合わせは一意である必要があります。sample_001のような非数値のサンプル ID を使用してください。LoadData は列の型を推論するため、そうしないと001が1に変換される可能性があります。識別子の前後に空白を入れないでください。TIFF は uint8 または uint16 で、単一プレーン/シリーズ/解像度であり、定数でない必要があります。ヘルパーは、チャネルを推測するのではなく、RGB、z スタック、および float 画像を拒否します。 - assets/nuclei.cppipe を開始用パイプラインとして使用します。LoadData → IdentifyPrimaryObjects → 輝度/サイズ測定 → アウトラインオーバーレイ → CSV エクスポート。初期の直径範囲は 8~80 ピクセルで、グローバル Otsu しきい値処理を使用し、しきい値スムージングは行わず、境界オブジェクトは除外します。条件を比較する前に、代表的な画像と取得ピクセルサイズからこの範囲をキャリブレーションしてください。
- コントロール、低密度/高密度、暗い画像、プレートエッジを含む小規模なパイロットを実行します。保存されたオーバーレイを確認し、見逃された核、分割、結合、エッジ除外がないか調べます。CellProfiler でしきい値処理とデクランピングを調整し、調整済みの
.cppipeをエクスポートして、--pipelineを渡してそれを保持します。各処理でカウントを一致させるために個別に設定を選ばないでください。 - 調整済みのパイプラインを固定し、バッチを解析します。入力飽和の警告、カウントゼロ、カウント/面積分布、およびコントロールの挙動を確認します。推論のための集計は生物学的レプリケートのレベルで行うべきです。1 つのウェルからの数千個の細胞は、独立したウェルではありません。
有界アッセイを実行する
このスキルディレクトリから、images.csv を作成します:
sample_id,image_path,plate,well,site
control_A01_1,images/control_A01_1_DAPI.tif,Plate1,A01,1
python scripts/nuclei_assay.py prepare images.csv load_data.csv
python scripts/nuclei_assay.py run images.csv results --executable cellprofiler
python scripts/nuclei_assay.py summarize results
run は新規または空の出力ディレクトリを必要とし、-c -r、保存されたパイプラインのコピー、--data-file、出力フォルダー、および --done-file を指定して CellProfiler を実行します。成功には終了コードゼロ、Complete マーカー、および有効な測定テーブルが必要です。実行前に、コマンド、パイプラインのチェックサム、入力画像のチェックサム、およびサンプル QC を assay_qc.json に記録し、実行または出力検証が失敗した場合は failed ステータスとエラーを保持します。CellProfiler の出力は cellprofiler.log に書き込まれます。新しい出力フォルダーで再実行してください。summarize は CSV の内容を独立して検証しますが、エンジンの実行が完了したことを証明するものではありません。
カスタムパイプラインは、DNA、Nuclei、Metadata_Sample、整数 dtype のスケーリング、およびプレフィックスのない単一オブジェクトの Image.csv/Nuclei.csv エクスポート契約を維持する必要があります。必要な intensity/area 測定を保持してください。オブジェクトセットの名前を変更したり、異なる intensity スケールを使用する場合は、検証されていない --pipeline の置き換えではなく、対応するヘルパーの適応が必要です。
実行可能ファイルは、CellProfiler アプリケーションランチャーまたはローカルコンテナランチャーにすることもできます。コンテナターゲット、ファイルシステムマッピング、および検証エビデンスについては、references/runtime-and-qc.md を参照してください。prepare と summarize は CellProfiler なしで動作します。
出力を解釈する
Image.csv: 画像/フィールドごとに 1 行で、Count_Nucleiおよび取得メタデータを含みます。Nuclei.csv: 受け入れられたオブジェクトごとに 1 行で、平均/積分 DNA intensity、面積、および形状を含みます。*_nuclei.png: 視覚的 QC 用に、入力画像上に緑色の核境界を重ねたものです。pipeline.cppipeとcellprofiler.done: 正確なパイプラインのコピーとエンジン完了マーカーです。assay_qc.json: 実行ステータス、一意の画像/オブジェクトキー、正確なカウント、有限の平均/積分 intensity および正の面積チェック、ピクセル単位のフィールド平均面積、およびストレージ飽和フラグです。
LoadData はこのアセットではスケーリングのためにカメラメタデータを無視し、整数ストレージの最大値で除算します: uint8 → 255、uint16 → 65535。したがって、uint16 に保存された 12 ビットカメラの最大値は約 0.0625 になります。明示的なキャリブレーションなしに、異なるビット深度、露出、ゲイン、または染色バッチ間で intensity を比較しないでください。飽和した画像はセグメンテーションを通過しても、その intensity 測定は使用できません。照明補正とバックグラウンド減算はアッセイ固有の追加事項です。このスターターはどちらも行いません。
飽和率は ストレージ最大値 のピクセルのみをカウントします。12 ビット検出器は 4095 で飽和する一方、uint16 ストレージ最大値は 65535 である場合があります。既知の取得上限を別途確認してください。積分 intensity はピクセル値の合計であり、1 を超える場合があります。0~1 に制約されるのはピクセルごとの平均 intensity のみです。フィールドの平均核 intensity は、各ピクセルを等しく重み付けするのではなく、各核を等しく重み付けします。
カウントチェックは正しいセグメンテーションを証明できません。オーバーレイと独立して注釈付けされたフィールドを確認し、境界の除外とセグメンテーションエラーを生物学的結果と併せて報告してください。オプションの合成エンジンテストは、未知の細胞種に対するアッセイ性能ではなく、既知の 3 核の例を対象としています。エンジンが構成されていなかったため、今回のレビューではスキップされました。
ソース
- 公式のサンプルパイプライン: アッセイ固有の出発点を選択してください。
- CellProfiler 4.2.8 マニュアル: モジュール設定と解釈。
- ヘッドレスバッチ処理: コマンドライン実行。
- 現在のアプリケーションのダウンロード と PyPI 配布: 異なるリリースターゲット。