The file blast.tar.Z is an L-Z compressed UNIX tar archive containing all of the files splayed beneath the "explode" subdirectory. FTP this file to your local machine in binary mode, uncompress it, then untar it. The blast.tar file is the same file, just not compressed. VMS compress and tar utilities are posted on this machine in the toolbox/vms_util directory. September 15, 1991 Source code for the Basic Local Alignment Search Tool (BLAST) family of sequence database comparison programs, along with some support utilities, and (new) awk scripts is posted here. The previous major distribution is now archived in its entirety beneath the "pub/blast.old" directory. Additional source code is necessary to compile and link the BLAST programs: the pre-release "ncbi", "gish", and "dfa" libraries. Source code for these libraries is located at the same level in the directory hierarchy as the "blast" distribution (currently in /pub/ncbi, /pub/gish, and /pub/dfa). For installation instructions, see the INSTALL file. Send bug reports or requests for electronic mail distribution to: Dr. Warren Gish, gish@ncbi.nlm.nih.gov or Dr. Stephen Altschul, altschul@ncbi.nlm.nih.gov National Center for Biotechnology Information National Library of Medicine Bldg. 38A Rm 8N-806 8600 Rockville Pike Bethesda, MD 20894-0001 (301) 496-2475 The people who played a role in bringing this fine software to you: Samuel Karlin, Dept. of Mathematics, Stanford Univ., Stanford, CA 94305 Stephen Altschul, NCBI, NLM, Bethesda, MD 20894 Webb Miller, Dept. of CS, Penn. State Univ., University Park, PA 16802 Gene Myers, Dept. of CS, Univ. of Arizona, Tuscon, AZ 85721 Warren Gish, NCBI, NLM, Bethesda, MD 20894 David Lipman, NCBI, NLM, Bethesda, MD 20894 Brief descriptions of the programs: blastp: compare an amino acid query sequence against a protein sequence database. blastn: compare a nucleotide query sequence against a nucleotide sequence database. blastx: compare a nucleotide query sequence translated in all 6 reading frames (3 on each strand) against a protein sequence database. tblastn: compare an amino acid query sequence against a nucleotide sequence database translated in all 6 reading frames. blast3: compare an amino acid query sequence against a protein sequence database to identify statistically significant 3-way sequence alignments (the query sequence plus two database sequences) in which the component pairwise alignments are statistically insignificant. setdb: convert a protein sequence file in FASTA format into the format used by blastp, blastx, and blast3. pressdb: convert a nucleotide sequence file in FASTA format into the format used by blastn and tblastn. pam: generate a PAM matrix of any desired generation (from 2 to 511) and scale. pir2fasta: convert a list of files in NBRF PIR format into one in FASTA format. gb2fasta: convert a list of files in GenBank format into one in FASTA format. memfile: manage the loading, updating, and dropping of files mapped into shared memory segments. Other files: blast.1: UNIX style manual page (using nroff's -man macros) describing blastp, blastn, blastx, and tblastn. blast.1ps: PostScript version of blast.1 blast3.1: UNIX style manual page describing blast3. blast3.1ps: PostScript version of blast3.1 pir2fasta.nawk: a new awk script for converting NBRF PIR files into FASTA gb2fasta.nawk: a new awk script for converting GenBank files into FASTA dxch.aa: a sample protein sequence from the PIR in FASTA format Modification history: 9/19/91 Removed one last dependency of the software on the alphabetical case of residues in the FASTA databases. This change was localized to one line in blastn.c. 9/20/91 Better compatibility with Cray UNICOS (version 7.0) 9/23/91 Marginal improvement in speed of BLASTP and TBLASTN (re: zero-ing of diagonal hit structures in search_aa()), with a concomittant correction to the hit statistics reported by these programs. Only a minor change was made with respect to BLAST3, but since all three of these programs include the same searcha.inc file, the version number on BLAST3 was bumped up one. 9/25/91 Improved reporting of individual HSP statistics (including the number of bits of information associated with the alignment scores), and a more consistent report style across all blast programs. 9/27/91 BLASTN is now rigid in its interpretation of matching/mismatching. Residues must be either A, C, G, T(U) to match with any other residue. And T now matches U. There is no concept of a partial match with BLASTN. For example, R (purine) does not half-match with a G or A, but rather is scored as a complete MISMATCH. The blast.1 manual page is better. 10/4/91 Hits on opposite strands of a query or database sequence are now considered to be distinguishable events, and so are counted separately in the Poisson statistics calculations. The default value for E used by BLASTP, BLASTN, BLASTX, and TBLASTN has been reduced from 25 down to 10, to avoid reporting quite so many hits which are statistically insignificant under the random sequence model. The experienced user may well want to routinely use even a lower value for E, e.g. E=1 or E=2. 10/23/91 Fixed frame reference bug in blastx.print_parms. 11/11/91 Neglected to initialize the pts[] array to NULL pointers in blast3.c. 11/13/91 The mode parameter of mfile.mfil_open() was not being passed to fopen() when USE_SHM was undefined. 12/11/91 Fixed bug in blast3.print_p which arose if USE_MPROC was _not_ defined and the database was not resident in shared memory. Fixed semaphore SETVAL bug in shmutil.c and minor bug in memfile.c. 12/18/91 Improved signal handling in multiprocessing situations. 12/23/91 Improved commande line parsing. New -overlap option added to all blast programs to turn off HSP overlap detection and removal. 12/24/91 Fixed filesize bug in shmutil.c. Only applicable to users of shared memory. 12/29/91 Fixed bug in blastx.c and others, in vicinity of isspace() macro usage. 12/30/91 Added sp2fasta utility for converting SWISS-PROT text format into FASTA format. 12/31/91 In searchn.inc, which is used by BLASTN, the strand (frame) of each HSP was not being set. 1/2/91 Fixed severe multiprocessing bug in TBLASTN--has no effect on uniprocessing. 1/6/91 Only the frequencies of occurrence of unambiguous letters (non-X for protein and non-N for nucleotide sequences) are used to calculate the Karlin parameters K and Lambda (and H). This change can lead to occasional warning messages (usually not fatal errors and not serious) about the score probabilities not adding up to 1.0. The "pam" v1.0.3 utility program now calculates a weighted average substitution score against the ambiguity letter X; a command line option permits the user to set a constant substitution score instead. Several .h and .c files had some ANSI-incompatibilities fixed; in particular "Boolean" parameters were changed to "int" because of the use of old-style function declarations. 1/17/92 Minor bug fix in lib/mfile.c and a major bug fix in BLAST3's out3.c. Both bugs were introduced recently; the former one prevented compilation of mfile.c; the latter one sent the 3-way search phase of BLAST3 into an infinite loop on single-processor architectures. Version numbers are not being incremented. 1/23/92 Fixed bug in sp2fasta.c that caused the last character of each DE line to be omitted. 2/10/92 Changed SGI IRIX compiler optimization flag from -O3 to -O2 in main copy of Makefile.sgi, for compatibility with IRIX 4.0. 2/18/92 Switched the BLAST application programs over to using a new version of the dfa library. The new dfa library is required. 2/20/92 Made changes to the Makefiles. Verified that all required libraries (ncbi, gish, dfa) and programs can be built. New copies of all dependent source code should be gotten. 3/9/92 Faster K calculations now performed. Accuracy is 2+ decimal places for the PAM120 and 2- places for PAM250. This generally translates into only a small error (<1%) in the dependent P-values, expectations, and bit scores, which seems acceptable for an approximate 20-fold improvement in the speed of calculating K. Furthermore, the error in K is on the high side, so P-values etc. tend to be conservative. The speed is achieved by performing fewer iterations in the main K loop and compensating for this by adding in several corrective terms from a geometric progression of Altschul's design. 3/27/92 Better handling by BLASTN of cases where the database sequence contains ambiguity letters. BLASTN now does not require the original FASTA-format nucleotide sequence database file. (TBLASTN still does, however). 3/28/92 Better handling by TBLASTN of cases where the database sequence contains nucleotide ambiguity codes. Now neither BLASTN nor TBLASTN requires the original FASTA-format nucleotide sequence database file. Long strings that had been static are now allocated dynamically. 3/29/92 blastp, blastn, blastx, tblastn, and blast3 have no theoretical limit on the line length in the query sequence file; setdb and pressdb have no theoretical limit on the length of lines in the input FASTA database files. Several programs were modified to accommodate a change in the gish library's misc/basename() function--an updated copy of the gish library must be obtained for compatibility. 3/30/92 Fixed bug in blastn's overlap checking function, ovlap_n(), that caused minus-strand HSPs to be reported that were intended to be filtered out. Merged versions of pvals_a(), pvals_n(), and pvals_t() into a single pvals() function. Fixed a bug in pressdb that would appear only if each sequence in the input FASTA-format database file resided on a single (possibly very long) line. 3/31/92 Added a "gap" character, '-', to the amino acid alphabet used by BLASTP, BLASTX, TBLASTN, and BLAST3, which breaks alignments into separate segments. BLASTN does not support gap characters. Fixed a severe bug in the multiprocessing version of TBLASTN: the translate() function failed to set s_len, the database sequence length, in frame 1. Until the gap letter was introduced to the amino acid alphabet today, it is not clear that this deficiency caused any problems. It certainly did not affect the results on uniprocessing platforms. Default value for the H (histogram) parameter is now 0 to omit reporting the histogram.