In order to perform a search with mpiBLAST, the target BLAST database must first be formatted and segmented using
mpiexec can be used to execute
mpiblast in parallel on several cluster nodes.
Formatting a database
Before processing blast queries the sequence database must be formatted with
mpiformatdb. The command line syntax looks like this:
mpiformatdb -N 16 -i nt -o T
The above command would format the nt database into 16 fragments. Note that currently mpiformatdb does not support multiple input files.
mpiformatdb places the formatted database fragments in the same directory as the FASTA database. To specify a different target location, use the "-n" option as what is available in the NCBI formatdb.
Querying the database
mpiblast command line syntax is nearly identical to NCBI's
blastall program. Running a query on 18 nodes would look like:
mpiexec -n 18 mpiblast -p blastn -d nt -i blast_query.fas -o blast_results.txt
The above command would query the sequences in
blast_query.fas against the
nt database and write out results to the
blast_results.txt file in the current working directory. By default, mpiBLAST reads configuration information from
~/.ncbirc. Furthermore, mpiBLAST needs at least 3 processes to perform a search: two processes dedicated for scheduling tasks and coordinating file output, while any additional processes actually perform search tasks.
Extra options to mpiblast
Please refer to the README file in the mpiBLAST package for performance tuning guide.
Removing a database
--removedb command line option will cause mpiBLAST to do all work in a temporary directory that will get removed from each node's local storage directory upon successful termination. For example:
mpiexec -n 18 mpiblast -p blastx -d yeast.aa -i ech_10k.fas -o results.txt --removedb
The above command would perform a 18 node (16 worker) search of the
yeast.aa database, writing the output to
results.txt. Upon completion, worker nodes would delete the
yeast.aa database fragments from their local storage.
Databases can also be removed without performing a search in the following manner:
mpiexec -n 18 mpiblast_cleanup