単粒子解析

提供: Eospedia
2014年4月7日 (月) 02:43時点におけるKinoshita (トーク | 投稿記録)による版

移動: 案内検索

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

2次元単粒子解析

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

3次元単粒子解析

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

ROI(粒子画像の抽出)

電子顕微鏡画像の前処理

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


1. 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


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

 Display2を使用して、粒子部分をROIファイルとして切り出します。


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


参照画像の作成

参照画像の準備(mrcImageModelCreate, pdb2mrc etc.)

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


3次元の概形が分かっている場合
 概形が分かっている場合はその形に近い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


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


コマンド mrcImageModelCreate -o Model-ellipsoidal.ref3d -m 7 -nx 20 -ny 20 -nz 20 -lx 1 -ly 1 -lz 1


Model-ellipsoidal.png
xy平面

Model-ellipsoidal1.png
yz平面

最小

最大
平均値
標準偏差

標準誤差

0 (0, 0, 0)

2 (10, 10, 1)
0.38865
0.608959

0.00680837


3次元再構成

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

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

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


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

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


例. 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


粒子画像の再調整

 参照投影像が用意できたら、粒子画像と参照投影像を比較しやすくするための処理を行います。


1. Windowing
切り出した粒子画像の端のノイズを除去します。


Input-121p-shiftr-roi.png

最小

最大
平均値
標準偏差

標準誤差

-461.072 (17, 21, 0)

1098.8 (10, 13, 0)
28.9941
317.641

13.5938


今回は横:90%, 縦95%のWindowingを行います。
コマンド: 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


2. パディング
粒子画像のサイズを参照投影像のサイズに合わせます。
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ファイルにWindowing、パディングの処理を行った.padファイルが作成されます。


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

 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-0-0.fit YOYS 0.000000 360.000010 0.000000 2782847.500000
121p-shift-noise-0-180-0.fit YOYS 149.999997 30.000001 0.000000 2797722.500000
121p-shift-noise-0-120-0.fit YOYS 0.000000 120.000003 0.000000 2761359.500000
121p-shift-noise-0-300-0.fit YOYS 0.000000 299.999995 0.000000 2657562.500000
121p-shift-noise-0-60-0.fit YOYS 0.000000 60.000002 0.000000 2622117.250000

-中略-

121p-shift-noise-60-120-0.fit YOYS 60.000002 120.000003 0.000000 2723655.000000
121p-shift-noise-60-240-0.fit YOYS 60.000002 240.000007 0.000000 2573666.750000
121p-shift-noise-60-300-0.fit YOYS 60.000002 299.999995 0.000000 2794947.500000
121p-shift-noise-60-60-0.fit YOYS 60.000002 60.000002 0.000000 2802267.000000


3次元像を再構成する

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


121p-shift-noise-0-0-0.fit YOYS 0.000000 360.000010 0.000000 2782847.500000
121p-shift-noise-0-180-0.fit YOYS 149.999997 30.000001 0.000000 2797722.500000
121p-shift-noise-0-120-0.fit YOYS 0.000000 120.000003 0.000000 2761359.500000
121p-shift-noise-0-300-0.fit YOYS 0.000000 299.999995 0.000000 2657562.500000
121p-shift-noise-0-60-0.fit YOYS 0.000000 60.000002 0.000000 2622117.250000

-中略-

121p-shift-noise-60-120-0.fit YOYS 60.000002 120.000003 0.000000 2723655.000000
121p-shift-noise-60-240-0.fit YOYS 60.000002 240.000007 0.000000 2573666.750000
121p-shift-noise-60-300-0.fit YOYS 60.000002 299.999995 0.000000 2794947.500000
121p-shift-noise-60-60-0.fit YOYS 60.000002 60.000002 0.000000 2802267.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次元像の分解能・質の確認

 出来上がった3次元像を参照像と比較して、分解能や質を確認します。

主に使用するコマンド
mrcImageFourierShellCorrelation

mrcImageFOMCalc


繰り返し(精密化)

出来上がった3次元像を新たな参照像として、再び3次元再構成を行います。