FASTA36(1)

๐Ÿ’– FASTA36 ๐Ÿ’–

ok bestie, listen. this is the manual page for fasta36 and its whole chaotic friend group โ€” section 1 (local), in case you were wondering where to file it. it's a LOT, so grab a snack, we're doing this in parts. ๐Ÿ“


โœจ NAME โœจ

okay so this page covers a whole squad of programs, and each one does its own lil thing:

  • fasta36 โ€” scan a protein or DNA sequence library for similar sequences ๐Ÿ”
  • fastx36 โ€” compare a DNA sequence to a protein sequence database, comparing the translated DNA sequence in forward and reverse frames.
  • tfastx36 โ€” compare a protein sequence to a DNA sequence database, calculating similarities with frameshifts to the forward and reverse orientations.
  • fasty36 โ€” compare a DNA sequence to a protein sequence database, comparing the translated DNA sequence in forward and reverse frames.
  • tfasty36 โ€” compare a protein sequence to a DNA sequence database, calculating similarities with frameshifts to the forward and reverse orientations.
  • fasts36 โ€” compare unordered peptides to a protein sequence database
  • fastm36 โ€” compare ordered peptides (or short DNA sequences) to a protein (DNA) sequence database
  • tfasts36 โ€” compare unordered peptides to a translated DNA sequence database
  • fastf36 โ€” compare mixed peptides to a protein sequence database
  • tfastf36 โ€” compare mixed peptides to a translated DNA sequence database
  • ssearch36 โ€” compare a protein or DNA sequence to a sequence database using the Smith-Waterman algorithm.
  • ggsearch36 โ€” compare a protein or DNA sequence to a sequence database using a global alignment (Needleman-Wunsch)
  • glsearch36 โ€” compare a protein or DNA sequence to a sequence database with alignments that are global in the query and local in the database sequence (global-local).
  • lalign36 โ€” produce multiple non-overlapping alignments for protein and DNA sequences using the Huang and Miller sim algorithm for the Waterman-Eggert algorithm.
  • prss36, prfx36 โ€” discontinued; all the FASTA programs will estimate statistical significance using 500 shuffled sequence scores if two sequences are compared.
ngl, that last one is giving "we retired, but we still show up to the party" energy ๐Ÿ’€

๐ŸŒธ DESCRIPTION ๐ŸŒธ

Release 3.6 of the FASTA package provides a modular set of sequence comparison programs that can run on conventional single processor computers or in parallel on multiprocessor computers. More than a dozen programs โ€” fasta36, fastx36/tfastx36, fasty36/tfasty36, fasts36/tfasts36, fastm36, fastf36/tfastf36, ssearch36, ggsearch36, and glsearch36 โ€” are currently available. it's a whole extended universe fr fr ๐ŸŒˆ

All the comparison programs share a set of basic command line options; additional options are available for individual comparison functions. same skeleton, different lewks. โœจ

Threaded versions of the FASTA programs (built by default under Unix/Linux/MacOX) run in parallel on modern Linux and Unix multi-core or multi-processor computers. Accelerated versions of the Smith-Waterman algorithm are available for architectures with the Intel SSE2 or Altivec PowerPC architectures, which can speed-up Smith-Waterman calculations 10 - 20-fold. ๐Ÿ”ฅ 10x to 20x faster?? ate.

In addition to the serial and threaded versions of the FASTA programs, MPI parallel versions are available as fasta36_mpi, ssearch36_mpi, fastx36_mpi, etc. The MPI parallel versions use the same command line options as the serial and threaded versions. ๐Ÿ’…


๐ŸŽ€ Running the FASTA programs ๐ŸŽ€

By default, the FASTA programs are no longer interactive; they are run from the command line by specifying the program, query.file, and library.file. Program options must preceed the query.file and library.file arguments:

fasta36 -option1 -option2 -option3 query.file library.file > fasta.output

The "classic" interactive mode, which prompts for a query.file and library.file, is available with the -I option. Typing a program name without any arguments (ssearch36) provides a short help message; program_name -help provides a complete set of program options.

โš ๏ธ Program options MUST preceed the query.file and library.file arguments. โš ๏ธ like, the order is NOT optional bestie. put them options first or the whole vibe check fails. ๐Ÿ’€

๐Ÿฆ‹ FASTA program options ๐Ÿฆ‹

The default scoring matrix and gap penalties used by each of the programs have been selected for high sensitivity searches with the various algorithms. The default program behavior can be modified by providing command line options before the query.file and library.file arguments. Command line options can also be used in interactive mode.

Command line arguments come in several classes. so many little categories, so organized, love that for us:

  1. Commands that specify the comparison type. FASTA, FASTS, FASTM, SSEARCH, GGSEARCH, and GLSEARCH can compare either protein or DNA sequences, and attempt to recognize the comparison type by looking the residue composition. -n, -p specify DNA (nucleotide) or protein comparison, respectively. -U specifies RNA comparison.
  2. Commands that limit the set of sequences compared: -1, -3, -M.
  3. Commands that modify the scoring parameters: -f gap-open penaltyP, -g gap-extend penalty, -j inter-codon frame-shift, within-codon frameshift, -s scoring-matrix, -r match/mismatch score, -x X:X score.
  4. Commands that modify the algorithm (mostly FASTA and [T]FASTX/Y): -c, -w, -y, -o. The -S can be used to ignore lower-case (low complexity) residues during the initial score calculation.
  5. Commands that modify the output: -A, -b number, -C width, -d number, -L, -m 0-11,B, -w line-width, -W context-width, -o offset1,ofset2
  6. Commands that affect statistical estimates: -Z, -k.

โœจ Option summary: โœจ

ok this is the big one. every single flag, no skips. here we go ๐Ÿซถ

  • -1 โ€” Sort by "init1" score (obsolete)
  • -3 โ€” ([t]fast[x,y] only) use only forward frame translations
  • -a โ€” Displays the full length (included unaligned regions) of both sequences with fasta36, ssearch36, glsearch36, and fasts36.
  • -A (fasta36 only) โ€” For DNA:DNA, force Smith-Waterman alignment for output. Smith-Waterman is the default for FASTA protein alignment and [t]fast[x,y], but not for DNA comparisons with FASTA. For protein:protein, use band-alignment algorithm.
  • -b # โ€” number of best scores/descriptions to show (must be < expectation cutoff if -E is given). By default, this option is no longer used; all scores better than the expectation (E()) cutoff are listed. To guarantee the display of # descriptions/scores, use -b =#, i.e. -b =100 ensures that 100 descriptions/scores will be displayed. To guarantee at least 1 description, but possibly many more (limited by -E e_cut), use -b >1.
  • -c "E-opt E-join" โ€” threshold for gap joining (E-join) and band optimization (E-opt) in FASTA and [T]FASTX/Y. FASTA36 now uses BLAST-like statistical thresholds for joining and band optimization. The default statistical thresholds for protein and translated comparisons are E-opt=0.2, E-join=0.5; for DNA, E-join = 0.1 and E-opt= 0.02. The actual number of joins and optimizations is reported after the E-join and E-opt scoring parameters. Statistical thresholds improves search speed 2 - 3X, and provides much more accurate statistical estimates for matrices other than BLOSUM50. The "classic" joining/optimization thresholds that were the default in fasta35 and earlier programs are available using -c O (upper case O), possibly followed a value > 1.0 to set the optcut optimization threshold. 2-3X faster AND better stats?? iconic. ๐Ÿ”ฅ
  • -C # โ€” length of name abbreviation in alignments, default = 6. Must be less than 20.
  • -d # โ€” number of best alignments to show ( must be < expectation (-E) cutoff and <= the -b description limit).
  • -D โ€” turn on debugging mode. Enables checks on sequence alphabet that cause problems with tfastx36, tfasty36 (only available after compile time option). Also preserves temp files with -e expand_script.sh option.
  • -e expand_script.sh โ€” Run a script to expand the set of sequences displayed/aligned based on the results of the initial search. When the -e expand_script.sh option is used, after the initial scan and statistics calculation, but before the "Best scores" are shown, expand_script.sh with a single argument, the name of a file that contains the accession information (the text on the fasta description line between > and the first space) and the E()-value for the sequence. expand_script.sh then uses this information to send a library of additional sequences to stdout. These additional sequences are included in the list of high-scoring sequences (if their scores are significant) and aligned. The additional sequences do not change the statistics or database size.
  • -E e_cut e_cut_r โ€” expectation value upper limit for score and alignment display. Defaults are 10.0 for FASTA36 and SSEARCH36 protein searches, 5.0 for translated DNA/protein comparisons, and 2.0 for DNA/DNA searches. FASTA version 36 now reports additional alignments between the query and the library sequence, the second value sets the threshold for the subsequent alignments. If not given, the threshold is e_cut/10.0. If given and value > 1.0, e_cut_r = e_cut / value; for value < 1.0, e_cut_r = value; If e_cut_r < 0, then the additional alignment option is disabled.
  • -f # โ€” penalty for opening a gap.
  • -F # โ€” expectation value lower limit for score and alignment display. -F 1e-6 prevents library sequences with E()-values lower than 1e-6 from being displayed. This allows the use to focus on more distant relationships.
  • -g # โ€” penalty for additional residues in a gap
  • -h โ€” Show short help message.
  • -help โ€” Show long help message, with all options.
  • -H โ€” show histogram (with fasta-36.3.4, the histogram is not shown by default).
  • -i โ€” (fasta DNA, [t]fastx[x,y]) compare against only the reverse complement of the library sequence.
  • -I โ€” interactive mode; prompt for query filename, library.
  • -j # # โ€” ([t]fast[x,y] only) penalty for a frameshift between two codons, ([t]fasty only) penalty for a frameshift within a codon.
  • -J โ€” (lalign36 only) show identity alignment.
  • -k โ€” specify number of shuffles for statistical parameter estimation (default=500).
  • -l str โ€” specify FASTLIBS file
  • -L โ€” report long sequence description in alignments (up to 200 characters).
  • -m 0,1,2,3,4,5,6,8,9,10,11,B,BB,"F# out.file" โ€” alignment display options. -m 0, 1, 2, 3 display different types of alignments. -m 4 provides an alignment "map" on the query. -m 5 combines the alignment map and a -m 0 alignment. -m 6 provides an HTML output.
    • -m 8 seeks to mimic BLAST -m 8 tabular output. Only query and library sequence names, and identity, mismatch, starts/stops, E()-values, and bit scores are displayed. -m 8C mimics BLAST tabular format with comment lines. -m 8 formats do not show alignments. no alignments, just the receipts. ๐Ÿ’…

okay bestie we're picking up RIGHT where we left off, mid-glow-up, mid-options, no time to breathe ๐Ÿ’…

  • -m 9 โ€” doesn't change the alignment output at all, but it does hand you alignment coordinate info plus percent identity alongside the best scores report.
  • -m 9c โ€” takes that -m 9 energy and adds encoded alignment information on top. โœจ
  • -m 9C โ€” same deal but the encoded alignment info comes out as a CIGAR formatted string. And because frameshifts are a thing, the CIGAR format has been supplemented with F (forward) and R (reverse). ๐Ÿงฌ
  • -m 9i โ€” the minimal queen: only percent identity and alignment length info with the best scores. ๐ŸŽ€
  • heads up: with current versions of the FASTA programs, independent -m options can be combined โ€” like -m 1 -m 9c -m 6. Mix and match, it's giving customization.

  • -m 11 โ€” provides lav format output from lalign36. It does not currently affect other alignment algorithms, so don't come for the others. The lav2ps and lav2svg programs can convert lav format output into postscript/SVG alignment "dot-plots". ๐ŸŒˆ
  • -m B โ€” gives you BLAST-like alignments. Alignments get labeled as "Query" and "Sbjct", coordinates sit on the same line as the sequences, and matches/mismatches get BLAST-like symbols. Very nostalgic, very familiar.
  • -m BB โ€” takes that BLAST similarity and extends it to all the output, so the whole thing closely mimics BLAST output. Full cosplay. ๐Ÿ’€
  • -m "F# out.file" โ€” this one lets one search write different alignment formats to different files. The F means separate file output; the # is the output format (1-6,8,9,10,11,B,BB โ€” and yes, multiple compatible formats can be combined, separated by commas -','). One search, many files, main character energy. ๐Ÿ‘‘

  • -M #-# โ€” molecular weight (residue) cutoffs. So -M "101-200" examines only library sequences that are 101-200 residues long. Filtering, but make it โœจmolecularโœจ.
  • -n โ€” force the query to be treated as a nucleotide sequence.
  • -N # โ€” breaks long library sequences into blocks of # residues. Super useful for bacterial genomes, which only have one sequence entry. -N 2000 works well for bacterial genomes. (Fun history moment: this option was required back when FASTA only provided one alignment between the query and library sequence. It's not as useful now that multiple alignments are available.)
  • -o "#,#" โ€” offsets the query and library sequence for numbering alignments. ๐Ÿงฎ
  • -O file โ€” sends output to file. Simple, iconic, does what it says.
  • -p โ€” forces the query to the protein alphabet.
  • -P pssm_file โ€” (ssearch36, ggsearch36, glsearch36 only!) Provide a blastpgp checkpoint file as the PSSM for searching. Two PSSM file formats exist, and you must provide the filename with it:
    • 'pssm_file 0' uses a binary format that is machine specific โ€” portability who?
    • 'pssm_file 1' uses the "blastpgp -u 1 -C pssm_file" ASN.1 binary format โ€” and this one is preferred. ๐Ÿซถ
  • -q, -Q โ€” the quiet option; does not prompt for input (on by default). Introvert mode, always active.
  • -r "+n/-m" โ€” (DNA only) the values for match/mismatch in DNA comparisons. +n is the maximum positive value, -m is the maximum negative value. Values in between max and min get rescaled โ€” but residue pairs having the value -1 stay -1. No rescaling for them, periodt.
  • -R file โ€” save all scores to a statistics file (this used to be -r file, so if you're reading ancient docs, that's why you're confused ๐Ÿ˜ญ).
  • -s name โ€” specify the substitution matrix. BLOSUM50 is the default; PAM250, PAM120, and BLOSUM62 can be specified by setting -s P120, P250, or BL62. Additional scoring matrices include:
    • BLOSUM80 (BL80)
    • MDM10, MDM20, MDM40 (Jones, Taylor, and Thornton, 1992 CABIOS 8:275-282; specified as -s MD10, -s MD20, -s MD40)
    • OPTIMA5 (-s OPT5, Kann and Goldstein, (2002) Proteins 48:367-376)
    • VTML160 (-s VT160, Mueller and Vingron (2002) J. Comp. Biol. 19:8-13)

Every scoring matrix comes with its own associated default gap penalties โ€” they're a package deal. The BLOSUM62 scoring matrix plus -11/-1 gap penalties can be specified with -s BP62.

Alternatively, you can specify a BLASTP format scoring matrix file, e.g. -s matrix.filename. DNA scoring matrices can also be specified with the "-r" option.

With fasta36.3, variable scoring matrices can be specified by preceding the scoring matrix abbreviation with '?', e.g. -s '?BP62'. Variable scoring matrices let the FASTA programs choose an alternative scoring matrix with higher information content (bit score/position) when short queries are used. For example: a 90 nucleotide FASTX query can produce only a 30 amino-acid alignment, so a scoring matrix with 1.33 bits/position is required to produce a 40 bit score. The FASTA programs include BLOSUM50 (0.49 bits/pos) and BLOSUM62 (0.58 bits/pos), but can range all the way to MD10 (3.44 bits/position). The variable scoring matrix option searches down the list of scoring matrices to find one with information content high enough to produce a 40 bit alignment score. Obsessed with the range honestly. ๐Ÿ’–

  • -S โ€” treat lower case letters in the query or database as low complexity regions equivalent to 'X' during the initial database scan, but treats them as normal residues for the final alignment display. Statistical estimates are based on the 'X'ed out sequence used during the initial search. Protein databases (and query sequences) can be generated in the appropriate format using John Wooton's "pseg" program, available from ftp://ftp.ncbi.nih.gov/pub/seg/pseg. Once you've compiled the "pseg" program, use the command:
pseg database.fasta -z 1 -q  > database.lc_seg
  • -t # โ€” Translation table. [t]fastx36 and [t]fasty36 support the BLAST translation tables. See http://www.ncbi.nih.gov/htbin-post/Taxonomy/wprintgc?mode=c/. ๐Ÿงซ
  • -T # โ€” (threaded, parallel only) the number of threads or workers to use. On Linux/MacOS/Unix, the default is to use as many processors as are available; on Windows systems, 2 processors are used. ๐Ÿ’…
  • -U โ€” Do RNA sequence comparisons: treat 'T' as 'U', allow G:U base pairs (by scoring "G-A" and "T-C" as score(G:G)-3). Search only one strand. ๐ŸŒธ
  • -V "?$%*" โ€” Allow special annotation characters in the query sequence. These characters will be displayed in the alignments on the coordinate number line. Fancy annotations, we love to see it. โœจ
  • -w # โ€” line width for similarity score, sequence alignment, and output.
  • -W # โ€” context length (default is 1/2 of line width -w) for alignment, like fasta and ssearch, that provide additional sequence context.
  • -X โ€” extended options. The less used options live here. Other options include -XB, -XM4G, -Xo, -Xx, and -Xy; see fasta_guide.pdf. ๐Ÿ‘€
  • -z 1, 2, 3, 4, 5, 6 โ€” Specify the statistical calculation. Default is -z 1 for local similarity searches, which uses regression against the length of the library sequence. And the rest of the family:
    • -z -1 โ€” disables statistics. No stats, no thoughts, head empty.
    • -z 0 โ€” estimates significance without normalizing for sequence length.
    • -z 2 โ€” provides maximum likelihood estimates for lambda and K, censoring the 250 lowest and 250 highest scores.
    • -z 3 โ€” uses Altschul and Gish's statistical estimates for specific protein BLOSUM scoring matrices and gap penalties.
    • -z 4,5 โ€” an alternate regression method.
    • -z 6 โ€” uses a composition based maximum likelihood estimate based on the method of Mott (1992) Bull. Math. Biol. 54:59-75.
  • -z 11,12,14,15,16 โ€” compute the regression against scores of randomly shuffled copies of the library sequences. Twice as many comparisons are performed, but accurate estimates can be generated from databases of related sequences. -z 11 uses the -z 1 regression strategy, etc. ๐ŸŒ€
  • -z 21, 22, 24, 25, 26 โ€” compute two E()-values. The standard (library-based) E()-value is calculated in the standard way (-z 1, 2, etc), but a second E2() value is calculated by shuffling the high-scoring sequences (those with E()-values less than the threshold). For "average" composition proteins, these two estimates will be similar (though the best-shuffle estimates are always more conservative). For biased composition proteins, the two estimates may differ by 100-fold or more. ๐Ÿ˜ณ A second -z option, e.g. -z "21 2", specifies the estimation method for the best-shuffle E2()-values. Best-shuffle E2()-values approximate the estimates given by PRSS (or in a pairwise SSEARCH).
  • -Z db_size โ€” Set the apparent database size used for expectation value calculations (used for protein/protein FASTA and SSEARCH, and for [T]FASTX/Y).

๐ŸŒŠ Reading sequences from STDIN ๐ŸŒŠ

The FASTA programs can accept a query sequence from the unix "stdin" data stream. This makes it much easier to use fasta36 and its relatives as part of a WWW page. To indicate that stdin is to be used, use "@" as the query sequence file name. And "@" can also be used to specify a subset of the query sequence to be used, e.g:

cat query.aa | fasta36 @:50-150 s

That would search the 's' database with residues 50-150 of query.aa. ๐ŸŽฏ

warning bestie: FASTA cannot automatically detect the sequence type (protein vs DNA) when "stdin" is used, and assumes protein comparisons by default. The '-n' option is required for DNA for STDIN queries. Don't get caught slippin'. ๐Ÿ’€

๐Ÿ”ง Environment variables: ๐Ÿ”ง

  • FASTLIBS โ€” location of library choice file (-l FASTLIBS)
  • SRCH_URL1, SRCH_URL2 โ€” format strings used to define options to re-search the database.
  • REF_URL โ€” the format string used to define the option to lookup the library sequence in entrez, or some other database. ๐Ÿ”

๐Ÿ‘‘ AUTHOR ๐Ÿ‘‘

Bill Pearson wrp@virginia.EDU


and that's a wrap on the whole entire page, bestie!! ๐ŸŽ‰๐Ÿ’– Huge shoutout to the source/version footer energy: this is fasta36 / ssearch36 / lalign36, page 1(local), sitting pretty at Revision: 210 โ€” the $ Id: $ and $Revision: $ tags stay unexpanded, exactly like the original, and the footer line still points back to fasta36/ssear...]36/lalign36. Go forth and align something iconic. ๐ŸŒธโœจ๐Ÿฆ‹๐Ÿ’œ