ImageJを用いた呈色反応モデル画像の数値化〜自宅でできる簡単な研究(FR-1.3)

2023-08-20

個人研究のコンセプト

何かの役には立たないし、人から見たらどうでも良いことで自己満足の世界でありますが以下の構想のもと個人研究に取り組んでいます。

調べたいサンプルに試薬を混ぜて
 (1) 呈色反応
 (2) デジタル画像を取得
 (3) 画像処理と解析
を実施する事でサンプルに含まれる成分を定量的に評価をする。

画像処理と解析の方法
呈色反応のモデルとして、食紅溶液の希釈系列をマイクロプレートに作りました。作った希釈系列のマイクロプレートを下から光を当ててデジカメで撮影した画像を撮影しました。撮影した画像のデーターをImageJを使って数値化する方法について説明します。
Image Jは、科学研究における画像解析に広く利用されているフリーソフトで、前身のNIH Imageの頃からお世話になっている解析ソフトです。

食紅_MicroPlate

上の写真は、マイクロプレートの上から赤色102号、青色1号、黄色4号、緑(青色1号+黄色4号)、赤色102号+青色1号、赤色102号+黄色4号の順で、左から2倍希釈系列した物です。

一番上の列の「赤色102号」の画像の解析を行ってみます。

解析作業1-5

(1) ImageJ appを起動します。
(2) 食紅の希釈系列の画像を開きます。
(3) 「選択領域ツール」の「長方形選択ツール」で解析領域を選択します。
(4) Edit >> Copyメニューで解析領域をコピーします。
(5) File >> New >> Internal Clipboardメニューで解析領域をペーストします。

解析作業6-9

(6) クリップボードからペーストした画像です。
(7) Image >> Split Channelsを実行します。
(8) “red","green","blue"のチャンネルに色分解されます。
(9) Edit >> Invertで各チャンネルの画像を反転させます。

反転させることで、食紅が吸収した色の数値が大きくなります。

解析作業10-13

(10) “red"チャンネルを反転した画像です。
(11) この画像を Edit >> Selection >> Select Allで選択します。
(12) Analyze >> plot Profileを実行します。
(13) 解析結果がグラフに表示されます。
   Data >> Save Data (Values.csvとして保存される)
   または、List >> Save (Plot Values.csvとして保存される)を実行し、
   解析データーをCSVファイルに保存します。
   "red","green","blue"のチャンネルで実施します。

赤色102号_結果

赤色102号の結果を表計算ソフト(Numbersを使いました)を使い、グラフにすると上の様になりました。X軸は各ウェルの位置で、Y軸は輝度を反転した数値です。すなわち、吸収した色のチャンネルの値が高くなります。
赤色102号は、「観察される色(補色、余色)」が赤なので、「吸収される色」は青緑となり、青と緑チャンネルの数値が高くなりました。
“green"と"blue"のチャンネルのグラフが希釈されるにつれ数値が低くなり、期待した結果が得られました。

青色1号、黄色4号、緑(青色1号+黄色4号)、赤色102号+青色1号、赤色102号+黄色4号の結果は、下の様になりました。
青色1号は、「観察される色」が青なので、「吸収される色」は黄色(赤と緑チャンネル)が高くなりました。
黄色4号は、「観察される色」が黄なので、「吸収される色」は青色(青チャンネル)が高くなりました。
他の混色は、それぞれを対合わせた結果となりました。

食紅_結果

観察される色と吸収される色の関係は、「可視スペクトル/可視光の波長と色名の関係」(http://www2d.biglobe.ne.jp/~chem_env/i/vis00.html)を参考にしました。

これで最初に描いた構想通りに、調べたいサンプルの成分を呈色反応を利用して定量化することが出来そうです。
これらの作業は、ImageJのマクロでデータを出力し、その結果をPythonで解析処理をすると手間が省けます。

ImageJのマクロでデータを出力する方法を「呈色反応モデル画像の数値化をImageJのマクロで自動化」 で紹介しております。
また、ImageJで得られたデーターをPythonを使ってまとめる方法を「生成AIで作ったPythonプログラムで、数値化した画像の解析を自動化」で紹介しております。