Relion安装依赖cmake,fftw以及fltk
$ sudo apt install cmake build-essential mpi-default-bin mpi-default-dev
libfftw3-dev
如果在使用relion中,需要用到GPU进行加速的话,需要安装CUDA和cuDNN。
在编译relion时,gcc、g++和CUDA版本的选择也有讲究,
以Ubuntu16.04为例,系统安装后自带的gcc、g++版本是5.4.0,对应于CUDA8以后的版本。
可以通过下面的命令查看自己linux系统的gcc、g++版本
$ gcc --version
$ g++ --version
如果是CUDA7.5,那么gcc、g++的版本是4.9及之前版本
以gcc4.8为例,想要升级到gcc5.4,那么可以这样做
1.用apt安装gcc-5.4
$ sudo apt install gcc-5
2.查看默认的gcc版本
$ gcc --version
3.查看当前已有的gcc版本, 确认下刚刚的gcc5.4是否已经成功安装
$ ls /usr/bin/gcc*
4.将某个版本加入gcc候选中,最后的数字是优先级(可改)
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5.4 100
5.用此方法配置多个gcc版本
$ sudo update-alternatives --config gcc
6.这时,再次查看gcc默认版本就可以看到已经改到我们想要的gcc版本了。
g++版本的切换和gcc的步骤大同小异,这里便不再过多赘述。
解决了CUDA版本和gcc版本的兼容性问题后,我们便可以进行下一步了。
用git远程下载代码
$ git clone https://github.com/3dem/relion.git
没有安装git的可以先安装git或者直接从github上下载
$ sudo apt install git
接下来,我们着手编译relion
$ cd relion
$ mkdir build
$ cd build
$ cmake -DGUI=ON -DDoublePrec_GPU=ON -DCUDA_ARCH=50 -DFORCE_OWN_FFTW=ON -DFORCE_OWN_FLTK=ON -DCMAKE_INSTALL_PREFIX=/usr/local/relion ..
-DGUI=ON:开启GUI,-DGUI=OFF:关闭GUI
-DDoublePrec_GPU=ON:在GPU上使用双精度。除非你有专业的GPU,否则这将会大幅降低GPU的执行速度。
-DCUDA_ARCH=50:为你的架构编译GPU代码。支持CUDA的设备有一个所谓的计算版本,可以编译代码以获得最佳性能。如果你知道GPU的计算-版本,则可以指定。默认值是3.5(CUDA Capability Major/Minor version number)
-DFORCE_OWN_FFTW=ON -DFORCE_OWN_FLTK=ON:强制建立和使用本地fftw和fltk-libs,这将在安装过程中添加下载,验证和安装。
-DCMAKE_INSTALL_PREFIX=/usr/local/relion:指定relion安装路径。
以上,部分选项可以不显式指出。
接着,
$ make -j
make -j 进行编译,如果有错误提示"memcpy not in scope"等错误信息。
在relion目录下CMakeLists.txt文件中添加
set((CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_FORCE_INLINES")
添加完成后,cd进入build目录,删除CMakeCache.txt,重新编译
$ cd build
$ rm CMakeCache.txt
$ cmake -DGUI=ON -DDoublePrec_GPU=ON -DCUDA_ARCH=50 -DFORCE_OWN_FFTW=ON -DFORCE_OWN_FLTK=ON -DCMAKE_INSTALL_PREFIX=/usr/local/relion ..
$ make -j
如果遇到下载超时的情况,可能需要。
最后,安装relion
$ sudo make install
relion安装成功后,可以将其添加到环境变量中。
$ cd ~
$ vim .bashrc
添加内容如下:
# added by Relion installer
export PATH="$PATH:/usr/local/relion/bin"