QuPathスクリプトを使ってバーチャルスライドの画像解析2
QuPathにはメニュー画面には無い隠れた機能が豊富に存在する。それらを操るにはGroovy言語によるscriptingが必要となる。 QuPath scriptingに馴染むことができれば、一連の解析パイプラインを作成し、それを複数データに一括でバッチ処理することが可能になる。それ以上に、機能のカスタムやImageJとの連携、拡張機能など解析の自由度が格段に増すことになる。 かく言う私もQuPathを使うためにGroovyを使い始めた。QuPath自体はJavaで書かれているためQuPathのコマンドを解説する上でJavaの説明も伴うが、私自身Javaは初心者である。しかし特に理解せずともスクリプトは書ける。 本書では、開発者のPete BankheadがYoutubeで紹介している内容や、公式ドキュメント、image.sc等での議論を基に私が作成したスクリプトや解析例を紹介する。非常に多機能なQuPathの全てを網羅する必要はない。章の順番も気にせず自身の解析に必要そうな章だけを読んでいただければよい。 本書ではQuPathスクリプトを使ったより発展的な処理、解析を中心に紹介する。 基幹部分は「QuPathスクリプトを使って画像解析1」を参照してほしい。 https://zenn.dev/rchiji/books/0025385037d794 --------- ※ 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を使い分けるのが良いかと思います。 240910 本を分けていましたが、行ったり来たりで読みづらいのでスクリプトを扱う章は全てこちらにまとめ直しました。複数章を1つにまとめて章の数を減らしています。索引ページをご参照ください。
索引ページ
🖥️ Groovy言語入門
🖥️ QuPathスクリプト入門
🖥️ Javadocの読み方
🖥️ QuPathに登録した画像の情報ファイル
🖥️ 主要なクラス
🛣️ 解析対象エリアの作成 - Region*アノテーションの作成-
🧿 スクリプトから細胞検出
🫏 Objectの基本クラス ~ PathObject / PathClass / PathObjectHierarchy ~
🫏 Object操作 ~ リスト取得/フィルタリング/選択/削除 ~
🫏 Objectの形状計測、輝度計測
🫏 Objectの計測データの確認、追加、削除
🫏 Objectの計測データを書き出す
🫏 ObjectのExport, Import
🐍 ROI操作 ~ ROIの取得、ROIの作成、PathObjectへ変換 ~
🧿 細胞検出の拡張機能 【StarDist】
🧿 細胞のフィルタリング
🛣️ スクリプト内でピクセル分類条件を作成
🧿 機械学習を用いた細胞分類
🛣️ 機械学習でピクセル分類
🛣️ Superpixelを使用したピクセル分類
🌫️ 周囲の解析 ~ ドロネー図を用いた近傍細胞解析 ~
🌫️ DelaunayTriangulationでドロネー三角形分割
🌫️ DelaunayToolsでドロネー三角形分割
🌫️ Density map
🍪 細胞の教師無しクラスタリング(K-Means/DBSCAN)
🍪 細胞コミュニティをKMeansクラスタリング
🔬 ImageJ -マウス操作-
🔬 スクリプト内でImageJを使う
🔬 ImageJ Roi ⇄ QuPath ROI ⇄ PathObject
🔬 ImageJマクロ
🔬 ImageJで白黒マスク画像を開いて計測
🐍 RoiToolsでROI演算
🐍 ROI演算の応用例 - 周囲の解析 -
🐍 ROI演算の応用例 - 層の解析 -
🐍 ROI演算の応用例 - 層の解析2 -
🐍 ROI演算の応用例 - 層の解析3 -
🐍 ROI演算を用いたObjectの削除ツール(選択ツール)
🐍 Objectの厚みを自動計測
🐍🧿 タイルの重複領域に作られた細胞の処理
🐍🌫️ 細胞の角度計算 + 組織の配向
🐍🔬 Objectの厚みを自動計測2 ImageJ Skeletonize版
🦣 画像全体の書き出し
🦣 Objectのバイナリマスク画像を書き出し
🦣 Objectのラベル画像を書き出し
🦣 画像の一部領域を書き出し
🦣 タイル画像の書き出し
🦣 サムネイル画像の書き出し
🔬 バイナリマスク画像からQuPathのObjectを作成 [ImageJ版]
🔬 ラベル画像からQuPathのObjectを作成 [ImageJ版]
🫏 マスク/ラベル画像からObject復元 [ContourTracing版]
OMERO extensionでWebから画像をImport
🖥️ Projectに対する操作1 - 情報取得 -
🖥️ Projectに対する操作2 - 画像の追加/削除 -
🖥️ Metadata
🖥️ Projectに対する操作3 - Entryの並び替え -
🫏 Objectを他の画像に転送する
🛣️🫏 ピクセル分類とObject転送の応用例 ~ Scratch assay ~
🪸 アフィン変換とは
🪸 2枚の画像の位置合わせ拡張機能 【Interactive image alignment】
🪸 Objectをアフィン変換して別の画像へ転送する
🪸 アフィン変換で2つの画像の位置合わせ - 行列算出をスクリプト内で行う -
🪸 2つの画像の位置合わせ - スクリプト内でバッチ処理 -
🪸 ホモグラフィ変換で2つの画像の位置合わせ
🪸 対応点から変換行列を求める
🪸 Warpy拡張機能で非線形な位置合わせ
🖥️ 形状変換したImageServerの新規構築 【TransformedServerBuilder】
🖥️ Object領域だけにCropした新規画像をProjectに登録【TransformedServerBuilder】
🖥️ チャンネル操作したImageServerを新規構築【TransformedServerBuilder】
🖥️ ImageOpsで画像処理 チャンネル抽出/デコンボリューション
🖥️ ImageOpsで画像処理 数値演算/正規化/画像フィルタ/二値化
🧿 細胞検出の拡張機能 【Cellpose】
🧿 Cellposeで物体検出モデルを作成1
🧿 Cellposeで物体検出モデルを作成2
🧿 Cellposeをカラーデコンボリューションした画像に使う
🧿 Cellposeでスライド丸ごと予測
🧿 Cellpose カラー画像のモデル作成 実践編
🛣️🧿 Segment anything model 拡張機能【SAM】
⚪ QuPathからPythonを動かす 【ProcessBuilder】
⚪ OpenCV-Pythonで位置合わせ1 - Pythonで処理の流れを確認 -
⚪ OpenCV-Pythonで位置合わせ2 - QuPathから実行 -
⚪ SimpleITKで非線形な位置合わせ1 - Pythonで流れを確認 -
⚪ SimpleITKで非線形な位置合わせ2 - QuPathから実行 -
⚪ ObjectのGeoJsonファイルをPythonで扱う
🖥️ ツールバーにカスタムアイコンを作る
ご購入頂いた方へ
- 公開
- 本文更新
- NEW
- 文章量
- 約978,346字
- 価格
- 1,000円