cryo-ETのデータを使ってsubtomogram averagingと呼ばれる画像解析を行うときのためのメモ
個人の備忘録的に書きますので悪しからず
2025年7月現在:後半部分編集未完です
いったん勉強したい人に
Webサイトで軽く原理を理解する
文章ベースで勉強したい人はこれかこれ
あった方がいいもの
ある程度のLinuxオペレーションの知識
テキストファイル操作とディレクトリの移動ができればとりあえず大丈夫、ほんとうに何も知らない方はLinuxの勉強から始めましょう
ある程度の単粒子解析法の知識
RELION GUIの使い方とstarファイルの中身がどうなってるか・各カラムの値がどういう意味か
ある程度のPythonおよびMATLABの知識
motl形式のファイルをいじるのはMATLABのTOM/AV3 toolboxがいまのところ楽
もしくは上記を保管するchatGPTスキル
やっぱこれだね
一般的なワークフロー
1. データを撮る
2. Preprocess
3. うまく撮れてない変な画像を消しておく
4. tiltシリーズのアライメント
5. トモグラム再構成 (+お好みでdenoise)
6. 目的の粒子のpicking
7. 3dの参照像生成
8. 3dで方位をアライメント
いまのところのおすすめソフトウェア
STA解析はRELION-Warp-Mパイプラインが現状の個人的ベスト
Linux版Warp-MであるところのWarptools 本家チュートリアル 質問ポータル
RELION5 tomo 本家チュートリアル
より良い可視化のためのDenoiseはcryoCAREが良さげ
Motion corr時にフレームを偶奇で分けるのを忘れないこと
忘れちゃったらIsonetもあり
以下解析のメモ
step0| Warptools (Linux版Warp)をインストールとかする
Warptools、AreTomo、Relion、IMODあたりをインストールしておく
module load WARPTOOLS #お使いの環境名に合わせて変えてください
step1| create frame settings
cd /go/to/your/folder
mkdir frames
ln -s /your/raw/data/*.eer ./frames
下記はEERファイルを扱う場合を想定
#ピクセルサイズは4Kの時の値で、ゲインのパスとティルトあたりのDose量&eerのngroups=Fractionation数はデータ依存
WarpTools create_settings \
--folder_data frames \
--folder_processing warp_frameseries \
--output warp_frameseries.settings \
--extension "*.eer" \
--angpix 1.502 \
--gain_path relative/path/to/gain.gain \
--exposure 3 \
--eer_ngroups 26
step2| motioncorr and ctf estimation
WarpTools fs_motion_and_ctf \
--settings warp_frameseries.settings \
--m_grid 1x1x3 \
--c_grid 2x2x1 \
--c_range_max 7 \
--c_defocus_max 8 \
--c_use_sum \
--out_averages \
--out_average_halves
# クオリティ確認
WarpTools filter_quality --settings warp_frameseries.settings --histograms
step3|create tilt settings
mkdir mdoc
ln -s /your/raw/data/*.mdoc ./mdoc
#ティルトあたりのDose量はデータ依存
#ここではtemplate matchingしないのでdont invertする(黒がシグナルのReconstructionになる)
WarpTools ts_import \
--mdocs mdoc \
--frameseries warp_frameseries\
--tilt_exposure 3 \
--min_intensity 0.3 \
--dont_invert \
--output tomostar
#ピクセルサイズは4Kの時の値で、ゲインのパスとティルトあたりのDose量&tomo_dimensionはデータ依存
#カメラのXYピクセル値とZは想定される氷の厚みの1.5~2倍くらいでキリのいい数字
WarpTools create_settings \
--output warp_tiltseries.settings \
--folder_processing warp_tiltseries \
--folder_data tomostar \
--extension "*.tomostar" \
--angpix 1.502 \
--gain_path relative/path/to/gain.gain \
--exposure 3 \
--tomo_dimensions 4096x4096x2048
step4|run aretomo alignment
# 今のところv1.3.4しかWarptoolsでサポートされていない
module load ARETOMO/1.3.4
# alignZ ≒ 氷の厚み:試しに一つ再構成してみて3dmod XYZ windowで厚みを測り、それよりちょっとだけ大きい厚み(単位はunbinned voxel)を入れておく
# angpixにはbin後の値を入れる 10前後になるようにするのがおすすめ ここではbin8
# exeはAretomoインストール時にどうPATHを通したか次第
# axisは顕微鏡依存 基本的にはmdocから確認できる
WarpTools ts_aretomo \
--settings warp_tiltseries.settings \
--alignz 1800 \
--angpix 12.016 \
--exe AreTomo \
--axis 84.2
step5|check defocus handness
WarpTools ts_defocus_hand \
--settings warp_tiltseries.settings \
--check
positive
と出たらそのままでOK
もしnegative
だったら
WarpTools ts_defocus_hand \
--settings warp_tiltseries.settings \
--set_flip
step6|CTF estimation
WarpTools ts_ctf \
--settings warp_tiltseries.settings \
--range_high 7 \
--defocus_max 8
step7|tomogram reconstruction
WarpTools ts_reconstruct \
--settings warp_tiltseries.settings \
--angpix 12.016 \
--dont_invert
warp_tiltseries/reconstruction
に再構成されたトモグラムが置かれる
3dmod
で出来を確認
出来が微妙であればアライメントをIMODで手動微調整 or AreTomo3などのより賢いソフトでアライメントしてts_import_alignmentsして再構成したい
ここでは簡易版として上記のステップだけで進める (どうせM refinementするのでここのアライメントはそこそこ上手くいってたら大丈夫かも?)
step8|pick particles
WarptoolsはRELION形式のstarファイルを用いてstep 9 Extractを行うので、starファイルを用意できるのであれば粒子のpickingはどのソフトウェアを用いても良い
template matchingはPyTOMを使うのがおそらく現状のベスト
手で拾う場合はwarp_tiltseries/reconstruction
のデータ(もしくは全く同じアライメント情報を使って再構成されたdenoised data)を使って対象粒子を拾う
ここではターゲットが球上orチューブ上にlatticeを構成するタンパク質だと仮定して進める→方位の事前情報込みでpickingするので下流の解析がちょっと楽になる
おそらくもっと賢い方法があるが古典的なlattice pickingはchimera(not chimerax)のプラグインVolume tracerとPick particleで可能
注意点メモ
Tools/Volume Data/Volume Tracer: Coordinate voxel size 1 Origin 1に変更して球やチューブの中心をピック .cmmが保存される
Toolds/Utilities/Pick Particle: .cmmを開く→オーバーサンプリングできるように計算してaxialとtangentialの値を入れる(単位はbinned voxel)→Tomogram IDを入れてsaveすると.emが保存される
Positionごとの.emをMATLABで結合して一つのparticle.emにする
motl2relionでstarファイルに変換できる
このstarファイルにImagePixelSizeがない場合はrelion_star_handlerで追加する
MicrographsNameカラムは Position_1.tomostar のようになっていなければならないので、.tomostar拡張子がついていない場合はsedなりで編集
step9|Extract particles
Relionでアライメントするための粒子をWarptoolsでextractする
# coords_angpix:unbinnedの値、output_angpix:bin後の値(ここではbin4)
# box:bin後のボックスサイズ diameter:ターゲットの大きさ(単位はÅ)
# input_star:step8で準備したstarファイル
WarpTools ts_export_particles \
--settings warp_tiltseries.settings \
--input_star particles.star \
--output_processing relion \
--output_star relion/particles.star \
--coords_angpix 1.502 \
--output_angpix 6.008 \
--box 96 \
--diameter 300 \
--relative_output_paths \
--2d
Z方向に粒子を動かしたいとき用メモ
Here's a script to recenter particles in particle STAR files output by ts_export_particles.
https://gist.github.com/alisterburt/8744accf3f4696dd6d83fc9c4690612c
To run it, install uv then uv run recenter_3d.py
step10|Relion Refinement
cd relion
module load RELION5
relion --tomo
RELION Refine local refineしてお手製スクリプトでneighbour計算→geometry cleaningののちにduplicate removal
やることのコンセプトとしてはここで書かれていることと同じ
to be edited
step11|M Refinement
cd ..
あとはここに従う
to be edited
m/species/TARGETNAME
フォルダ下にhalf mapが置かれるので、このmapを使ってRelionのPost processからFSC計算しなおすと良い
M用に作ったマスクはタイトすぎるのでソフトマスクを作りなおしてからPost processすること