「RELION3.1チュートリアル」の版間の差分

提供: Eospedia
移動: 案内検索
 
行121: 行121:
  
 
[[File:relion31-img002.png|400px]]
 
[[File:relion31-img002.png|400px]]
 +
 +
 +
※ 以下作成中... (地味に大変な作業なので時間がかかります。)

2019年10月19日 (土) 07:25時点における最新版

前書き

  • 本ドキュメントは、RELION3.1のチュートリアルを日本語訳し、図や補足説明などを追加して充実化したものです。
  • 誤訳等がある場合には、ご連絡いただけますと幸いです。少しずつ、良いものにしたいと思います。
  • ※ 記号で始まるところは、日本語訳に伴って追加した注釈、補足です。


実行環境

Dockerを使用しています。

Dockerのホストマシン

  • Ubuntu 18.04.3 LTS
  • 3.2 GHz Intel Core i7-8700 (6core/12thread)
  • 64 GB 2133 MHz DDR4
  • NVIDIA GeForce RTX2080Ti 11 GB x 2台
    • Driverバージョン 430.50
    • CUDAバージョン 10.1

Docker

  • Docker Engine - Community 19.03.2
  • NVIDIA Container Toolkit 1.0.5-1

Dockerイメージ

RELION

  • ver3.1β (commit b86482)


1. What's new in release 3.1? (RELION 3.1の新機能)

1.1 Aberration corrections and optics groups (収差補正とオプティクスグループ)

RELION-3.1で追加された主な新機能の1つとして、データに存在する高次収差の補正があります。RELION-3.0で既に実装されているビームティルト補正に加え、RELION-3.1では3次(trefoil)および4次(tetrafoil)の収差の推定と補正が可能です。また、装置の公称球面収差(nominal Cs)からのズレも推定、補正できます。詳しい話は文献を参照下さい( https://www.biorxiv.org/content/10.1101/798066v1 )。

収差推定に用いる情報は、複数の画像から切り出した単粒子画像達から得ます。ゼルニケ係数の異なる複数のデータセット(※)を合わせて使えるように、RELION-3.1ではオプティクスグループ(optics groups)という新しい概念を導入しました。(※ ゼルニケ係数とは各収差を特徴づける数値のこと。ゼルニケ係数が異なるデータセットは、つまり収差の程度が異なる。) オプティクスグループは、ムービー、画像、または単粒子の情報を記述したSTARファイルの冒頭の data_optics というテーブルで定義されています。data_opticsテーブルに続き、data_movies, data_micrographs もしくは data_particles というテーブルが定義されています。後者のテーブルは既存のRELIONのものと同様ですが、rlnOpticsGroupというカラムが新たに追加されています(このカラムはdata_opticsテーブルにも存在します)。data_opticsテーブルでは、各オプティクスグループごとに、rlnVoltageやrlnSphericalAberrationといった既存のCTFパラメータに加えて、新たに追加されたrlnOddZernikeとrlnEvenZernikeが記述されています。こうすることで、data_movies, data_micrographs, data_particlesにおいて、各データごとにいちいちそれらパラメータを書かなくて済むわけです。

高次収差の推定と補正を行うプログラムは、参照像と単粒子画像(グループ単位)の間の(異方的な)倍率誤差を補正することにも使えます。異方的倍率誤差の補正だけでなく、異なる電顕で収集したデータ同士を一緒に解析する場合にも便利です。

また、RELION-3.1では、2D/3Dクラス分類および3Dリファインメントを行うrelion_refineが、ボックスサイズ(※単粒子画像のピクセル数)およびピクセルサイズの異なる単粒子画像を入力として処理できるようになっています。先程言及した倍率誤差の補正処理が、公称倍率の誤差に由来する小さな倍率誤差の補正を行ってくれます。出力結果のボックスサイズとピクセルサイズは、参照像のものに揃えられます(2Dクラス分類の場合は最初のオプティクスグループに揃えられます)。クラス分類やリファインメントを行う場合は、出力結果のスケールが所望のものになるかどうか確認してから実行しましょう!

古いバージョンのRELIONとRELION-3.1の互換性について

古いバージョンのRELIONにより生成されたSTARファイルを読み込むと、RELION-3.1はそれを自動でRELION-3.1形式のSTARファイルに変換しようとしてくれます。それゆえ、古いバージョンのRELIONプロジェクトをRELION-3.1へ移行することは容易なはずです。ただし、RELION-3.1形式のSTARファイルを古いバージョンのRELIONで読み込むことはできません。そのため、RELION-3.1のプロジェクトを古いバージョンへ戻すことは難しいでしょう。

1.2 The External job-type (Externalジョブタイプ)

RELION-3.1では、新たに追加したExternalジョブタイプより、RELIONのパイプライン内でサードパーティ製のソフトを実行することが可能になりました。使い方の詳細は14.4節を御覧ください。

1.3 Schedules for on-the-fly processing (Schedulesによるon-the-fly処理)

RELION-3.0で提供されていたrelion_it.pyスクリプトは、RELION-3.1ではSchedulesというフレームワークに置き換わりました。SchedulesはRELIONジョブの自動スケジューリングおよび実行をすることができ、独自のGUIインターフェイスを持ちます。使い方の詳細は14.5節を御覧ください。

1.4 General tweaks (その他変更点)

ユーザーエクスペリエンス向上のため、他にもいくつか変更点があります。

  • これまでのRELIONパイプラインは、ジョブが完了したかどうか確認するために出力ファイルを調べに行っていました。RELION-3.1では、パイプラインから立ち上げたジョブが正常に終了すると、ジョブディレクトリの中にRELION_EXIT_SUCCESSというファイルを生成します。パイプラインはRELION_EXIT_SUCCESSが存在するか否かを確認するだけで済みますから、これにより後続のジョブの実行が遅いディスクI/Oで邪魔されることがなくなります。
  • 同様に、エラーが発生した場合、各プログラムはRELION_EXIT_FAILUREというファイルを生成します。GUI (※RELIONパイプライン)はRELION_EXIT_FAILUREを生成したジョブを認識すると、【Finished jobs】リストにおいてそのジョブを赤字で表示してくれます。もし実際とは異なる認識がされてしまった場合は、【Job actions】プルダウンメニューから"Mark as finished"または"Mark as failed"を選択してジョブのステータスを変更できます。
  • 【Job actions】メニューに"Abort running"オプションが追加されました。現在選択されているジョブを停止することができます。これがどうして可能になったかというと、RELIONパイプラインから立ち上げられたすべてのジョブが、RELION_JOB_ABORT_NOWというファイルがジョブディレクトリ内に無いか確認するよう実装されているためです。そのファイルを検出したジョブは計算を途中で中止し、ジョブディレクトリ内にRELION_EXIT_ABORTEDというファイルを生成します。それ故、ユーザーはもはやジョブキューイングシステムやOSを介してプロセスを停止しなくて済むようになりました。中止されたジョブは【Finished jobs】リストに置いて取り消し線付きの赤字で表示されます。
  • 以前のRELIONでは、あるジョブがエラーを出して止まったとき、ユーザーが入力パラメータを修正し、それを新しいジョブとして再度実行することが必要でした。また、失敗した古いジョブを手動で消す必要がありました。RELION-3.1では、古いジョブを直接上書きすることが可能です。Linuxでは"Alt + o"のショートカットキー、もしくは【File menu】から"Overwrite continue"オプションを選択することでジョブ上書きが可能です。ジョブ上書きの際、古いrun.outおよびrun.errが削除されることに注意して下さい。

1.5 Tweaks to helical processing (らせん型線維の処理における変更点)

らせん型線維の処理にも、いくつかの新しい機能を追加しました。

  • relion_helix_inimodel2dプログラムは、(特にアミロイド線維で)クロスオーバー全長を含む2Dクラスを用いて、線維の初期3D参照像を生成可能です。詳細は14.6.1節を御覧ください。
  • 2Dクラス分類において、線維軸方向の並進移動は分子間隔の半分までに制限されます。
  • 3Dリファインメントおよび3Dクラス分類において、1番目の投影オイラー角に事前情報(rlnAngleRotPrior)を与えることが可能になりました。NIHのTycko研究室のKent Thurberにより実装されました。


2. Preprocessing (前処理)

2.1 Getting organized (解析の準備)

まず構造解析プロジェクトのディレクトリを作成します。1つの構造解析プロジェクトにつき1つのディレクトリを作成することを推奨します。これをプロジェクトディレクトリと呼びます。

RELION GUIはプロジェクトディレクトリ直下から起動するようにしてください。

次に、プロジェクトディレクトリの中に、未処理の電顕画像または動画を格納するためのディレクトリを作成し、そこへ画像または動画を格納します。

サポートされているファイル形式はMRCまたはTIFFです。ディレクトリ名は、全ての動画を1つのディレクトリに納めるならばMovies/、例えば撮影日別でいくつかのディレクトリに分けて納めたいならばMovies/15jan16、Movies/23jan16のようにすると良いです。

何らかの理由によりRELIONのプロジェクトディレクトリの中に動画を置きたくない場合は、動画を格納したディレクトリのシンボリックリンクをプロジェクトディレクトリ内に作成すれば良いです。

※ 例えば Movies/ という名前で、動画の実体を格納しているディレクトリのシンボリックリンクを作るには、以下。"$"はシェルのコマンドプロンプトを表します。

$ ln -s <動画の実体を格納しているディレクトリ> Movies/

画像ファイル名の拡張子は .mrc、動画ファイル名の拡張子は .mrcs または .tif または .tiff である必要があります。チュートリアル用のテストデータを解凍すると、中にMovies/ディレクトリが存在し、その中にTIFF形式の動画24本、ゲインリファレンスファイル(gain.mrc)、データ収集条件に関する情報が記載されたNOTESファイルが含まれています。

※ チュートリアル用のデータをダウンロードして展開するコマンドは以下。

$ wget ftp://ftp.mrc-lmb.cam.ac.uk/pub/scheres/relion30_tutorial_data.tar
$ tar -xf relion30_tutorial_data.tar

※ 既に計算済みの結果を見たい場合は、以下のようにしてダウンロードして展開する。

$ wget ftp://ftp.mrc-lmb.cam.ac.uk/pub/scheres/relion31_tutorial_precalculated_results.tar.gz
$ tar -zxf relion31_tutorial_precalculated_results.tar.gz

それではRELION GUIを起動してみましょう。

前述のように、GUIは常にプロジェクトディレクトリからの起動が必要です。誤ってプロジェクトディレクトリ外から起動することを防ぐため、GUIは新しいディレクトリで初めて起動された場合、ユーザーに確認を要求します。その為、新しいディレクトリで初めてGUIを起動するときは、"&"を付けてバックグラウンド起動することは避けてください。プロジェクトディレクトリの中にいることを確認し、次のコマンドでGUIを起動します($はコマンドプロンプトを表します)。

※ 先程展開したrelion30_tutorial/ 内にcdした上で以下コマンドを打つ。

$ relion

確認ダイアログに対し"y"と入力すると、RELIONプロジェクトがセットアップされ、GUIが立ち上がります。


relion31-img001.png


まずはじめに、動画ファイル達を解析パイプラインにインポートします。ジョブタイプブラウザから”Import”を選択すると、以下の様な入力画面が出てきます。


relion31-img002.png


※ 以下作成中... (地味に大変な作業なので時間がかかります。)