Copyright (c) 2003 Warren R. Gish, Saint Louis, Missouri 63108 USA.
All Rights Reserved.


Washington University BLAST (WU BLAST) version 2.0 is a powerful software package for gene and protein identification, using sensitive, selective and rapid similarity searches of protein and nucleotide sequence databases. WU BLAST 2.0 builds upon WU BLAST 1.4, which in turn was based on the public domain NCBI BLAST version 1.4 (Gish, unpublished, 1994; Altschul et al., 1990; Gish and States, 1993). While NCBI BLAST and WU BLAST 1.4 are in the public domain, WU BLAST 2.0 contains significant new features and extended capabilities, the development of which began in late 1994, at Washington University in Saint Louis. First released in May 1996, or more than a year ahead of the NCBI, WU BLAST 2.0 is the original gapped BLAST with statistics and is known for setting higher standards for sensitivity, speed, correctness and accuracy, scalability and reliability than competing programs and implementations. WU BLAST is not a re-hash of NCBI BLAST and essentially shares no code with it, except for small portions that both packages derived from ungapped NCBI BLAST 1.4.

WU BLAST has been built to be the most trusted database search tool in your software arsenal. Its unique combination of speed, accuracy, efficiency, flexibility, scalability, reliability and consistency across all supported platforms is achieved through careful software coding, the use of extensive error checks, anticipation of future needs, and superior design.

[Note:   In spite of many similar or identical characteristics of the algorithms employed, WU BLAST 2.0 and NCBI Gapped BLAST are distinctly different software packages that, in ways of varying importance, carry out their work differently. Consequently, the two packages often yield different results, particularly in the areas of the default level of sensitivity, details in how the statistics are employed, and occasionally in the accuracy or completeness of the results.]

The feature list for the licensed version of WU BLAST 2.0 is large and continues to expand. Much of this is outlined below. The primary purpose of the freely available version 2.0a19 is to allow users to demonstrate for themselves the effectiveness of using gapped alignments instead of ungapped, when combined with the evaluation of the joint probability of multiple regions of similarity, using Karlin and Altschul (1993) "Sum" statistics. Not surprisingly, with version 2.0a19 one can obtain markedly improved results over version 1.4, primarily due to the introduction of gapped alignments. WU BLAST 2.0a19 executables for several UNIX platforms can be downloaded from http://blast.wustl.edu/blast/executables. The complete suite of search programs (blastp, blastn, blastx, tblastn, and tblastx) is included, as well as several support programs. Users of the freely available version 2.0a19 should keep in mind that its reliability, features, flexibility, scalability and speed are generally not comparable to the licensed version 2.0.

WU BLAST 2.0 is copyrighted and may not be sold, redistributed or modified in any form or by any means, without the express written consent of the Washington University School of Medicine in St. Louis. Other than the aforementioned restrictions, the version 2.0a19 executables posted here may be freely used for commercial, nonprofit, or academic purposes.


Key Features

Some of the key features of WU BLAST 2.0 are described below, many of which are only available in the licensed version.

A reverse chronological list of changes is available in the HISTORY file, however this file is outdated with respect to licensed versions of WU BLAST 2.0. The reader might also get the unfortunate impression that WU BLAST 2.0 is unreliable, when in fact the licensed version has shown itself to be very robust. Furthermore, any bugs that have been found have typically been fixed within 24 hours of their being reported. For current HISTORY information, licensed users should consult the HISTORY file that accompanies the licensed software distribution.

Please send bug reports, questions, or suggestions to


The licensed BLAST 2.0 package includes the following data analysis and utility programs:

To Fly...

If the gapped alignments are nice, but even more speed or less memory use are desired, read how to make the programs fly.


Here are some sample WU BLAST 2.0 results produced using generally default parameters, plus the oft-recommended low-complexity filter seg and the -postsw option of WU BLASTP 2.0. Exceptions to the defaults are noted and their corresponding results provided, as well.
Default parameters for NCBI blastall were also used, with the exception of using -G7 -E2 to make the scoring system identical to the WU default (penalty of 9 for the first residue in a gap).

New Command Line Options

Command line options for WU BLAST version 1.4 often apply to version 2.0 without change. (See the version 1.4 manual page in Adobe Acrobat (PDF) format). New command line options to version 2.0 include the following. Some of these options are not available in the freely available alpha releases of WU BLAST 2.0. Terse program usage can also be obtained by entering one of the program names on the command line without any arguments.
Note: parsing of command line options is alphabetic case-independent.
Option Description
Q=<q> set the penalty for a gap of length one to q (default Q=9 for proteins; Q=10 for BLASTN)
R=<r> set the per-residue penalty for extending a gap to r (default R=2 for proteins; R=10 for BLASTN)
H=<h> Set the value for the relative entropy to be used in Karlin-Altschul statistics of ungapped alignment scores. In earlier versions of BLAST, the H option was used to invoke the display of a histogram.
postsw perform full Smith-Waterman alignment of sequences and re-rank the database matches accordingly, prior to output (currently supported in BLASTP only)
hitdist=<hitdist> invoke a 2-hit BLAST algorithm similar to that of Altschul et al. (1997), with the maximum distance between word hits of <hitdist>. Altschul et al. (1997) use the equivalent of hitdist=40 in the BLASTP, BLASTX, TBLASTN and TBLASTX search modes. In WU BLASTN, setting hitdist=W and wink=W, where W is the word length, is akin to using double-length words generated on W-mer boundaries.
NOTE: in protein-level comparisons, for best sensitivity (or the best sensitivity for the amount of memory used), 2-hit BLAST should generally be avoided.
This option is only available in the licensed 2.0 software.
wink=<wink> generate word hits at every winkth ("W increment") position along the query, where the default wink=1 produces neighborhood words at every position. For best sensitivity, this option (setting wink greater than 1) should not be used. Wink is best used to find identical or nearly identical sequences rapidly. When used in conjunction with the hitdist option to obtain the highest search speed, care should be taken that desirable alignments are not precluded by these parameters. This option is only available in the licensed 2.0 software.
wordmask=<masker> mask letters in the query sequence without altering the sequence itself, during neighborhood word generation.
lcfilter filter lower case letters in the query sequence, by replacing lower case letters with the appropriate ambiguity code (N for nucleotide sequences, X for protein sequences).
lcmask mask lower case letters in the query sequence without altering the sequence, during neighborhood word generation.
maskextra=<extra> word-mask an additional extra letters on each side flanking an already-masked region. This helps avoid the appearance of spurious alignments through low-complexity regions initiated by chance word hits immediately adjacent to masked regions.
nogaps do not create gapped alignments, in essence reverting to WU BLAST 1.4 behavior
pingpong Perform additional work to help ensure the alignments produced are locally optimal. This option typically adds 3-10% to the execution time, without affecting the results. Only rarely is an alignment and its associated score improved, for all the work involved.
gapall effectively generate a gapped alignment for every ungapped HSP found. This is the default behavior.
See also: gapE.
gapE=<gapE> generate gapped alignments for all HSPs between sequences whose expected frequency of chance occurrence is less than or equal to <gapE>. Default value is gapE=infinity, i.e., gapall is in effect.
gapW=<gapW> set the window width (or band width) within which gapped alignments are generated (default is gapW=32 for protein comparisons, gapW=16 for BLASTN).
noseqs produces greatly abbreviated output that omits sequence alignments and yet may be interpreted correctly by existing parsers.
hspmax=<hspmax> establishes <hspmax> as the maximum number of ungapped HSPs that will be saved per subject sequence or pairwise sequence comparison. Saved HSPs are then fed to the gapped alignment phase of the program or are statistically evaluated if gapped alignments are not to be performed. If more than <hspmax> HSPs are found, only the best-scoring HSPs are retained for subsequent processing.
The default value is 1000; a value of 0 implies no limit.
See also: gspmax and spoutmax.
NOTE: this usage of hspmax is subtly, but importantly, different from the parameter's classical interpretation, wherein all ungapped HSPs that satisfied the S2 score threshold were saved and <hspmax> merely limited the number of HSPs (gapped or ungapped) that would be reported. The new interpretation was instituted to provide vastly improved speed on large problems, while imparting no effect on small problems and many medium-sized problems. The new behavior can help guard against horrendously slow searches resulting from an inadvertant omission of a low-complexity filter. Adverse effects on sensitivity may be obtained, however, if every HSP is sacred. To restore classical behavior, specify hspmax=0. As a compromise between sensitivity and speed, set a higher value than the default.
NOTE: the B and V options limit the number of subject sequences for which any results whatsoever are reported, regardless of the number of HSPs or GSPs found in each case.
gspmax=<gspmax> establishes <gspmax> as the maximum number of GSPs (gapped HSPs) to report per subject sequence or pairwise sequence comparison. If more than <gspmax> GSPs are found, only the best-scoring GSPs are retained for subsequent processing and reporting. The setting of gspmax will have no effect, if the nogaps option is specified or if the setting of hspmax is more restrictive.
The default value is 1000; a value of 0 implies no limit.
See also: hspmax and spoutmax.
NOTE: the B and V options limit the number of subject sequences for which any results whatsoever are reported, regardless of the number of HSPs or GSPs found.
spoutmax=<spoutmax> establishes <spoutmax> as the maximum number of segment pairs to report in program output per subject sequence or pairwise comparison, however many HSPs or GSPs were actually found and evaluated. If more than <spoutmax> segment pairs are found, the segment pairs are sorted by the criteria in effect for the search and only the first <spoutmax> segment pairs are reported. The setting of spoutmax will have no effect if either <hspmax> or <gspmax> is more restrictive.
The default value is 1000; a value of 0 implies no limit.
See also: hspmax and gspmax.
compat1.4 produces BLAST version 1.4-style output (no gaps), but with bug fixes and performance enhancements in place.
kap use Karlin-Altschul (1990) statistics on individual alignment scores (i.e., do not evaluate the joint probability of multiple scores, such as with Poisson or Karlin-Altschul (1993) "Sum" statistics).
restest causes statistical significance estimates to depend upon the size of the database, as determined by the total number of residues it contains. Restest is the default method for determining the database size in the blastn, tblastn, and tblastx search modes.
See seqtest.
seqtest causes statistical significance estimates to depend upon the size of the database, as determined by the number of sequences it contains. Seqtest is the default method for determining the database size in the blastp and blastx search modes. For backward compatibility with legacy BLAST software -- in all search modes, including blastp and blastx -- if the Z option is specified, Z is expected to be expressed in units of residues, unless the seqtest option is also specified.
See restest.
links display consistent link information for each alignment, indicating all of the "consistent" alignments used in joint statistical significance calculations.
topcomboN=<n> report at most n "topcombo" groups of consistent (colinear) local alignments (HSPs). Each local alignment is allowed to be a member of only one group. Use of this option causes the addition of a "Group = #" indicator in the output for each HSP. Groups of HSPs tend to be assembled in decreasing order of statistical significance. Members of the most significant group thus tend to be reported with "Group = 1". See also: topcomboE.
topcomboE=<Eratio> Eratio is the maximum ratio of Ecurrent/Ebest for which the current "topcombo" group of consistent (colinear) local alignments will be reported for a given database sequence. The "best" group is reported in the output as "Group = 1" and tends to be the most statistically significant. The default behavior is to impose no limit on this ratio, in which case all topcombo groups satisfying E are reported (up to a maximum of topcomboN). See also: topcomboN.
olmax=<len> maximum permitted length of overlap (in residues), len, of two ungapped alignments for their joint (Sum or Poisson) probability to be computed. The default is unlimited length, with the maximum extent of overlap being governed only by the olfraction parameter.
golmax=<len> maximum permitted length of overlap (in residues), len, of two gapped alignments for their joint (Sum or Poisson) probability to be computed. The default is unlimited length, with the maximum extent of overlap being governed only by the golfraction parameter.
hspsepqmax maximum distance allowed along the query sequence between two "consistent" HSPs. (Useful when the query is genomic with relatively short intragenic regions).
hspsepsmax maximum distance allowed along the subject (database) sequence between two consistent HSPs. (Useful when the database contains genomic sequences with relatively short intragenic regions).
gapsepqmax maximum distance allowed along the query sequence between two consistent gapped alignments. (Useful when the query is genomic with relatively short intragenic regions).
gapsepsmax maximum distance allowed along the subject sequence between two consistent gapped alignments. (Useful when the database contains genomic sequences with relatively short intragenic regions).
gapK=<k> set the value of the Karlin-Altschul statistics' K parameter to use when evaluating the significance of gapped alignment scores. Useful when precomputed values are unavailable in the internal tables for the chosen scoring matrix and gap penalty combination.
gapL=<l> set the value of the Karlin-Altschul statistics' lambda parameter to use when evaluating the significance of gapped alignment scores
gapH=<h> set the value of the Karlin-Altschul statistics' H parameter to use when evaluating the significance of gapped alignment scores
dbchunks=<nchunks> establishes the granularity of the database, as it is divided into slices for assignment to individual threads, to make more efficient use of all CPUs when multiple CPUs are employed for a given search. Higher values are appropriate when the database contains relatively few sequences and/or when the sequences vary greatly in length, composition or content (e.g., genomic contigs). Lower values are appropriate when the database contains many sequences of comparable length (e.g., the EST division of GenBank). The minimum assignable value is the number of threads employed, but this setting is ill-advised; the optimal value for any given search type is likely to be a large multiple of the number of threads employed (although it need not be an exact multiple). When searching mammalian genomic contigs, a good value may be 1000. The default value is 500.
qrecmin=<m> in a multi-sequence query file, start database searches using the query sequence numbered m. (The first record is numbered 1).
qrecmax=<n> in a multi-sequence query file, end database searches with the query sequence numbered n.
putenv="NAME=VALUE" in the local environment to the BLAST search program, set the environment variable named NAME to the value VALUE.
endputenv for security in WWW server installations, where the command line may sometimes be left open to users, ignore any subsequent putenv options found on the command line during left-to-right parsing.
getenv="NAME" display the value of the environment variable named NAME. This may be useful for verifying that the settings of environment variables on a web server or in an analysis pipeline have been propagated all the way to the BLAST search program.
endgetenv ignore any subsequent getenv options found on the command line during left-to-right parsing.
cdb search nucleotide sequence databases in their uncompressed form. This option is only effective in the BLASTN search mode for word lengths > 6. See ucdb.
ucdb search nucleotide sequence databases in their uncompressed form, with any-and-all ambiguity codes in place. This option may be used to increase sensitivity in the presence of ambiguity codes, at the expense of memory and possibly speed. This is the standard behavior for word lengths < 7, and is not recommended for use with the default or longer word lengths, particularly for longer sequences, due to the increased memory requirements; when comparing long sequences, however, if sufficient memory is available, use of this option can yield a significant increase in speed. This option offers improved sensitivity when searching databases in XDF format that contain ambiguity codes. The option is accepted by the software but offers no improvement in sensitivity for databases in the earlier BLAST 1.4 database format. (BLASTN search mode only).
mmio turn off the use of memory-mapped I/O when reading database files. Use of this option will usually retard the search, particularly when multiple processors are being used, but it serves both to demonstrate the effectiveness of this form of I/O and to validate the I/O routines. Note that no special daemon or support programs (such as the old memfile program) are required to take full advantage of memory-mapped I/O.

Environment Variables

In WU BLAST 2.0, the BLASTDB environment variable can be a list of one or more directory names in which the programs are to look for database files. (In UNIX parlance, such an environment variable might be called a path for the database files). Multiple directory names should be separated from one another by a colon (":"). If the BLASTDB environment variable is not set, the programs use a default path of ".:/usr/ncbi/blast/db", such that the programs first look in the current working directory (".") for the requested database; then they will look in the "/usr/ncbi/blast/db" directory. For backward compatibility with programs that expect BLASTDB to be a single directory specification and not a path, if the user has set a value for BLASTDB but omitted the current working directory, the version 2 programs will still look for database files in the current working directory as a last resort.

The BLASTFILTER environment variable can be set to the directory containing the filter programs, such as seg and xnu. The default directory for the filter programs is /usr/ncbi/blast/filter. This usage is unchanged from version 1.4.

The BLASTMAT environment variable can be set to the parent directory for all scoring matrix files. The default directory for these files is /usr/ncbi/blast/matrix, beneath which are nt and aa subdirectories for storing scoring matrix files appropriate for nucleotide and amino acid alphabets. This usage is unchanged from version 1.4.

For more information about environment variables, see the Installation instructions.

Filters and Masks

WU BLAST provides an highly flexible means of applying both "hard" and "soft" masks to a query sequence, supporting alternative, user-defined filter programs, as well as non-standard parameters to the standard filters. The filter (for hard masking) and wordmask (for soft masking) command line options provide the basic interface. Multiple specifications of each type are acceptable on the BLAST command line; and individual filter and wordmask specifications may consist of entire pipelines of commands.

For example, three filters are used in succession by this pipeline:

      filter="myfilter1 | myfilter2 | myfilter3 -x5 -"
The first two filters in this case are expecting to read their input from UN*X standard input (also known as stdin), whereas myfilter3 apparently needs to be told (with the usual "-" or hyphen argument) to read data from stdin. The standard output (stdout) from myfilter1 will be read via stdin by myfilter2, which in turn processes the query before handing its results to myfilter3; finally, myfilter3 reports its results to stdout, which the BLAST program itself reads to obtain the fully masked sequence. The final output from the filter pipeline is expected by the BLAST program to be in FASTA format.

Instead of running all 3 filters in the above example as part of one pipeline, they could instead be specified as separate filter options like this:

    filter=myfilter1  filter=myfilter2  filter="myfilter3 -x5 -"
The same choice of running as a pipeline or running separately is available for wordmasks, too. And of course the two approaches can be combined on the same command line. An advantage to using the pipeline approach is that all 3 filters in the example above may complete a little bit faster, because much of the I/O is avoided. Furthermore, when used in the pipeline, there's no requirement that the output from myfilter1 and myfilter2 actually be in FASTA format. Those two programs could potentially pass any information between themselves and to myfilter3. The only absolute requirement is that myfilter1 must read FASTA data from stdin and myfilter3 must output FASTA data (of the same length as the query!) to stdout.

It should be noted that with some filter programs, passing the query sequence sequentially through a pipeline of filters may yield a different result than processing the query independently with each filter and OR-ing the results. The script seg+xnu included in the filter/ directory provides an example with which to test this. Specifying filter=seg+xnu on the BLAST command line invokes a seg and xnu pipeline that is built-in to the search programs; whereas specifying filter="seg+xnu -" causes the seg+xnu script to be invoked on the query, which independently executes seg and xnu, then ORs the separate results with pmerge. (The echofilter option can be used to see the results of filtering displayed in search program output). While the built-in seg+xnu pipeline is historically the way these two filters have been implemented, the latter interpretation, as illustrated by the seg+xnu script with pmerge, may be more desirable.


The following list describes bugs that are known to exist in the WU BLAST 2.0a19 binaries posted here. These are all fixed in the licensed version 2.0 of WU BLAST, in which there are no known bugs. If you are a user of the licensed version and believe you see a bug, please send a Even users of the licensed version should read the second set of potential problem areas or pitfalls listed below this initial bug list.

The above mentioned bugs are not applicable to the licensed version of WU BLAST 2.0, but the licensed version does have some characteristics worth mentioning that could trip up or confuse even the most knowledgeable of BLAST users. Any unexpected behavior might be construed as a bug, so the following information is provided to help avoid the unexpected. If you should encounter problems or confusing areas other than those described below, or if you have questions or suggestions, please send them to

Supported Platforms

The computing platforms currently supported by BLAST 2.0 (licensed version only) include the following:

The list of supported platforms is subject to change without notice.
Multiple processors (multithreading or parallel processing) are effectively and efficiently supported by WU BLAST on all of the above platforms. WU BLAST 2.0 also supports large files (files greater than 2 GB in size) when the underlying operating system and file system support large files.

Under MacOS X, WU BLAST is the only BLAST that runs faster on multiple G4 processors. Other BLAST implementations either don't use multiple G4 processors or -- as is the case with Apple's modified version of NCBI BLAST -- actually run slower when two processors are used. Unlike other BLASTs, WU BLAST won't crash or hang your system when the use of multiple CPUs is attempted and it yields the most accurate results. WU BLAST also does not utilize any G4-specific instructions for peak performance, so you can even run it on an iBook. You don't have to scrap your old G3 in order to run the fastest BLAST -- WU BLAST runs on the same hardware that MacOS X runs on -- and it has done so since even before MacOS X was publicly released -- but it will run faster on a G4 and again up to twice as fast on a dual G4.

Hewlett-Packard HP-UX and IBM AIX operating systems may need to be patched for error-free support of large files over NFS. If a large file/NFS problem does exist with your HP or IBM system, it should immediately reveal itself when an attempt is made to search a large-file database over NFS: the search will simply fail to run and the application will exit non-zero. If necessary, simply contact your vendor for the patch. Both companies promptly addressed this issue over a year ago, in the first half of 2001.

Please note: while WU BLAST version 2.0a19 binaries dated February 1998 are freely available here for some platforms, newer, full-featured binaries for the above platforms are only available upon licensing. While containing several bugs, some of the more prominent features missing from WU BLAST 2.0a19 but supported by the licensed version are:


Users of the licensed version of BLAST 2.0 should refer to the README.html file that accompanies the software distribution for more relevant instructions. While similar in nature, the following information is specifically for users of version 2.0a19.

To install WU BLAST 2.0, the first step is to download the UNIX tar archive of executables appropriate for your computing platform from here. Scoring matrix files are included in each package, but sequence complexity filters are not. (Several common complexity filters are however included with the licensed version of WU BLAST 2.0). It is advised that the archive be unpacked in a new, empty directory.

The executable programs from the tar archive may be placed in any directory listed in users' PATH environment variable, whether this means adding the new directory to their PATH or moving the executables into an existing directory already listed in their PATH.

If you already had BLAST 1.4 installed (with blastable databases), the installation steps for WU BLAST 2.0 are now complete. If you do not have BLAST 1.4 installed, read on...

Unpacking the tar archive creates a matrix/ subdirectory containing scoring matrix files. Wherever this directory ultimately resides, the BLASTMAT environment variable should be set to point there. In the absence of this environment variable being set, the programs look for scoring matrix files in /usr/ncbi/blast/matrix.

Low-complexity sequence filters or masking programs -- e.g., seg, xnu and dust -- are now included in the licensed software packages. The filter programs are not required for running the search programs, but they can enormously reduce the amount of garbage output, memory use, and search time. Hence, it is highly recommended that these programs be made available to users. You will need to build (compile and link) the programs from source code posted off the WU BLAST Archives home page. Whatever directory you install the filter programs in, the BLASTFILTER environment variable should be set to point there. In the absence of this environment variable being set, the programs look for masking programs in /usr/ncbi/blast/filter. Note: unlike the latest NCBI BLAST search programs, the WU BLAST search programs do not employ sequence filtering by default.

Of course the databases themselves are missing from the tar archives, too! Once the databases have been downloaded from any of many sources on the Internet, the database files are typically uncompressed and processed into FASTA format. Included in the tar archives are several utility programs for converting textual database files:

The NCBI software Toolbox also contains parsers, including asn2fast, a program that converts both nucleotide and peptide sequences in GenBank ASN.1 format into FASTA format files.

All of the above parsers can read from standard input (sometimes signified by a single dash, "-"), so their input files can be maintained on disk in compressed format and dynamically zcat-ed or gunzip-ed directly into the parsers, thus saving the time and storage required for the uncompressed data. Because a dash is often used to signify the start of each command line option, if a dash is needed to specify standard input for the required input filename argument, some of these programs require that a double-dash (--) be specified before the single-dash. This double-dash signifies the end of the command line options and the start of the required arguments.

Once the databases are in FASTA format, the setdb and pressdb programs are used to convert them into blastable format. Simple usage instructions for these programs can be obtained by invoking them without command line arguments. When producing a blastable database, each program creates 3 output files whose names are derived from the name of the input FASTA-format file. The 3 output files are given distinct filename extensions and together comprise the blastable database. For nucleotide sequences containing ambiguity codes (e.g., ESTs which often contain many Ns), the FASTA file will be referenced later (if still accessible) by the search programs, to obtain ambiguity codes for matching sequences that contain such codes. More information about the blastable database file formats is available here.

The blastable database files can be placed anywhere, but the BLASTDB environment variable should point to their directory location. If the BLASTDB environment variable is not set, the programs look for their databases in /usr/ncbi/blast/db and in the current working directory. If the search programs are to find them, nucleotide sequence FASTA files must be located in the same directory as the blastable databases. Sometimes it is more convenient to maintain the FASTA files in a separate directory on another disk partition, with UNIX soft links in the BLASTDB directory pointing to FASTA files stored elsewhere. In addition, on systems where NCBI BLAST will not be in use, blastable databases can be maintained in multiple directories listed in the BLASTDB environment variable, delimiting the directory names with colons just as directory names are delimited in the PATH environment variable.

On multi-processor computer systems, the search programs will by default employ as many CPUs as are installed (up to 4 CPUs in the case of BLASTN, unless more are requested), but this may make inefficient use of the computer when more than about 4 CPUs are used. Depending on how many processors are in your box, you may want to wrap the search programs in a shell script that sets a lower number of CPUs via the cpus=# (or the deprecated P=#) command line option. Another approach to changing the default number of CPUs follows below, for BLAST managers possessing "root" or "SuperUser" privileges.

With licensed distributions of WU BLAST, a sample file named sysblast is provided to help with establishing certain system-wide configuration parameters that govern the behavior of BLAST processes. When installed under the name /etc/sysblast, the default number of CPUs employed can be altered; a hard limit can be imposed on the number of CPUs employable by any single BLAST process; and the "nice" value of BLAST processes can be set. /etc/sysblast resides in a directory that is local to any given computer, so parameter values can be configured differently and as needed for each computer, even if the software itself is maintained on a shared disk partition. The sysblast file is only effective if installed in the /etc directory and the /etc directory should only be writable by "root". See the comments included in the sample sysblast file for further details. Unlike the shell script wrapper approach described above, the limits set in /etc/sysblast can not be circumvented.

For further information, the out-dated manual page for the BLAST version 1.4 (ungapped) search programs is still sometimes useful, for a description of procedures and parameters that have not changed.


Site licenses for the full-featured BLAST 2.0 are available free for academic and nonprofit use; commercial licenses are available from Washington University for a fee. Academic and nonprofit licenses are typically arranged through the institutions' respective offices of technology transfer. Upon obtaining written permission from Washington University, licensees are welcome to install the software for public BLAST services. Washington University seeks additional licensees for commercial development and marketing and invites interested parties to submit proposals.

Please address all e-mail requests for licensing information and limited evaluation copies to Be sure to include the name and address of your company or institution and the name and e-mail address of your lab head (if not you). Washington University typically negotiates site licenses for BLAST, so only one license needs to be executed per institution. If your institution already has a license, you will be informed of this upon inquiring, and your lab head will be provided with download instructions. If a license for your institution does not exist, you may be provided with a draft of the license agreement, which will need to be signed by authorized representatives of both institutions. If you do not receive a response within the next business day, please re-send your message and indicate it is a repeat request. Please note that responses during holiday periods may be slower than usual.

Citing BLAST

Citations or acknowledgements of WU BLAST usage are greatly appreciated, as are any personal accounts of how the software is being used that you might wish to share. When URLs are acceptable, please cite with:

   Gish, W. (1996-2003) http://blast.wustl.edu
When URLs are not acceptable, please use:
   Gish, W., personal communication.
The WU BLAST search program may also be referred to by the name BLASTA. I know of no other program (BLAST-related or otherwise) going by this name.

In scientific communications, it is typically important to report the program name, as well as the specific version used. In the case of WU BLAST or BLASTA, the version is a combination of the "2.0" moniker and the release date. The release date can be found on the first line of output, and it is the first date displayed. For example, consider this introductory line of output:

  BLASTN 2.0MP-WashU [02-Apr-2002] [sol8-ultra-ILP32F64 2002-04-03T01:25:46]
The software release date is April 2, 2002, whereas the compilation or build date of the Solaris 8 binary was April 3rd at 1:25 AM.

Historical Notes

Historical notes and additional citation information for some earlier versions of NCBI and WU BLAST include:


Altschul, SF, and W Gish (1996). Local alignment statistics. ed. R. Doolittle. Methods in Enzymology 266:460-80.

Altschul, SF, and DJ Lipman (1990). Protein database searches for multiple alignments. Proc. Natl. Acad. Sci. USA 87:5509-13.

Altschul, SF, Gish, W, Miller, W, Myers, EW, and DJ Lipman (1990). Basic local alignment search tool. J. of Mol. Biol. 215:403-10.

Altschul, SF, Madden, TL, Schaffer, AA, Zhang, J, Zhang, Z, Miller, W, and DJ Lipman (1997). Gapped BLAST and PSI-BLAST: a new generation of protein database search programs. Nucleic Acids Res. 25(17):3389-402.

Claverie, JM, and DJ States (1993). Information enhancement methods for large scale sequence analysis. Computers in Chemistry 17:191-201.

Gish, W, and DJ States (1993). Identification of protein coding regions by database similarity search. Nature Genetics 3:266-72.

Hancock, JM, and JS Armstrong (1994). SIMPLE34: an improved and enhanced implementation for VAX and Sun computers of the SIMPLE algorithm for analysis of clustered repetitive motifs in nucleotide sequences. Comput. Appl. Biosci. 10:67-70.

Karlin, S, and SF Altschul (1990). Methods for assessing the statistical significance of molecular sequence features by using general scoring schemes. Proc. Natl. Acad. Sci. USA 87:2264-8.

Karlin, S, and SF Altschul (1993). Applications and statistics for multiple high-scoring segments in molecular sequences. Proc. Natl. Acad. Sci. 90:5873-7.

Smith, TF, and MS Waterman (1981). Identification of common molecular subsequences. J. Mol. Biol. 147:195-7.

States, DJ, and W Gish (1994). Combined use of sequence similarity and codon bias for coding region identification. J. Comp. Biol. 1:39-50.

Wootton, JC, and S Federhen (1993). Statistics of local complexity in amino acid sequences and sequence databases. Computers in Chemistry 17:149-63.

Wootton, JC, and S Federhen (1996). Analysis of compositionally biased regions in sequence databases. ed. R. Doolittle. Methods in Enzymology 266:554-71.

Zhang, Z, Schaffer, AA, Miller, W, Madden, TL, Lipman, DJ, Koonin, EV, and SF Altschul (1998). Protein sequence similarity searches using patterns as seeds. Nucleic Acids Res. 26:3986-90.

Return to the WU BLAST Archives home page