単粒子解析

提供: Eospedia
2015年3月3日 (火) 06:08時点におけるKinoshita (トーク | 投稿記録)による版

移動: 案内検索

単粒子解析法とは、Single Particle Analysis(SPA)の日本語訳である。単粒子とは、画像中の粒子(対象)が元来、2次元的にもしくは3次元的に同じ形をしていることを仮定して、その2次元、3次元構造解析を行う画像処理法のひとつである。

目次

2次元単粒子解析

 2次元単粒子解析とは、2次元で得られている電子顕微鏡投影像を分類し、それぞれを平均し、構造の違いを論じるための解析方法を指します。

クラスター解析

 複数の電子顕微鏡画像についてデータが近いもの同士でグループ分けしていき、階層構造を作成して画像を分類します。さらに分類した画像同士の平均画像を作成することにより、SN比を上げることができます。平均画像は主に角度決定するときの参照ファイルもしくは入力ファイル、あるいは粒子の動きを観察するための画像として使用します。

実行例1

以下のような入力ファイル(ROI)を分類していきます。

Input-Cluster-2dSet.png


前処理
前処理として以下のコマンドを使用します。(XXX: 各ROIファイル名)


コマンド1: mrcImagePad -i XXX.roi -o XXX.prelow -W 32 -H 32 -m 13

コマンド2: mrcImageLowPassFilter -i XXX.prelow -o XXX.preshrink -m 4 -hvp 0.1

コマンド3: mrcImageShrink -i XXX.preshrink -o XXX.pad -S 1


前処理後

Input1-Cluster-2dSet.png


クラスター解析
前処理後のファイルにmrcImageClusterAnalysisを使ってクラスター解析を行います。(all.padlstはpadファイルのリスト)


コマンド: mrcImageClusterAnalysis -I all.padlst -O -AR 72 -ARange 0 360 -ARiter 2 -ARMethod 0 -M 19 -Log Input-Cluster.log -m 2

このコマンドではmrcImageAutoRotationCorrelationによる画像の相関で分類を行っています。

         1          0         40         40         99.2851
         2          0         40         40         90.0657
         2          1         40         40         75.2851
         3          0         40         40         82.6412
         3          1         40         40         87.9777

-中略-

         3          2          3          2         442.652
         1          0          3          0         373.403
         2          0          3          0         630.906
         2          1          3          0         349.983
         1          0          2          1         562.309


分類
clusterShowを使って、解析結果をファイルリストで出力します。


コマンド: clusterShow -i Input-Cluster.log -PS Outdata-Cluster.logps -Last 1 -S 10 100 -P 0 400 -Log -Scaling -Offset 1e1 -I all.padlst
          -OL Input-Cluster.padsortlst -AL Input-Cluster.avesortlst 0 avg -OT Outdata-Cluster.treeinfo


121p-shift-rot000.mrc-rot000.pad 0 590.000000 83.277847 
121p-shift-rot000.mrc-rot090.pad 3 580.000000 83.277847 
121p-shift-rot000.mrc-rot030.pad 1 570.000000 87.326599 
121p-shift-rot000.mrc-rot060.pad 2 560.000000 87.326599 
121p-shift-rot000.mrc-rot120.pad 4 550.000000 79.850204 

-中略-

121p-shift-rot045.mrc-rot000.pad 10 240.000000 80.898613 
121p-shift-rot045.mrc-rot270.pad 19 230.000000 80.898613 
121p-shift-rot045.mrc-rot060.pad 12 220.000000 80.506714 
121p-shift-rot045.mrc-rot240.pad 18 210.000000 78.504913 
121p-shift-rot045.mrc-rot030.pad 11 200.000000 68.052155 
121p-shift-rot000.mrc-rot000.pad.avg 0 590.000000 83.277847 0 0
121p-shift-rot000.mrc-rot090.pad.avg 3 580.000000 83.277847 0 0
121p-shift-rot000.mrc-rot030.pad.avg 1 570.000000 87.326599 0 0
121p-shift-rot000.mrc-rot060.pad.avg 2 560.000000 87.326599 0 0
121p-shift-rot000.mrc-rot120.pad.avg 4 550.000000 79.850204 0 0

-中略-

121p-shift-rot045.mrc-rot000.pad.avg 10 240.000000 80.898613 0 0
121p-shift-rot045.mrc-rot270.pad.avg 19 230.000000 80.898613 0 0
121p-shift-rot045.mrc-rot060.pad.avg 12 220.000000 80.506714 0 0
121p-shift-rot045.mrc-rot240.pad.avg 18 210.000000 78.504913 0 0
121p-shift-rot045.mrc-rot030.pad.avg 11 200.000000 68.052155 0 0


樹形図(PSファイル)

Outdata-Cluster.png

クラスター解析結果の樹形図はPSファイルとして出力されます。


mrcImageMontageCreateを使って、ソート順に表示します。


コマンド(OL): mrcImageMontageCreate -i Input-Cluster.padsortlst -o Outdata-Cluster-OL.padsortmon
コマンド(AL): mrcImageMontageCreate -i Input-Cluster.avesortlst -o Outdata-Cluster-AL.padsortmon


-OL
Outdata-Cluster-OL.png
クラスター解析によってソートされた入力画像(樹形図での昇順)

-AL
Outdata-Cluster-AL.png
分類されたグループ毎の平均画像(樹形図内の枝の番号に対応)

入力ファイルからこちらのMakefileを使って、以下のコマンドを入力するとこれまでの一連のコマンドが実行できます。

make Init
make ALLROIS
make Pad
make Log
make LogPS


実行例2

以下のような入力ファイル(ROI)を同様に分類してみます。

Input-Cluster-2dSet-1.png


前処理後

Input1-Cluster-2dSet-1.png


その他のコマンド

 クラスター解析に使用できるコマンドは以下のようなものもあります。


3次元単粒子解析

 元々の粒子の構造が3次元的に単一であることを仮定して、2次元の粒子画像群から3次元構造を再構成する画像処理法を指します。その手順は、下記のようになります。


1. ROI(粒子画像の抽出)
 *電子顕微鏡画像の前処理
 *電子顕微鏡画像から粒子画像の抽出(Display2)

2. 参照画像の作成
 *参照画像の準備(mrcImageModelCreate, pdb2mrc etc.)

3. 3次元再構成
 *参照画像から2次元の参照投影像のセットを生成(mrc3Dto2D)
 *最も類似度(相関値)の高い参照投影像の角度を粒子画像の投影角として決定(mrcImageAutoRotationCorrelation)
 *三次元像を再構成する(mrc2Dto3D)
 *三次元像の分解能・質の確認(mrcImageFourierShellCorrelation, mrcImageFOMCalc, etc.)
 *繰り返し(精密化)

 以降の項目では各手順における実行例を挙げています。


ROI(粒子画像の抽出)

電子顕微鏡画像の前処理

 まず、電子顕微鏡画像から粒子画像を抽出しやすくするために画像に合った補正を行います。


CTF補正
 画像の明暗を調節したい場合にはCTF補正を掛けて、コントラスト比を調整します。
以下の流れでCTF補正を行います。


電子顕微鏡画像(2D)

↓ A: mrcImageFFT

電子顕微鏡画像(2DFFT)

↓ B: ctfDisplay

電子顕微鏡画像(2DFFT) + CTF情報(ASCII)

↓ C: mrcImageCTFCompensation

CTF補正済み画像(2D)


Input-121p-shiftr-ctf.png

最小

最大
平均値
標準偏差

標準誤差

-1066.31 (69, 47, 0)

489.111 (58, 48, 0)
0.247522
88.9735

0.347553


コマンドA: mrcImageFFT -i Input-121p-shiftr-ctf.2d -o Input-121p-shiftr-ctf.2dfft
コマンドAの出力画像

Input-121p-shiftr-ctf-fft.png
mrcFFTExpression(m=1)にて表示

最小

最大
平均値
標準偏差

標準誤差

0.129048 (255, 128, 0)

772.6 (142, 252, 0)
72.4855
51.7996

0.202342


コマンドB: ctfDisplay -i Input-121p-shiftr-ctf.2dfft -o Input-121p-shiftr-ctf.ctfinfo
ctfDisplay0.png

実行直後

> ctfDisplay1.png

lmax=400でトーンリングが見える

> ctfDisplay2.png

Rmax=0.08で拡大表示する

> ctfDisplay3.png

谷に線を合わせる(Defoucus=27000)

今回はノイズ比を1と考え、Isignalの値をInoiseの値に合わせます。
最後にInfoのSaveボタンでCTF情報ファイルを保存します。(保存した出力データ)


コマンドC: mrcImageCTFCompensation -i Input-121p-shiftr-ctf.2dfft -o Input-121p-shiftr.2d -info2 Input-121p-shiftr-ctf.ctfinfo
コマンドCの出力画像
Input-121p-shiftr.png

最小

最大
平均値
標準偏差

標準誤差

-461.072 (75, 56, 0)

1206.48 (16, 58, 0)
-0.247522
88.9734

0.347553


ローパスフィルタ
 ローパスフィルタで平滑化することにより高周波数成分を落とし、画像が見えやすくなる場合もあります。


実行例1
Input-121p-hpfn.png

最小

最大
平均値
標準偏差

標準誤差

-357.864 (132, 55, 0)

636.92 (226, 152, 0)
-0.110347
87.6551

0.342403


コマンド: mrcImageLowPassFilter -i Input-121p-shiftr-hpfn.2d -o Output-121p-shiftr-lpfn.2d -m 3 -hvp 0.1


出力画像
Output-121p-shiftr-lpfn.png

最小

最大
平均値
標準偏差

標準誤差

-141.562 (111, 125, 0)

324.213 (233, 153, 0)
-0.110346
36.3984

0.142181


実行例2
Input-121p-water.png

最小

最大
平均値
標準偏差

標準誤差

37 (55, 59, 0)

77 (56, 46, 0)
60.0624
4.56632

0.0713488


実行例1と同様のコマンドで実行


出力画像
Output-121p-water-lpf.png

最小

最大
平均値
標準偏差

標準誤差

49.2681 (55, 59, 0)

68.8195 (29, 35, 0)
60.0623
2.47312

0.0386425


スムージング
 ローパスフィルタ以外にスムージングという方法もあります。


Input-121p-water.png

最小

最大
平均値
標準偏差

標準誤差

37 (55, 59, 0)

77 (56, 46, 0)
60.0624
4.56632

0.0713488


コマンド: mrcImageSmoothing -i Input-121p-water.2d -o Output-121p-smoothing.2d -m 1


出力画像
Output-121p-water-smt.png

最小

最大
平均値
標準偏差

標準誤差

52 (56, 60, 0)

69 (29, 34, 0)
60.1317
2.51206

0.0392509


電子顕微鏡画像から粒子画像の抽出

 Display2を使用して、粒子部分をROIファイルとして切り出します。
操作動画: (.mov) (.mp4) (.ogv)


Input-121p-shiftr.png

最小

最大
平均値
標準偏差

標準誤差

-461.072 (75, 56, 0)

1206.48 (16, 58, 0)
-0.247522
88.9734

0.347553


コマンド: Display2 -i Input-121p-shiftr.2d
View-Display2.png

実行直後



> View1-Display2.png

mrcImage InfoのMax, Minの値を、
Display2 InfoのHigh, Lowに設定すると、
観察しやすい画像として表示される
今回はHigh=1207, Low=-462に設定

> View2-Display2.png

切り出したい範囲を囲む
ROI->Createにて操作


View3-Display2.png

複数囲む場合はROI->MultiROIにチェック



切り出したい範囲を囲み終えたら、ROI->ROIInfoからroiinfo画面を開き、
下部のExtractボタンを押すと、ROIファイルが作成されます。


出力したROIファイルの画像

Input-121p-shiftr-roi.png
0000.roi

最小

最大
平均値
標準偏差

標準誤差

-461.072 (17, 21, 0)

1098.8 (10, 13, 0)
28.9941
317.641

13.5938

Input-121p-shiftr-roi1.png
0001.roi

最小

最大
平均値
標準偏差

標準誤差

-394.013 (18, 10, 0)

1206.48 (14, 12, 0)
18.3544
299.042

12.5036

Input-121p-shiftr-roi2.png
0002.roi

最小

最大
平均値
標準偏差

標準誤差

-418.302 (17, 6, 0)

1107.53 (14, 10, 0)
20.3934
302.756

12.8861


粒子画像の再調整

 粒子部分の切り出しができたら、画像端のノイズ除去やサイズ調整を行います。


窓関数を掛ける
 窓関数を掛けて、切り出した粒子画像の端のノイズを除去します。


Input-121p-shiftr-roi.png

最小

最大
平均値
標準偏差

標準誤差

-461.072 (17, 21, 0)

1098.8 (10, 13, 0)
28.9941
317.641

13.5938


今回は横:90%, 縦95%の窓関数を掛けます。
コマンド: mrcImageWindowing -i Input-121p-shiftr.2d-0000.roi -o Input-121p-shiftr.2d-0000.mask -W 0.1 0.0 0.05 0.0 -m 18


Input-121p-shiftr-mask.png

最小

最大
平均値
標準偏差

標準誤差

-461.072 (17, 21, 0)

1098.8 (10, 13, 0)
49.6982
307.622

13.165


パディング
 粒子画像のサイズを後に作る参照投影像と比較ができるようにサイズを調整します。
Input-121p-shiftr-mask.png

最小

最大
平均値
標準偏差

標準誤差

-461.072 (17, 21, 0)

1098.8 (10, 13, 0)
49.6982
307.622

13.165


今回はサイズを64x64にします。
コマンド: mrcImagePad -i Input-121p-shiftr.2d-0000.mask -o Input-121p-shiftr.2d-0000.pad -W 64 -H 64


Input-121p-shiftr-pad.png

最小

最大
平均値
標準偏差

標準誤差

-510.77 (39, 40, 0)

1049.1 (32, 32, 0)
2.21189e-07
112.314

1.7549


Makefileを利用する場合はこちらの設定を確認します。
# Pad size for 2D 
PAD_W=64
PAD_H=64
make ROIs, make padの順に入力すれば、全て.roiファイルに窓関数、パディングの処理を行った.padファイルが作成されます。


参照画像の作成

 ここでは3次元再構成に必要な3次元モデルデータ(参照画像)を用意する方法を記述します。


PDBファイルから参照画像を準備する場合

 概形が分かっている場合はその形に近いmrcファイルあるいはPDBファイルを用意します。
PDBファイルの場合はpdb2mrcを使用して、mrcに変換します。


121p-shift-PDB.png

重心

最大半径

最大半径(座標)

3.012034e-03 -4.102425e-03 7.530045e-04

3.286664e+01

24.77 23.85 28.04


コマンド: pdb2mrc -i 121p-shift.pdb -o 121p-shift.ref3d -nx 64 -ny 64 -nz 64 -Sx -80 -Sy -80 -Sz -80 -dx 2.5 -dy 2.5 -dz 2.5 -m 1


もしくはこちらのMakefileからpdb2mrcを実行することもできます。
設定項目(今回は変更の必要はありません)
###
### Initial model from PDB
###
REFSOURCE=121p-shift
DELTA=2.5
SIZE_X=64
SIZE_Y=64
SIZE_Z=64
START_X=`awk 'BEGIN { print -1*$(DELTA)*$(SIZE_X)/2}'`
START_Y=`awk 'BEGIN { print -1*$(DELTA)*$(SIZE_Y)/2}'`
START_Z=`awk 'BEGIN { print -1*$(DELTA)*$(SIZE_Z)/2}'`
make InitialModelと入力すれば参照画像が作成されます。


121p-shift.png
xy平面

121p-shift1.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

0 (0, 0, 0)

22320.6 (34, 39, 32)
42.1608
615.001

1.20117


球・楕円体を参照像とする場合

 概形が分からない場合やPDBを直接利用しない場合は仮の3次元モデルデータを作成して参照画像とします。今回は粒子を対象としているので、球や楕円体を参照画像として作成します。


こちらのMakefileを使えば、入力画像(再調整済み)からの主成分分析でサイズを決めた楕円体を作成することができます。
こちらのMakefileを使えば、 元のPDBファイル(Target.pdbにリネーム)と入力画像(再調整済み)からの主成分分析でサイズを決めた楕円体を作成することができます。

いずれも下記のコマンドを入力します。
make OUT_PAD_LIST;
make RefSize;
make Ref3d_ellipse;


以降では具体的な手順について記述します。


球・楕円体の形状を決める
 入力画像から粒子のサイズを測り、球や楕円体の半径として決定します。球・楕円体を作成後に入力データに体積を合わせるようにするので、ここでのサイズは縦横の比で構いません。下記の手法のいずれかから画像からサイズを得ます。


2D画像から主成分分析を行ってサイズを得る。
 複数の2D画像からmrcImageShapePCAを使って、主成分分析を行うことで粒子のサイズを測ることができます。


以下の画像から粒子のサイズを測ってみます。

121p-shift-noise-0-0-0-pad.png
0°の画像

最小

最大
平均値
標準偏差

標準誤差

-594.243 (46, 22, 0)

1981.16 (29, 35, 0)
10.2243
244.58

3.82156

121p-shift-noise-0-60-0-pad.png
60°の画像

最小

最大
平均値
標準偏差

標準誤差

-242.692 (6, 47, 0)

2006.1 (34, 29, 0)
10.6324
212.151

3.31485

121p-shift-noise-0-120-0-pad.png
120°の画像

最小

最大
平均値
標準偏差

標準誤差

-283.875 (25, 23, 0)

2105.84 (33, 30, 0)
11.4187
217.166

3.39321


まず、それぞれの画像から端を背景と見なして閾値とするためにmrcImageInfoを使います。


コマンド: mrcImageInfo -i 121p-shift-noise-0-0-0.pad -I -m 2 (0°画像の場合)
実行結果
Mean:       -15.9862
SD:        99.3666
SE:         3.7006
画像端のノイズ比を考慮に入れて、今回はMean+SD×0.6を閾値として使用します。


コマンド: mrcImageShapePCA -i 121p-shift-noise-0-0-0.pad -C 33.69710 (0°画像の場合)
実行結果
# PCA ResultsConvariace Matrix: 2 3 3 
  276551.687500    -4195.727539        0.000000 
   -4195.727539   281558.125000        0.000000 
       0.000000        0.000000        0.000000 
UnitVector: one unit vector per line, from 1st 2 3 3 
      -0.493784        0.869585        0.000000 
       0.869585        0.493784        0.000000 
       0.000000        0.000000        1.000000 
Lambda: 1st 2nd 3rd1 3 
  283940.625000   274169.187500        0.000000 
Average: 1 3 
      32.926746       32.793869        0.000000 
このときのLambdaの1st, 2ndの比率の平方根をとれば、第1主成分軸と第2主成分軸のおよその比率を算出することができます。


各画像のデータ(縦: 画像毎、横: 1st/2nd, 1st, 2nd)
1.03564	283940.625000	274169.187500
1.12362	293262.687500	260999.250000
1.02317	269615.781250	263511.343750
1stと2nd比の最大値の平方根を楕円体の長軸:短軸の比として使用することができます。
今回の結果では、(1.12362)^(1/2)=約1.06000を長軸/短軸の比率にします。


シノグラムFETから幅データを得る
 シノグラムFETには画像の各回転毎の幅データがありますので、その最大値、最小値から粒子のサイズを推測することができます。シノグラムFETは2D画像からmrcImageSinogramCreateにてシノグラムファイルに変換し、さらにmrcSinogramFETにて変換することで得ることができます。


以下の画像から粒子のサイズを測ってみます。

121p-shift-noise-0-0-0-roi.png
0°の画像

最小

最大
平均値
標準偏差

標準誤差

-594.084 (2, 9, 0)

2020.76 (29, 35, 0)
41.4681
260.94

4.0772

121p-shift-noise-0-60-0-roi.png
60°の画像

最小

最大
平均値
標準偏差

標準誤差

-207.591 (6, 47, 0)

2045.95 (34, 29, 0)
42.2224
215.955

3.3743

121p-shift-noise-0-120-0-roi.png
120°の画像

最小

最大
平均値
標準偏差

標準誤差

-243.848 (25, 23, 0)

2145.87 (33, 30, 0)
42.3953
221.197

3.4562


まず、2D画像をシノグラムに変換します。


コマンド: mrcImageSinogramCreate -i 121p-shift-noise-0-0-0.roi -o 121p-shift-noise-0-0-0.sino (0°画像の場合)


出力結果

121p-shift-noise-0-0-0-sino.png
0°のシノグラム

最小

最大
平均値
標準偏差

標準誤差

-4516.27 (12, 315, 0)

20774.3 (32, 146, 0)
2655.78
5312.09

34.9964

121p-shift-noise-0-60-0-sino.png
60°のシノグラム

最小

最大
平均値
標準偏差

標準誤差

-1808.49 (63, 248, 0)

20503.9 (31, 64, 0)
2735.55
5294.55

34.8809

121p-shift-noise-0-120-0-sino.png
120°のシノグラム

最小

最大
平均値
標準偏差

標準誤差

-2144.98 (9, 320, 0)

20596.9 (32, 27, 0)
2695.65
5412.18

35.6559


さらにこれをシノグラムFETへ変換します。


コマンド: mrcSinogramFET -i 121p-shift-noise-0-0-0.sino -o 121p-shift-noise-0-0-0.fet (0°画像の場合)


出力ファイルのx=0には角度y毎の幅データが格納されています。
mrcImageMakeDump(m=8)で見たとき(一部)
        2.45173        -2.29785         6.95815 
         2.6141        -2.34593          7.0844 
        2.46841        -2.27064         6.73558 
        2.37686        -2.22541         6.54056 
        2.52772        -2.29213         6.81172 
         3.0785        -2.51766         7.81968 
        3.25844        -2.59088          8.1835 
        3.09363        -2.53592          7.9339 
        2.78406        -2.39991         7.27603 
        2.64993        -2.33143         6.94539 
        2.92637        -2.43023         7.35356 
        3.19264        -2.51146         7.69294 
        2.82269         -2.3906         7.17807 
         2.4756        -2.26433         6.68315 
        2.26777        -2.17936         6.37473 

-以下略-
シノグラムFETの幅データはシノグラム投影角毎の自己相関値の尖度で定義されていますので、これから粒子の幅を得るためにはさらに自己相関値の標準偏差などが必要になります。


PDB主成分分析してサイズを得る
 PDBがある場合はpdbPCAを用いると、第1主成分、第2主成分、第3主成分の向きにx軸、y軸、z軸を合わせることができます。このときの出力PDBファイルにpdbInfoを使えば、各主成分の半径が分かります。


121p-shift-PDB.png

重心

最大半径

最大半径(座標)

3.012034e-03 -4.102425e-03 7.530045e-04

3.286664e+01

24.77 23.85 28.04


コマンド: pdbPCA -i 121p-shift.pdb -oPDB 121p-PCA.pdb -oU 121p-PCA.array
コマンド: pdbPCA -i 121p-PCA.pdb


121p-PCA-PDB.png

重心

最大半径

最大半径(座標)

3.253011e-03 -2.843370e-03 -2.722879e-03

3.286644e+01

30.08 22.03 23.73

これにより例えば、楕円体の半径[Å]をそれぞれ30.08, 22.03, 23.73と決めることができます。


球のモデルデータ
 mrcImageSphereを使用すると球のモデルデータを作ることができます。


コマンド: mrcImageSphere -o Model-sphere.ref3d -r 12 -size 2.5 -m 2


Model-sphere.png
xy平面

Model-sphere1.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

0 (0, 0, 0)

100 (12, 12, 0)
45.7792
49.8215

0.398572


楕円体のモデルデータ
 mrcImageGaussSphereを使用すると楕円体のガウス球を作ることができます。


コマンド: mrcImageGaussSphere -o Model1-ellipsoidal.ref3d -sigmax 30.08 -sigmay 22.03 -sigmaz 23.73 -size 2.5 -m 2


Model1-ellipsoidal.png
xy平面

Model1-ellipsoidal1.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

3.56662e-11 (0, 0, 0)

10 (36, 26, 28)
0.254095
0.913154

0.0019445


参照画像の体積を入力画像に合わせる
 参照画像のおよその形状を入力画像に合わせることができましたので、次は体積を合わせます。3次元像に対し、mrcImageVolumeCalcを使用するとその粒子の密度を測ることができますが、このとき観察している粒子と同じ分子量を入力する必要があります。今回使用しているpdb121pの分子量は約19420( "RCSB PDB Home Page" 参照)なので、これを入力します。


コマンド: mrcImageVolumeCalc -i Model1-ellipsoidal.ref3d -M 19420 -D 2.5 -I 1


実行結果
ContourLevel(200): 4.44877 217475
ContourLevel(190): 4.60563 217628
ContourLevel(180): 4.71967 217781
ContourLevel(170): 4.82189 217934
ContourLevel(160): 4.9671 218087
ContourLevel(150): 5.13117 218240
ContourLevel(140): 5.30867 218393
ContourLevel(130): 5.45346 218545
ContourLevel(120): 5.65173 218698
ContourLevel(110): 5.81491 218851
ContourLevel(100): 6.03059 219004
ContourLevel( 90): 6.22066 219157
ContourLevel( 80): 6.44353 219310
ContourLevel( 70): 6.70129 219463
ContourLevel( 60): 6.97003 219616
ContourLevel( 50): 7.25338 219769
ContourLevel( 40): 7.57326 219922
ContourLevel( 30): 7.99271 220075
ContourLevel( 20): 8.41026 220228
ContourLevel( 10): 8.92543 220381
ContourLevel(  0): 10 220533


ContourLevel(100): 第1要素からこの参照画像の密度を6.03059として考えます。


次に上記で得た密度を閾値としてmrcImageBinalizationを使用することで体積を入力画像に合わせることができます。


コマンド: mrcImageBinalization -i Model1-ellipsoidal.ref3d -o Model2-ellipsoidal.ref3d -t 6.03059

Model2-ellipsoidal.png
xy平面

Model2-ellipsoidal1.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

0 (0, 0, 0)

1 (35, 25, 21)
0.00825727
0.0904936

0.0001927


3次元再構成

 3次元再構成を行うためには多くの参照投影像が必要になりますので、Makefileを使用することをお薦めします。

ROIファイル(.roi)および参照画像(.ref3d)がある場合はこちらのMakefileにて、make Allと入力すれば、3次元再構成を1ターン分行い、3次元再構成されたファイル(.3d)が作成されます。

以降の項目では3次元再構成に至るまでの各処理をEosコマンドMakefileのコマンドと対応させながら、実行例を記述していきます。


参照画像から2次元の参照投影像のセットを生成

 mrc3Dto2Dを使用して、2次元の参照投影像を作成します。


メルカトル図法
 オプションm=0(デフォルト)の場合は角度の組み合わせ全てについて2D投影を行います。
121p-shift.ref3d を元に参照投影像121p-shift.ref2dを作成する場合(y軸, 軸周りに0度 ~ 360度の範囲で30度刻み)


121p-shift.png
xy平面

121p-shift1.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

0 (0, 0, 0)

22320.6 (34, 39, 32)
42.1608
615.001

1.20117


コマンド: mrc3Dto2D -i 121p-shift.ref3d -o 121p-shift.ref2d -EulerMode YOYS -InterpolationMode 2 -Rot2 0 359 30 -Rot1 0 359 30 -Rot3 0 0 30 -m 0


既存のMakefileを利用する場合は以下の設定を確認します。
今回はファイル名のみ変更しています。
# Ref File Name
INITIAL=121p-shift

#
# Search Area for 3D
#
ROTMODE=YOYS

#
# Search Area for 3D
#
ROTMODE=YOYS
# Rot1
ROT1MIN=0
ROT1MAX=359
ROT1D=30
nRot1=6

# Rot2
ROT2MIN=0
ROT2MAX=359
ROT2D=30
nRot2=6

# Rot3
ROT3MIN=0
ROT3MAX=0
ROT3D=30
nRot3=1
make *.ref2dと入力すれば全ての.ref3dファイルについて参照投影像(.ref2d)が作成されます。


121p-shift2d.png
z=0

121p-shift2d1.png
z=1

121p-shift2d2.png
z=2

121p-shift2d3.png
z=168

サイズ

最小
最大
平均値
標準偏差

標準誤差

( 64, 64, 169)

-76.7146 (32, 41, 138)
2557.54 (35, 32, 131)
42.1574
207.727

0.249672


モルワイデ図法
 オプションm=1の場合は3次元像の緯度が大きくなる毎に経度の刻み幅を減らすモルワイデ図法で投影します。


コマンド: mrc3Dto2D -i 121p-shift.ref3d -o 121p-shift.ref2d -EulerMode YOYS -InterpolationMode 2 -Rot2 0 359 30 -Rot1 0 359 30 -Rot3 0 0 30 -m 1


Makefileの変更箇所
.ref3d.ref2d:
	#mrc3Dto2D -i $(TARGET).ref3d -o $(TARGET).ref2d -EulerMode $(ROTMODE) -InterpolationMode 2 -Rot2 $(ROT2MIN) $(ROT2MAX) $(ROT2D) -Rot1 $(ROT1MIN) $(ROT1MAX) $(ROT1D) -Rot3 $(ROT3MIN) $(ROT3MAX) $(ROT3D) -m 0
	mrc3Dto2D -i $(TARGET).ref3d -o $(TARGET).ref2d -EulerMode $(ROTMODE) -InterpolationMode 2 -Rot2 $(ROT2MIN) $(ROT2MAX) $(ROT2D) -Rot1 $(ROT1MIN) $(ROT1MAX) $(ROT1D) -Rot3 $(ROT3MIN) $(ROT3MAX) $(ROT3D) -m 1


121p-shift2d1-0.png
z=0

121p-shift2d1-1.png
z=1

121p-shift2d1-2.png
z=2

121p-shift2d1-3.png
z=98

サイズ

最小
最大
平均値
標準偏差

標準誤差

( 64, 64, 99)

-96.877 (33, 22, 81)
2729.79 (32, 32, 46)
42.1673
208.082

0.326766


最も類似度(相関値)の高い参照投影像の角度を粒子画像の投影角として決定

 mrcImageAutoRotationCorrelationを使用して粒子画像の投影角を決定します。


Input-121p-shiftr-pad.png

最小

最大
平均値
標準偏差

標準誤差

-510.77 (39, 40, 0)

1049.1 (32, 32, 0)
2.21189e-07
112.314

1.7549


121p-shift2d.png
z=0

121p-shift2d1.png
z=1

121p-shift2d2.png
z=2

121p-shift2d3.png
z=168

サイズ

最小
最大
平均値
標準偏差

標準誤差

( 64, 64, 169)

-76.7146 (32, 41, 138)
2557.54 (35, 32, 131)
42.1574
207.727

0.249672


コマンド: mrcImageAutoRotationCorrelation -i Input-121p-shiftr.2d-0000.pad -r 121p-shift.ref2d -O Input-121p-shiftr.2d-0000.corinfo -fit Input-121p-shiftr.2d-0000.fit -n 12 -m 18 -range 0 359 -Iter 2 -Rot2 12 -Rot1 12 -Rot3 12


Makefileを利用する場合はこちらの設定を確認します。
# For 2D 
STEP=12
ROTMIN=0
ROTMAX=359
nROT=`echo "" | awk 'BEGIN {printf 360 / $(STEP)}'`
make PADs, make corinfoの順に入力すれば、全て.padファイルについて角度情報ファイル(.corinfo)および角度決定後の画像ファイル(.fit)が作成されます。


-O の出力結果
0:                        YOYS        0.000000        0.000000        0.000000 :     1737.870605 theta      179.499994 at        2.000000        1.000000 onMap        0.000000        0.000000 Input-121p-shiftr.2d-0000.pad Cor        0.689801

1:                        YOYS        0.000000       30.000001        0.000000 :     1731.543091 theta      284.208488 at        1.000000        1.000000 onMap        0.000000        0.083333 Input-121p-shiftr.2d-0000.pad Cor        0.695427

2:                        YOYS        0.000000       60.000002        0.000000 :     3307.848633 theta      281.216811 at        1.000000        1.000000 onMap        0.000000        0.166667 Input-121p-shiftr.2d-0000.pad Cor        0.797129

3:                        YOYS        0.000000       90.000003        0.000000 :     1742.967407 theta       26.925002 at        0.000000        1.000000 onMap        0.000000        0.250000 Input-121p-shiftr.2d-0000.pad Cor        0.711250

4:                        YOYS        0.000000      120.000003        0.000000 :     1774.003418 theta       29.916669 at        0.000000        1.000000 onMap        0.000000        0.333333 Input-121p-shiftr.2d-0000.pad Cor        0.706876

-中略-

164:                        YOYS      360.000010      240.000007        0.000000 :     1713.460815 theta       89.749970 at        1.000000       63.000000 onMap        0.000000        0.666667 Input-121p-shiftr.2d-0000.pad Cor        0.691559

165:                        YOYS      360.000010      270.000001        0.000000 :     1856.687744 theta      239.333326 at        0.000000        1.000000 onMap        0.000000        0.750000 Input-121p-shiftr.2d-0000.pad Cor        0.723829

166:                        YOYS      360.000010      299.999995        0.000000 :     1759.510742 theta      236.341675 at        0.000000        1.000000 onMap        0.000000        0.833333 Input-121p-shiftr.2d-0000.pad Cor        0.720541

167:                        YOYS      360.000010      329.999989        0.000000 :     1599.635254 theta      299.166657 at       63.000000        0.000000 onMap        0.000000        0.916667 Input-121p-shiftr.2d-0000.pad Cor        0.689916

168:                        YOYS      360.000010      360.000010        0.000000 :     1737.870850 theta      179.499994 at        2.000000        1.000000 onMap        0.000000        1.000000 Input-121p-shiftr.2d-0000.pad Cor        0.689801


Input-121p-shiftr-fit.png

最小

最大
平均値
標準偏差

標準誤差

-447.493 (25, 39, 0)

1062.05 (35, 31, 0)
-0.00489992
112.736

1.76149


さらに出力ファイル(-O)からmrc2Dto3Dで使用するファイルを作成する必要があります。
ファイル作成にはこちらのMakefileを利用することをお薦めします。


make CORINFOs, make 3dinfoの順に入力すると、全ての.corinfoファイルから相関値が最大のデータを取り出しmrc2Dto3D用に変換したデータ(.3dinfo)が作成されます。


出力データ(.3dinfo)
Input-121p-shiftr.2d-0000.fit YOYS 360.000010 60.000002 0.000000 3307.848633


続いてmake 3DINFOs, make 3dlstの順に入力すると、全ての.3dinfoファイルを1つのファイルにまとめたデータ(.3dlst)が作成されます。このファイルがmrc2Dto3D(-I)の入力ファイルとして使用できます。


出力データ(.3dlst)
121p-shift-noise-0-120-0.fit YOYS 0.000000 120.000003 0.000000 2823731.500000
121p-shift-noise-0-180-0.fit YOYS 0.000000 180.000005 0.000000 2663069.500000
121p-shift-noise-0-0-0.fit YOYS 0.000000 360.000010 0.000000 2594591.000000
121p-shift-noise-0-240-0.fit YOYS 0.000000 240.000007 0.000000 2708659.750000
121p-shift-noise-0-60-0.fit YOYS 0.000000 60.000002 0.000000 2704966.750000
121p-shift-noise-0-300-0.fit YOYS 0.000000 299.999995 0.000000 2807886.500000
121p-shift-noise-120-0-0.fit YOYS 120.000003 0.000000 0.000000 2935737.500000

-中略-

121p-shift-noise-300-240-0.fit YOYS 299.999995 240.000007 0.000000 2922086.000000
121p-shift-noise-60-0-0.fit YOYS 60.000002 0.000000 0.000000 2554428.000000
121p-shift-noise-60-120-0.fit YOYS 60.000002 120.000003 0.000000 2777184.000000
121p-shift-noise-60-180-0.fit YOYS 60.000002 180.000005 0.000000 2574856.750000
121p-shift-noise-60-60-0.fit YOYS 60.000002 60.000002 0.000000 2717428.500000
121p-shift-noise-60-300-0.fit YOYS 60.000002 299.999995 0.000000 2771646.500000
121p-shift-noise-60-240-0.fit YOYS 60.000002 240.000007 0.000000 2691474.000000


3次元像を再構成する

 mrc2Dto3Dを使用して3次元像を再構成します。


実行例1
121p-shift-noise-0-120-0.fit YOYS 0.000000 120.000003 0.000000 2823731.500000
121p-shift-noise-0-180-0.fit YOYS 0.000000 180.000005 0.000000 2663069.500000
121p-shift-noise-0-0-0.fit YOYS 0.000000 360.000010 0.000000 2594591.000000
121p-shift-noise-0-240-0.fit YOYS 0.000000 240.000007 0.000000 2708659.750000
121p-shift-noise-0-60-0.fit YOYS 0.000000 60.000002 0.000000 2704966.750000
121p-shift-noise-0-300-0.fit YOYS 0.000000 299.999995 0.000000 2807886.500000
121p-shift-noise-120-0-0.fit YOYS 120.000003 0.000000 0.000000 2935737.500000

-中略-

121p-shift-noise-300-240-0.fit YOYS 299.999995 240.000007 0.000000 2922086.000000
121p-shift-noise-60-0-0.fit YOYS 60.000002 0.000000 0.000000 2554428.000000
121p-shift-noise-60-120-0.fit YOYS 60.000002 120.000003 0.000000 2777184.000000
121p-shift-noise-60-180-0.fit YOYS 60.000002 180.000005 0.000000 2574856.750000
121p-shift-noise-60-60-0.fit YOYS 60.000002 60.000002 0.000000 2717428.500000
121p-shift-noise-60-300-0.fit YOYS 60.000002 299.999995 0.000000 2771646.500000
121p-shift-noise-60-240-0.fit YOYS 60.000002 240.000007 0.000000 2691474.000000


入力ファイルの画像(一部)

121p-shift-noise-fit.png
121p-shift-noise-0-0-0.fit

121p-shift-noise-fit1.png
121p-shift-noise-0-60-0.fit

121p-shift-noise-fit2.png
121p-shift-noise-0-120-0.fit

121p-shift-noise-fit3.png
121p-shift-noise-0-180-0.fit


コマンド: mrc2Dto3D -I 121p-shift.3dlst -O 121p-shift.3d -InterpolationMode 2 -Double -CounterThreshold 0.5 -m 1 -WeightMode 2


Makefileを利用する場合はmake 3DLIST, make 3dの順に入力すれば、全て.3dlstファイルについて3次元画像ファイル(.3d)が作成されます。


121p-shift-3d.png
xy平面

121p-shift-3d1.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

-6849.61 (11, 31, 32)

9844.57 (33, 28, 30)
16.1946
1511.61

2.95236

入力データの角度に偏りがある場合、ぼやけた3次元像ができることもあります。
今回は入力ファイルの角度刻みが各60°ずつですので、90°回転した方向からはぼやけてしまっています。


実行例2 (テストデータ数を変更して実行)
テストデータ数を角度刻み数と同じ分だけ用意してMakefileを使用します。


変更箇所: テストデータの作成間隔を刻み幅と同じ値に変更
TestDataNoise::
	@for (( rot1 = $(ROT1MIN); rot1 <= $(ROT1MAX); rot1 += $(ROT1D) )) \
	do \
	for (( rot2 = $(ROT2MIN); rot2 <= $(ROT2MAX); rot2 += $(ROT2D) )) \
入力データを参照画像(3D)から始め(Initial.3dにリネーム)、以下のコマンドを入力し、3次元再構成まで行います。
make First
make TestDataNoise
make All


121p-shift-3d2.png
xy平面

121p-shift-3d3.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

-3203.31 (28, 28, 37)

13153.5 (31, 31, 28)
14.7861
555.637

1.08523

角度30°ずつの画像で作成すると90°の方向も見えやすくなりました。


実行例3 (角度刻み幅を変更して実行)
角度刻み幅15°に変更してMakefileを使用します。


変更箇所
ROT1D=15
nRot1=24

ROT2D=15
nRot2=24

STEP=24
コマンドは実行例2と同様で実行


出力ファイルの画像

121p-shift-3d4.png
xy平面

121p-shift-3d5.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

-2955.91 (27, 32, 39)

12347.2 (31, 31, 28)
15.0729
483.66

0.944648

角度15°ずつの場合はさらに鮮明になります。


実行例4 (PDBファイルを変更し、実行例1と同様に実行)
別のPDBファイルを使った参照画像(initial.3dにリネーム)を使用して、実行例1と同様のパターンで実行します。


Input-1VOM.png
xy平面

Input1-1VOM.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

0 (0, 0, 0)

3398.12 (23, 55, 41)
72.129
294.805

0.368507


変更箇所
### Initial model from PDB
###
REFSOURCE=1VOM

# Target structure name
TARGET=1VOM

# Pad size for 2D 
PAD_W=100
PAD_H=100
コマンドは実行例2と同様で実行


出力ファイルの画像

1VOM-3d.png
xy平面

1VOM-3d1.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

-1193.06 (38, 0, 34)

1730.23 (38, 41, 72)
13.4482
217.59

0.21759

実行例1の結果と同様にyz平面の画像がぼやけています。


実行例5 (実行例4からテストデータを増やして実行)
実行例4からの変更箇所
TestDataNoise::
	@for (( rot1 = $(ROT1MIN); rot1 <= $(ROT1MAX); rot1 += $(ROT1D) )) \
	do \
	for (( rot2 = $(ROT2MIN); rot2 <= $(ROT2MAX); rot2 += $(ROT2D) )) \


出力ファイルの画像

1VOM-1-3d.png
xy平面

1VOM-1-3d1.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

-1196.97 (37, 0, 41)

2064.29 (37, 38, 29)
13.4287
210.902

0.210902

データ量が増えたので、yz平面も補間できました。


実行例6 (ラドン変換)
 mrc2Dto3D以外にラドン変換を利用して3次元再構成をすることもできます。


入力ファイルの画像(一部)

121p-shift-noise-fit.png
121p-shift-noise-0-0-0.fit

121p-shift-noise-fit1.png
121p-shift-noise-0-60-0.fit

121p-shift-noise-fit2.png
121p-shift-noise-0-120-0.fit

121p-shift-noise-fit3.png
121p-shift-noise-0-180-0.fit


Media:Makefile-Radon.zipを使います。
コマンド
make IN_3D_LIST
make sino
make 3DRadon


出力ファイルの画像

121p-radon3d.png
xy平面

121p-radon3d1.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

-254462 (63, 57, 63)

4.17039e+06 (31, 32, 32)
308433
466586

911.3


実行例7 (ラドン変換2)
 実行例6から設定を変更してラドン変換を行います。


変更箇所
.3dradon.3d:
#	mrcImageInverseRadonTransform -i $*.3dradon -o $*.3d -bpm $(RBP_MODE);
	mrcImageInverseRadonTransform -i $*.3dradon -o $*.3d -bpm $(RBP_MODE) -bpm 4 -Rmin 0.0 -Rmax 0.025;


出力ファイルの画像

121p-1radon3d.png
xy平面

121p-1radon3d1.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

-132085 (36, 32, 24)

313263 (35, 32, 33)
356.579
26886.9

52.5134

xy平面が見えるようになりました。


3次元像の分解能・質の確認

フーリエシェル相関
実行例1
(.3dlst)を分割して、別々に作成した3次元像についてフーリエシェル相関を使用した比較を行います。

入力ファイル1(-i1)の画像(Media:121p-shift.3dlst.zipの奇数行目のみで3次元像を作成)

121p-shift-3d-1.png
xy平面

121p-shift-3d1-1.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

-2284.26 (21, 34, 32)

7073.81 (32, 31, 28)
14.5713
490.485

0.957978


入力ファイル2(-i2)の画像(Media:121p-shift.3dlst.zipの偶数行目のみで3次元像を作成)

121p-shift-3d-2.png
xy平面

121p-shift-3d1-2.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

-2821.77 (48, 2, 26)

7828.59 (31, 31, 31)
15.1938
501.463

0.97942


コマンド: mrcImageFourierShellCorrelation -i1 121p-shift-1.3d -i2 121p-shift-2.3d


出力結果
0.000000 1.000000 1 
0.006250 0.989451 13 
0.012500 0.765751 37 
0.018750 0.724093 57 
0.025000 0.509790 121 
0.031250 0.595041 189 
0.037500 0.249055 245 
0.043750 0.201907 321 
0.050000 0.450095 405 
0.056250 0.290857 605 
0.062500 0.398243 653 
0.068750 0.354419 765 
0.075000 0.348684 941 
0.081250 0.386710 1133 
0.087500 0.394123 1293 
0.093750 0.334787 1353 
0.100000 0.350660 1725 

-中略-

0.325000 0.167641 122 
0.331250 0.169556 102 
0.337500 -0.013454 38 
0.343750 -0.560236 6 
各周波数毎の相関値が観察できます。
今回は相関値0.5を基準とすれば周波数0.031250[1/Å]付近までのデータが有効であると考えられ、分解能が32[Å]であると判断できます。
※ 0.05[1/Å]付近で相関値が高くなっていますが、これは使用した角度データが60°刻みで粗いため、2つの画像で含まれる粒子データ量の割合が周波数によって異なるためです。
Fig-FOM1.pngFig-FOM2.png


周波数の幅を広く(2倍)取った場合
コマンド: mrcImageFourierShellCorrelation -i1 121p-shift-1.3d -i2 121p-shift-2.3d -d 1.25e-2


0.000000 1.000000 1 
0.012500 0.822323 58 
0.025000 0.679142 223 
0.037500 0.320513 478 
0.050000 0.326283 866 
0.062500 0.372212 1333 
0.075000 0.363840 1851 
0.087500 0.378167 2602 
0.100000 0.350047 3237 

-中略-

0.325000 0.124741 280 
0.337500 -0.036125 84 
0.350000 -1.000000 1 
0.05[1/Å]付近の相関値が低くなりました。


実行例2(ノイズ無しのデータ)
ノイズを無しにして実行例1と同じ組み合わせ、同じコマンドで実行します。
入力ファイル1(-i1)の画像

121p-shift-3d-5.png
xy平面

121p-shift-3d1-5.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

-2268.94 (61, 28, 16)

7168.45 (32, 31, 28)
14.623
448.776

0.876516


入力ファイル2(-i2)の画像

121p-shift-3d-6.png
xy平面

121p-shift-3d1-6.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

-2686.55 (48, 2, 26)

7439.83 (31, 31, 31)
15.115
457.972

0.894476


出力結果
0.000000 1.000000 1 
0.006250 0.990356 13 
0.012500 0.764878 37 
0.018750 0.726560 57 
0.025000 0.510301 121 
0.031250 0.594142 189 
0.037500 0.250462 245 
0.043750 0.217542 321 
0.050000 0.463959 405 
0.056250 0.311018 605 
0.062500 0.445881 653 
0.068750 0.379366 765 
0.075000 0.371647 941 
0.081250 0.417536 1133 
0.087500 0.431795 1293 
0.093750 0.421246 1353 
0.100000 0.408097 1725 

-中略-

0.325000 0.053261 122 
0.331250 0.047103 102 
0.337500 0.183973 38 
0.343750 -0.178682 6 
ノイズ無しの場合、相関値が全体的に高くなります。


実行例3(ノイズ無し、1軸、単純逆投影)
実行例2の条件に加えて、1軸で単純逆投影した3次元像同士で相関値を見てみます。
入力ファイル1(-i1)の画像

121p-shift-3d-s2.png
xy平面

121p-shift-3d1-s2.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

-56.3686 (13, 33, 32)

1660.77 (30, 31, 31)
47.9368
119.172

0.232757


入力ファイル2(-i2)の画像

121p-shift-3d-s1.png
xy平面

121p-shift-3d1-s1.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

-31.296 (50, 2, 16)

1728.22 (31, 31, 31)
47.9549
126.801

0.247658


出力結果
0.000000 1.000000 1 
0.006250 0.897277 13 
0.012500 0.751387 37 
0.018750 0.539286 57 
0.025000 0.557268 121 
0.031250 0.484304 189 
0.037500 0.203936 245 
0.043750 0.361753 321 
0.050000 0.389617 405 
0.056250 0.341257 605 
0.062500 0.284129 653 
0.068750 0.439640 765 
0.075000 0.371620 941 
0.081250 0.444694 1133 
0.087500 0.405355 1293 
0.093750 0.280151 1353 
0.100000 0.392380 1725 

-中略-

0.325000 0.049507 122 
0.331250 0.420605 102 
0.337500 0.405722 38 
0.343750 0.320780 6 

相関値が徐々に減少するデータが得られ、実行例1、2に比べてシンプルになりました。

実行例4(サイズ変更)
実行例1のデータをパディングでサイズ変更し、同じコマンドで実行します。
入力ファイル1(-i1)の画像

121p-shift-3d-1p.png
xy平面

121p-shift-3d1-1p.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

-2063.55 (32, 26, 21)

7073.81 (20, 19, 16)
118.203
718.111

2.83858


入力ファイル2(-i2)の画像

121p-shift-3d-2p.png
xy平面

121p-shift-3d1-2p.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

-2348.84 (32, 11, 14)

7828.59 (19, 19, 19)
112.176
724.952

2.86562


出力結果
0.000000 1.000000 1 
0.010000 0.950381 13 
0.020000 0.915184 37 
0.030000 0.579132 57 
0.040000 0.542596 121 
0.050000 0.554290 189 
0.060000 0.483626 245 
0.070000 0.570390 321 
0.080000 0.546605 405 
0.090000 0.502031 605 
0.100000 0.513241 653 
0.110000 0.510585 765 
0.120000 0.506603 941 
0.130000 0.463857 1133 
0.140000 0.433665 1293 
0.150000 0.379408 1353 
0.160000 0.261836 1725 
0.170000 0.272471 1917 
0.180000 0.220786 2141 
0.190000 0.095691 2237 
0.200000 0.135210 2495 

-中略-

0.320000 -0.052608 107 
0.330000 -0.287293 33 
0.340000 -0.261199 10 
0.350000 -1.000000 1 
相関値0.5を基準とすれば0.05[1/Å]で分解能は20[Å]となりますが、0.060000[1/Å]の相関値を許容すれば、
0.12[1/Å]までとして、分解能を8.3[Å]と考えられます。


実行例5(組み合わせを変更)
実行例1にて角度の組み合わせを変えて、同じコマンドで実行します。
入力ファイル1(-i1)の画像(ファイル:121p-shift.3dlst.zipの第2軸60x2n°のみで3次元像を作成)

121p-shift-3d-3.png
xy平面

121p-shift-3d1-3.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

-2123.89 (37, 39, 32)

7304.58 (32, 31, 28)
14.8745
477.13

0.931894


入力ファイル2(-i2)の画像(ファイル:121p-shift.3dlst.zipの第2軸60x(2n+1)°のみで3次元像を作成)

121p-shift-3d-4.png
xy平面

121p-shift-3d1-4.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

-2084.54 (41, 30, 30)

7772.35 (31, 31, 31)
14.8906
475.908

0.929507


出力結果
0.000000 1.000000 1 
0.006250 0.999612 13 
0.012500 0.999746 37 
0.018750 0.999239 57 
0.025000 0.997605 121 
0.031250 0.994594 189 
0.037500 0.978055 245 
0.043750 0.965901 321 
0.050000 0.965457 405 
0.056250 0.934140 605 
0.062500 0.905267 653 
0.068750 0.888274 765 
0.075000 0.900884 941 
0.081250 0.897323 1133 
0.087500 0.834834 1293 
0.093750 0.807904 1353 
0.100000 0.761212 1725 
0.106250 0.726165 1917 
0.112500 0.697379 2141 
0.118750 0.653729 2237 
0.125000 0.625764 2573 
0.131250 0.574149 2929 
0.137500 0.541115 3061 
0.143750 0.554302 3373 
0.150000 0.512534 3637 
0.156250 0.521077 4101 
0.162500 0.539936 4385 
0.168750 0.494051 4613 
0.175000 0.466709 5073 
0.181250 0.461219 5361 
0.187500 0.453959 5713 
0.193750 0.056334 6169 
0.200000 0.022271 6285 

-中略-

0.318750 -0.010797 242 
0.325000 -0.038431 122 
0.331250 -0.042839 102 
0.337500 0.150436 38 
0.343750 0.229217 6 
周波数0.162500[1/Å]まで相関値0.5を上回っているので、分解能が6.2[Å]であると判断します。
上記の組み合わせでは出来上がった3次元像同士がかなり近いものであることが分かります。


実行例6(ノイズ無しのデータ2)
ノイズを無しにして実行例4と同じ組み合わせ、同じコマンドで実行します。
入力ファイル1(-i1)の画像

121p-shift-3d-7.png
xy平面

121p-shift-3d1-7.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

-1987.69 (33, 16, 32)

7384.87 (38, 33, 33)
14.869
427.036

0.834054


入力ファイル2(-i2)の画像

121p-shift-3d-8.png
xy平面

121p-shift-3d1-8.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

-1987.97 (33, 16, 32)

7382.54 (38, 33, 33)
14.869
427.057

0.834097


出力結果
0.000000 1.000000 1 
0.006250 0.999993 13 
0.012500 0.999988 37 
0.018750 0.999935 57 
0.025000 0.999881 121 
0.031250 0.999710 189 
0.037500 0.999213 245 
0.043750 0.999239 321 
0.050000 0.999609 405 
0.056250 0.999581 605 
0.062500 0.999644 653 
0.068750 0.999753 765 
0.075000 0.999802 941 
0.081250 0.999861 1133 
0.087500 0.999876 1293 
0.093750 0.999912 1353 
0.100000 0.999920 1725 
0.106250 0.999922 1917 
0.112500 0.999956 2141 
0.118750 0.999893 2237 
0.125000 0.999881 2573 
0.131250 0.999857 2929 
0.137500 0.999872 3061 
0.143750 0.999881 3373 
0.150000 0.999928 3637 
0.156250 0.999965 4101 
0.162500 0.999961 4385 
0.168750 0.999995 4613 
0.175000 0.999998 5073 
0.181250 0.999998 5361 
0.187500 0.999988 5713 
0.193750 0.107706 6169 
0.200000 -0.020195 6285 

-中略-

0.325000 0.046650 122 
0.331250 0.047681 102 
0.337500 -0.032594 38 
0.343750 -0.495508 6 
ノイズ無しの場合は相関値がほとんど1に近い値となります。


実行例7(データ数を増やした場合)
データ数を増やして3次元像(ノイズ有り)を作り、同じコマンドで実行します。
入力ファイル1(-i1)の画像

121p-shift-3d-9.png
xy平面

121p-shift-3d1-9.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

-2997.82 (8, 12, 19)

12023.9 (31, 31, 28)
14.745
539.012

1.05276


入力ファイル2(-i2)の画像

121p-shift-3d-10.png
xy平面

121p-shift-3d1-10.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

-3052.44 (34, 34, 25)

11672.4 (31, 31, 28)
14.8271
527.599

1.03047


出力結果
0.000000 1.000000 1 
0.006250 0.999177 13 
0.012500 0.988864 37 
0.018750 0.984902 57 
0.025000 0.953270 121 
0.031250 0.942360 189 
0.037500 0.907998 245 
0.043750 0.893182 321 
0.050000 0.919577 405 
0.056250 0.822941 605 
0.062500 0.820877 653 
0.068750 0.797056 765 
0.075000 0.788068 941 
0.081250 0.765067 1133 
0.087500 0.703449 1293 
0.093750 0.683254 1353 
0.100000 0.655836 1725 
0.106250 0.666758 1917 
0.112500 0.610469 2141 
0.118750 0.607556 2237 
0.125000 0.572677 2573 
0.131250 0.549092 2929 
0.137500 0.507201 3061 
0.143750 0.467578 3373 
0.150000 0.435820 3637 
0.156250 0.471540 4101 
0.162500 0.471371 4385 
0.168750 0.505103 4613 
0.175000 0.456427 5073 
0.181250 0.460768 5361 
0.187500 0.453957 5713 
0.193750 0.494946 6169 
0.200000 0.030314 6285 
0.206250 0.007321 6468 

-中略-

0.325000 0.082301 122 
0.331250 -0.089649 102 
0.337500 -0.450711 38 
0.343750 0.206614 6 
データ量が増えれば、3次元像の質が良くなり高分解能な像を得ることができます。


実行例8(元PDBファイルを使用)
元PDBファイルから作成した参照画像にそれぞれノイズを加えて、実行します。


コマンド:
mrcImageNoiseAdd -i 121p-shift.ref3d -o Input1.3d -NS 1
mrcImageNoiseAdd -i 121p-shift.ref3d -o Input2.3d -NS 1
mrcImageFourierShellCorrelation -i1 Input1.3d -i2 Input2.3d


出力結果
0.000000 1.000000 1 
0.006250 0.968859 13 
0.012500 0.945843 37 
0.018750 0.893456 57 
0.025000 0.718383 121 
0.031250 0.338452 189 
0.037500 0.220720 245 
0.043750 0.173959 321 
0.050000 0.220791 405 
0.056250 0.067855 605 
0.062500 0.079261 653 
出力結果よりこのデータの分解能は40[Å]であるといえます。


FOMの計算
mrcImageFOMCalcを用いてFOMを計算します。各入力ファイルはFFTファイルなので、予めmrcImageFFTにて変換しておきます。


実行例1
入力ファイル1(-i)の画像

121p-shift-1-3dfft.png
mrcFFTExpression(m=1)で表示

最小

最大
平均値
標準偏差

標準誤差

0 (58, 11, 1)

20560.1 (33, 63, 1)
133.578
500.738

0.978004


入力ファイル2(-r)の画像

121p-shift-2-3dfft.png
mrcFFTExpression(m=1)で表示

最小

最大
平均値
標準偏差

標準誤差

0 (58, 7, 1)

20155.7 (34, 63, 62)
134.415
509.291

0.99471


コマンド: mrcImageFOMCalc -i1 121p-shift-1.3dfft -i2 121p-shift-2.3dfft -dR 0.006250


出力結果
##Sector index     0/    1        0.00       90.00       90.00
##      minR<        <=maxR           FOM           Num          XMax       Scaling
   0.0000e+00    6.2500e-03        0.8941            12    4.0774e+03    1.0000e+00
   6.2500e-03    1.2500e-02        0.7619            28    2.0580e+03    1.0000e+00
   1.2500e-02    1.8750e-02        0.7323            72    5.9033e+02    1.0000e+00
   1.8750e-02    2.5000e-02        0.6918           100    3.3402e+03    1.0000e+00
   2.5000e-02    3.1250e-02           nan           180    1.6649e+03    1.0000e+00
   3.1250e-02    3.7500e-02           nan           256    8.5474e+02    1.0000e+00
   3.7500e-02    4.3750e-02        0.5614           268    2.7986e+02    1.0000e+00
   4.3750e-02    5.0000e-02        0.5787           456    6.8568e+02    1.0000e+00
   5.0000e-02    5.6250e-02        0.5522           568    5.4674e+02    1.0000e+00
   5.6250e-02    6.2500e-02        0.5323           648    1.3708e+03    1.0000e+00
   6.2500e-02    6.8750e-02           nan           796    1.2311e+03    1.0000e+00
   6.8750e-02    7.5000e-02           nan           888    1.9878e+03    1.0000e+00
   7.5000e-02    8.1250e-02           nan          1144    1.9348e+03    1.0000e+00
   8.1250e-02    8.7500e-02           nan          1264    1.7693e+03    1.0000e+00
   8.7500e-02    9.3750e-02           nan          1452    1.1612e+04    1.0000e+00
   9.3750e-02    1.0000e-01           nan          1648    6.6062e+03    1.0000e+00
各周波数毎のFOMが出力されます。この場合の分解能は2.5000e-02[1/Å]から40[Å]となります。
-i のデータから振幅0の値を検出した場合はFOMはエラーとなります。


さらにSector毎のFOMを出力したい場合は-nSを使用します。
コマンド: mrcImageFOMCalc -i1 121p-shift-1.3dfft -i2 121p-shift-2.3dfft -dR 0.006250 -nS 2
出力結果
##Sector index     0/    2        0.00       45.00       45.00
##      minR<        <=maxR           FOM           Num          XMax       Scaling
   0.0000e+00    6.2500e-03        0.8481             8    4.0774e+03    1.0000e+00
   6.2500e-03    1.2500e-02        0.7645            24    2.0580e+03    1.0000e+00
   1.2500e-02    1.8750e-02        0.7503            56    5.9033e+02    1.0000e+00
   1.8750e-02    2.5000e-02        0.6469            68    3.3402e+03    1.0000e+00
   2.5000e-02    3.1250e-02           nan           124    1.6649e+03    1.0000e+00
   3.1250e-02    3.7500e-02           nan           188    8.5474e+02    1.0000e+00
   3.7500e-02    4.3750e-02        0.5261           184    2.7986e+02    1.0000e+00
   4.3750e-02    5.0000e-02        0.5638           332    6.8568e+02    1.0000e+00
   5.0000e-02    5.6250e-02        0.5289           400    5.4674e+02    1.0000e+00
   5.6250e-02    6.2500e-02        0.5044           456    1.3708e+03    1.0000e+00
   6.2500e-02    6.8750e-02           nan           564    1.2311e+03    1.0000e+00
   6.8750e-02    7.5000e-02           nan           640    1.9878e+03    1.0000e+00
   7.5000e-02    8.1250e-02           nan           796    1.9348e+03    1.0000e+00
   8.1250e-02    8.7500e-02           nan           888    1.7693e+03    1.0000e+00
   8.7500e-02    9.3750e-02           nan          1036    1.1612e+04    1.0000e+00
   9.3750e-02    1.0000e-01           nan          1160    6.6062e+03    1.0000e+00
##Sector index     1/    2       45.00       90.00       45.00
##      minR<        <=maxR           FOM           Num          XMax       Scaling
   0.0000e+00    6.2500e-03        0.9862             4    4.0774e+03    1.0000e+00
   6.2500e-03    1.2500e-02        0.7461             4    2.0580e+03    1.0000e+00
   1.2500e-02    1.8750e-02        0.6692            16    5.9033e+02    1.0000e+00
   1.8750e-02    2.5000e-02        0.7873            32    3.3402e+03    1.0000e+00
   2.5000e-02    3.1250e-02        0.6751            56    1.6649e+03    1.0000e+00
   3.1250e-02    3.7500e-02        0.6751            68    8.5474e+02    1.0000e+00
   3.7500e-02    4.3750e-02        0.6389            84    2.7986e+02    1.0000e+00
   4.3750e-02    5.0000e-02        0.6187           124    6.8568e+02    1.0000e+00
   5.0000e-02    5.6250e-02        0.6075           168    5.4674e+02    1.0000e+00
   5.6250e-02    6.2500e-02        0.5986           192    1.3708e+03    1.0000e+00
   6.2500e-02    6.8750e-02        0.6178           232    1.2311e+03    1.0000e+00
   6.8750e-02    7.5000e-02        0.6274           248    1.9878e+03    1.0000e+00
   7.5000e-02    8.1250e-02        0.5538           348    1.9348e+03    1.0000e+00
   8.1250e-02    8.7500e-02        0.5277           376    1.7693e+03    1.0000e+00
   8.7500e-02    9.3750e-02        0.5013           416    1.1612e+04    1.0000e+00
   9.3750e-02    1.0000e-01        0.4690           488    6.6062e+03    1.0000e+00
実行例2(ノイズ無しデータ)
ノイズ無しのデータを使用し、実行例1と同じコマンドで実行します
入力ファイル1(-i)の画像

121p-shift-5-3dfft.png
mrcFFTExpression(m=1)で表示

最小

最大
平均値
標準偏差

標準誤差

0 (56, 51, 0)

20588.5 (33, 63, 1)
116.462
464.422

0.907075


入力ファイル2(-r)の画像

121p-shift-6-3dfft.png
mrcFFTExpression(m=1)で表示

最小

最大
平均値
標準偏差

標準誤差

0 (39, 53, 1)

20086.5 (34, 63, 62)
115.283
471.146

0.920207


出力結果
##Sector index     0/    1        0.00       90.00       90.00
##      minR<        <=maxR           FOM           Num          XMax       Scaling
   0.0000e+00    6.2500e-03        0.8951            12    1.1528e+04    1.0000e+00
   6.2500e-03    1.2500e-02        0.7611            28    4.4962e+04    1.0000e+00
   1.2500e-02    1.8750e-02        0.7301            72    7.1173e+02    1.0000e+00
   1.8750e-02    2.5000e-02        0.6882           100    1.2338e+04    1.0000e+00
   2.5000e-02    3.1250e-02        0.6636           180    4.1844e+03    1.0000e+00
   3.1250e-02    3.7500e-02        0.6210           256    9.0759e+02    1.0000e+00
   3.7500e-02    4.3750e-02        0.5745           268    5.8970e+03    1.0000e+00
   4.3750e-02    5.0000e-02        0.5966           456    1.1883e+03    1.0000e+00
   5.0000e-02    5.6250e-02        0.5715           568    1.5978e+04    1.0000e+00
   5.6250e-02    6.2500e-02           nan           648    4.6943e+04    1.0000e+00
   6.2500e-02    6.8750e-02           nan           796    1.8246e+03    1.0000e+00
   6.8750e-02    7.5000e-02           nan           888    4.2966e+04    1.0000e+00
   7.5000e-02    8.1250e-02           nan          1144    2.7414e+05    1.0000e+00
   8.1250e-02    8.7500e-02           nan          1264    1.6437e+04    1.0000e+00
   8.7500e-02    9.3750e-02           nan          1452    6.9815e+03    1.0000e+00
   9.3750e-02    1.0000e-01           nan          1648    1.5821e+03    1.0000e+00


実行例3(データ量を増やして実行)
データ数を増やして3次元像(ノイズ有り)を作り、同じコマンドで実行します。
入力ファイル1(-i)の画像

121p-shift-9-3dfft.png
mrcFFTExpression(m=1)で表示

最小

最大
平均値
標準偏差

標準誤差

0 (53, 42, 9)

18662.1 (34, 63, 62)
244.337
516.318

1.00843


入力ファイル2(-r)の画像

121p-shift-10-3dfft.png
mrcFFTExpression(m=1)で表示

最小

最大
平均値
標準偏差

標準誤差

0 (55, 42, 1)

17705.3 (34, 63, 62)
243.474
503.237

0.982885


出力結果
sumPP is zero
##Sector index     0/    1        0.00       90.00       90.00
##      minR<        <=maxR           FOM           Num          XMax       Scaling
   0.0000e+00    6.2500e-03        0.9995            12    6.7197e+04    1.0000e+00
   6.2500e-03    1.2500e-02        0.9956            28    6.4271e+04    1.0000e+00
   1.2500e-02    1.8750e-02        0.9879            72    3.6622e+04    1.0000e+00
   1.8750e-02    2.5000e-02        0.9638           100    2.5987e+03    1.0000e+00
   2.5000e-02    3.1250e-02        0.9237           180    1.2138e+05    1.0000e+00
   3.1250e-02    3.7500e-02        0.8821           256    3.1826e+03    1.0000e+00
   3.7500e-02    4.3750e-02        0.8832           268    3.2913e+03    1.0000e+00
   4.3750e-02    5.0000e-02        0.8996           456    1.0771e+04    1.0000e+00
   5.0000e-02    5.6250e-02        0.8496           568    1.5466e+06    1.0000e+00
   5.6250e-02    6.2500e-02        0.8071           648    1.7452e+03    1.0000e+00
   6.2500e-02    6.8750e-02        0.8160           796    1.6423e+03    1.0000e+00
   6.8750e-02    7.5000e-02        0.7958           888    3.8389e+03    1.0000e+00
   7.5000e-02    8.1250e-02        0.7879          1144    5.5127e+04    1.0000e+00
   8.1250e-02    8.7500e-02        0.7522          1264    3.2747e+03    1.0000e+00
   8.7500e-02    9.3750e-02        0.7434          1452    5.9965e+03    1.0000e+00
   9.3750e-02    1.0000e-01        0.7422          1648    6.1985e+03    1.0000e+00
データ量を増やすことにより分解能が良くなりました。


繰り返し(精密化)

 出来上がった3次元像は参照像に依存してしまうので、参照像に近い構造になってしまうことが多いです。そこで、再構成した3次元像を新たな参照像として、再び3次元再構成を行います。以下の実行例では、make Again, make Allと入力すると3次元像(.3d)及び角度情報(.3dlst)のバックアップを残して3次元再構成行うMakefileを使って繰り返ししたときの例を挙げています。


実行例1(1軸回転)
第1軸のみの回転で繰り返したときの画像、角度の推移を観察します。
入力ファイルの画像(一部)
1WDC-Set0.png


こちらのMakefileを使用します。
最初の参照像である楕円体の長さを取得するためにこちらのPDBファイル(Target.pdbにリネーム)を使用します。
make First
と入力すると楕円体が作成されます。

Input-Ellipsoid1.png
xy平面

Input1-Ellipsoid1.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

0 (0, 0, 0)

1 (12, 18, 4)
0.122325
0.327661

0.00197


参照像の用意をして、下記のコマンドを繰り返します。
make All
make Again


実行結果(縦: xy, yz, zx平面)(横: 繰り返し順)
Outdata-Reconstrucion0.png
Outdata1-Reconstrucion0.png
Outdata2-Reconstrucion0.png


6回目の角度情報
Target-0-30-0.norfit XEYS 0.000000 270.000001 0.000000 3681107.000000
Target-0-15-0.norfit XEYS 0.000000 270.000001 0.000000 3755735.750000
Target-0-0-0.norfit XEYS 0.000000 270.000001 0.000000 3814621.500000
Target-0-75-0.norfit XEYS 0.000000 270.000001 0.000000 3691873.000000
Target-0-45-0.norfit XEYS 0.000000 270.000001 0.000000 3644171.000000
Target-0-60-0.norfit XEYS 0.000000 270.000001 0.000000 3660938.000000
Target-0-105-0.norfit XEYS 0.000000 270.000001 0.000000 3774433.500000
Target-0-120-0.norfit XEYS 0.000000 270.000001 0.000000 3818156.500000
Target-0-90-0.norfit XEYS 0.000000 270.000001 0.000000 3730982.500000
Target-0-165-0.norfit XEYS 0.000000 90.000003 0.000000 3930879.250000
Target-0-150-0.norfit XEYS 0.000000 90.000003 0.000000 3869756.500000
Target-0-135-0.norfit XEYS 0.000000 90.000003 0.000000 3664411.500000
Target-0-195-0.norfit XEYS 0.000000 90.000003 0.000000 3754095.250000
Target-0-180-0.norfit XEYS 0.000000 90.000003 0.000000 3812994.000000
Target-0-210-0.norfit XEYS 0.000000 90.000003 0.000000 3679465.000000
Target-0-225-0.norfit XEYS 0.000000 90.000003 0.000000 3644997.500000
Target-0-240-0.norfit XEYS 0.000000 90.000003 0.000000 3661764.000000
Target-0-255-0.norfit XEYS 0.000000 90.000003 0.000000 3692699.750000
Target-0-270-0.norfit XEYS 0.000000 90.000003 0.000000 3731809.500000
Target-0-300-0.norfit XEYS 0.000000 90.000003 0.000000 3818984.500000
Target-0-285-0.norfit XEYS 0.000000 90.000003 0.000000 3775260.000000
Target-0-315-0.norfit XEYS 0.000000 270.000001 0.000000 3663584.500000
Target-0-345-0.norfit XEYS 0.000000 270.000001 0.000000 3932506.500000
Target-0-330-0.norfit XEYS 0.000000 270.000001 0.000000 3868931.500000
今回は角度情報が偏ってしまいました。
これは向きによって長さが違う粒子は角度によって投影像の厚みが違うので、相関値が高くなる向きと低くなる向きがあるためです。


実行例2(相関値を正規化して角度情報を得る)
 実行例1は角度情報が偏ってしまったので、角度別で相関値を正規化して角度情報を得るようにします。


入力ファイル(1WDC)と参照ファイル(楕円体)の相関値の分布図(刻み幅3°(実行例の1/5)の場合)


下図において、相関値の高い点は白く、低い点は黒く表現されています。そのままでは90°付近で相関値が高くなっていることが分かります。

Fig-Correlation.png


こちらのMakefileを使用します。


入力ファイルの画像(一部)
1WDC-Set0.png


make Firstにて参照像を用意して、下記のコマンドを繰り返します。
make All
make Again


実行結果(縦: xy, yz, zx平面)(横: 繰り返し順)
Outdata-Reconstrucion1.png
Outdata1-Reconstrucion1.png
Outdata2-Reconstrucion1.png


6回目の角度情報
Target-0-30-0.norfit XEYS 0.000000 299.999995 0.000000 1.953890
Target-0-15-0.norfit XEYS 0.000000 135.000000 0.000000 2.705100
Target-0-0-0.norfit XEYS 0.000000 180.000005 0.000000 1.870280
Target-0-45-0.norfit XEYS 0.000000 299.999995 0.000000 1.852040
Target-0-60-0.norfit XEYS 0.000000 15.000000 0.000000 1.911640
Target-0-75-0.norfit XEYS 0.000000 15.000000 0.000000 1.758840
Target-0-90-0.norfit XEYS 0.000000 90.000003 0.000000 1.803610
Target-0-105-0.norfit XEYS 0.000000 90.000003 0.000000 2.192510
Target-0-120-0.norfit XEYS 0.000000 345.000013 0.000000 2.896550
Target-0-135-0.norfit XEYS 0.000000 329.999989 0.000000 3.039390
Target-0-165-0.norfit XEYS 0.000000 0.000000 0.000000 2.440050
Target-0-150-0.norfit XEYS 0.000000 45.000001 0.000000 2.951070
Target-0-180-0.norfit XEYS 0.000000 0.000000 0.000000 1.869720
Target-0-195-0.norfit XEYS 0.000000 314.999992 0.000000 2.703180
Target-0-210-0.norfit XEYS 0.000000 120.000003 0.000000 1.956380
Target-0-225-0.norfit XEYS 0.000000 120.000003 0.000000 1.854300
Target-0-240-0.norfit XEYS 0.000000 195.000002 0.000000 1.914940
Target-0-255-0.norfit XEYS 0.000000 195.000002 0.000000 1.761710
Target-0-285-0.norfit XEYS 0.000000 270.000001 0.000000 2.192290
Target-0-270-0.norfit XEYS 0.000000 270.000001 0.000000 1.803480
Target-0-300-0.norfit XEYS 0.000000 164.999994 0.000000 2.895370
Target-0-315-0.norfit XEYS 0.000000 149.999997 0.000000 3.039450
Target-0-330-0.norfit XEYS 0.000000 224.999996 0.000000 2.952120
Target-0-345-0.norfit XEYS 0.000000 180.000005 0.000000 2.439540
今回は角度の偏りが改善されました。


さらに繰り返し処理を続けるかどうかを判断します。判断要素の一つとして2つの3次元像間の差異であるRMSDを算出する方法があります。


1つ前のデータとのRMSD
1回目と2回目、2回目と3回目のように前のファイルとのRMSDを比較します。このデータが0に近づいている場合は繰り返し処理によってある3次元像に向かって収束していくと判断することができます。
RMSD: 547.007410
RMSD: 567.110716
RMSD: 431.109655
RMSD: 65.838763
RMSD: 0.003558
RMSD: 0.003634
3次元像が収束していくことが分かります。


元データとのRMSD
3次元像の概形が予め分かっている場合はその3次元像とのRMSDを比較することで、予想される形に近づいているかどうかが分かります。
今回はPDBファイルから画像を作成しているので、元になったPDBファイルとのmrcImageNormalizedSubtractionを使用してRMSDを確認します。
RMSD: 515.707013
RMSD: 656.529130
RMSD: 604.175586
RMSD: 609.944064
RMSD: 609.944059
RMSD: 609.944055
最初より元のデータから離れた位置に収束していくことが分かります。


以上により、繰り返しを続けると収束はしますが収束値が参照像から遠い位置になってしまうことが分かりました。


実行例3(2軸回転)
回転軸を2軸にした画像データについて繰り返します。
入力ファイルの画像(一部)
1WDC-Set4.png


こちらのMakefileを使用します。
最初の参照像である楕円体の長さを取得するためにこちらのPDBファイル(Target.pdbにリネーム)を使用します。
make First
と入力すると楕円体が作成されます。

Input-Ellipsoid1.png
xy平面

Input1-Ellipsoid1.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

0 (0, 0, 0)

1 (12, 18, 4)
0.122325
0.327661

0.00197


参照像の用意をして、下記のコマンドを繰り返します。
make All
make Again


実行結果(縦: xy, yz, zx平面)(横: 繰り返し順, 最後は19回目)
Outdata-Reconstrucion2.png
Outdata-Reconstrucion2-1.png
Outdata-Reconstrucion2-2.png


角度データ(19回目)
Target-150-0-0.norfit XEYS 164.999994 240.000007 0.000000 1.796530
Target-150-30-0.norfit XEYS 149.999997 90.000003 0.000000 1.934640
Target-150-60-0.norfit XEYS 135.000000 84.705882 0.000000 1.734710
Target-150-90-0.norfit XEYS 135.000000 84.705882 0.000000 1.470100
Target-150-120-0.norfit XEYS 135.000000 84.705882 0.000000 1.321540
Target-150-150-0.norfit XEYS 149.999997 90.000003 0.000000 1.233500
Target-150-180-0.norfit XEYS 164.999994 60.000002 0.000000 1.801630
Target-150-210-0.norfit XEYS 149.999997 270.000001 0.000000 1.932880
Target-150-240-0.norfit XEYS 135.000000 275.294108 0.000000 1.814660
Target-150-270-0.norfit XEYS 135.000000 275.294108 0.000000 1.332530
Target-150-300-0.norfit XEYS 135.000000 275.294108 0.000000 1.073540
Target-150-330-0.norfit XEYS 149.999997 270.000001 0.000000 1.234300
Target-165-0-0.norfit XEYS 0.000000 0.000000 0.000000 1.533300
Target-165-60-0.norfit XEYS 149.999997 90.000003 0.000000 1.665010
Target-165-120-0.norfit XEYS 149.999997 90.000003 0.000000 1.137490
Target-165-180-0.norfit XEYS 180.000005 0.000000 0.000000 1.470830
Target-165-240-0.norfit XEYS 149.999997 270.000001 0.000000 1.664480
Target-165-300-0.norfit XEYS 149.999997 270.000001 0.000000 1.138310
Target-180-0-0.norfit XEYS 0.000000 0.000000 0.000000 1.375370
相関値の正規化を行っても、90°や270°に角度が偏っています。これは現在の補間方法では90°, 270°の回転はデータの並び替えを行うだけなので、相関値が高くなる傾向にあるためです。


繰り返しを行った3次元像にてRMSDを確認します。
1つ前のデータとの差
RMSD: 567.401858
RMSD: 223.471765
RMSD: 136.002934
RMSD: 104.213992
RMSD: 99.276193
RMSD: 81.235616
RMSD: 72.781826
RMSD: 37.807798
RMSD: 40.190554
RMSD: 25.912553
RMSD: 28.266890
RMSD: 48.964325
RMSD: 24.416501
RMSD: 6.933764
RMSD: 28.922172
RMSD: 49.758301
RMSD: 20.544539
RMSD: 13.892774
RMSD: 0.005731
RMSD: 0.005868
今回は19回目で3次元像が収束することが分かりました。


元データとの差
RMSD: 538.478372
RMSD: 523.321680
RMSD: 522.227462
RMSD: 519.429214
RMSD: 522.026257
RMSD: 525.647559
RMSD: 525.275828
RMSD: 525.092464
RMSD: 525.879432
RMSD: 525.011802
RMSD: 524.915070
RMSD: 525.050318
RMSD: 524.163943
RMSD: 524.110758
RMSD: 523.810810
RMSD: 520.929283
RMSD: 521.477059
RMSD: 521.687431
RMSD: 521.687431
RMSD: 521.687431
1回目よりは元データに近づいています。


Chimeraで見たとき(黄: 今回のデータ(XEYS 0 165 0 で回転) 灰: 元データ)
Outdata-Reconstrucion2-3.png


実行例4(9割の画像を使用する)
実行例3の同じデータで3次元再構成時にランダムに1割の画像を除いて、9割の画像のみを使用して繰り返し処理を行います。


こちらのMakefileから下記の設定を変更して、実行例3と同様のコマンドで実行します。
# For Reduce List(range :0 <= p < 100)(if you wish no-reduce, set 0.)
#REDUCE_P=0
REDUCE_P=10


実行結果(縦: xy, yz, zx平面)(横: 繰り返し順, 最後は19回目)
Outdata-Reconstrucion5.png
Outdata-Reconstrucion5-1.png
Outdata-Reconstrucion5-2.png


角度データ(19回目)
Target-150-0-0.norfit XEYS 164.999994 0.000000 0.000000 2.389320
Target-150-30-0.norfit XEYS 149.999997 60.000002 0.000000 2.545610
Target-150-60-0.norfit XEYS 135.000000 84.705882 0.000000 1.862940
Target-150-90-0.norfit XEYS 135.000000 84.705882 0.000000 1.281240
Target-150-120-0.norfit XEYS 135.000000 105.882351 0.000000 1.204770
Target-150-150-0.norfit XEYS 149.999997 90.000003 0.000000 1.216310
Target-150-180-0.norfit XEYS 164.999994 180.000005 0.000000 2.407820
Target-150-210-0.norfit XEYS 149.999997 240.000007 0.000000 2.668580
Target-150-300-0.norfit XEYS 135.000000 275.294108 0.000000 1.454250
Target-150-270-0.norfit XEYS 135.000000 275.294108 0.000000 1.549620
Target-150-330-0.norfit XEYS 149.999997 270.000001 0.000000 1.310950
Target-165-60-0.norfit XEYS 149.999997 90.000003 0.000000 1.696540
Target-165-0-0.norfit XEYS 164.999994 0.000000 0.000000 2.158750
Target-165-120-0.norfit XEYS 149.999997 90.000003 0.000000 1.166300
Target-165-240-0.norfit XEYS 149.999997 270.000001 0.000000 1.806610
Target-165-180-0.norfit XEYS 164.999994 180.000005 0.000000 2.176190
Target-165-300-0.norfit XEYS 149.999997 270.000001 0.000000 1.259210
Target-180-0-0.norfit XEYS 180.000005 0.000000 0.000000 1.876040


1つ前のデータとの差
RMSD: 564.098758
RMSD: 257.637763
RMSD: 169.742732
RMSD: 160.556747
RMSD: 143.769057
RMSD: 174.668487
RMSD: 153.185453
RMSD: 162.771396
RMSD: 122.207516
RMSD: 105.951343
RMSD: 127.799045
RMSD: 121.928299
RMSD: 104.426414
RMSD: 114.302748
RMSD: 114.572529
RMSD: 112.830477
RMSD: 118.431069
RMSD: 108.212521
RMSD: 148.667602

-中略-

RMSD: 104.613123
RMSD: 113.626928
RMSD: 101.962068
組み合わせる画像をランダムに選択しているので収束しませんが、RMSDは100前後程度になっていきます。


元データとの差
RMSD: 533.516350
RMSD: 516.616030
RMSD: 519.646170
RMSD: 516.346402
RMSD: 512.998689
RMSD: 515.689826
RMSD: 516.409515
RMSD: 515.255053
RMSD: 508.724459
RMSD: 503.721011
RMSD: 507.040710
RMSD: 496.577798
RMSD: 498.416124
RMSD: 502.298715
RMSD: 502.197734
RMSD: 496.022619
RMSD: 507.389422
RMSD: 491.869366
RMSD: 498.907075

-中略-

RMSD: 484.548508
RMSD: 486.842538
RMSD: 482.121558
実行例3よりも元データに近づいています。


Chimeraで見たとき(黄: 今回のデータ(回転なし) 灰: 元データ)
Outdata-Reconstrucion3-3.png


実行例5(ランダムに選んだ角度と相関値を比べる)
実行例3と同じデータで3次元再構成時に1割の画像をmrcImageAutoRotationCorrelationで算出した角度とランダムに選んだ角度で相関値の高い方を使い、繰り返し処理を行います。


こちらのMakefileから下記の設定を変更して、実行例3と同様のコマンドで実行します。
# For Divide List(range: 0 <= p < 100)(if you wish no-divide, set 0.)
#DEVIDE_P=0
DEVIDE_P=10


実行結果(縦: xy, yz, zx平面)(横: 繰り返し順, 最後は19回目)
Outdata-Reconstrucion6.png
Outdata-Reconstrucion6-1.png
Outdata-Reconstrucion6-2.png


角度データ(19回目)
Target-150-0-0.norfit XEYS 149.999997 149.999997 0.000000 2.300740
Target-150-30-0.norfit XEYS 149.999997 30.000001 0.000000 2.431050
Target-150-60-0.norfit XEYS 135.000000 84.705882 0.000000 1.636070
Target-150-90-0.norfit XEYS 135.000000 84.705882 0.000000 1.450320
Target-150-150-0.norfit XEYS 149.999997 90.000003 0.000000 1.232890
Target-150-120-0.norfit XEYS 135.000000 84.705882 0.000000 1.410450
Target-150-180-0.norfit XEYS 149.999997 329.999989 0.000000 2.303910
Target-150-210-0.norfit XEYS 149.999997 209.999999 0.000000 2.433980
Target-150-240-0.norfit XEYS 135.000000 275.294108 0.000000 1.803010
Target-150-270-0.norfit XEYS 135.000000 275.294108 0.000000 1.192360
Target-150-300-0.norfit XEYS 135.000000 254.117653 0.000000 1.243570
Target-150-330-0.norfit XEYS 149.999997 270.000001 0.000000 1.231660
Target-165-0-0.norfit XEYS 164.999994 180.000005 0.000000 1.517570
Target-165-60-0.norfit XEYS 149.999997 90.000003 0.000000 1.667650
Target-165-120-0.norfit XEYS 149.999997 90.000003 0.000000 1.127130
Target-165-180-0.norfit XEYS 164.999994 0.000000 0.000000 1.513750
Target-165-240-0.norfit XEYS 149.999997 270.000001 0.000000 1.664980
Target-165-300-0.norfit XEYS 149.999997 270.000001 0.000000 1.125990
Target-180-0-0.norfit XEYS 164.999994 180.000005 0.000000 1.182420


1つ前のデータとの差
RMSD: 572.685338
RMSD: 278.182198
RMSD: 175.768057
RMSD: 154.092650
RMSD: 128.652331
RMSD: 121.546289
RMSD: 126.079368
RMSD: 127.159152
RMSD: 154.222825
RMSD: 121.672450
RMSD: 123.657899
RMSD: 117.301744
RMSD: 85.484044
RMSD: 103.563422
RMSD: 105.548709
RMSD: 91.374037
RMSD: 93.786824
RMSD: 123.300917
RMSD: 112.239494

-中略-

RMSD: 100.838843
RMSD: 93.041466
RMSD: 98.793842
今回もRMSDは100前後になっています。


元データとの差
RMSD: 544.124623
RMSD: 509.763484
RMSD: 523.297867
RMSD: 500.459333
RMSD: 487.751251
RMSD: 482.986359
RMSD: 482.223586
RMSD: 473.257372
RMSD: 478.452209
RMSD: 483.729519
RMSD: 479.557454
RMSD: 478.030872
RMSD: 481.589668
RMSD: 489.020393
RMSD: 484.662203
RMSD: 480.580931
RMSD: 481.110502
RMSD: 485.039342
RMSD: 483.957821

-中略-

RMSD: 484.834436
RMSD: 484.426158
RMSD: 486.746688
実行例4に比べ、少ない繰り返し回数で元データに近づいたデータが得られました。


Chimeraで見たとき(黄: 今回のデータ(XEYS 0 105 0 で回転) 灰: 元データ)
Outdata-Reconstrucion4-3.png
Chimeraでは実行例4の方が近いデータに見えます。


参考文献