👻

[Groovy][QuPath] 章2 QuPath入門1 ~project作成, annotation操作~

2023/03/14に公開約8,000字

※ 画像解析ソフトQuPathに関する本を執筆中。完成した章から公開していく。

まずはQuPathソフトウェアの初歩的な使用方法を紹介する。
これらはYouTubeや公式ドキュメントで十分に紹介されているので、本書に必要な工程にのみ触れる。

デモデータ

OpenSlideのTest Dataのリンクから各社スライドスキャナーのデータが取得可能である。本書ではこのうちの幾つかを例として使用する。
https://openslide.org/
https://openslide.cs.cmu.edu/download/openslide-testdata/

画像を開く

QuPathソフトウェア上部メニュー File > Open で画像を開くことができる。

File > Openから画像を開く 開いた画面。image typeは合うものを選択

もしくはQuPathの画面に画像をドラッグすることでも開くことができる。

きちんと画像読み込みができていれば、左側Imageタブで解像度等の情報も確認できる。

解像度情報が失われている場合は、Pixel widthのValueのセルをダブルクリックすることで直接変更することも可能。

QuPath projectの作成

上記の方法は画像を手軽に確認するためには使用するが、複数の画像を解析するには不向きである。
QuPathでは複数の画像を1つのprojectとして管理することができる。
左上にあるCreate projectを選択し、次に開くウィンドウから空のフォルダを選択することでprojectの環境が構築される。

projectフォルダにはproject.qpprojというファイルが作られるので、次回以降はOpen projectからこのファイルを選択すると前回のprojectの状態が再開できる。

projectに画像を登録

Step by step

Add imagesを選択すると、画像インポート用のウィンドウが立ち上がる。

Image pathsの欄に画像ファイルをドラッグ&ドロップするか、Choose filesでエクスプローラーから画像ファイルを選択する。

もし一度にimportする画像の染色方法が同じであればSet image typeのメニューから一律に設定できる。この時に未設定の場合は、各画像を開くたびにimage typeの設定画面が開く。

画像を新規に開くたびにSet image typeを聞かれるのが煩わしい場合は、Don't set the image typeAlways auto-estimate typeに変更しておくとよい。

Image typeを変更する際にはImageタブのImage typeの右セルをダブルクリックすると変更可能である。



QuPath projectでは画像ファイルへのパスを使用するだけであり、インポートした画像がprojectフォルダ内にコピーされる訳では無い。
よって画像ファイルの移動等があるとQuPathでは開けなくなる。
その場合は、projectを開く際にUpdate URIsウィンドウが立ち上がるので、赤字の箇所をダブルクリックしてファイルパスを指定し直す。

color deconvolution

明視野画像ではcolor deconvolutionにより、RGB値からヘマトキシリン色、エオジン色のように色を分解することができる。
QuPathの中でヘマトキシリン色、エオジン色、DAB色に対するデフォルト値があり、Set image typeではどのpresetを使用するか決めるだけである。

QuPathではRGB値以外にこの分解色を定量化できるため、ヘマトキシリン色の輝度やDAB色の輝度を数値化することができる。

実際は染色の色合いは試薬や手技によって変わってくるので、自身の染色性にあったcolor deconvolutionを実施する方が理想的である。
HE, H-DAB以外の明視野染色画像の場合は、Image typeをBrightfield Otherに設定し、自身でcolor deconvolutionをしなければならない。

Analyze > Preprocessing > Estimate stain vectorsから各分解色がどのような色ベクトルで構成されるのか編集することもできる。

しかし、上記のやり方はわかり辛い。簡単にやるには、分解したい色を持つ箇所に四角いROIを作成した状態で、Stain 1/2の右セルをダブルクリックするとよい。


ヘマトキシリン色の設定例

  1. ヘマトキシリン色の箇所に四角いROIを作成
  2. Stain 1の右セルをダブルクリックし、Color deconvolution stainsのウィンドウをOK
  3. Set stain vectorのウィンドウをOK



このHEの例では以下の流れでcolor deconvolutionを行った。

  1. ヘマトキシリン陽性の核に四角いROIを配置し、Stain 1のHematoxylin: の箇所をダブルクリック。Set stain vector from ROIをYes。Set stain vectorをOK。
  2. エオジン色の箇所に四角いROIを配置し、Stain 2のEosin: の箇所をダブルクリック。Set stain vector from ROIをYes。Set stain vectorをOK
  3. 背景に四角いROIを配置し、BackgroundのValueの箇所をダブルクリック。Set backgroundをOK。

Color deconvolution結果の確認

View > Show channel viewerから各色が十分に分離できているか確認できる。
下に示すようにデフォルトの設定色ではヘマトキシリン陽性の箇所もエオジン陽性になっているが、自身でcolor deconvolutionするとヘマトキシリンとエオジンの分離能が改善されていることがわかる。

default 自身で設定

Annotation

画像解析では特定の領域 (ROI: region of interest)に絞って解析を進めることが多い。
QuPathではAnnotationという名前でROIを扱う。
またObjectという名前で扱われることもある。(厳密に言うと、Objectという括りの中に、Annotation/Cell/Detection/Tile/TMAなどの分類がある。)

Annotationの作成

左上にあるアイコン一覧から適したものを選択し、画像上でドラッグすることAnnotationが作成できる。


四角いAnnotationの作成例

Annotationの内部にAnnotationを作ることもできる。


丸いAnnotationの中に丸いAnnotationを作成

※ Shift + FでAnnotationを塗りつぶししている。View > Fill annotationでも変更可能

Annotation作成toolを幾つか紹介する

Polygon tool

頂点をクリックで決めていき、最後はダブルクリックで閉じる。

頂点はあとで調整も可能。

Wand tool

画像中でドラッグするだけで輝度の差をもとに細かな輪郭のAnnotationを作ることができる。初めて使うと感動するであろう。

輝度の差は表示中の倍率も関係しているので、より細かく行いたければ拡大して行う。

Brush tool

決まった太さのブラシでなぞってAnnotationを作ることができる。
Wand toolは細かい輝度差に囚われすぎて扱い辛い時もあるので、Brush toolも頻繁に使用する。

下の例では組織の輪郭を大まかに括った後、Objects > Annotations > Fill holesで内部を埋めている。

ちなみにBrush sizeはEdit > Preference > Drawing tools > Brush diameterから変更可能である。

Altキーを押しながらBrush/Wand toolで消しゴムツールに

Brush toolかWand toolではAltキーを押している間は消しゴムツールのように使用することができる。
選択中のAnnotationをAnnotationの外からなぞって削ることもできるし、内側からなぞると空洞を作ることもできる。

ショートカットキー

各Annotation作成ツールにはショートカットキーが割り当てられているので簡単に切り替えられる。

Annotation作成ツール選択時は、視野を変えようとして画像上でドラッグするとAnnotationが作成されてしまう。キーボードからMを押してMoveモードに切り替えるのに慣れると楽である。

ちなみに、Edit > Preferences > Return to Move Tool automaticallyにチェックがついていればAnnotationを作成するたびにMoveモードに戻るようになっている。もし連続してAnnotationを作成するときにはこの設定をoffにするとよい。

選択 移動 編集

Annotationは内部の箇所でダブルクリックすると選択状態になる。非選択状態が赤線、選択状態が黄色線で示される。

主な操作方法を以下に記す。

  • 複数選択: Ctrを押しながら違うAnnotationをクリック
  • 移動: Annotationを選択状態のままドラッグ
  • 削除: Annotationを選択状態にして右クリック > Delete objectかDeleteキー
    上部メニューからObjects > Delete > Delete selected objectsでも可能。
  • 形状編集: 選択状態のAnnotationの頂点をドラッグ

ちなみにAnnotationを選択状態にして右クリック > Annotations > Lockとすると、編集不可にでき、誤った操作を防ぐことができる。

Annotationのoverlap

Edit > Preferenceで細かな設定が変更可能である。設定項目が多いので、検索ウィンドウでヒットしそうなキーワードを打つと良い。

Clip ROIs to hierarchyにチェックを入れると、Annotation同士の重なりを制限するモードになる。

Clip ROIs to hierarchyにチェック無し


既に存在するAnnotationに重なるように新たなAnnotationを作成することが可能である。

Clip ROIs to hierarchyにチェックあり


既に存在するAnnotationに重なるように新たなAnnotationを作成しても新規Annotationの方がトリミングされてAnnotation同士が重ならないようになる。
Brush toolなども同様である。

ただしAnnotationの内部にAnnotationを作成することは可能である。
AnnotationにはHierarchyという階層構造を取ることができ、Annotation内部にある構造や細胞のAnnotation (Object)がどのAnnotationに属するのか整理することができる。

HierarchyタブからAnnotationの上下関係が確認できる

しかし、2つのAnnotationが一部重なっている場合はどちらが上の階層なのか定義できなくなる。
Clip ROIs to hierarchyにチェックを入れておけば、2つのアノテーションが独立なのか包含関係なのかをはっきりとさせることができる。
基本的にはチェックを入れて作業しておくとよい。

class

各Annotationにclassという情報をつけることができる。

以下のどちらかでAnnotationのclass設定を行う。

  1. 作成済みのAnnotationを選択して、右クリック > Set class からclassを選択する。
  2. 左ウィンドウのAuto setをONにした状態で、class一覧からclassを選択し、Annotationを作成する。

デフォルトでTumorやStromaなどのclassが用意されているが、追加/削除も可能。

各Annotationにclass情報が設定できていれば、特定のclassのみに解析を行うことが可能となる。本書でも高頻度に出てくるので、使いこなして欲しい。

Discussion

ログインするとコメントできます