2021年2月14日日曜日

医学研究者がPythonで動く顕微鏡を作ろうとする話(2):DAQの話

 
今日はDAQカードについての情報をまとめます。


DAQ = data acquisition


"Data acquisition is the process of sampling signals that measure real world physical conditions and converting the resulting samples into digital numeric values that can be manipulated by a computer. "


機器類 ⇄ アナログ信号 ⇄ DAQカード ⇄ デジタル信号 ⇄ PC
ここで Analogue/Digital or Digital/Analogue変換を行なっているのがDAQカード


ここのチュートリアルサイト
がよくまとまっているので、ポイントを抜粋。

●アナログ入力
・デファレンシャル(2つの入力ライン間での電圧を計測
または
・シングルエンド(AD変換器個々の入力チャンネルに加わる電圧と変換器のグランド(接地)間の電圧を計測
での2つの入力方法がある

解像度(bit depth)、線形性に注意

●入力アンプの組み合わせ、低い入力レベルでのノイズに注意

●サンプリング周波数→スループットに影響

●アナログ出力
デジタルデータがあらわす値から参照電圧(ground=0Vから、または2極間電圧)を用いて出力

●デジタル出力
ひとつのデジタル出力レベルは、直流の出力電圧を出力、ステップ波形を形成

●データ転送方法
転送に占有(Pallモード)、PCの他プロセスの割り込み許可(interruptモード)、メモリとの直接やりとり(DMA: direct memory access)


で、このDAQカードをどこで使うかというと、例えばdaoSPIMの場合は

"The microscope is controlled via GUI program which links together:
  • camera (Hamamatsu Orca Flash4.3)
  • stage (ASI MS-2000)
  • light-sheet generator (based on NI PCIe-6321 DAQ board and arm switcher)
  • deformable mirror (ImagineOptics Mirao52e)
  • electro-tunable lens (Optotune EL-16-40-TC-VIS-5D-C)"
(以上、GitHubより引用)
とあるので、主にガルバノミラー周りの制御に必要らしい。


医学研究者がPythonで動く顕微鏡を作ろうとする話(1)


透明化組織を観察するためのライトシート顕微鏡(市販品じゃないやつ)を導入しようとしています。

最近は

by iflamery

とか、


by iflamery

とか、Pythonで顕微鏡の制御ソフトウェア書いているmicroscopistが少しずつ出てきている状況。


※GitHubでコードが公開されています

mesoSPIM

daoSPIM 


で、僕が導入中のOpen-top Light-sheet fluorescent microscopy (OTLS, developed by Dr. Adam Glaser @adam_k_glaser on twitter)Pythonで動かしてるらしく。

チュートリアルや教科書を探そうと思ってAdamに聞いたら、

"Hmm for Python hardware control, unfortunately not 😔 There are only a few of us microscopists moving in this direction and it is still quite new".

「Python使うのはナウいんで、ほとんどそういうのないんだよね(意訳)」


😩 OK状況はわかった。


プログラミング?ど素人に毛根がついた程度*です。

*より正確に書くと、ImageJのマクロ(数十〜500行くらい)を日常的に触って慣れている程度

Python? 2週間くらい前に初めてjupyter notebook触りました。

顕微鏡?横で作ってるのはみたことあります。


というレベルから、(本当に導入するのに成功するかはさておき)Pythonで動く顕微鏡を構築する人がやったことをログしてみます。



と聞いてみたら、株式会社オプトラインの技術情報を教えていただきました。

顕微鏡ステージをPythonで動かす例

顕微鏡cMOSカメラをPythonで動かす例


この辺りから勉強を始めてみます。