最近在使用RepeatMasker时产生这个错误:
Building general libraries in: ~/soft/RepeatMasker/Libraries/CONS-Dfam_withRBRM_3.7/general
RepeatMasker::createLib(): Error invoking ~/soft/rmblast-2.14.0/bin/makeblastdb on file ~/soft/RepeatMasker/Libraries/CONS-Dfam_withRBRM_3.7/general.working/is.lib.
查看makeblastdb.log文件时,发现是BLAST Database creation error: mdb_env_open: Function not implemented,当我单独使用rmblast中的makeblastdb和ncbi-blast+中的makeblastdb时都会发生上述错误,我的blast++版本是2.10.0,但使用blast++ 2.7版本就不会出现上述问题,可能是系统C++版本和blast++编译的C++版本不一致导致的,解决的方法有两种,一种是直接使用低版本的blast++如2.7版本,也可以使用blast++的源代码进行编译安装,可以参考RMBlast 官网的方法,不过时间有点长。
- Download NCBI Blast+ and rmblast patch file:
ncbi-blast-2.14.1+-src.tar.gz
isb-2.14.1+-rmblast.patch.gz - Install Dependencies:
You will need a C++ compiler and essential build tools such as make and autotools.- Debian and derivatives (Ubuntu, Mint, etc.): apt install build-essential
- Fedora: yum groupinstall “Development Tools”
- Unpack Distribution:
Unpack the distribution in your home directory or in a temporary location ( i.e. /tmp ).- cd /mytmp/location/
- tar zxvf ncbi-blast-2.14.1+-src.tar.gz
- gunzip isb-2.14.1+-rmblast.patch.gz
- Patch:
- cd ncbi-blast-2.14.1+-src
- patch -p1 < ../isb-2.14.1+-rmblast.patch
- Build:
To compile the programs for installation in /usr/local/rmblast run:- cd ncbi-blast-2.14.1+-src/c++
- ./configure –with-mt –without-debug –without-krb5 –without-openssl –with-projects=scripts/projects/rmblastn/project.lst –prefix=/usr/local/rmblast
- make
- make -j can be used to parallelize the build on multiprocessor systems, e.g. make -j2 to dedicate two cores to the build process.
- make install
- Configure RepeatMasker/RepeatModeler:
To use the new search engine with RepeatMasker or RepeatModeler, run/re-run the configure program in the RepeatMasker directory and the configure program in the RepeatModeler directory.