t_kahi’s blog

KNIMEやCellProfiler、創薬に関する記事と,日々のメモです

【CellProfiler】Example pipeline(Fruit fly cells)で画像解析の基礎を学ぶ②:Neighborhoodに関する特徴量

こんにちは,@PKです.
こちらは,創薬アドベントカレンダー(Wet)2日目の記事です.
創薬 (wet) Advent Calendar 2019 - Adventar

1日目にはExample pipeline(Fruit fly cells)で画像解析の基礎を学ぶ①で使用する「Fruit fly cells Pipeline」の概要と,「Crop」モジュールについて紹介しました.
【CellProfiler】Example pipeline(Fruit fly cells)で画像解析の基礎を学ぶ①:画像のトリミング - t_kahi’s blog

High Content Analysisの画像解析ツールCellProfilerの使い方について紹介する第2弾ということで,今回もFruit fly cellsというPipelineを例として取りあげ,Pipelineの概要を紹介していきます.
②では,隣接オブジェクトの特徴量を抽出するモジュールに注目して紹介していきたいと思います.

前回の概要

前回の記事では画像の読み込み~Cropモジュールを使ったトリミングまでを紹介しました.
f:id:t_kahi:20190921091143p:plain

Cropモジュールの実行によって,DAPI,,FITC,Rhodaminそれぞれの画像を切り抜きことができました.
f:id:t_kahi:20190919114540p:plain

今回はIdentifyObjectモジュールによるオブジェクトの認識と,Neighborhood(隣接オブジェクト)に関する特徴量抽出までを紹介します.

pipelineの紹介

「IdentifyPrimayObjects」で核領域を認識

Cropによって切り出した画像に対して,「IdentifyPrimayObjects」で核領域を認識させます.
ここでは,Multi Otsu Thresholdで3つの閾値を用意して2番めの値をバックグラウンドにしています.
f:id:t_kahi:20190921091649p:plain

「IdentifyPrimayObjects」の詳細はこちらを参考にしてください.
【CellProfiler】Example pipelineで画像解析の基礎を学ぶ③ - t_kahi’s blog

モジュールの実行結果を以下に示します.
f:id:t_kahi:20190921092745p:plain
凝集しているような核の領域がかなり正確に認識できているようです.

「IdentifySecondaryObjects」で細胞を認識

続いて,細胞の領域を認識します.
先程指定した核オブジェクトを使って,CropGreen画像を基に細胞領域を指定します.
オブジェクト認識はOtsuの2値化を使っています.
f:id:t_kahi:20190921092912p:plain

「IdentifySecondaryObjects」の詳細は下記に記載しております.
【CellProfiler】Example pipelineで画像解析の基礎を学ぶ④ - t_kahi’s blog

実行結果を以下に示します.
細胞領域をきちんと認識できているようです.
f:id:t_kahi:20190921092928p:plain

「IdentifyTirtiaryObjects」で細胞を認識

続いて,核と細胞領域から,細胞質オブジェクトを設定します.
「IdentifyTirtiaryObjects」を使って,細胞領域から核領域を引いたものをCytoplasm(細胞質)と設定しています.
f:id:t_kahi:20190921093019p:plain
以下に示すように細胞質領域のオブジェクトを設定することができました.
f:id:t_kahi:20190921104147p:plain

ここまでで各オブジェクトの認識はできたので,必要な特徴量を測定・抽出していきます.

オブジェクトの蛍光強度・サイズ・テクスチャの測定

ここでは,下記モジュールを使って書くオブジェクトの蛍光強度や大きさ,テクスチャに関する特徴量を取得します.

  • MeasureObjectIntensity
  • MeasureObjectSizeShape
  • MeasureTexture

それぞれのモジュールの使い方は下記を参考にして下さい.
【CellProfiler】MeasureObjectIntensityで取得できる特徴量について - t_kahi’s blog
【CellProfiler】MeasureObjectSizeShapeで取得できる特徴量について - t_kahi’s blog
【CellProfiler】MeasureTextureモジュールについて - t_kahi’s blog

今回のPipelineでは以下のようなオブジェクト・画像データの特徴量を抽出していました.
f:id:t_kahi:20190921104436p:plain

「MeasureObjectNeighbors」で隣接するオブジェクトの測定

今回の記事のメインの部分です.
このモジュールを使って.指定したオブジェクトに隣接するオブジェクトに関する特徴量を測定していきます.

以下に「MeasureObjectNeighbors」の概要と設定の説明を示します.
Measurement — CellProfiler 3.0.0 documentation

「MeasureObjectNeighbors」は、各オブジェクトの隣接オブジェクト数を計算し、隣接オブジェクトに接しているエッジピクセルの割合といった、隣接オブジェクトに関する様々な特徴量を記録します。

  • Select objects to measure
    • 隣接オブジェクトを測定したいオブジェクトを選択
  • Select neighboring objects to measure
    • 測定した隣接オブジェクトを選択
  • Method to determine neighbors

    • 隣接オブジェクトの認識について
    • Adjacent:オブジェクトのピクセルが隣り合っているもの
    • Expand until adjacent:オブジェクト同士が隣接するまで境界を拡張する
    • Within a specified distance:指定したピクセル分オブジェクトを拡張する
  • Retain the image of objects colored by numbers of neighbors?

    • 各オブジェクトが,隣接オブジェクトの数で色分けされた画像を保持するか
  • Retain the image of objects colored by percent of touching pixels?
    • 各オブジェクトが,隣接オブジェクトと接するピクセルの割合で色分けされた画像を保持するか

設定画面とモジュールの実行結果を以下に示します.
f:id:t_kahi:20190921105357p:plain
f:id:t_kahi:20190921105710p:plain

抽出される特徴量を以下のとおりです.

  • NumberOfNeighbors
    • 隣接オブジェクトの数
  • PercentTouching
    • オブジェクトが指定された距離まで拡大された後、隣接するオブジェクトに接するオブジェクトの境界ピクセルの割合
    • ※オブジェクトと隣接オブジェクトの両方に同じオブジェクトセットを使用する場合にのみ利用可能
  • FirstClosestObjectNumber
    • 最も近いオブジェクトのインデックス
  • FirstClosestDistance
    • 最も近いオブジェクトまでの距離(ピクセル単位)
  • SecondClosestObjectNumber
    • 2番目に近いオブジェクトのインデックス
  • SecondClosestDistance
    • 2番目に近いオブジェクトまでの距離(ピクセル単位)
  • AngleBetweenNeighbors
    • 頂点としてのオブジェクトの中心と、ベクトルに沿った最初と2番目に近いオブジェクトの中心で形成される角度

おわりに

普段は特徴量抽出では蛍光強度や面積,テクスチャなど,ある程度一般的なものしか取得したことがなかったので,「MeasureObjectNeighbors」のような隣接オブジェクトの情報を取得できるモジュールがあることを知りませんでした.
これまで自身の解析に使用した事はありませんでしたが,細胞細胞コミュケーションなど,隣接しているオブジェクト間の情報が重要な場合には,このモジュールは有用なのではと思いました. 今後このモジュールが活用できる機会があればぜひ使ってみて紹介したいと思います!

次回は共局在のモジュールについて紹介します!