QuPathスクリプトを使ってバーチャルスライドの画像解析
QuPathは各社スライドスキャナーの拡張子に対応した無料のviewer & analyzerである。扱いやすいROI作成ツールに加え、陽性面積や細胞検出などをwhole slide imageの大容量データで簡単に行うことができる。 もちろん通常の顕微鏡画像も扱うことができるうえ、ImageJよりも分かりやすいインターフェイスであるためその汎用性は高い。 QuPathにはメニュー画面には無い隠れた機能が豊富に存在する。それらを操るにはGroovy言語によるscriptingが必要となる。 QuPath scriptingに馴染むことができれば、一連の解析パイプラインを作成し、それを複数データに一括でバッチ処理することが可能になる。それ以上に、機能のカスタムやImageJとの連携、拡張機能など解析の自由度が格段に増すことになる。 かく言う私もQuPathを使うためにGroovyを使い始めた。QuPath自体はJavaで書かれているためQuPathのコマンドを解説する上でJavaの説明も伴うが、私自身Javaは初心者である。しかし特に理解せずともスクリプトは書ける。 本書では、開発者のPete BankheadがYoutubeで紹介している内容や、公式ドキュメント、image.sc等での議論を基に私が作成したスクリプトや解析例を紹介する。非常に多機能なQuPathの全てを網羅する必要はない。章の順番も気にせず自身の解析に必要そうな章だけを読んでいただければよい。 なお本書は2023年7月時点で最新のversionであるv0.4.3のQuPathを使用する。 ----------------------------------------- ※ 2023年12月1日にv0.5がリリースされました。major updateに伴い色々と変更されているようです。本書もv0.5系に対応できるように修正していきます。 https://github.com/qupath/qupath/releases/tag/v0.5.0 QuPath公式ページで紹介されている拡張機能もv0.5に対応したversionがリリースされています。非公式の拡張機能はv0.5では動作しないものもあるようなのでその場合はv0.4とv0.5を使い分けるのが良いかと思います。
QuPath インストール
QuPath projectの作成
アノテーション操作
ピクセル分類
細胞検出
自動化、バッチ処理
索引ページ
🖥️ Groovy言語入門
🖥️ QuPathスクリプト入門
🖥️ QuPathに登録した画像の情報ファイル
🖥️ 主要なクラス
🛣️ 解析対象エリアの作成 - Region*アノテーションの作成-
🫏 Objectリストの取得とフィルタリング
🫏 Object操作 ~ 選択 ~
🫏 Objectの削除
🫏 Objectのあれこれ
🧿 細胞検出
🧿 (余談)タイルの重複領域に作られた細胞の処理
🧿 細胞検出の拡張機能 【StarDist】
🧿 細胞のフィルタリング
🫏 Objectの形状計測、輝度計測
🫏 Objectの計測データの確認、追加、削除
🫏 Objectの計測データを書き出す
🫏 ObjectのExport, Import
🐍 ROI操作
🐍 RoiToolsでROI演算
🐍 ROI演算の応用例 - 周囲の解析 -
🐍 ROI演算の応用例 - 層の解析 -
🐍 ROI演算の応用例 - 層の解析2 -
🐍 ROI演算の応用例 - 層の解析3 -
🐍 ROI演算を用いたObjectの削除ツール(選択ツール)
🦣 マウス操作で画像の書き出し
🦣 画像の書き出し
🦣 Objectのバイナリマスク画像を書き出し
🦣 Objectのラベル画像を書き出し
🦣 画像の一部領域を書き出し
🦣 タイル画像の書き出し
🦣 サムネイル画像の書き出し
🖥️ Projectに対する操作1 - 情報取得 -
🖥️ Projectに対する操作2 - 画像の追加/削除 -
OMERO extensionでWebから画像をImport
🖥️ Metadata
🖥️ Projectに対する操作3 - Entryの並び替え -
🫏 Objectを他の画像に転送する
🪸 アフィン変換とは
🪸 2枚の画像の位置合わせ拡張機能 【Interactive image alignment】
🪸 Objectをアフィン変換して別の画像へ転送する
🪸 アフィン変換で2つの画像の位置合わせ - 行列算出をスクリプト内で行う -
🪸 2つの画像の位置合わせ - スクリプト内でバッチ処理 -
🪸 ホモグラフィ変換で2つの画像の位置合わせ
🪸 対応点から変換行列を求める
🪸 Warpy拡張機能で非線形な位置合わせ
🖥️ 形状変換したImageServerの新規構築 【TransformedServerBuilder】
🖥️ Object領域だけにCropした新規画像をProjectに登録【TransformedServerBuilder】
🖥️ チャンネル操作したImageServerを新規構築【TransformedServerBuilder】
🔬 ImageJ -マウス操作-
🔬 スクリプト内でImageJを使う
🔬 ImageJ Roi ⇄ QuPath ROI ⇄ PathObject
🔬 ImageJマクロ
🔬 ImageJで白黒マスク画像を開いて計測
🔬 バイナリマスク画像からQuPathのObjectを作成
🔬 ラベル画像からQuPathのObjectを作成
🖥️ ImageOpsで画像処理 チャンネル抽出/デコンボリューション
🖥️ ImageOpsで画像処理 数値演算/正規化
🖥️ ImageOpsで画像処理 画像フィルタ
🖥️ ImageOpsで画像処理 二値化
🛣️ スクリプト内でピクセル分類条件を作成
🧿 細胞検出の拡張機能 【Cellpose】
🧿 Cellposeで物体検出モデルを作成1
🧿 Cellposeで物体検出モデルを作成2
🧿 Cellposeをカラーデコンボリューションした画像に使う1
🧿 Cellposeをカラーデコンボリューションした画像に使う2
🧿 Cellposeでスライド丸ごと予測
🧿 Cellpose カラー画像のモデル作成 実践編
🧿 Cellpose Topologyエラー対策
🧿 機械学習を用いた細胞分類
🛣️ 機械学習でピクセル分類
🌫️ Density map
🌫️🦣 Density mapの書き出し
⚪ QuPathからPythonを動かす 【Pythonの導入】
⚪ QuPathからPythonを動かす 【ProcessBuilder】
⚪ OpenCV-Pythonで位置合わせ1 - Pythonで処理の流れを確認 -
⚪ OpenCV-Pythonで位置合わせ2 - QuPathから実行 -
⚪ SimpleITKで非線形な位置合わせ1 - Pythonで流れを確認 -
⚪ SimpleITKで非線形な位置合わせ2 - QuPathから実行 -
🛣️🧿 Segment anything model 拡張機能【SAM】
ご購入頂いた方へ
- 公開
- 本文更新
- NEW
- 文章量
- 約733,195字
- 価格
- 1,000円