编译和安装
操作步骤
- 使用PuTTY工具,以root用户登录服务器。
- 执行以下命令添加依赖sse2neon。
cd /path/to/KMERSGWAS wget https://github.com/DLTcollab/sse2neon/archive/master.tar.gz --no-check-certificate -O sse2neon-master.tar.gz tar -zxf sse2neon-master.tar.gz export CPLUS_INCLUDE_PATH=/path/to/KMERSGWAS/sse2neon-master/:$CPLUS_INCLUDE_PATH export C_INCLUDE_PATH=/path/to/KMERSGWAS/sse2neon-master/:$C_INCLUDE_PATH
- 执行以下命令解压kmersGWAS安装包。
cd /path/to/KMERSGWAS tar -zxf kmersGWAS-0.2-beta.tar.gz
- 执行以下命令将KMC包拷贝到kmersGWAS里。
tar -zxf KMC-3.1.2rc1.tar.gz cp -rf KMC-3.1.2rc1/* kmersGWAS-0.2-beta/include/KMC/
- 执行以下命令将CTPL包拷贝到kmersGWAS里。
tar -zxf CTPL-v.0.0.2.tar.gz cp -rf CTPL-v.0.0.2/* kmersGWAS-0.2-beta/include/CTPL/
- 执行以下命令将cxxopts包拷贝到kmersGWAS里。
tar -zxf cxxopts-2.2.1.tar.gz cp -rf cxxopts-2.2.1/* kmersGWAS-0.2-beta/include/cxxopts/
- 执行以下命令进入kmersGWAS安装目录。
cd kmersGWAS-0.2-beta
- 执行以下命令删除编译项“-msse4.2”。
sed -i 's/-msse4.2//g' Makefile
- 执行以下命令添加编译优化参数。
sed -i 's/-O3/-O3 -march=armv8.2-a -mtune=tsv110/g' Makefile
- 执行以下命令将x86“nmmintrin.h”引用文件替换掉。
- 将“nmmintrin.h”和“smmintrin.h”注释掉:
sed -i 's/#include <nmmintrin.h>/\/\/#include <nmmintrin.h>/g;s/#include <smmintrin.h>/\/\/#include <smmintrin.h>/g' src/kmers_multiple_databases.cpp sed -i 's/#include <smmintrin.h>/\/\/#include <smmintrin.h>/g' src/snps_multiple_databases.cpp
- 引入头文件“sse2neon.h”:
sed -i '/#include <nmmintrin.h>/ i\#include "sse2neon.h"' src/kmers_multiple_databases.cpp sed -i '/#include <smmintrin.h>/ i\#include "sse2neon.h"' src/snps_multiple_databases.cpp
- 将“nmmintrin.h”和“smmintrin.h”注释掉:
- 执行以下命令进行编译安装。
make -j
- 执行以下命令删除原有的“gemma_0_96”并创建新的软连接。
cd /path/to/KMERSGWAS/kmersGWAS-0.2-beta/external_programs rm -rf gemma_0_96 ln -s /path/to/GEMMA/bin/gemma gemma_0_96