電顕で撮影した画像を次々処理したいということでツールを作ってみた
コンセプトは

基本webはdhtmlxを使ってるので大抵のブラウザで動くかと.
認証が必須でAD認証を使ってます. LDAPでも動くかもしれない.
relionからMotionCor2,Gctfを使ってるので nvidia カードを持つ計算ノードは必須.
(RelionMotioncorrとctffind4でも可能)
500MBなイメージを連続(1枚/1min)で出る環境なら1070を2枚は欲しいかな. っでないと自転車操業状態.
さらに同時に2Dを行うならもう一枚は欲しいかな.
PostgreSQL/mariadb/SQLiteらのデータベースは使ってません.
撮影終了後にrelionを開くと「Import」「Motion correction」「CTF estimetion」が完了となっている画面になります

スクリーンショット

全体像
2018y09m23d_123035552.png
撮影画像を右クリックしてメニュー操作すると
2018y08m23d_211939783.png
下記のような画面が表示されて、Gautomatch、RelionLoG、crYOLOらによる粒子のpickができる。
(各pickツールのパラメーターを調整しつつ粒子のpick具合を繰り返し確認できます)

noboader
パラメータを調整しながら何度でも条件検討が行えます。
使用するpickツールとそのパラメータが決まったら、いくつまで粒子を集めるかを指定します。
(190506更新)
2019y05m06d_010914390.png

指定した粒子数で2D Classificationが行われます。
また1万粒子毎とかで2D Classificationも行えます。
表現としてありかは微妙ですが、下記は横軸にclass、縦軸をiterとしてます。
(190506更新)
2019y05m06d_011528590.png
1万粒子毎とかでの表示切り替えは下記のようにプルダウンで行います
2019y05m06d_141114116.png

ctffind4,gctfの計算値からヒストグラムの表示も可能です
2018y09m23d_121818467.png

メモ

参考先
Leginon
Gwatch
Relion様

参照論文
「Automated data collection in single particle electron microscopy」
https://academic.oup.com/jmicro/article/65/1/43/2579697

既知の問題と今後

トリガー

web画面のボタンをポチッと押せば、それが全体のトリガーとなるのだが、より細かい内容を明記すると
「ポチッ」と押下した後、特定のフォルダを監視します。
ファイルが電顕から届いたら inotify-tools で「CLOSE_WRITE,CLOSE」を確認して、ジョブコントロール(PBSpro)へ処理を流します。
ですから、ファイルが届くたびにジョブが発行されるのですが、このジョブは「その届いたファイルを処理」するのではなく、
「未処理のファイルがあったら実行する」内容になっている(relionの「--only_do_unfinished」を活用)

初回は、届いたファイルのみを処理するであろうが、二回目のジョブはそれまで届いたファイルを処理します。

そうなると余分なジョブが発生してしまうが、それを抑えるために、ジョブ発行数は6本までとかに制限しています。

留意点
ジョブを発行するタイミングをinotify-toolsの「CLOSE_WRITE,CLOSE」に依存しているので、
電顕から届くファイルはLinuxファイルシステムに置く必要がある。

電顕から届くファイルがwindowsServerに溜まるので、それをwindowsOS提供のnfsでexportして、linuxがそれをnfs mountすれば、
監視ができるかと思ったのだが、無理でした。同様にwindows共有で提供して、linux側からsmbmount(cifsmount)しても駄目だった..

この場合、linux側でsmb共有フォルダを用意して、そこにwindows側が書き込めば大丈夫となった。
参照inotify-tools/WindowsPC

(1909)この部分に修正を加えた。電顕からのファイルを溜めるフォルダをwindows共有させ、cifs mountでマウントさせ、
60秒に一度とかで rsync を発行させるようにした。inotify-toolsを使ったトリガーには変更ないが、
windows側にあるファイルをsilo側でrsyncを使って持ってこさせた。
これでwindows --> siloサーバ(Linux) への転送アプリを使わなくても大丈夫。

relionMotionCorrection

次のイメージファイルが届く前に計算を終えさせる必要がある。
relion謹製MotionCorrで4k,8kでの計算時間を調べてみた。

結果、4k画像であれば、2coreで [1枚/1分] に十分に間に合いそうである。

263MB 4k画像ファイル, Ryzen7(8c/16t), gcc
core1core2core3core4core
time62sec30sec22sec16sec

次に8kの画像であるが、intelマシンではこうなった

530MB 8k画像ファイル, i9-7960X(16c/32t)コンパイラ
core4core8core16core
time2m47.646s1m32.670s1m5.247sgcc
time1m16.285s0m44.405s0m34.189sicc

同じデータをRyzen7で回してみた

530MB 8k画像ファイル, Ryzen7(8c/16t)コンパイラ
core4core8core
time2m3.169s1m19.468sgcc
time2m0.333s1m20.464sgcc7
time2m12.625s1m30.408sicc

どうも8kで回すにはハイスペックが必要みたい...

最新の60件
2024-09-16 2024-09-14 2024-09-12 2024-09-09 2024-09-08 2024-09-06 2024-09-05 2024-09-04 2024-09-02 2024-09-01 2024-08-31 2024-08-28 2024-08-21 2024-08-18 2024-08-17 2024-08-16 2024-08-15 2024-08-14 2024-08-11 2024-08-09 2024-08-01 2024-07-27 2024-07-26 2024-07-16 2024-07-15 2024-07-12 2024-07-07 2024-06-22 2024-06-21 2024-06-17 2024-06-14 2024-06-11 2024-06-10 2024-06-08 2024-06-07 2024-06-02 2024-06-01 2024-05-30 2024-05-16 2024-04-26 2024-04-15 2024-04-11

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-09-12 (木) 03:58:09