1 介绍
单颗粒冷冻电镜是结构生物学研究的重要手段之一,冷冻电镜的模型重构通常需要对几万甚至几十万张投影图片进行分析、组装和优化,计算量巨大,这需要先进的计算架构配合有效的算法才能实现。
Relion是专门为低温电子显微镜(cryo-EM)设计的图像处理软件。由MRC分子生物学实验室的Sjors Scheres组开发的Relion框架正在革新冷冻电磁领域。该软件在通过电子冷冻显微镜数据的单颗粒分析来优化大分子结构。Relion采用经验贝叶斯方法对多个3D重建或2D类平均值进行细化。借助GPU CUDA并行计算架构,改进了算法,GPU解决了Cryo-EM中计算量最大的过程,例如粒子自动选取,2D和3D图像分类以及高分辨率图像细化。
关于RELION的更多信息请访问RELION官网。
语言:C++/CUDA
一句话描述:Relion 是由 MRC 的 Scheres 在 2012 年发布的针对单颗粒冷冻电镜图片进行处理的框架。
开源协议:GPLv3
建议的版本
建议使用版本为“RELION 3.1.2”。
2 环境要求
硬件要求
硬件要求如表2-1所示。
表2-1 硬件要求
软件要求
软件要求如表2-2所示。
表2-2 软件要求
操作系统要求
操作系统要求如表2-3所示。
表2-3 操作系统要求
3 移植规划数据
本章节给出RELION软件在移植过程中涉及到的相关软件安装规划路径的用途及详细说明。
表3-1 移植规划数据
4 配置编译环境
前提条件
使用SFTP工具将各安装包上传至服务器对应目录下。
配置流程
表4-1 配置流程
4.1 禁用nouveau驱动
4.2 安装NVIDIA-CUDA组件
4.3 安装FFTW
4.4 安装cmake
4.5 安装wxWidgets
4.6 安装CTFFIND
4.1 禁用nouveau驱动
操作步骤
步骤 1 使用PuTTY工具,以root用户登录服务器。
步骤 2 执行以下命令查看nouveau驱动是否已禁用
lsmod |grep nouveau
步骤 3 执行以下命令禁用nouveau驱动
新建文件/etc/modprobe.d/disable-nouveau.conf
vim /etc/modprobe.d/disable-nouveau.conf
添加如下两行:
blacklist nouveau
options nouveau modeset=0
步骤 4 备份并生成新的initramfs文件
cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
dracut -f /boot/initramfs-$(uname -r).img $(uname -r)
步骤 5 重启机器
reboot
----结束
4.2 安装NVIDIA-CUDA组件
操作步骤
步骤 1 使用PuTTY工具,以root用户登录服务器。
步骤 2 执行以下命令确认nouveau驱动已禁用(回显为空)
lsmod |grep nouveau
步骤 3 执行以下命令安装NVIDIA-CUDA组件:
wget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda_11.4.0_470.42.01_linux_sbsa.run
sudo sh cuda_11.4.0_470.42.01_linux_sbsa.run
步骤 4 配置环境变量:
export PATH=/usr/local/cuda-11.4/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64:$LD_LIBRARY_PATH
步骤 5 执行以下命令验证
nvcc --version
----结束
4.3 安装FFTW
操作步骤
步骤 1 使用PuTTY工具,以root用户登录服务器。
步骤 2 执行以下命令下载FFTW安装包
wget https://fftw.org/pub/fftw/fftw-3.3.8.tar.gz
步骤 3 执行以下命令解压FFTW安装包
tar –zxvf fftw-3.3.8.tar.gz
步骤 4 执行以下命令进入FFTW安装包
cd fftw-3.3.8
步骤 5 执行以下命令安装FFTW:
export CC=clang CXX=clang++ FC=flang
./bootstrap.sh
./configure --prefix=/path/to/FFTW --enable-single --enable-float --enable-neon --enable-shared --enable-threads --enable-openmp --enable-mpi CFLAGS="-O3 -fomit-frame-pointer -fstrict-aliasing"
make -j && make install
make clean
./configure --prefix=/path/to/FFTW --enable-long-double --enable-shared --enable-threads --enable-openmp --enable-mpi CFLAGS="-O3 -fomit-frame-pointer -fstrict-aliasing"
make -j && make install
make clean
./configure --prefix=/path/to/FFTW --enable-shared --enable-threads --enable-openmp --enable-mpi CFLAGS="-O3 -fomit-frame-pointer -fstrict-aliasing"
make -j && make install
步骤 6 执行以下命令配置环境变量:
export PATH=/path/to/FFTW/bin:$PATH
export LD_LIBRARY_PATH=/path/to/FFTW/lib:$LD_LIBRARY_PATH
4.4 安装cmake
操作步骤
步骤 1 使用PuTTY工具,以root用户登录服务器。
步骤 2 执行以下命令安装cmake:
wget https://cmake.org/files/v3.8/cmake-3.8.1.tar.gz
tar -zxvf cmake-3.8.1.tar.gz
cd cmake-3.8.1
./configure --prefix=/path/to/CMAKE
make -j64
make install
步骤 3 执行以下命令配置环境变量:
export PATH=/path/to/CMAKE/bin:$PATH
4.5 安装wxWidgets
操作步骤
步骤 1 使用PuTTY工具,以root用户登录服务器。
步骤 2 执行以下命令安装wxWidgets:
wget https://github.com/wxWidgets/wxWidgets/archive/refs/tags/v3.0.5.tar.gz
tar -zxvf v3.0.5.tar.gz
cd wxWidgets-3.0.5
./configure --disable-gui
make -j16
make install
步骤 3 执行以下命令配置环境变量:
ldconfig
步骤 4 执行以下命令进行验证:
wx-config --version
4.6 安装CTFFIND
操作步骤
步骤 1 使用PuTTY工具,以root用户登录服务器。
步骤 2 执行以下命令解压ctffind:
wget https://grigoriefflab.umassmed.edu/system/tdf?path=ctffind-4.1.14.tar.gz&file=1&type=node&id=26
tar -zxvf ctffind-4.1.14.tar.gz
cd ctffind-4.1.14
步骤 3 执行以下命令修改文件:
vim src/core/matrix.cpp
修改第7行的代码
7 #define _AL_SINCOS(x, s, c) s = sinf(x); c = cosf(x);
原始内容:
7 #define _AL_SINCOS(x, s, c) __asm__ ("fsincos" : "=t" (c), "=u" (s) : "0" (x))

步骤 4 执行以下命令进行编译安装:
yum install -y libjpeg* libtiff* fftw*
autoreconf -f -i
./configure --prefix=/path/to/ctffind --disable-mkl --enable-openmp --enable-debugmode
vim Makefile
将CFLAGS CPPFLAGS CXXFLAGS中的-O2改成-O0
296 CFLAGS = -g –O0
297 CPP = clang -E
298 CPPFLAGS = -O0 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DDEBUG
299 CXX = clang++
300 CXXCPP = clang++ -E
301 CXXDEPMODE = depmode=gcc3
302 CXXFLAGS = -O0 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DDEBUG -fopenmp
原始内容:
296 CFLAGS = -g -O2
297 CPP = clang -E
298 CPPFLAGS = -O2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DDEBUG
299 CXX = clang++
300 CXXCPP = clang++ -E
301 CXXDEPMODE = depmode=gcc3
302 CXXFLAGS = -O2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DDEBUG -fopenmp

make & make install
步骤 5 执行以下命令配置环境变量:
export PATH=/path/to/install/ctffind/bin:$PATH
----结束
5 获取源码
操作步骤
步骤 1 下载RELION安装包“RELION-3.1.2.tar.gz”。
下载地址:https://github.com/3dem/relion/archive/refs/tags/3.1.2.tar.gz。
步骤 2 使用SFTP工具将RELION安装包上传至服务器“/path/to/RELION”目录。
----结束
6 编译和安装
操作步骤
步骤 1 使用PuTTY工具,以root用户登录服务器。
步骤 2 执行以下命令进入主程序安装目录:
cd /path/to/RELION
步骤 3 执行以下命令解压安装包:
tar -xvf 3.1.2.tar.gz
步骤 4 执行以下命令进入解压后路径:
cd relion-3.1.2
mkdir build
步骤 5 执行以下命令进行配置:
yum install -y libtiff-* fltk* fltk-devel*
yum -y install xorg-x11-xauth
cd build
export FFTW_HOME=/path/to/FFTW
export FFTW_LIB=$FFTW_HOME/lib
export FFTW_INCLUDE=$FFTW_HOME/include
cmake -DBUILD_SHARED_LIBS=OFF -DCUDA=ON -DCudaTexture=ON -DCUDA_ARCH=80 -DCMAKE_BUILD_TYPE=release -DCMAKE_INSTALL_PREFIX=/path/to/install/RELION ..
(-DCUDA_ARCH的值要对应显卡的计算能力,最低35,如A100为80,V100为70,具体可通过Nvidia网页进行查看)
步骤 6 执行以下命令开始编译:
make -j40
make -j40 install
步骤 7 执行以下命令查看RELION版本:
/path/to/install/RELION/bin/relion_refine_mpi --help

步骤 8 执行以下命令设置环境变量:
export PATH=/path/to/install/RELION/bin:$PATH
----结束
7 运行和验证
操作步骤
步骤 1 使用PuTTY工具,以root用户登录服务器。
步骤 2 执行以下命令进入测试目录:
cd /path/to/CASE
步骤 3 执行以下命令解压算例文件:
tar xvf relion_benchmark.tar.gz
步骤 4 执行以下命令进入解压后的目录:
cd relion_benchmark
步骤 5 执行以下命令运行RELION测试:
mkdir class3d
yum -y install time
time -p mpirun --allow-run-as-root -n 4 relion_refine_mpi --j 24 --gpu 0 --pool 100 --dont_combine_weights_via_disc --i Particles/shiny_2sets.star --ref emd_2660.map:mrc --firstiter_cc --ini_high 60 --ctf --ctf_corrected_ref --iter 25 --tau2_fudge 4 --particle_diameter 360 --K 6 --flatten_solvent --zero_mask --oversampling 1 --healpix_order 2 --offset_range 5 --offset_step 2 --sym C1 --norm --scale --random_seed 0 --maxsig 500 --fast_subsets --o class3d/test01

----结束
8 更多资源
RELION Github:
https://github.com/3dem/relion
RELION 官网:
https://relion.readthedocs.io/en/latest/Installation.html#download-relion
1 介绍
单颗粒冷冻电镜是结构生物学研究的重要手段之一,冷冻电镜的模型重构通常需要对几万甚至几十万张投影图片进行分析、组装和优化,计算量巨大,这需要先进的计算架构配合有效的算法才能实现。
Relion是专门为低温电子显微镜(cryo-EM)设计的图像处理软件。由MRC分子生物学实验室的Sjors Scheres组开发的Relion框架正在革新冷冻电磁领域。该软件在通过电子冷冻显微镜数据的单颗粒分析来优化大分子结构。Relion采用经验贝叶斯方法对多个3D重建或2D类平均值进行细化。借助GPU CUDA并行计算架构,改进了算法,GPU解决了Cryo-EM中计算量最大的过程,例如粒子自动选取,2D和3D图像分类以及高分辨率图像细化。
关于RELION的更多信息请访问RELION官网。
语言:C++/CUDA
一句话描述:Relion 是由 MRC 的 Scheres 在 2012 年发布的针对单颗粒冷冻电镜图片进行处理的框架。
开源协议:GPLv3
建议的版本
建议使用版本为“RELION 3.1.2”。
2 环境要求
硬件要求
硬件要求如表2-1所示。
表2-1 硬件要求
项目
说明
CPU
Kunpeng 920
GPU
NVIDIA Tesla A100
软件要求
软件要求如表2-2所示。
表2-2 软件要求
项目
版本
下载地址
RELION
3.1.2
https://github.com/3dem/relion/archive/refs/tags/3.1.2.tar.gz
毕昇编译器
1.3.3
https://mirrors.huaweicloud.com/kunpeng/archive/compiler/bisheng_compiler/bisheng-compiler-1.3.3-aarch64-linux.tar.gz
HMPI
21.0
https://support.huaweicloud.com/usermanual-kunpenghpcs/userg_huaweimpi_0011.html
FFTW
3.3.8
https://fftw.org/pub/fftw/fftw-3.3.8.tar.gz
cmake
3.8.1
https://cmake.org/files/v3.8/cmake-3.8.1.tar.gz
Nvidia CUDA组件
11.4
https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda_11.4.0_470.42.01_linux_sbsa.run
测试算例
relion_benchmark.tar.gz
ftp://ftp.mrc-lmb.cam.ac.uk/pub/scheres/relion_benchmark.tar.gz
操作系统要求
操作系统要求如表2-3所示。
表2-3 操作系统要求
项目
版本
下载地址
CentOS
8.2
https://www.centos.org/download/
Kernel
4.18.0-193.el8.aarch64
https://www.centos.org/download/
3 移植规划数据
本章节给出RELION软件在移植过程中涉及到的相关软件安装规划路径的用途及详细说明。
表3-1 移植规划数据
序号
软件安装规划路径
用途
说明
1
-
基础环境搭建中的各安装包安装路径。
参考《HPC解决方案 基础环境搭建
指导书》中“安装规划数据”章
节。
2
/path/to/bisheng-1.3.3
毕昇编译器的安装规划路径。
这里的安装规划路径只是一个举例说明,建议部署在共享路径中。现网需要根据实际情况调整,后续章节凡是遇到安装路径的命令,都以现网实际规划的安装路径为准进行替换,不再单独说明。
3
/path/to/HMPI
HMPI的安装规划路径
4
/path/to/ NVIDIA-CUDA
NVIDIA-CUDA组件的安装规划路径。
5
/path/to/FFTW
FFTW的安装规划路径。
6
/path/to/CMAKE
CMAKE的安装规划路径。
7
path/to/wxWidgets
wxWidgets的安装规划路径。
8
path/to/CTFFIND
CTFFIND的安装规划路径。
9
/path/to/RELION
RELION的安装规划路径。
10
/path/to/CASE
RELION的算例文件存放规划路径。
4 配置编译环境
前提条件
使用SFTP工具将各安装包上传至服务器对应目录下。
配置流程
表4-1 配置流程
序号
配置项
说明
1
基础环境搭建
参考《HPC解决方案 基础环境搭建
指导书》中“集群场景环境搭建”章
节。
2
安装毕昇编译器
参考《毕昇编译器》中“安装毕昇编译器”章
3
安装HMPI
参考《源码安装Hyper MPI》中“毕昇编译Hyper MPI软件包”章节 。
4
禁用nouveau驱动
参考4.1禁用nouveau驱动。
5
安装NVIDIA-CUDA组件
参考4.2安装NVIDIA-CUDA组件。
6
安装FFTW
参考4.3 安装FFTW。
7
安装cmake
参考4.4 安装cmake。
8
安装wxWidgets
参考4.5 安装wxWidgets。
9
安装CTFFIND
参考4.6 安装CTFFIND。
4.1 禁用nouveau驱动
4.2 安装NVIDIA-CUDA组件
4.3 安装FFTW
4.4 安装cmake
4.5 安装wxWidgets
4.6 安装CTFFIND
4.1 禁用nouveau驱动
操作步骤
步骤 1 使用PuTTY工具,以root用户登录服务器。
步骤 2 执行以下命令查看nouveau驱动是否已禁用
lsmod |grep nouveau
步骤 3 执行以下命令禁用nouveau驱动
新建文件/etc/modprobe.d/disable-nouveau.conf
vim /etc/modprobe.d/disable-nouveau.conf
添加如下两行:
blacklist nouveau
options nouveau modeset=0
步骤 4 备份并生成新的initramfs文件
cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
dracut -f /boot/initramfs-$(uname -r).img $(uname -r)
步骤 5 重启机器
reboot
----结束
4.2 安装NVIDIA-CUDA组件
操作步骤
步骤 1 使用PuTTY工具,以root用户登录服务器。
步骤 2 执行以下命令确认nouveau驱动已禁用(回显为空)
lsmod |grep nouveau
步骤 3 执行以下命令安装NVIDIA-CUDA组件:
wget https://developer.download.nvidia.com/compute/cuda/11.4.0/local_installers/cuda_11.4.0_470.42.01_linux_sbsa.run
sudo sh cuda_11.4.0_470.42.01_linux_sbsa.run
步骤 4 配置环境变量:
export PATH=/usr/local/cuda-11.4/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.4/lib64:$LD_LIBRARY_PATH
步骤 5 执行以下命令验证
nvcc --version
----结束
4.3 安装FFTW
操作步骤
步骤 1 使用PuTTY工具,以root用户登录服务器。
步骤 2 执行以下命令下载FFTW安装包
wget https://fftw.org/pub/fftw/fftw-3.3.8.tar.gz
步骤 3 执行以下命令解压FFTW安装包
tar –zxvf fftw-3.3.8.tar.gz
步骤 4 执行以下命令进入FFTW安装包
cd fftw-3.3.8
步骤 5 执行以下命令安装FFTW:
export CC=clang CXX=clang++ FC=flang
./bootstrap.sh
./configure --prefix=/path/to/FFTW --enable-single --enable-float --enable-neon --enable-shared --enable-threads --enable-openmp --enable-mpi CFLAGS="-O3 -fomit-frame-pointer -fstrict-aliasing"
make -j && make install
make clean
./configure --prefix=/path/to/FFTW --enable-long-double --enable-shared --enable-threads --enable-openmp --enable-mpi CFLAGS="-O3 -fomit-frame-pointer -fstrict-aliasing"
make -j && make install
make clean
./configure --prefix=/path/to/FFTW --enable-shared --enable-threads --enable-openmp --enable-mpi CFLAGS="-O3 -fomit-frame-pointer -fstrict-aliasing"
make -j && make install
步骤 6 执行以下命令配置环境变量:
export PATH=/path/to/FFTW/bin:$PATH
export LD_LIBRARY_PATH=/path/to/FFTW/lib:$LD_LIBRARY_PATH
4.4 安装cmake
操作步骤
步骤 1 使用PuTTY工具,以root用户登录服务器。
步骤 2 执行以下命令安装cmake:
wget https://cmake.org/files/v3.8/cmake-3.8.1.tar.gz
tar -zxvf cmake-3.8.1.tar.gz
cd cmake-3.8.1
./configure --prefix=/path/to/CMAKE
make -j64
make install
步骤 3 执行以下命令配置环境变量:
export PATH=/path/to/CMAKE/bin:$PATH
4.5 安装wxWidgets
操作步骤
步骤 1 使用PuTTY工具,以root用户登录服务器。
步骤 2 执行以下命令安装wxWidgets:
wget https://github.com/wxWidgets/wxWidgets/archive/refs/tags/v3.0.5.tar.gz
tar -zxvf v3.0.5.tar.gz
cd wxWidgets-3.0.5
./configure --disable-gui
make -j16
make install
步骤 3 执行以下命令配置环境变量:
ldconfig
步骤 4 执行以下命令进行验证:
wx-config --version
4.6 安装CTFFIND
操作步骤
步骤 1 使用PuTTY工具,以root用户登录服务器。
步骤 2 执行以下命令解压ctffind:
wget https://grigoriefflab.umassmed.edu/system/tdf?path=ctffind-4.1.14.tar.gz&file=1&type=node&id=26
tar -zxvf ctffind-4.1.14.tar.gz
cd ctffind-4.1.14
步骤 3 执行以下命令修改文件:
vim src/core/matrix.cpp
修改第7行的代码
7 #define _AL_SINCOS(x, s, c) s = sinf(x); c = cosf(x);
原始内容:
7 #define _AL_SINCOS(x, s, c) __asm__ ("fsincos" : "=t" (c), "=u" (s) : "0" (x))
步骤 4 执行以下命令进行编译安装:
yum install -y libjpeg* libtiff* fftw*
autoreconf -f -i
./configure --prefix=/path/to/ctffind --disable-mkl --enable-openmp --enable-debugmode
vim Makefile
将CFLAGS CPPFLAGS CXXFLAGS中的-O2改成-O0
296 CFLAGS = -g –O0
297 CPP = clang -E
298 CPPFLAGS = -O0 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DDEBUG
299 CXX = clang++
300 CXXCPP = clang++ -E
301 CXXDEPMODE = depmode=gcc3
302 CXXFLAGS = -O0 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DDEBUG -fopenmp
原始内容:
296 CFLAGS = -g -O2
297 CPP = clang -E
298 CPPFLAGS = -O2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DDEBUG
299 CXX = clang++
300 CXXCPP = clang++ -E
301 CXXDEPMODE = depmode=gcc3
302 CXXFLAGS = -O2 -g -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DDEBUG -fopenmp
make & make install
步骤 5 执行以下命令配置环境变量:
export PATH=/path/to/install/ctffind/bin:$PATH
----结束
5 获取源码
操作步骤
步骤 1 下载RELION安装包“RELION-3.1.2.tar.gz”。
下载地址:https://github.com/3dem/relion/archive/refs/tags/3.1.2.tar.gz。
步骤 2 使用SFTP工具将RELION安装包上传至服务器“/path/to/RELION”目录。
----结束
6 编译和安装
操作步骤
步骤 1 使用PuTTY工具,以root用户登录服务器。
步骤 2 执行以下命令进入主程序安装目录:
cd /path/to/RELION
步骤 3 执行以下命令解压安装包:
tar -xvf 3.1.2.tar.gz
步骤 4 执行以下命令进入解压后路径:
cd relion-3.1.2
mkdir build
步骤 5 执行以下命令进行配置:
yum install -y libtiff-* fltk* fltk-devel*
yum -y install xorg-x11-xauth
cd build
export FFTW_HOME=/path/to/FFTW
export FFTW_LIB=$FFTW_HOME/lib
export FFTW_INCLUDE=$FFTW_HOME/include
cmake -DBUILD_SHARED_LIBS=OFF -DCUDA=ON -DCudaTexture=ON -DCUDA_ARCH=80 -DCMAKE_BUILD_TYPE=release -DCMAKE_INSTALL_PREFIX=/path/to/install/RELION ..
(-DCUDA_ARCH的值要对应显卡的计算能力,最低35,如A100为80,V100为70,具体可通过Nvidia网页进行查看)
步骤 6 执行以下命令开始编译:
make -j40
make -j40 install
步骤 7 执行以下命令查看RELION版本:
/path/to/install/RELION/bin/relion_refine_mpi --help
步骤 8 执行以下命令设置环境变量:
export PATH=/path/to/install/RELION/bin:$PATH
----结束
7 运行和验证
操作步骤
步骤 1 使用PuTTY工具,以root用户登录服务器。
步骤 2 执行以下命令进入测试目录:
cd /path/to/CASE
步骤 3 执行以下命令解压算例文件:
tar xvf relion_benchmark.tar.gz
步骤 4 执行以下命令进入解压后的目录:
cd relion_benchmark
步骤 5 执行以下命令运行RELION测试:
mkdir class3d
yum -y install time
time -p mpirun --allow-run-as-root -n 4 relion_refine_mpi --j 24 --gpu 0 --pool 100 --dont_combine_weights_via_disc --i Particles/shiny_2sets.star --ref emd_2660.map:mrc --firstiter_cc --ini_high 60 --ctf --ctf_corrected_ref --iter 25 --tau2_fudge 4 --particle_diameter 360 --K 6 --flatten_solvent --zero_mask --oversampling 1 --healpix_order 2 --offset_range 5 --offset_step 2 --sym C1 --norm --scale --random_seed 0 --maxsig 500 --fast_subsets --o class3d/test01
----结束
8 更多资源
RELION Github:
https://github.com/3dem/relion
RELION 官网:
https://relion.readthedocs.io/en/latest/Installation.html#download-relion