I know. I know. This took me a while. Don’t worry. I’m just as obsessive about updating. Only I had no time to talk about the newest version of NCBI’s blast.

The good news: NCBI’s BLAST 2.2.30+ compiles all right without any problems, and thus you did not need my input. You no longer need to edit the Makefile.mk file. Now it’s pretty straightforward. Do as they tell you and you’ll get the blast suite compiled. It will compile with Apple’s default compilers (clang), and with the gcc-4 that you can install if you have fink in your Mac. If you don’t have fink, what are you waiting for?!

Now. The one thing I change is the optimization. I want to compile with the “-O3”, and the default is “-O2”. If you’re as obsessed as myself about optimization, then the trick is simple. If you have read my previous posts on compiling blast, then you should have already guessed: setenv CFLAGS ‘-O3’ and setenv CXXFLAGS ‘-O3’.

Here what that would look like:

% mkdir BUILD
% cd BUILD/
% tar zxvf ../ncbi-blast-2.2.30+-src.tar.gz | tail -5
ncbi-blast-2.2.30+-src/c++/src/objmgr/seq_vector_ci.cpp
ncbi-blast-2.2.30+-src/c++/src/objmgr/feat_ci.cpp
ncbi-blast-2.2.30+-src/c++/src/objmgr/tse_chunk_info.cpp
ncbi-blast-2.2.30+-src/c++/src/objmgr/annot_ci.cpp
ncbi-blast-2.2.30+-src/c++/src/objmgr/bioseq_edit_commands.cpp
% cd ncbi-blast-2.2.30+-src/c++/
% setenv CFLAGS '-O3'
% setenv CXXFLAGS '-O3'
% ./configure --without-debug --with-strip --with-mt --with-build-root=ReleaseMT --with-static --with-static-exe --prefix=/usr/local/ncbi |& tail -5
To build everything:  cd /Users/gmh/BUILD/ncbi-blast-2.2.30+-src/c++/ReleaseMT/build && make all_r
or simply run make in the current directory


******* CONFIGURATION SUCCESSFUL *******
% make -j4
... output not shown for brevity ...
% sudo make install

Now a note of caution. The new blast suite has a little problem. The NCBI team developing these tools decided to add composition-based statistics to rpsblast. That may or may not be a good idea (I haven’t checked for the effects of composition-based statistics, versus no such statistics, in the rest of the suite), but the problem is that in my Mac, if I run rpsblast the way I was running it before, the program starts grabbing more and more RAM until there’s no more RAM. Then the machine panics and restarts. I tried many things. I compiled with gcc-4, I compiled with the default optimization, I tried a different machine model (an iMac instead of the MacPro). Same problem. The only way to avoid this problem was to, you guessed it, not use the composition-based statistics. For that, you use the “-comp_based_stats F” option and you’re done.

Happy blasting ladies and gentlemen!

-SuperGabo

Leave a comment