0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ImageJ と cellpose を使って、細胞画像の輝度値を測定する。(5)

Last updated at Posted at 2022-04-25

※間違えて、一度記事を削除してしまったようですが、復元しました。

目的

顕微鏡撮影した細胞画像から、細胞膜領域と細胞質領域の範囲を選び、その平均輝度値を求めたい!

使用するアプリケーションは、以下の通りです。

  • Fiji (ImageJ)     
    -画像解析ソフト
  • anaconda               
    -Python を動かすところ
  • cellpose           
    -Python で書かれた細胞画像の分節化に特化した、deep-leaning に基づくアルゴリズム

上記アプリケーション(プラグインを含む)のインストールや、解析に必要なマクロを記録していきます。

最終回の今回は、cellpose での Segmentation の結果を用いて、細胞膜領域ならびに細胞質領域の平均輝度値の測定をします!

PC の環境

Windows 10

この記事の範囲

cellpose での Segmentation の結果を用いて、細胞膜領域ならびに細胞質領域の平均輝度値の測定を行う。

前準備( Fiji に、プラグインをインストールする)

前回の ImageJ と Cellpose を使って、細胞画像の輝度値を測定する。(4) の前準備に記載した、[imagej_roi_converter] と同様に、解析に必要なプラグインを ImageJ にインストールする必要があります。

それは、MorpholibJ というプラグインです。

このプラグインのインストールに関しては、ImageJ と Cellpose を使って、細胞画像の輝度値を測定する。(1) に記載しているので、そちらを参照ください。

細胞膜領域を選択し、その平均輝度値を求める

注意! 今回は、細胞の面積 (pixel^2) が、およそ10000程度の写真画像を解析することを念頭に、下記 Macro を組んでいます。それより小さい細胞画像を解析する場合は、適宜係数を変更させてください。

  1. 細胞輪郭を Segmentation した cellpose の結果を Fiji に反映させる。
    この方法は、 ImageJ と Cellpose を使って、細胞画像の輝度値を測定する。(4) に記載しています。
  2. 不要な ROI を左クリックで選択し、ROI Manager > Delete で消去します。このとき、1000 pixel^2 に満たないような小さな ROI は、一つ一つ消去しなくても大丈夫です。(後から一括して消去します)
  3. 細胞写真画像を active にして、以下の Macro を実行する。(IJ1 Macro で書いています)
    実行すると、途中でポップアップウインドウが現れて、パラメータを聞かれます。そこで、細胞膜の厚さ (pixel) を設定します。(デフォルトは、10 pixel)もっと細胞膜領域を太くする場合は、"15" とかそれ以上の数字を入力してください。
    Macro が終了すると、細胞膜領域を ROI とした ROI Manager と、細胞写真画像における ROI(細胞膜領域) の平均輝度値の測定結果が出力されます。
rename("Init_Image");
xlength = getWidth();
ylength = getHeight();
newImage("Cell", "8-bit black", xlength, ylength, 1);
run("Colors...", "foreground=white background=black selection=orange");
roiManager("Fill");
run("Colors...", "foreground=black background=black selection=orange");
roiManager("Draw");
Dialog.create("Parameters");
Dialog.addNumber("ErodeNum", 10,0,8,"pixels");
Dialog.show();
ErodeNum = Dialog.getNumber();
Erode = "operation=Erosion element=Disk radius=" + ErodeNum  ;
run("Morphological Filters", Erode); 
rename("Protoplasm");
imageCalculator("Subtract create", "Cell","Protoplasm");
selectWindow("Result of Cell");
rename("Cell_Membrane");
roiManager("deselect");
setOption("BlackBackground", true);
run("Analyze Particles...", "size=1000- display clear add composite");
selectWindow("Init_Image");
roiManager("Show All");
run("Set Measurements...", "mean redirect=None decimal=3");
roiManager("multi-measure measure_all");
close("\\Others");

以下、少しだけ解説します。
▼ 4 ~ 8 行目

newImage("Cell", "8-bit black", xlength, ylength, 1);
run("Colors...", "foreground=white background=black selection=orange");
roiManager("Fill");
run("Colors...", "foreground=black background=black selection=orange");
roiManager("Draw");

このコードでは、2. で調整した ROI から、細胞輪郭のマスク画像を作成しています。
▼ 9 ~ 13 行目

Dialog.create("Parameters");
Dialog.addNumber("ErodeNum", 10,0,8,"pixels");
Dialog.show();
ErodeNum = Dialog.getNumber();
Erode = "operation=Erosion element=Disk radius=" + ErodeNum  ;

このコードでは、細胞膜領域の太さ(厚さ?)を設定しています。
▼ 14 ~ 18 行目

run("Morphological Filters", Erode); 
rename("Protoplasm");
imageCalculator("Subtract create", "Cell","Protoplasm");
selectWindow("Result of Cell");
rename("Cell_Membrane");

このコードで、細胞輪郭のマスク画像から、細胞膜領域の太さ分の pixel だけ収縮(Erode)処理をして、細胞膜より内側の領域(Protoplasm 領域)のマスク画像を作成しています。
それから、"細胞輪郭のマスク画像" - "Protoplasm のマスク画像" を計算し、細胞膜領域のマスク画像を作成しています。
▼ 19 ~ 21 行目

roiManager("deselect");
setOption("BlackBackground", true);
run("Analyze Particles...", "size=1000- display clear add composite");

このコードでは、細胞膜領域のマスク画像の内、サイズ 1000 pixel^2 以上のものを、選択し ROI Manager に登録します。
注意! ここで、1000 pixel^2 未満の小さなサイズのマスク画像(おそらく、背景に紛れているチリなど)を除去しています。細胞画像の大きさに応じて、この除去するサイズを変更させてください。
その後のコードでは、作成した ROI Manager から細胞膜領域の平均輝度値を算出しています。
もし、 stack 画像で平均輝度値を測定する場合は、

roiManager("multi-measure measure_all");

を、

roiManager("multi-measure");

とした方が、測定結果が見やすいかもしれません。

細胞質領域を選択し、平均輝度値を求める場合

上記では、細胞輪郭の Segmentation 結果を用いて、細胞膜領域の ROI を作成し、その平均輝度値を求めました。
この方法を使うと、細胞輪郭の Segmentation の結果と、細胞核の Segmentation の結果を使って、

"細胞輪郭のマスク画像" ― "細胞核のマスク画像" = "細胞質のマスク画像"

と計算をすれば、細胞質領域の ROI を作成でき、その平均輝度値を求めることができます。

以上!

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?