2014年2月27日木曜日

浜松ホトニクスのHC Imageのスケジューラ機能を使ってみた

基本的な理解が2点ある。

一点目。
蛍光イメージングをするんだけれども、励起光を照射してシグナルを得るわけ。
この励起光というのは細胞にとって毒性があるし、長いこと照射していると得られるシグナルが弱くなってしまいます (退色)。だからあんまり長いこと励起光を照射したくないわけです。

二点目。
得られるシグナルというのはノイズに比べて微弱なことが多い。そのため、加算平均 (アンサンブル平均)を行って、シグナルのみを増強し、ノイズレベルを落とす必要がある。
大前提として、脳は同じ入力に対してはほぼ同様に出力すると考えている。だから、50回とか同じ刺激を行ってそれを全部足し算して平均を出せば、刺激に対する平均的な応答が得られると考えて良いわけ。

50回とか連続して記録する必要があるのだけど、しかしながら、その間ずっと励起光を照射していると光毒性や退色によって均質なデータが得られないという問題が生じるわけです。

しかも一回刺激をしたら、定常状態に戻るまで待つ必要があるわけです。この間励起光の照射は必要ないわけです。

そこで前回 (浜松ホトニクスの新しいイメージングソフト (HC Image)をインストールしてみたの巻)で導入したように、光源のオン・オフをソフト上で外部刺激装置によって制御できるようにする必要があったわけです。

ここで、やろうと思っている刺激と記録と照射のタイミングは、文章にするとだいたい以下の通り。

(1) トリガ待ち (2) 光源ON (3) 記録始まる (刺激前、刺激中、刺激後) (4) 記録終わる (5) 光源オフ (6) 待つ →  (1)に戻る

これを50回繰り返せば良い。
この内、光源ON/OFFと記録開始のトリガによる制御は前回導入した通り、有償版のHC Imageによって達成できたわけです。

問題は 「(1)に戻る」の部分で、記録が一回終わったらもう一回トリガ待ちの状態に戻って欲しいわけ。そこで、浜松ホトニクスの有償版 HC Imageに搭載されている「スケジューラ機能」が必要となるわけです。


使い方は簡単でUse Schedularにチェックを入れると下記画像みたいになるので、Loop回数を決めて、一回のループ内容を決めれば良いのです。システム上、記録開始と光源のオン・オフが同期するということなので、一回目のパルスで光源オンと記録を行い、二回目のパルスで光源のオフを行います。どちらもタスクが終わるとトリガ待ちの状態に勝手になるので、あとは外部装置の設定で、記録終了後に2発目のパルスを即座に入れてやると光源が切れます。

Scan settingsの方は、ループのファイルをHC Image専用の.CXDファイルとして保存するか、.TIFF画像で保存するか、それをループ全体を一つのファイルとするか、ループごとにファイルを分けるか、という選択ができます。

それぞれのタスクごとに、ローカルディスクに保存するか、メモリに一旦格納してから終了後にディスクに書き込むかという選択ができます (右図)。

私の目論見では、一回のループでメモリに情報を蓄えて、次のループの待ち時間にメモリをディスクに保存してメモリを解放して欲しかったのですが、現状は、ループが全部終わるまでメモリを解放してくれません。
かと言って、いちいちローカルに保存しているとフレームレートが処理落ちします。まじ最悪です。

この点は浜松ホトニクスに改善を要求したいです!

うちのPCでは512x512画像は11714フレームまでしかメモリに格納しておけないわけです。本当は100fpsで高速にイメージングしたいのだが、この問題のためにフレームレートを下げるしかない。
仕方ない。

というわけで、30fpsで20秒間、16回ループをして全部で9600フレームの512x512画像が取得できました。

さて、加算平均するためには、刺激のオンセットが合ってないといけませんね。
そこで、テストとしてLEDを一回フラッシュさせる刺激を上記のループで16回イメージングしてみました。その結果が右画像なわけですが、キレイにオンセット合ってますね。
これでオートマティックに加算平均を行うことができます。


今回私は、記録と露光のON/OFFのループをソフトウエアを介して市販の外部トリガ装置を使って制御する装置を構築しました。
この機能はかなり便利で、原理上は僕の先輩がやっているように、24時間毎に1時間だけ露光して記録してというのを1週間行う、ということも可能なわけです (まぁそのためには外部トリガ装置をLabViewで組む必要があるけど、きっと数時間で出来ると思う)。

うちの大学の研究室なら前回と今回の内容で卒論になるね!笑