0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

subtomogram averagingに関する雑多なメモ

Last updated at Posted at 2025-07-01

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すること

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?