本家様 https://grigoriefflab.umassmed.edu/ctf_estimation_ctffind_ctftilt
記事 https://www.biorxiv.org/content/10.1101/2024.02.26.582023v1
この記事の中でコンパイルされたバージョンがhttps://cistem.org/developmentに用意されているみたい.
さっそくCTFFIND5が入っているcisTEMを取得してみた. cisTEM-ctffind5-151-d42312b.tar.gz(1.6GB)
[root@rockylinux ~]# cat /etc/redhat-release
Rocky Linux release 8.9 (Green Obsidian)
[root@rockylinux ~]# cd /apps/
[root@rockylinux apps]# tar xf /Public/em/cisTEM-ctffind5-151-d42312b.tar.gz
[root@rockylinux apps]# ls -l cisTEM/bin/
:
-rwxr-xr-x. 1 saber saber 40459144 Feb 27 00:54 create_mask
-rwxr-xr-x. 1 saber saber 40907928 Feb 27 00:54 ctffind
-rwxr-xr-x. 1 saber saber 40459240 Feb 27 00:54 divide_two_stacks
:
[root@rockylinux apps]#
[root@rockylinux apps]# /apps/cisTEM/bin/ctffind
** Welcome to Ctffind **
Version : 5.0.0
Compiled : Feb 26 2024
Library Version : 2.0.0-alpha-151-d42312b-dirty
From Branch : ctffind5
Mode : Interactive
Input image file name [input.mrc] : ^C
[root@rockylinux apps]#
[root@rockylinux apps]# ldd /apps/cisTEM/bin/ctffind
linux-vdso.so.1 (0x00007ffc3b5f6000)
libm.so.6 => /lib64/libm.so.6 (0x00007fedce9a2000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fedce782000)
libc.so.6 => /lib64/libc.so.6 (0x00007fedce3bd000)
/lib64/ld-linux-x86-64.so.2 (0x00007fedced24000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fedce1b9000)
[root@rockylinux apps]#
一応、「/apps/cisTEM/bin/ctffind」のみを持ち出せれるみたい
次にソースから作ってみる
[root@rockylinux ~]# cd /apps/src/
[root@rockylinux src]# git clone https://github.com/GrigorieffLab/cisTEM
[root@rockylinux src]# cd cisTEM/
[root@rockylinux cisTEM]# git branch --all
* main
:
remotes/origin/ctffind5
:
[root@rockylinux cisTEM]# git checkout remotes/origin/ctffind5
[root@rockylinux cisTEM]# ./regenerate_project.b
[root@rockylinux cisTEM]# mkdir build && cd build
[root@rockylinux build]# ../configure --prefix=/apps/cisTEM
[root@rockylinux build]# make -j 20
コンパイルが終われば build/src にバイナリーが用意される. make installで「--prefix」にコピーされる.
確認したらこんな感じ.
[root@rockylinux build]# ./src/ctffind
** Welcome to Ctffind **
Version : 5.0.0
Compiled : Mar 6 2024
Library Version : 2.0.0-alpha-153-2d3c4ad-dirty
From Branch : (HEAD
Mode : Interactive
Input image file name [input.mrc] : ^C
[root@rockylinux build]#
RockyLinux8で使ってみる
提供されているバイナリーバージョンの「ctffind-4.1.14-linux64.tar.gz」はREL7系(CentOS7)ではうまく動く.
しかしRHEL8系のRockyLinux8では実行すると下記のようにcore dumpして終わる.
Segmentation fault (core dumped)
動かいないみたい。
っで、ソースコードを入手して、コンパイルしてみる。
コンパイルに必要なライブラリをインストールします。
[root@c ~]# dnf --enablerepo=epel install wxBase3-devel wxGTK3-devel fftw-devel libtiff-devel libjpeg-turbo-devel
本家様からソースコードをダウンロードして展開します
[root@c ~]# cd /apps/src
[root@c src]# gzip -cd ctffind-4.1.14.tar.gz | tar xf -
[root@c src]# cd ctffind-4.1.14
ここで
https://grigoriefflab.umassmed.edu/comment/1696#comment-1696にある調整を加えます
具体的には下記のようにプログラムコードを修正します
|
そうして
[root@c ctffind-4.1.14]# ./configure --prefix=/apps/ctffind-4.1.14
[root@c ctffind-4.1.14]# make; make install
大抵は relion からコールされて使うのが常なのであんまりそのままでは使わない。
けど、こんな感じでインターラクティヴに使うものです。
(ヒアドキュメントみたいな実行方法もあるけど)
[root@c ~]# /apps/ctffind-4.1.14/bin/ctffind
** Welcome to Ctffind **
Version : 4.1.14
Compiled : Nov 9 2021
Mode : Interactive
Input image file name [input.mrc] :
コンパイル済みのアプリを他のpcに運んで使う際、下記が必要みたい
wxBase3
が必要
作ってみた
まず Apple/command#s51b110d のように Homebrew をインストールします
その後に
[supervisor@mini-m1 ~]$ brew install fftw
[supervisor@mini-m1 ~]$ brew install wxWidgets
と fftw と wxWidgets をインストールします.
っでctffindのソースを展開して
[supervisor@mini-m1 ~]$ cd src
[supervisor@mini-m1 ~/src]$ tar xf ctffind-4.1.14.tar.gz
[supervisor@mini-m1 ~/src]$ cd ctffind-4.1.14
[supervisor@mini-m1 ~/src/ctffind-4.1.14]$
ここでソースコードの一部を修正します。上記のvoid修正を施した後に追加で下記のように「src/core/matrix.cpp」を修正します
|
その上で
[supervisor@mini-m1 ~/src/ctffind-4.1.14]$ ./configure --with-fftw-dir=/opt/homebrew
[supervisor@mini-m1 ~/src/ctffind-4.1.14]$ make
これで ctffind が作れます
[supervisor@mini-m1 ~/src/ctffind-4.1.14]$ ./ctffind
** Welcome to Ctffind **
Version : 4.1.14
Compiled : Sep 28 2022
Mode : Interactive
Input image file name [input.mrc] : ^C
[supervisor@mini-m1 ~/src/ctffind-4.1.14]$
な感じです