Blast Error: mdb_env_open: Function not implemented 错误

最近在使用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 官网的方法,不过时间有点长。

  1. Download NCBI Blast+ and rmblast patch file:
    ncbi-blast-2.14.1+-src.tar.gz
    isb-2.14.1+-rmblast.patch.gz
  2. 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”
    Other missing dependencies might be detected by the configure step later, depending on your operating system.
  3. 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
  4. Patch:
    • cd ncbi-blast-2.14.1+-src
    • patch -p1 < ../isb-2.14.1+-rmblast.patch
  5. 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
  6. 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.