本家様 http://www.mrc-lmb.cam.ac.uk/kzhang/
Gctfと同じサイトです

現時点(170928)では最新版が Gautomatch_v0.56 で、ダウンロードサイトを訪れると cuda8.0 に対応して
各種sm毎にバイナリーが用意されている。

利用するnvidiaのカードがMaxwellベースの「GM20{0|4|6}」チップならsm_52、Pascalベースの「GP10{2|4|6|7|8}」チップならsm_61で用意する。カードによる下位互換性はあるようなので「GP102」搭載カードでも「sm_51」のプログラムは動く
ここでは

[root@c ~]# mkdir /Appl/Gautomatch/v0.56
[root@c ~]# cd /Appl/Gautomatch/v0.56
[root@c v0.56]# curl -R -O http://www.mrc-lmb.cam.ac.uk/kzhang/Gautomatch/Gautomatch_v0.56/Gautomatch_v0.56_sm52_cu8.0
[root@c v0.56]# chmod +x ./Gautomatch_v0.56_sm52_cu8.0
[root@c v0.56]# ln -s Gautomatch_v0.56_sm52_cu8.0 gautomatch
[root@c v0.56]# ln -s Gautomatch_v0.56_sm52_cu8.0 Gautomatch
 
[root@c ~]# rm /Appl/Gautomatch/cr ; ln -s /Appl/Gautomatch/v0.56 /Appl/Gautomatch/cr

サンプルファイルがあるので、それに実行方法らが記載されている。

メモ

下記はサンプルファイルの一部で「ribosome_automatch_test8.png」である。
2018y04m25d_020031470.png
こんな感じで粒子をpickできるよとの資料みたい。実行方法は同封の「readme.txt」を参照のこと

ここではこの画像を再現してみた。
対象となる画像ファイルが「test8.mrc」で

[saber@e ~]$ gautomatch --apixM 1.34  --diameter 240 --min_dist 200 --cc_cutoff 0.25 --speed 1  test8.mrc

より「test8_automatch.box」「test8_automatch.star」「test8_nonunique.box」「test8_rejected.box」「test8_rejected.star」が得られた。「test8_automatch.box」の中身は下記のようになっている。

1121    27      238     238     0.642691        0       0.000000
2019    71      238     238     0.599376        0       0.000000
2835    21      238     238     0.430485        0       0.000000
357     143     238     238     0.508037        0       0.000000
921     129     238     238     0.636458        0       0.000000
2343    89      238     238     0.366626        0       0.000000
2645    127     238     238     0.646135        0       0.000000
  :

x, y, height, width,,,だろうか。
この値を使って、画像上に四角を載せてみる。
まず、mrcファイルでの扱いは難しいので、jpegに変換。EMAN2パッケージの「e2proc2d.py」を使用

[saber@e ~]$ e2proc2d.py test8.mrc test8.jpeg

Shrinkはしてません

その後、下記のようなphpスクリプトで描かせてみた

<?php
$f = "test8.jpeg";
$box="test8_automatch.box";
 
$img = ImageCreateFromJPEG( $f );
imagesetthickness($img, 5);
$color = imagecolorallocate($img, 255, 0, 255);
 
$fp=fopen($box,"r");
if($fp){
  while(($b=fgets($fp,4096)) !== false){
     if ( preg_match("/(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)$/",$b,$m) ){
         imagerectangle ($img, $m[1] , $m[2], ($m[1] + $m[3]), ($m[2] + $m[3]), $color);
     }
  }
  fclose($fp);
}
imagejpeg($img, "test8_particle.jpeg");
imagedestroy($img);
?>

っが、
2018y04m25d_021732940.png
と合わない。どうやら画像側の上下の反転が必要なようで、ImageMagickのconvrtを使って反転

[saber@e ~]$ convert -flip  test8.jpeg test8_flip.jpeg

この「test8_flip.jpeg」を先ほどのphpスクリプトに流すと、
あとphpスクリプトと微調整して
2018y04m25d_022114045.png
となる。一応近いかな

なぜ「flip」が必要かは原点の取り方なのか良く分からない...
phpスクリプトで、「imagerectangle」部分を

-        imagerectangle ($img, $m[1] , $m[2], ($m[1] + $m[3]), ($m[2] + $m[3]), $color);
+        imagerectangle ($img, $m[1] , (4096 - ($m[2] + $m[3])) , ($m[1] + $m[3]), (4096 - $m[2]) , $color);

とすると上下の反転せずとも粒子のpick場所を正しく表示できるけど...
2018y04m25d_071550695.png

そもそも「ribosome_automatch_test8.png」でなぜ反転させたのか?

ほか、relion-tutorialで出されているFalconの画像でも行ってみた
計算パラメータは下記として

[saber@e ~]$ gautomatch --apixM 3.54  --diameter 200 --min_dist 200 --cc_cutoff 0.25 --speed 1 Falcon_2012_06_12-14_33_35_0.mrc

Gautomatchで推定された粒子が下記と成る
2018y04m25d_111636714.png

一方で、この「Falcon_2012_06_12-14_33_35_0.mrc」をrelionの「manual-picking」で開くと上下の反転されて表示される
2018y04m26d_001638598.png

試作アプリ

Gautomatchを使ってこんなアプリを作ってみた。
2018y05m31d_032137375.png
満足がいくまでパラメータを変更していただき、その値を使って対象ファイルからparticleをpickするもの。


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2018-07-09 (月) 10:45:43 (14d)