t_kahi’s blog

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

【CellProfiler】CorrectIlluminationモジュールで画像データの照度補正を行う

こんにちは,@PKです.
今日は,CellProfilerのCorrectIlluminationモジュールで画像データの照度補正について紹介します.   

はじめに

今回は照度の補正に関するモジュールについて,簡単に紹介します.

https://cellprofiler.org/examples/の「Illumination Correction」と,そのTutorialを参考にしているので詳しく知りたい方はそちらを読んでください.

Example correct illuminationのサンプル画像の例を以下に示しています.
f:id:t_kahi:20200124185317p:plain 上図のように,画像内でバックグラウンドの照度に差がある場合があります.

Illumination Correctionのサンプル画像データ(以下画像データセット)を使用しています.
BBBC016v1 provided by Ilya Ravkin, available from the Broad Bioimage Benchmark Collection Ljosa et al., Nature Methods, 2012

照度を補正することは,セグメンテーションや,特徴量抽出を正確に行うために非常に重要となります.
CellProfilerでは.「CorrectIlluminationCalculate」「CorrectIlluminationApply」モジュールを使って,照度補正を行います.

「Correct Illumination‐Calculate」はillumination functionという画像データの照度のパターンを示す画像を作成します.
イメージングや染色条件が異なる場合にはその都度用意したほうが良いそうです.

実際に,照度補正の例を示します.
f:id:t_kahi:20200124181523p:plain

左が補正前の画像で,左上と左下が少し暗く見えます.真ん中が作成した「illumination function」です.照度補正を行うフィルターの画像です.
この補正を適応した結果が右図で,全体的に輝度が均一になっています.

illumination functionの作成方法

illumination functionを作るWorkflowは2種類にわけられ,用途によって使い分けます.

  1. 独立したPipelineでillumination functionの作成・保存を行った後に,異なる解析用のPipelineでillumination functionを適用する
  2. 同じPipeline内でillumination functionの作成・適用を行う

High-Throughputな実験で100枚以上の画像に同じillumination functionを適用する場合は,1のほうが適しています.作成したillumination functionをチェックすることでどの程度バックグラウンドの照度が変化しているかを調べることができます.
それぞれの画像ごとに,異なるillumination functionを適用する必要がある場合は2を選ぶのが良いそうです.

CorrectIlluminationモジュールの紹介

Example Illumination Correctionの「ExampleIlluminationCorrection_Example1_AllMethod」「ExampleIlluminationCorrection_Example1_EachMethod」のPipelineの内容について,メインの設定部分だけ紹介します.

「CorrectIlluminationCalculate」の設定画面

下記に「CorrectIlluminationCalculate」の設定画面を示しています.
f:id:t_kahi:20200125134546p:plain

主に重要となるのは,青い吹き出しでコメントしてある部分です. 以下に簡単な説明を示します.

  • Select how the illumination function is calculated

    • Regular :
      • オブジェクトが画像に全体的に存在しているケースで使用する
    • Background :
      • バックグラウンドとオブジェクトが同じ照度パターンを示すときに使用
  • Rescale the illumination function?

    • Yes : Regularを選択した場合
    • No : Backgroundを選択した場合
  • Calculation function for each image individually, or based on all images?

    • Each : それぞれの画像ごとにillumination functionを作成する
    • All:First cycle : 次のモジュールに進む前にすべての画像データからillumination functionを作成する
      • ここで作成したillumination functionを次の「CorrectIlluminationApply」モジュールに適応できる
      • フラグを立てた画像を除く(Filter out)などは使えない
    • All:Across Cycles : 各グループごとにillumination functionを作成する
      • 「FlagImage」モジュールなどで特定の画像を解析から除きたいときに有用
  • Smoothing method

    • No Smoothing : Smoothing無し
    • Fit Polynomial : 早いが正確性が低い
    • Median & Gaussian filter : CellProfiler推奨のフィルター.外れ値の影響を受けにくい.
    • Smooth to average : あまり一般的では無い.画像全体を平均化する
    • Splines
    • Convex Hull

(Median & Gaussian filter を選択した場合…)

  • Method to calculate smoothing filter size
    • Automatic : 画像の1/40か30 pixelsの小さい方が選択
    • Object size : オブジェクトにあわせる
    • Manually : 数値を入力

「CorrectIlluminationApply」の設定画面

続いて,「CorrectIlluminationCalculate」で作成したillumination functionを適用するApplyモジュールの設定画面を以下に示します.
f:id:t_kahi:20200125134506p:plain

こちらの設定では,適用したい画像と,作成したいillumination function画像を選択します. 以下は,Calculateモジュールの設定に依存します

  • Select how the illumination function is applied
    • Divide : Regularを選択した場合,S/Bが高い場合
    • Subtract : Backgroundを選択した場合

実際の適用例

今回は,いくつか異なる手法で画像データの照度補正を行った場合の結果を示します.
前提として,High-Throuputな実験で,画像全体に細胞(オブジェクト)があるので,illumination functionは「Regular」で計算をしています.

Regular + Each + Median Filterを使用した場合
f:id:t_kahi:20200125135440p:plain
f:id:t_kahi:20200125135720p:plain

Filterの値も小さく,画像ごとに補正をかけてしまうので,個々の細胞の影響を受けてしまっており,目的には合っていないようです.

Regular + All:First cycle + Median Filterを使用した場合
f:id:t_kahi:20200125141347p:plain f:id:t_kahi:20200125141205p:plain

画像セット全体で補正をかけているので,より全体的な照度の違いを反映していますが,Median Filterの値が小さいために,細胞の影響を受け真ん中の照度に影響がでてしまっています.

Regular + All:First cycle + Median Filter(large smoothing filter size)を使用した場合
f:id:t_kahi:20200125141607p:plain f:id:t_kahi:20200125142106p:plain

今回のようなある程度データが多い場合は,データセットを使って,illumination functionを作成したほうが照度補正がうまくできていますね. また,Smoothing sizeを大きくすることで,細部に影響を受けない,画像全体の照度補正ができていると感じます.

最後に

照度補正は重要な画像解析のステップですが,個人的に意味を理解しにくかったのでExample Piplineが非常に勉強になりました.