フィラメントタンパク質複合体の解析

次に、フィラメント解析の現状の手順について記載した。

手順としては、先程のチュートリアルで示したものと同様である。しかし、入力するパラメータ等は異なる。

重要

負染色データを扱うための設定

常に、

invert:uncheck
xraypixel:unchek
ac:80

CTFの補正では、

lores:check

にチェックを入れる。

手順の概要を以下に示す。

// graphviz での作成の流れ

digraph G1 {

        graph [size="6,6"];
        node [shape=box];


    a [label="EMAN2の起動"];
    // b [label="データの取り込み"];
    c [label="電顕画像から粒子の抽出"];
    c1 [label="スタック画像の取り込み"];
    d [label="データのマニュアル補正"];
    e [label="データセットの編成"];
    e2 [label="",shape=circle];

    a-> c [label="orig_micrographs/*.dm3"];
    // b-> c [label="micrographs/*.hdf"];
    c -> c1 [label="*_helix_ptcl.hdf"];
    c1-> d [label="particles/*_helix_ptcl.hdf"];
    d -> e [label="particles/*_helix_ptcl_ctf_flip.hdf"];
    e -> e2 [dir=none];
    {rank=same; a; e1;}

    subgraph cluster1 {
        label = "Modeling";
            labelloc = "t";
            labeljust = "l";
            e1 [label="",shape=circle];
        f [label="2Dクラス分類",shape=doubleoctagon];
        g [label="クラス平均の取捨選択"];
        h [label="初期モデル作成"];
        f -> g [label="r2db#/classes*.hdf"];
        g -> h [label="r2db#/good_classes.hdf"];
        e1 -> f [label="sets/all_ctf_flip.lst"];
}
}

図 41 EMAN2 でのヘリックス解析の概要

データの準備

電顕画像の保存

まず、電顕で撮影を行った結果は、 dm3形式 で保存しておく。

注釈

保存するときのファイル形式について

tiff形式 で保存しておく場合だと、ヘッダー情報が欠落してしまうので、 DM3GATAN format で保存したほうが良さそう。 画像を確認する際には、 tif形式 のほうが扱いやすい。解析の際には、 dm3 が適している。なので、両方保存しておく。 保存方法は、 save assave display as で保存。詳細は、電顕マニュアルに記載した。

電顕写真の情報は、 GATAN micrographs で、 画像を右クリック ‣ Image Display Info より確認できる。

../_images/fig011.png

図 42 画像情報

電顕画像のフィルタリング

EMAN2 のチュートリアルでは、クライオデータを解析することを想定しているので、 電顕画像の処理に若干の違いが出る。

負染色像の観察する際には、原則ジャストフォーカスではなくアンダーフォーカス側で観 察するものである。また、 CTF 関数で最初の 0 点が 2nm になるのは defocus 値が 100kv で 1100nm 、 200kv で 1600nm で負染色方ではこれより小さい値で測定を行う。

我々は、アンダーフォーカス側に 500~1000nm 程度ずらした条件で観察を行った。 defocus 値が 500~1000nm の場合は、 2nm 以内なのでシグナルの反転は起こらないため CTF補正は行わない 。とされている。

しかし負染色データを単粒子解析する際には、電顕画像にCTF補正を行う必要があるみたい。 フィルタリング等に関しては、別に記載されているが、詳細な方法はよくわからない。 e2filtertool.py https://blake.bcm.edu/emanwiki/EMAN2/Programs/e2filtertool

EMAN2 の起動

プロジェクトマネージャーの起動

まず、 EMAN2 で電顕画像を処理するためにプロジエクトマネージャを起動する。

以下に示すように、解析する画像ファイルの入ったディレクトリで、 e2projectmanager.py と入力して、実行する。

$ e2projectmanager.py

すると、プロジエクトマネージャが起動する。

../_images/fig1-22.png

図 43 起動画面

../_images/fig1-32.png

図 44 プロジェクトマネージャー

パラメータの設定

起動したら、はじめにプロジエクトのパラメータを設定する必要がある。

../_images/fig1-42.png

図 45 起動

../_images/fig3-5.png

図 46 parameter

Project ‣ Edit Project をクリック。

実際に解析をする際には、 電顕のパラメータを入力。 電顕のパラメータとしては、球面収差補正の値 CS 、1ピクセルの値 Apixs 等が必要

パラメータとしては、

質量:1500kDa
CS:2.0
apixs:2.53
Voltage:120

ヒント

パラメータ値について

cs:(球面収差補正値)は、電顕固有のパラメータとなっているので常に 2.0
apix:40k で撮影した場合には、 apixs=2.53 となっている。
Voltage:120kV で撮影したので 120
質量:は画像パラメータではないようだが不明。仮に、一巻が400kDa程度として三巻がbox指定されるとして設定。

注釈

e2projectmanager.py のフローから外れた時

現状では、 e2helixboxer.py を使用すると e2projectmanager.py の流れから外れてしまう。 それ故、電顕画像一枚から粒子像を抽出した結果から初期モデルの構築を行っている。 画像の質、粒子の抽出の仕方にも依存してそう。

繊維像の抽出、スタック画像の作成 e2helixboxer.py

粒子の抽出、スタック画像の作成に関しては、プロジェクトマネージャーから e2boxer.py 実行するのではなく、 別でプログラムを呼び出して実行する。

  1. プログラムの起動

はじめに、繊維を抽出するプログラムである e2helixboxer.py を起動する。 起動は、電子顕微鏡写真の存在するディレクトリに新たにターミナルを開き、以下のコマンドを実行する。

$ e2helixboxer.py --gui orig_micrographs/*.dm3

また、以下のように実行することで、ディレクトリ内の電子顕微鏡画像を選択することも可能。

$ e2helixboxer.py --gui *.dm3
  1. 繊維の選択

電子顕微鏡画像より繊維を選択する。

../_images/fig3-8.png

図 47 e2helixboxer.py の実行画面

3つのウインドウ、 e2helixboxer , Current Helix , 画像 が現れる。

繊維を長方形で囲むことで選択される。選択すると選択したヘリックスは Current Helix に表示され、 e2helixboxer の表に Boxed Helices の数が増える。

その際の操作方法を以下に示す。

表 7 操作方法
boxの作成 左クリックしてドラック
boxの移動 boxの中央付近を左クリックしてドラック
boxの長さの変更 boxの端を左クリックしてドラック
boxの削除 Shiftを押しながら、左クリック

ヒント

e2helixboxer.py の使用方法

また、繊維を選択する際の長方形のサイズを指定することができる。プロトフィラメントの選択に使用する箱の幅( Box width )の検討する必要があるかも。 画像では Box Width100

  1. スタック画像の作成

boxを指定したら、各画像ファイル毎にスタック画像として保存を行う。 e2helixboxer のコントロール画面で File ‣ Save

表 8 Boxの保存の仕方
../_images/fig3-9-1.png

図 48 保存画面の呼び出し

../_images/fig3-9-2.png

図 49 保存画面

保存する際は、抽出したプロトフィラメントの周期パラメータ ( OverlapLengthWidth )を設定して保存を行う。 各パラメータは以下の定義となる。

../_images/e2helixboxer_diagram.png

図 50 e2helixboxer.py における粒子像抽出のパラメータ

保存することで、

  • 繊維像の座標 : (元画像ファイル名)_helix_ptcl_coords.txt
  • 各繊維像の画像 : (元画像ファイル名)_helix_helix_#.hdf
  • スタック画像 : (元画像ファイル名)_helix_ptcl.hdf

等がプロジェクトのルートディレクトリ保存される。

ヒント

e2helixboxer.py においてどのような「粒子」の単位で画像処理をしているのか

スタック画像ではよく分からないのでEMDBのXY投影像で比較すると particle length はほぼ3巻き(3ピッチ)で、 overlap は、2巻きであった。 e2helixboxer.py は、プロトマーではなく1巻きを粒子像として認識しているようであった

表 9 box 指定例
../_images/0-1.png

図 51 emdbのXY投影図。 Length , width のサイズで切り取ったもの

../_images/0-2.png

図 52 emdbのXY投影図。 overlap , width のサイズで切り取ったもの

  1. スタック画像の取り込み e2import.py

次に、本来のデータ解析の流れに戻すために、 再度、プロジェクトマネージャーを起動して helixboxer.py で作成した スタック画像を取り込む作業を行う。

Particles ‣ Import Tools ‣ Import Particle Stacks で 上で作成した複数の (元画像ファイル名)_helix_ptcl.hdf を取り込む。

../_images/fig3-8-1.png

図 53 スタック画像の取り込み

particles というフォルダができ、その下に (元画像ファイル名)_helix_ptcl.hdf がコピーされる。

データのマニュアルCTF補正 e2ctf.py

  1. CTF補正を行う

CTF ‣ Manual CTF processing -- > Automated Fitting (e2ctf)particles の下の (元画像ファイル名)_helix_ptcl.hdf を選択する。 オプションは、

ac:80

にしておくこと。

../_images/fig3-8-2.png

図 54 CTFの補正

この後、 CTF ‣ Visual CTF で微調したほうがいいかもしれない

  1. 構造因子の出力

CTF ‣ Manual CTF processing ‣ Generate Structure Factor (e2ctf) で、ファイルは上が選択されているのでこれはただ Launch をクリックすれば良い。

../_images/fig3-8-3.png

図 55 構造因子の出力

  1. CTF補正されたファイル出力

CTF ‣ Manual CTF processing ‣ Generate Output (e2ctf) で、ファイルは上が選択されているのでこれはただ Launch をクリックすれば良い。

../_images/fig3-8-4.png

図 56 CTF補正されたファイル出力

この操作により particle フォルダに (元画像ファイル名)_helix_ptcl_ctf_flip.hdf などが生成される。

データセットの編成 e2buildsets.py

Particle sets ‣ Built Particle Sets を選択する。

  • stack_filesparticles のディレクトリにあるスタック画像 (元画像ファイル名)_helix_ptcl_ctf_flip.hdf を選択する。

    • 最初に出てくるファイルブラウザだと *_ctf_flip.hdf が見えないのでファイルフィルタを外すと (元画像ファイル名)_helix_ptcl_ctf_flip.hdf が見える。
  • allparticles をチェックし、 excludebad チェックボックスを外す。
    • 顕微鏡写真を手動で評価するときに低い品質値を指定しといた場合、 minqualボックス5 を入力することもできます。これにより、品質が 5 未満に設定された画像が除外できる
  • セット名ボックスに任意の名前を入力する。ここでは、「 all 」と入力

  • Launch を押す。

../_images/fig3-8-6.png

図 57 スタック画像の選択

../_images/fig3-8-5.png

図 58 データセットの編成

これにより sets というフォルダでき、その下に all.lstall__ctf_flip.lstall__ctf_flip_small.lst などが生成される。 __ctf というリストがctf補正されたデータセットのようである。

注釈

本来のデータ解析の流れとの違い

スタック画像の取り込み、CTFデータ補正、データセットの編成は負染色データの場合、あまり意味が無いようにも思えるが このステップを順番に経ないと次の二次元クラス分類にいけない。

ヒント

画像が1枚だけの場合

画像が一枚だけの場合は、スタック画像の取り込み、CTFデータ補正、データセットの編成は省略していきなり 次の二次元クラス分類へ進める

二次元平均像の作成

いよいよ、二次元クラス分類を行う。

手順は、

2D Analysis ‣ Reference Free Class Averaging を選択する。

注釈

2D Analysis の計算方法について

helixboxer.py の出力のような汚いスタック画像をそのまま使用する際には

2D Analysis ‣ Bispectrum based Class Averaging

ではなく

2D Analysis ‣ Reference Free Class Averaging

を使用する。

../_images/fig3-8-7.png

また、パラメータについても以下のように設定する。

  • 入力値
input:sets/all__ctf_flip.lst
ncls:3220
nbasisfp:12 など
classaverager:mean
parallel:thread:8

他のオプション、 Launch のデフォルトは問題ないはずです

ヒント

二次元クラス分類について

このステップが最もエラーが出て途中でとまってしまう。

そのような場合は ncls を小さくしてみれば良い。ただし、あまり小さいと(例えば 10 未満)だと 三次元モデル作成がうまくいかない。

目安として一クラス平均の構成画像数が20以上500以下が推奨されている。

クラス平均の取捨選択

クラス平均のリファインメントをするために、

  • 不良粒子を取り除く
  • 良好な平均を選択する

を行い、データセットを再編成する。チュートリアルでのやり方と全く同じ。

  1. projectmanager.py 右上のフォルダアイコン logo のファイルブラウザーよりファイルを選択する。
  2. r2db_01 を参照して、 classes_08.hdf を選択する。( 08iter8 なため)
  3. Show Stack+ をクリックするとクラス平均が表示される。
  4. クラス平均のウィンドウを中クリックすると新たなウィンドウが出るので、 sets ボタンを押してから、 sets タブをクリックする。
  5. New をクリックして good と入力する。また、 good をクリックしてアクティブにしておく。良いと思うクラス平均をクリックして選択する。選択すると青(もしくは緑)にマークされる。
  6. 右上の Save ボタンをクリックして good_classes.hdf として保存して、ウィンドウを閉じる。
../_images/fig3-8-8.png

図 59 クラス平均の取捨選択

../_images/fig3-8-9.png

図 60 選択したデータセットの保存

スタック画像のクラス平均が出力される。その中の一つを中クリックすると新たなウィンドウ e2projectmanager.py が出る。

初期モデルの作成

クラス平均のリファインメントができたので、この二次元画像をもとに初期モデルを作成する。

手順は、

Initial Model ‣ Make Initial Model を選択する。

以下のパラメータを入力して、 Launch を押す。

../_images/fig3-8-11.png

図 61 設定

  • 入力値
input:good_classes.hdf
sym Sym Number:d 1
iterations:8
tries:10
randorient:: checkなし
shrink:2
parallel:thread:8 (PCのthreadの数)

他のオプションにはデフォルト値を使用

注釈

このフィラメントの対称性は、2面回転対称なので軸対称性は D1

最適な初期モデルの選択

初期モデルの作成が終了すると、 initial_models というディレクトリーができるので最適な初期モデルの選択をする。

プロジェクトマネージャーウィンドウの右上のフォルダアイコンのファイルブラウザーよりファイルを選択する。

ファイルには、 model_NN_MM というファイルが確認できる。( N :プログラムの実行回数、 M :試行回数)

チュートリアルでは、10回の試行をしたので10個の初期モデルが生成している。 その中から、最適な初期モデルを以下の3つの観点から選ぶ。

  1. まず、 model_NN_MM.aptcle.hdf を確認する
  2. 次に、 model_NN_MM.proj.hdf を確認する
  3. 最後に、 model_NN_MM.hdf を確認する

これ以降の流れ

  1. データセットの再編成
  2. 3次元モデルの精密化(1回目)
  3. 3次元モデルの精密化(2回目)

などなど