t_kahi’s blog

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

【CellProfiler】Example pipeline(Fruit fly cells)で画像解析の基礎を学ぶ③:共局在と特徴量の数値計算について

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

1日目と2日目の記事は下記になります.

【CellProfiler】Example pipeline(Fruit fly cells)で画像解析の基礎を学ぶ①:画像のトリミング - t_kahi’s blog

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

今回もFruit fly cellsというPipelineを例として取りあげ,Pipelineの概要を紹介していきます.
③では,共局在(Co-localization)モジュールと特徴量の数値計算モジュールに注目して紹介していきたいと思います.

前回の概要

前回と前々回の記事で画像の読み込み~隣接オブジェクトに関する特徴量抽出までを紹介しました.
まずは「MeasureColocalization」モジュールについて紹介したいと思います.

Pipelineの紹介

共局在について

共局在の定義は下記のとおりです.

Colocalization can be thought of as consisting of two components: co-occurrence, the simple spatial overlap of two probes, and correlation, in which two probes not only overlap with one another but codistribute in proportion to one another within and between structures.
A practical guide to evaluating colocalization in biological microscopy - PMC

共局在を評価するかは実はいくつかの手法が用意されています.
今回は「MeasureColocalization」モジュールについてのみ紹介しますが,共局在の解析は,思ったより奥が深いので,機会をみつけてCellProfilerの共局在のExample pipelineを紹介したいと思います.

「MeasureColocalization」モジュールについて

「MeasureColocalization」は、特定のオブジェクト内または画像全体で、共局在を測定するモジュールです.
ここでは,ピクセルごとにオブジェクト内の異なる画像データの強度間の共局在や相関を測定します.

設定条件

設定条件について以下に示します.

  • Select where to measure correlation
    • Within objects:設定したオブジェクトについて計算
    • Across entire image:画像内のすべてのピクセルを計算
    • Both:両方計算
  • Set threshold as percentage of maximum intensity for the images
    • 特定のしきい値を超えるピクセルについてのみ、共局在の測定をすることを選択できる
    • ただし詳細説明に「This value is used by the Overlap, Manders, and Rank Weighted Colocalization measurements. 」と記載があるようにこの数値はピアソン相関には適応されません(追記)
  • Select an image to measure
    • 相関/共局在を測定する画像を選択
  • Select an object to measure
    • 測定するオブジェクトを選択します
  • Run all metrics?
    • [Yes]を選択すると、CellProfilerのすべての相関アルゴリズムと共局在アルゴリズムが画像やオブジェクトで実行されます
    • それ以外の場合は、[No]を選択して、実行する相関および共局在アルゴリズムを選択します

今回の設定条件は下記のようになっております.

取得できる測定値について

続いて取得できる測定値に関する説明を下記に示します.
(細かい点は自分もこれから勉強しますのでご容赦ください…)

  • Correlation

  • Slope

    • 画像IとJのペア間の最小二乗回帰の勾配
    • (A:Slope) A × I + B = J
  • Overlap coefficient:ピアソンの相関係数を利用した計算

    • 画像RとGのペアの場合、Overlap coefficientの計算は以下の通り
    • r = sum(Ri * Gi) / sqrt (sum(RiRi)sum(Gi*Gi)).
  • Manders coefficient:Mandersの相関係数

    • 画像RとGのペアのManders coefficientは以下の通り
    • M1 = sum(Ri_coloc)/sum(Ri) and M2 = sum(Gi_coloc)/sum(Gi)
  • Manders coefficient (Costes Automated Threshold)

    • 相関に基づく各画像の強度最大しきい値を推定する
  • Rank Weighted Colocalization coefficient

    • 画像RとGのペアのRWC係数

テスト実行結果を以下に示します.
上記測定値がそれぞれ出力されています.

Overlap coefficientやManders coefficientなど様々なものが用意されていましたが,それぞれの利点や欠点はこちらのレビューにまとめてあるので,ぜひ参考にしてください.
A practical guide to evaluating colocalization in biological microscopy - PMC

この「MeasureColocalization」ではピクセルごとに共局在を解析しましたが,ピクセルではなく,それぞれのオブジェクトのエリアを使用したりなど,いくつかの手法が存在するようです.
自分の場合,AとBの共局在をラフに解析するときは,Aのオブジェクト(例えばミトコンドリア)について領域を認識し,そのA領域内に存在するB(Protein X)の蛍光強度を測定し,A領域内にどれくらいBが存在するかを定量した経験があります.

「MeasureColocalization」モジュール以降のpipelineについて

ここからは一気に最後の出力部分まで紹介したいと思います.

MeasureImageIntensity

この「MeasureImageIntensity」では,指定した画像の蛍光強度を測定することができます.
今回は,以下に示すようにCropBlueの画像を選択し,画像全体の蛍光強度を測定しています.

Objectsごとに指定をして蛍光強度を測定することもできます.

MeasureImageQuality

この「MeasureImageQuality」モジュールは画像の質に関する様々な情報を取得することができます.

詳細はこちらの記事を参考にしてください.
www.t-kahi.com

今回は,OrigBlue, OrigGreen, OrigRedのそれぞれの画像に対して,測定を行っています.
「Spatial scale for blur measurements」の項ではデフォルトの20を設定していました.
また,Use all threshold methodsをNoにしているので,しきい値の手法を選択します.ここでは,Otsuの2値化でしきい値を決めているようです.

CalculateMath

続いて,「CalculateMath」モジュールで計算を行います.

「CalculateMath」の使い方はこちらを参照してください.

「CalculateMath」は、モジュールで生成された測定値を取得し、基本的な計算を実行することができます.
計算は画像やオブジェクトごとに行うことができ,基本的な四則演算が可能となります.
また,計算した結果は、別の「CalculateMath」モジュールをpipelineに追加して更に計算をすることができます.

設定を以下に示します.

  • Name the output measurement
    • このモジュールによって計算された測定の名前を入れる
  • Operation
    • 四則演算の計算を指定する
  • Select the numerator measurement type
    • 画像測定かオブジェクト測定かを選択する
  • Select the numerator objects
    • 測定するオブジェクトを選択する
  • Multiply the above operand by
    • 上記のカテゴリーの数値に掛ける値を入力する
  • Raise the power of above operand by
    • 上記のカテゴリーの数値を何乗するか数値を入力する
  • Select the denominator measurement type
    • 分母の測定タイプ(画像測定,オブジェクト測定)を選択する
  • Select the denominator objects
    • 分母の測定するオブジェクトを選択する
  • Select the numerator measurement
    • 分母のカテゴリー(intensity, AreaShape, etc...)を選択します.

今回のCalculateMathモジュールの設定を以下に示します.

上図の通り,Operationは割り算を設定し,分子にCropBlueのNucleiオブジェクトの平均蛍光強度を,分母にNucleiのArea値を用意します.この操作によって,各核における,核面積に対する核内の平均蛍光強度の比を算出することができます.

ClassifyObjects

続いて,「ClassifyObjects」では選択した測定値に応じてオブジェクトを異なるクラスに分類します.
このモジュールは、測定値(サイズ、強度、形状など)に応じて、オブジェクトをいくつかの異なるビンに分類します.各クラスに分類されるオブジェクトの数と、各クラスに分類されるオブジェクトの割合をレポートします.

  • Make each classification decision on how many measurements?
    • 各オブジェクトの分類決定を行うために使用される測定の数を決める
    • Single measurement : 1つの測定値で分類する
    • Pair of measurements : 2つ以上の測定値で分類する
  • Select the object to be classified
    • 以前のモジュールで作成されたオブジェクトから分類するオブジェクトを選択する
  • Select the measurement to classify by
    • 以前のモジュールで行われた測定手法を選択します
  • Select bin spacing
    • ビンの間隔を決める(下記のオプションがある)
    • Evenly spaced bins:等間隔のビンを作成
    • Custom-defined bins:カスタム定義のビンを作成
    • Number of bins:作成するビンの数
  • Lower threshold
  • 1つの測定値と等間隔のビン作成を選択したときのみ使用可
  • 最低値のしきい値を入力する
  • Use a bin for objects below the threshold?
    • しきい値を下回る測定値のオブジェクトに対してビンを作成するか
  • Upper threshold
  • Use a bin for objects above the threshold?
    • しきい値を上回る測定値のオブジェクトに対してビンを作成するか

今回の設定は下図のようになっています.

NucleiのArea値に対して3つのビンを作成して,それぞれの数値をカテゴリー分けしていきます.
最低しきい値が300,最高しきい値が700で設定し,その中で3つのビンにわけます.
実行した結果を以下に示します.

それぞれのビンごとのカウント数や割合を計算することができました!

GrayToColor

「GrayToColor」モジュールはグレースケールの画像をカラー画像に変換することができます.
詳細は割愛しますが,グレースケール画像を入力として受け取り、赤、緑、青(RGB)画像またはシアン、マゼンタ、黄、黒(CMYK)画像の色に割り当てます.また,各色の明るさは相対的な重みつけを行って個別に調整できます.

設定画面と実行結果を以下に示します.

最後に

Example pipeline(Fruit fly cells)を使って共局在や数値データの計算など様々なことを学ぶことができました.
CellProfilerのようなフリーの画像解析ソフトを使うことができるようになると,自身の解析の幅も広がって,普段の業務も効率よくすすめることができるようになったと実感しています!
また,機会を見つけてCellProfilerの紹介をしたいと思いますので,よろしくお願いします!