.. DC327 .. |logo| image:: folder_icon.png ================================== フィラメントタンパク質複合体の解析 ================================== 次に、フィラメント解析の現状の手順について記載した。 手順としては、先程のチュートリアルで示したものと同様である。しかし、入力するパラメータ等は異なる。 .. important:: 負染色データを扱うための設定 常に、 :``invert``: : ``uncheck`` :``xraypixel``: : ``unchek`` :``ac``: : ``80`` CTFの補正では、 :``lores``: : ``check`` にチェックを入れる。 手順の概要を以下に示す。 .. graphviz:: :caption: :program:`EMAN2` でのヘリックス解析の概要 // 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"]; } } データの準備 ------------- 電顕画像の保存 ~~~~~~~~~~~~~~~~~~~~~ まず、電顕で撮影を行った結果は、 :file:`dm3形式` で保存しておく。 .. note:: 保存するときのファイル形式について :file:`tiff形式` で保存しておく場合だと、ヘッダー情報が欠落してしまうので、 :file:`DM3` 、:file:`GATAN format` で保存したほうが良さそう。 画像を確認する際には、 :file:`tif形式` のほうが扱いやすい。解析の際には、 :file:`dm3` が適している。なので、両方保存しておく。 保存方法は、 ``save as`` と ``save display as`` で保存。詳細は、電顕マニュアルに記載した。 電顕写真の情報は、 :program:`GATAN micrographs` で、 :menuselection:`画像を右クリック --> Image Display Info` より確認できる。 .. figure:: fig01.png :scale: 40 画像情報 電顕画像のフィルタリング ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :program:`EMAN2` のチュートリアルでは、クライオデータを解析することを想定しているので、 電顕画像の処理に若干の違いが出る。 負染色像の観察する際には、原則ジャストフォーカスではなくアンダーフォーカス側で観 察するものである。また、 CTF 関数で最初の 0 点が 2nm になるのは ``defocus`` 値が 100kv で 1100nm 、 200kv で 1600nm で負染色方ではこれより小さい値で測定を行う。 我々は、アンダーフォーカス側に 500~1000nm 程度ずらした条件で観察を行った。 ``defocus`` 値が 500~1000nm の場合は、 2nm 以内なのでシグナルの反転は起こらないため **CTF補正は行わない** 。とされている。 しかし負染色データを単粒子解析する際には、電顕画像にCTF補正を行う必要があるみたい。 フィルタリング等に関しては、別に記載されているが、詳細な方法はよくわからない。 :program:`e2filtertool.py` https://blake.bcm.edu/emanwiki/EMAN2/Programs/e2filtertool :program:`EMAN2` の起動 ------------------------- プロジェクトマネージャーの起動 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ まず、 :program:`EMAN2` で電顕画像を処理するためにプロジエクトマネージャを起動する。 以下に示すように、解析する画像ファイルの入ったディレクトリで、 :command:`e2projectmanager.py` と入力して、実行する。 .. code-block:: bash $ e2projectmanager.py すると、プロジエクトマネージャが起動する。 .. list-table:: * - .. figure:: fig1-2.png :width: 300 起動画面 - .. figure:: fig1-3.png :width: 300 プロジェクトマネージャー パラメータの設定 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 起動したら、はじめにプロジエクトのパラメータを設定する必要がある。 .. list-table:: :widths: 2 4 * - .. figure:: fig1-4.png :width: 200 起動 - .. figure:: fig3-5.png :width: 400 parameter :menuselection:`Project --> Edit Project` をクリック。 実際に解析をする際には、 電顕のパラメータを入力。 電顕のパラメータとしては、球面収差補正の値 ``CS`` 、1ピクセルの値 ``Apixs`` 等が必要 パラメータとしては、 :``質量``: : ``1500kDa`` :``CS``: : ``2.0`` :``apixs``: : ``2.53`` :``Voltage``: : ``120`` .. hint:: パラメータ値について :``cs``: (球面収差補正値)は、電顕固有のパラメータとなっているので常に ``2.0`` 。 :``apix``: ``40k`` で撮影した場合には、 ``apixs=2.53`` となっている。 :``Voltage``: ``120kV`` で撮影したので ``120`` :``質量``: は画像パラメータではないようだが不明。仮に、一巻が400kDa程度として三巻がbox指定されるとして設定。 .. note:: :program:`e2projectmanager.py` のフローから外れた時 現状では、 :program:`e2helixboxer.py` を使用すると :program:`e2projectmanager.py` の流れから外れてしまう。 それ故、電顕画像一枚から粒子像を抽出した結果から初期モデルの構築を行っている。 画像の質、粒子の抽出の仕方にも依存してそう。 繊維像の抽出、スタック画像の作成 :program:`e2helixboxer.py` ------------------------------------------------------------ 粒子の抽出、スタック画像の作成に関しては、プロジェクトマネージャーから :program:`e2boxer.py` 実行するのではなく、 別でプログラムを呼び出して実行する。 1. プログラムの起動 はじめに、繊維を抽出するプログラムである :program:`e2helixboxer.py` を起動する。 起動は、電子顕微鏡写真の存在するディレクトリに新たにターミナルを開き、以下のコマンドを実行する。 .. code-block:: bash $ e2helixboxer.py --gui orig_micrographs/*.dm3 また、以下のように実行することで、ディレクトリ内の電子顕微鏡画像を選択することも可能。 .. code-block:: bash $ e2helixboxer.py --gui *.dm3 2. 繊維の選択 電子顕微鏡画像より繊維を選択する。 .. figure:: fig3-8.png :width: 500 :program:`e2helixboxer.py` の実行画面 3つのウインドウ、 ``e2helixboxer`` , ``Current Helix`` , ``画像`` が現れる。 繊維を長方形で囲むことで選択される。選択すると選択したヘリックスは ``Current Helix`` に表示され、 ``e2helixboxer`` の表に ``Boxed Helices`` の数が増える。 その際の操作方法を以下に示す。 .. csv-table:: 操作方法 "boxの作成","左クリックしてドラック" "boxの移動","boxの中央付近を左クリックしてドラック" "boxの長さの変更","boxの端を左クリックしてドラック" "boxの削除","Shiftを押しながら、左クリック" .. hint:: :program:`e2helixboxer.py` の使用方法 また、繊維を選択する際の長方形のサイズを指定することができる。プロトフィラメントの選択に使用する箱の幅( ``Box width`` )の検討する必要があるかも。 画像では ``Box Width`` は ``100`` 。 3. スタック画像の作成 boxを指定したら、各画像ファイル毎にスタック画像として保存を行う。 ``e2helixboxer`` のコントロール画面で :menuselection:`File --> Save` .. list-table:: Boxの保存の仕方 * - .. figure:: fig3-9-1.png :width: 200 保存画面の呼び出し - .. figure:: fig3-9-2.png :width: 200 保存画面 保存する際は、抽出したプロトフィラメントの周期パラメータ ( ``Overlap`` 、 ``Length`` 、 ``Width`` )を設定して保存を行う。 各パラメータは以下の定義となる。 .. figure:: e2helixboxer_diagram.png :width: 300 :name: @h-boxer :program:`e2helixboxer.py` における粒子像抽出のパラメータ https://blake.bcm.edu/emanwiki/EMAN2/Programs/e2helixboxer 保存することで、 * 繊維像の座標 : :file:`(元画像ファイル名)_helix_ptcl_coords.txt` * 各繊維像の画像 : :file:`(元画像ファイル名)_helix_helix_#.hdf` * スタック画像 : :file:`(元画像ファイル名)_helix_ptcl.hdf` 等がプロジェクトのルートディレクトリ保存される。 .. hint:: :program:`e2helixboxer.py` においてどのような「粒子」の単位で画像処理をしているのか スタック画像ではよく分からないのでEMDBのXY投影像で比較すると ``particle length`` はほぼ3巻き(3ピッチ)で、 ``overlap`` は、2巻きであった。 :program:`e2helixboxer.py` は、プロトマーではなく1巻きを粒子像として認識しているようであった .. list-table:: ``box`` 指定例 * - .. figure:: 0-1.png :width: 150 emdbのXY投影図。 ``Length`` , ``width`` のサイズで切り取ったもの - .. figure:: 0-2.png :width: 150 emdbのXY投影図。 ``overlap`` , ``width`` のサイズで切り取ったもの 4. スタック画像の取り込み :program:`e2import.py` 次に、本来のデータ解析の流れに戻すために、 再度、プロジェクトマネージャーを起動して :program:`helixboxer.py` で作成した スタック画像を取り込む作業を行う。 :menuselection:`Particles --> Import Tools --> Import Particle Stacks` で 上で作成した複数の :file:`(元画像ファイル名)_helix_ptcl.hdf` を取り込む。 .. figure:: fig3-8-1.png :height: 300 スタック画像の取り込み :file:`particles` というフォルダができ、その下に :file:`(元画像ファイル名)_helix_ptcl.hdf` がコピーされる。 データのマニュアルCTF補正 :program:`e2ctf.py` ---------------------------------------------- 1. CTF補正を行う :menuselection:`CTF --> Manual CTF processing -- > Automated Fitting (e2ctf)` で :file:`particles` の下の :file:`(元画像ファイル名)_helix_ptcl.hdf` を選択する。 オプションは、 :ac: ``80`` にしておくこと。 .. figure:: fig3-8-2.png :height: 300 CTFの補正 この後、 :menuselection:`CTF --> Visual CTF` で微調したほうがいいかもしれない 2. 構造因子の出力 :menuselection:`CTF --> Manual CTF processing --> Generate Structure Factor (e2ctf)` で、ファイルは上が選択されているのでこれはただ :guilabel:`Launch` をクリックすれば良い。 .. figure:: fig3-8-3.png :height: 300 構造因子の出力 3. CTF補正されたファイル出力 :menuselection:`CTF --> Manual CTF processing --> Generate Output (e2ctf)` で、ファイルは上が選択されているのでこれはただ :guilabel:`Launch` をクリックすれば良い。 .. figure:: fig3-8-4.png :height: 300 CTF補正されたファイル出力 この操作により :file:`particle` フォルダに :file:`(元画像ファイル名)_helix_ptcl_ctf_flip.hdf` などが生成される。 データセットの編成 :program:`e2buildsets.py` -------------------------------------------- :menuselection:`Particle sets --> Built Particle Sets` を選択する。 * :guilabel:`stack_files` で :file:`particles` のディレクトリにあるスタック画像 :file:`(元画像ファイル名)_helix_ptcl_ctf_flip.hdf` を選択する。 - 最初に出てくるファイルブラウザだと :file:`*_ctf_flip.hdf` が見えないのでファイルフィルタを外すと :file:`(元画像ファイル名)_helix_ptcl_ctf_flip.hdf` が見える。 * ``allparticles`` をチェックし、 ``excludebad`` チェックボックスを外す。 - 顕微鏡写真を手動で評価するときに低い品質値を指定しといた場合、 ``minqualボックス`` に ``5`` を入力することもできます。これにより、品質が ``5`` 未満に設定された画像が除外できる * セット名ボックスに任意の名前を入力する。ここでは、「 ``all`` 」と入力 * :guilabel:`Launch` を押す。 .. list-table:: * - .. figure:: fig3-8-6.png :height: 200 スタック画像の選択 - .. figure:: fig3-8-5.png :height: 200 データセットの編成 これにより :file:`sets` というフォルダでき、その下に :file:`all.lst` 、 :file:`all__ctf_flip.lst` 、 :file:`all__ctf_flip_small.lst` などが生成される。 :file:`__ctf` というリストがctf補正されたデータセットのようである。 .. note:: 本来のデータ解析の流れとの違い スタック画像の取り込み、CTFデータ補正、データセットの編成は負染色データの場合、あまり意味が無いようにも思えるが このステップを順番に経ないと次の二次元クラス分類にいけない。 .. hint:: 画像が1枚だけの場合 画像が一枚だけの場合は、スタック画像の取り込み、CTFデータ補正、データセットの編成は省略していきなり 次の二次元クラス分類へ進める 二次元平均像の作成 -------------------------- いよいよ、二次元クラス分類を行う。 手順は、 :menuselection:`2D Analysis --> Reference Free Class Averaging` を選択する。 .. note:: :menuselection:`2D Analysis` の計算方法について :program:`helixboxer.py` の出力のような汚いスタック画像をそのまま使用する際には :menuselection:`2D Analysis --> Bispectrum based Class Averaging` ではなく :menuselection:`2D Analysis --> Reference Free Class Averaging` を使用する。 .. figure:: fig3-8-7.png :width: 500 また、パラメータについても以下のように設定する。 * 入力値 :``input``: : :file:`sets/all__ctf_flip.lst` :``ncls``: : ``32`` 〜 ``20`` :``nbasisfp``: : ``12`` など :``classaverager``: : ``mean`` :``parallel``: ``thread:8`` 他のオプション、 :guilabel:`Launch` のデフォルトは問題ないはずです .. hint:: 二次元クラス分類について このステップが最もエラーが出て途中でとまってしまう。 そのような場合は ``ncls`` を小さくしてみれば良い。ただし、あまり小さいと(例えば ``10`` 未満)だと 三次元モデル作成がうまくいかない。 目安として一クラス平均の構成画像数が20以上500以下が推奨されている。 クラス平均の取捨選択 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ クラス平均のリファインメントをするために、 * 不良粒子を取り除く * 良好な平均を選択する を行い、データセットを再編成する。チュートリアルでのやり方と全く同じ。 1. :program:`projectmanager.py` 右上のフォルダアイコン |logo| のファイルブラウザーよりファイルを選択する。 2. :file:`r2db_01` を参照して、 :file:`classes_08.hdf` を選択する。( ``08`` は ``iter`` が ``8`` なため) 3. :guilabel:`Show Stack+` をクリックするとクラス平均が表示される。 4. クラス平均のウィンドウを中クリックすると新たなウィンドウが出るので、 :guilabel:`sets` ボタンを押してから、 :guilabel:`sets` タブをクリックする。 5. :guilabel:`New` をクリックして ``good`` と入力する。また、 :guilabel:`good` をクリックしてアクティブにしておく。良いと思うクラス平均をクリックして選択する。選択すると青(もしくは緑)にマークされる。 6. 右上の :guilabel:`Save` ボタンをクリックして :file:`good_classes.hdf` として保存して、ウィンドウを閉じる。 .. list-table:: :widths: 6 4 * - .. figure:: fig3-8-8.png :width: 350 クラス平均の取捨選択 - .. figure:: fig3-8-9.png :width: 200 選択したデータセットの保存 スタック画像のクラス平均が出力される。その中の一つを中クリックすると新たなウィンドウ :guilabel:`e2projectmanager.py` が出る。 初期モデルの作成 ~~~~~~~~~~~~~~~~~~~~~~~~~~ クラス平均のリファインメントができたので、この二次元画像をもとに初期モデルを作成する。 手順は、 :menuselection:`Initial Model --> Make Initial Model` を選択する。 以下のパラメータを入力して、 :guilabel:`Launch` を押す。 .. figure:: fig3-8-11.png :height: 300 設定 * 入力値 :``input``: : :file:`good_classes.hdf` :``sym`` ``Sym Number``: : ``d`` ``1`` :``iterations``: : ``8`` :``tries``: : ``10`` :``randorient``: : checkなし :``shrink``: : ``2`` :``parallel``: : ``thread:8`` (PCのthreadの数) 他のオプションにはデフォルト値を使用 .. note:: このフィラメントの対称性は、2面回転対称なので軸対称性は ``D1`` 最適な初期モデルの選択 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 初期モデルの作成が終了すると、 :file:`initial_models` というディレクトリーができるので最適な初期モデルの選択をする。 プロジェクトマネージャーウィンドウの右上のフォルダアイコンのファイルブラウザーよりファイルを選択する。 ファイルには、 :file:`model_NN_MM` というファイルが確認できる。( ``N`` :プログラムの実行回数、 ``M`` :試行回数) チュートリアルでは、10回の試行をしたので10個の初期モデルが生成している。 その中から、最適な初期モデルを以下の3つの観点から選ぶ。 1. まず、 :file:`model_NN_MM.aptcle.hdf` を確認する 2. 次に、 :file:`model_NN_MM.proj.hdf` を確認する 3. 最後に、 :file:`model_NN_MM.hdf` を確認する これ以降の流れ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. データセットの再編成 2. 3次元モデルの精密化(1回目) 3. 3次元モデルの精密化(2回目) などなど .. raw:: latex \clearpage