[Groovy][QuPath] 章2 QuPath入門1 ~project作成, annotation操作~
※ 画像解析ソフトQuPathに関する本を執筆中。完成した章から公開していく。
まずはQuPathソフトウェアの初歩的な使用方法を紹介する。
これらはYouTubeや公式ドキュメントで十分に紹介されているので、本書に必要な工程にのみ触れる。
デモデータ
OpenSlideのTest Dataのリンクから各社スライドスキャナーのデータが取得可能である。本書ではこのうちの幾つかを例として使用する。
画像を開く
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 type
かAlways 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の右セルをダブルクリックするとよい。
ヘマトキシリン色の設定例
- ヘマトキシリン色の箇所に四角いROIを作成
- Stain 1の右セルをダブルクリックし、Color deconvolution stainsのウィンドウをOK
- Set stain vectorのウィンドウをOK
このHEの例では以下の流れでcolor deconvolutionを行った。
- ヘマトキシリン陽性の核に四角いROIを配置し、Stain 1のHematoxylin: の箇所をダブルクリック。Set stain vector from ROIをYes。Set stain vectorをOK。
- エオジン色の箇所に四角いROIを配置し、Stain 2のEosin: の箇所をダブルクリック。Set stain vector from ROIをYes。Set stain vectorをOK
- 背景に四角い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設定を行う。
- 作成済みのAnnotationを選択して、右クリック >
Set class
からclassを選択する。
- 左ウィンドウの
Auto set
をONにした状態で、class一覧からclassを選択し、Annotationを作成する。
デフォルトでTumorやStromaなどのclassが用意されているが、追加/削除も可能。
各Annotationにclass情報が設定できていれば、特定のclassのみに解析を行うことが可能となる。本書でも高頻度に出てくるので、使いこなして欲しい。
Discussion