Skip to content

Compiling NCBI BLAST

BLAST is the Basic Local Alignment Search Tool from the National Center for Biotechnology Information.[1]

Version 2.2.22 for QIIME 1.8.0 Integration

We will only deal with version 2.2.22, which is the version recommended for use with QIIME 1.8.0. Download is here:

ftp://ftp.ncbi.nlm.nih.gov/blast/executables/release/2.2.22/

Download

wgetftp://ftp.ncbi.nlm.nih.gov/blast/executables/release/2.2.22/ncbi.tar.gz tar xf ncbi.tar.gz

Modify Build Scripts

Edit ncbi/make/makedis.csh. In the "case Linux:" section (at line 145), add a new case statement to deal with 64-bit Linux:

case "x86_64": set platform=linux64 breaksw

Edit ncbi/platform/linux64.ncbi.mk, and change the following:

NCBI_LDFLAGS1 = -O3 -msse4.2 -mavx -mfpmath=sse NCBI_OPTFLAG = -O3 -msse4.2 -mavx -mfpmath=sse NCBI_BIN_MASTER = $(HOME)/ncbi/bin NCBI_BIN_COPY = $(HOME)/ncbi/bin NCBI_INCDIR = $(HOME)/ncbi/include NCBI_LIBDIR = $(HOME)/ncbi/lib NCBI_ALTLIB = $(HOME)/ncbi/altlib NCBI_VIBFLAG = -DWIN_MOTIF NCBI_VIBLIBS = -lXmu -lXm -lXt -lSM -lICE -lXext -lXp -lX11 -ldl NCBI_DISTVIBLIBS = -lXmu -lXm -lXt -lSM -lICE -lXext -lXp -lX11 -ldl OPENGL_INCLUDE = OPENGL_LIBS = -lGL -lGLU NCBI_OGLLIBS = -lGL -lGLU LIBPNG_DIR = ZLIB_DIR =

Build

./ncbi/make/makedis.csh

Resulting executables are in:

ncbi/build

Move them appropriately.

Possible Issues

Some error messages which seem important:

In file included from simple.c:69:0: ../include/all.h:6079:0: warning: "RNA_QUAL" redefined [enabled by default] #define RNA_QUAL &at[1966] ^ ../include/all.h:4738:0: note: this is the location of the previous definition #define RNA_QUAL &at[992]

BLAST+ 2.2.29

Compilation

export PREFIX=/mnt/HA/groups/myrsrchGrp export CFLAGS="-O3 -msse4.2 -mavx -mfpmath=sse" export CXXFLAGS="${CFLAGS}" ./configure --prefix=$PREFIX --with-dll --with-algo --with-serial --with-openmp \ --with-64 --with-lfs --with-mysql --with-mesa --with-sge=$SGE_ROOT >& Configure.out & make -j 12 >& Make.out &

BLAST+ 2.2.30

Currently Loaded Modulefiles:
  1) shared                                   6) boost/openmpi/gcc/64/1.57.0             11) proteus-fftw3/gcc/64/3.3.3
  2) proteus                                  7) szip/gcc/2.1                            12) hdf5_18/gcc/1.8.14-serial
  3) gcc/4.8.1                                8) hdf5_18/gcc/1.8.14-mpi                  13) python/2.7-current
  4) sge/univa                                9) proteus-blas/gcc/64/20110419            14) perl/5.20.0
  5) proteus-openmpi/gcc/64/1.8.1-mlnx-ofed  10) proteus-lapack/gcc/64/3.5.0

./configure CFLAGS="-O3 -march=corei7-avx -mfpmath=sse" \ --prefix=/mnt/HA/opt/ncbi-blast/gcc/64/2.2.30 \ --with-dll --with-algo --with-serial --with-openmp --with-64 \ --with-lfs --with-mysql --with-mesa --with-sge=$SGE_ROOT \ --with-python --with-boost=$BOOSTDIR --with-sqlite3 \ --with-perl --with-hdf5=$HDF5DIR

BLAST+ 2.6.0

Currently Loaded Modulefiles:
  1) shared                                  15) suitesparse/gcc/4.5.3
  2) proteus                                 16) szip/gcc/2.1
  3) gcc/4.8.1                               17) hdf5_18/gcc/1.8.14-serial
  4) sge/univa                               18) llvm/3.8.1
  5) git/2.11.1                              19) gmp/gcc/6.1.1
  6) texlive/2016                            20) mpfr/gcc/3.1.4
  7) doxygen/1.8.12                          21) mpc/gcc/1.0.3
  8) zstd/1.0.0                              22) python/2.7-current
  9) gsl/gcc/2.2.1                           23) libxml2/gcc/2.9.2
 10) proteus-openmpi/gcc/64/1.8.1-mlnx-ofed  24) perl/5.20.0
 11) boost/openmpi/gcc/64/1.57.0             25) bzip2/gcc/1.0.6
 12) proteus-blas/gcc/64/20110419            26) zlib/cloudflare/gcc/1.2.8
 13) proteus-lapack/gcc/64/3.5.0
 14) proteus-fftw3/gcc/64/3.3.3
    ./configure CFLAGS="-O3 -march=corei7-avx -mfpmath=sse" CXXFLAGS="-O3 -march=corei7-avx -mfpmath=sse" \
        --prefix=/mnt/HA/opt/ncbi-blast/gcc/64/2.6.0 \
        --with-dll --with-algo --with-serial --with-openmp --with-64 \
        --with-check --with-hard-runpath --with-lfs \
        --with-mysql --with-mesa --with-sge=$SGE_ROOT \
        --with-boost=${BOOSTDIR} --with-z=${ZLIBDIR} --with-bz2=${BZIP2DIR} --with-lapack=${LAPACKDIR} \
        --with-sqlite3  \
        --with-perl --with-python --with-hdf5=$HDF5DIR

Configure summary: <source lang="text> CFLAGS = -Wall -Wno-format-y2k -m64 -pthread -fopenmp -O3 -march=corei7-avx -mfpmath=sse -fPIC CXXFLAGS = -Wall -Wno-format-y2k -m64 -pthread -fopenmp -O3 -march=corei7-avx -mfpmath=sse -fPIC CPPFLAGS = -DNDEBUG -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_MT -D_REENTRANT -D_THREAD_SAFE LDFLAGS = -Wl,-rpath,/cm/shared/apps/gcc/4.8.1/lib/gcc/x86_64-unknown-linux-gnu/4.8.1/../../../../lib64 -Wl,--disable-new-dtags -Wl,-export-dynamic -m64 -pthread -fopenmp -O

LIBRARIES: build as dynamic by default FEATURES: GCC MT LFS DLL DLL_BUILD unix WinMain Linux check PACKAGES:

enabled:  UUID FUSE Iconv Z BZ2 PCRE GMP GMP GCRYPT GNUTLS OPENSSL KRB5 CURL MySQL BerkeleyDB BerkeleyDB++ PYTHON PYTHON26 PYTHON27 PERL Boost.Filesystem Boost.Iostreams Boost.Program-Options Boost.Regex Boost.Spirit Boost.System Boost.Test.Included Boost.Thread OpenGL MESA GLUT EXPAT LIBXML LIBXSLT LIBEXSLT Xerces Xalan SQLITE3 SGE HDF5 JPEG PNG TIFF UNGIF XPM FreeType FTGL MAGIC GSOAP LAPACK disabled: LocalZ LocalBZ2 LZO LocalPCRE NETTLE Sybase DBLib FreeTDS ODBC PYTHON25 PYTHON3 Boost.Test C-Toolkit GLEW wxWidgets wx2.8 Fast-CGI LocalSSS LocalMSGMAIL2 SSSUTILS LocalNCBILS NCBILS2 SSSDB SP ORBacus ICU SABLOT Zorba SQLITE3ASYNC VDB OECHEM MUPARSER GIF MIMETIC AVRO Cereal SASL2 MONGODB GMOCK LMDB

PROJECTS:

enabled:  cgi serial objects dbapi app algo disabled: local_lbsm connext ncbi_crypt bdb ctools gui gbench

Fix Perl script

The Perl script update_blastdb.pl needs to be fixed to use the newer Perl rather than the system Perl. Modify the first line to read:

#!/usr/bin/env perl

BLAST+ 2.10.0

BLAST+ 2.10.0 requires a newer GCC compiler than is available on Proteus

IN PROGRESS - DO NOT USE

Currently Loaded Modulefiles:
  1) shared                                  15) suitesparse/gcc/4.5.3
  2) proteus                                 16) szip/gcc/2.1
  3) gcc/4.8.1                               17) hdf5_18/gcc/1.8.14-serial
  4) sge/univa                               18) llvm/3.8.1
  5) git/2.25.0                              19) gmp/gcc/6.1.1
  6) texlive/2016                            20) mpfr/gcc/3.1.4
  7) doxygen/1.8.12                          21) mpc/gcc/1.0.3
  8) zstd/1.0.0                              22) python/2.7-current
  9) gsl/gcc/2.2.1                           23) libxml2/gcc/2.9.2
 10) proteus-openmpi/gcc/64/1.8.1-mlnx-ofed  24) perl/5.20.0
 11) boost/openmpi/gcc/64/1.57.0             25) bzip2/gcc/1.0.6
 12) proteus-blas/gcc/64/20110419            26) zlib/cloudflare/gcc/1.2.8
 13) proteus-lapack/gcc/64/3.5.0
 14) proteus-fftw3/gcc/64/3.3.3
    ./configure CFLAGS="-O3 -march=corei7-avx -mfpmath=sse" CXXFLAGS="-O3 -march=corei7-avx -mfpmath=sse" \
        --prefix=/mnt/HA/opt/ncbi-blast/gcc/64/2.6.0 \
        --with-dll --with-algo --with-serial --with-openmp --with-64 \
        --with-check --with-hard-runpath --with-lfs \
        --with-mysql --with-mesa --with-sge=$SGE_ROOT \
        --with-boost=${BOOSTDIR} --with-z=${ZLIBDIR} --with-bz2=${BZIP2DIR} --with-lapack=${LAPACKDIR} \
        --with-sqlite3  \
        --with-perl --with-python --with-hdf5=$HDF5DIR

Configure summary: <source lang="text> CFLAGS = -Wall -Wno-format-y2k -m64 -pthread -fopenmp -O3 -march=corei7-avx -mfpmath=sse -fPIC CXXFLAGS = -Wall -Wno-format-y2k -m64 -pthread -fopenmp -O3 -march=corei7-avx -mfpmath=sse -fPIC CPPFLAGS = -DNDEBUG -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_MT -D_REENTRANT -D_THREAD_SAFE LDFLAGS = -Wl,-rpath,/cm/shared/apps/gcc/4.8.1/lib/gcc/x86_64-unknown-linux-gnu/4.8.1/../../../../lib64 -Wl,--disable-new-dtags -Wl,-export-dynamic -m64 -pthread -fopenmp -O

LIBRARIES: build as dynamic by default FEATURES: GCC MT LFS DLL DLL_BUILD unix WinMain Linux check PACKAGES:

enabled:  UUID FUSE Iconv Z BZ2 PCRE GMP GMP GCRYPT GNUTLS OPENSSL KRB5 CURL MySQL BerkeleyDB BerkeleyDB++ PYTHON PYTHON26 PYTHON27 PERL Boost.Filesystem Boost.Iostreams Boost.Program-Options Boost.Regex Boost.Spirit Boost.System Boost.Test.Included Boost.Thread OpenGL MESA GLUT EXPAT LIBXML LIBXSLT LIBEXSLT Xerces Xalan SQLITE3 SGE HDF5 JPEG PNG TIFF UNGIF XPM FreeType FTGL MAGIC GSOAP LAPACK disabled: LocalZ LocalBZ2 LZO LocalPCRE NETTLE Sybase DBLib FreeTDS ODBC PYTHON25 PYTHON3 Boost.Test C-Toolkit GLEW wxWidgets wx2.8 Fast-CGI LocalSSS LocalMSGMAIL2 SSSUTILS LocalNCBILS NCBILS2 SSSDB SP ORBacus ICU SABLOT Zorba SQLITE3ASYNC VDB OECHEM MUPARSER GIF MIMETIC AVRO Cereal SASL2 MONGODB GMOCK LMDB

PROJECTS:

enabled:  cgi serial objects dbapi app algo disabled: local_lbsm connext ncbi_crypt bdb ctools gui gbench

Fix Perl script

The Perl script update_blastdb.pl needs to be fixed to use the newer Perl rather than the system Perl. Modify the first line to read:

#!/usr/bin/env perl

See Also

References

[1] NCBI BLAST Software and Database information