BOWTIE2-ALIGN-L(1)

✨ BOWTIE2-ALIGN-L(1) ✨

okay bestie, welcome to the manual page for bowtie2-align-l πŸ’– (that's the BOWTIE2-ALIGN-L(1) page, we're doing this properly). It's a user command, it's a whole vibe, and it aligns sequencing reads to long reference sequences ultrafast and memory-efficiently, which is basically the dream.


πŸ¦‹ NAME πŸ¦‹

bowtie2-align-l β€” the ultrafast and memory-efficient backend tool for aligning sequencing reads to long reference sequences. she's the engine, she's the moment, no cap.

🌸 DESCRIPTION 🌸

Bowtie 2 version 2.5.5 by Ben Langmead (langmea@cs.jhu.edu, www.cs.jhu.edu/~langmea). iconic author behavior tbh πŸ‘‘

πŸŽ€ USAGE πŸŽ€

here's the whole shape of the thing, copy it exactly, don't freestyle:

bowtie2-align [options]* -x <bt2-idx> {-1 <m1> -2 <m2> | -U <r> |
--interleaved <i> | -b <bam>} [-S <sam>]

Now let's meet the placeholders one by one, they're the main characters:

  • <bt2-idx> β€” the index filename prefix, and yes, minus the trailing .X.bt2l. 🚨 NOTE: Bowtie 1 and Bowtie 2 indexes are not compatible. do not mix them, they will not slay together, they will simply not work.
  • <m1> β€” files with the #1 mates, paired up with the files in <m2>. πŸ’ž
  • <m2> β€” files with the #2 mates, paired up with the files in <m1>. πŸ’ž
  • <r> β€” files with unpaired reads. single and thriving πŸ¦‹
  • <i> β€” files with interleaved paired-end FASTQ/FASTA reads.
  • <bam> β€” files that are unaligned BAM sorted by read name.
  • <sam> β€” the file for SAM output (default: stdout, so if you don't say anything it just screams into your terminal, which is honestly valid).
πŸ’‘ little note bestie: <m1>, <m2>, and <r> can be comma-separated lists, no whitespace, and you can specify them many times. For example: -U file1.fq,file2.fq -U file3.fq. stack 'em up πŸ’…

✨ OPTIONS ✨

(defaults are in parentheses, so you always know the baseline vibe)

πŸ“ Input:

  • -q β€” query input files are FASTQ .fq/.fastq (this is the default, she's the baseline) ✨
  • --tab5 β€” query input files are TAB5 .tab5
  • --tab6 β€” query input files are TAB6 .tab6
  • --qseq β€” query input files are in Illumina's qseq format
  • -f β€” query input files are (multi-)FASTA .fa/.mfa
  • -r β€” query input files are raw one-sequence-per-line
  • -F k:<int>,i:<int> β€” query input files are continuous FASTA, where reads are substrings (k-mers) extracted from the FASTA file and aligned at offsets 1, 1+i, 1+2i … all the way to the end of the reference
  • -c β€” <m1>, <m2>, <r> are sequences themselves, not files
  • -s/--skip <int> β€” skip the first <int> reads/pairs in the input (none)
  • -u/--upto <int> β€” stop after the first <int> reads/pairs (no limit)
  • -5/--trim5 <int> β€” trim <int> bases from the 5'/left end of reads (0)
  • -3/--trim3 <int> β€” trim <int> bases from the 3'/right end of reads (0)
  • --trim-to [3:|5:]<int> β€” trim reads that exceed <int> bases from either the 3' or the 5' end. If you don't specify the read end, it defaults to 3 (0). the "just pick one" energy πŸŽ€
  • --phred33 β€” qualities are Phred+33 (default)
  • --phred64 β€” qualities are Phred+64
  • --int-quals β€” qualities encoded as space-delimited integers

πŸ’œ Presets:

Same as (yes, these are literally just shortcuts, and here's exactly what each one is "same as"):

For --end-to-end:

  • --very-fast β€” -D 5 -R 1 -N 0 -L 22 -i S,0,2.50
  • --fast β€” -D 10 -R 2 -N 0 -L 22 -i S,0,2.50
  • --sensitive β€” -D 15 -R 2 -N 0 -L 22 -i S,1,1.15 (default)
  • --very-sensitive β€” -D 20 -R 3 -N 0 -L 20 -i S,1,0.50

For --local:

  • --very-fast-local β€” -D 5 -R 1 -N 0 -L 25 -i S,1,2.00
  • --fast-local β€” -D 10 -R 2 -N 0 -L 22 -i S,1,1.75
  • --sensitive-local β€” -D 15 -R 2 -N 0 -L 20 -i S,1,0.75 (default)
  • --very-sensitive-local β€” -D 20 -R 3 -N 0 -L 20 -i S,1,0.50

πŸ”₯ Alignment:

  • -N <int> β€” max # mismatches in the seed alignment; can be 0 or 1 (0)
  • -L <int> β€” length of seed substrings; must be >3, <32 (22)
  • -i <func> β€” interval between seed substrings w/r/t read len (S,1,1.15)
  • --n-ceil <func> β€” the func for max # non-A/C/G/Ts permitted in the alignment (L,0,0.15)
  • --dpad <int> β€” include <int> extra ref chars on the sides of the DP table (15)
  • --gbar <int> β€” disallow gaps within <int> nucs of the read extremes (4)
  • --ignore-quals β€” treat all quality values as 30 on the Phred scale (off)
  • --nofw β€” do not align the forward (original) version of the read (off)
  • --norc β€” do not align the reverse-complement version of the read (off)
  • --no-1mm-upfront β€” do not allow 1 mismatch alignments before attempting to scan for the optimal seeded alignments
  • --end-to-end β€” the entire read must align; no clipping (on)

OR πŸ™ˆ

  • --local β€” local alignment; the ends might be soft clipped (off)

πŸ’… Scoring:

  • --ma <int> β€” match bonus (0 for --end-to-end, 2 for --local)
  • --mp <int> β€” max penalty for mismatch; lower qual = lower penalty (6)
  • --np <int> β€” penalty for non-A/C/G/Ts in read/ref (1)
  • --rdg <int>,<int> β€” read gap open, extend penalties (5,3)
  • --rfg <int>,<int> β€” reference gap open, extend penalties (5,3)
  • --score-min <func> β€” min acceptable alignment score w/r/t read length (G,20,8 for local, L,-0.6,-0.6 for end-to-end)

🌈 Reporting:

  • (default) β€” look for multiple alignments, report the best one, with MAPQ. classic, reliable, the moment ✨

OR

  • -k <int> β€” report up to <int> alignments per read; MAPQ not meaningful
  • -a/--all β€” report all alignments; very slow without -l, and MAPQ not meaningful

🧚 Effort:

  • -l/--lowseeds <n> β€” ignore any low quality seeds with ranges over the threshold (0 = no cut; if it's a percentage, mili or nano, it's relative to idx size)
  • -D <int> β€” give up extending after <int> failed extends in a row (15)
  • -R <int> β€” for reads w/ repetitive seeds, try <int> sets of seeds (2)
  • -d/--deterministic-seeds β€” consider all seeds in order (no subsampling, best with -a)

🫢 Paired-end:

  • -I/--minins <int> β€” minimum fragment length (0)
  • -X/--maxins <int> β€” maximum fragment length (500)
  • --fr/--rf/--ff β€” -1, -2 mates align fw/rev, rev/fw, fw/fw (--fr)
  • --no-mixed β€” suppress unpaired alignments for paired reads
  • --no-discordant β€” suppress discordant alignments for paired reads
  • --dovetail β€” concordant when mates extend past each other
  • --no-contain β€” not concordant when one mate alignment contains the other
  • --no-overlap β€” not concordant when mates overlap at all

πŸ“ BAM:

  • --align-paired-reads β€” Bowtie2 will, by default, attempt to align unpaired BAM reads. Use this option to align paired-end reads instead. (she flips the default, queen behavior)
  • --preserve-tags β€” preserve tags from the original BAM record by appending them to the end of the corresponding SAM output

🌟 Output:

  • -t/--time β€” print wall-clock time taken by the search phases ⏱️
  • --quiet β€” print nothing to stderr except serious errors (silent but deadly, love that for her)
  • --met-file <path> β€” send metrics to the file at <path> (off)
  • --met-stderr β€” send metrics to stderr (off)
  • --met <int> β€” report internal counters & metrics every <int> secs (1)
  • --no-unal β€” suppress SAM records for unaligned reads
  • --no-head β€” suppress header lines, i.e. lines starting with @
  • --no-sq β€” suppress @SQ header lines
  • --rg-id <text> β€” set read group id, reflected in the @RG line and the RG:Z: opt field
  • --rg <text> β€” add <text> (that's "lab:value") to the @RG line of the SAM header. Note: the @RG line is only printed when --rg-id is set.
  • --omit-sec-seq β€” put '*' in the SEQ and QUAL fields for secondary alignments.
  • --sam-no-qname-trunc β€” suppress the standard behavior of truncating the readname at the first whitespace, at the expense of generating non-standard SAM. (trade-offs, bestie, we all make them)
  • --xeq β€” use '='/'X', instead of 'M,' to specify matches/mismatches in the SAM record.
  • --soft-clipped-unmapped-tlen β€” exclude soft-clipped bases when reporting TLEN.
  • --sam-append-comment β€” append the FASTA/FASTQ comment to the SAM record.
  • --sam-opt-config <config> β€” use <config>, example '-MD,YP,-AS', to toggle SAM Optional fields.

πŸ‘‘ Performance:

  • -p/--threads <int> β€” number of alignment threads to launch (1). go off, give her threads πŸ”₯
  • --reorder β€” force SAM output order to match the order of the input reads
  • --mm β€” use memory-mapped I/O for the index; many 'bowtie's can share

πŸŽ€ Other:

  • --qc-filter β€” filter out reads that are bad according to the QSEQ filter
  • --seed <int> β€” seed for the random number generator (0)
  • --non-deterministic β€” seed the rand. gen. arbitrarily instead of using read attributes
  • --version β€” print version information and quit
  • -h/--help β€” print this usage message

πŸ’Œ and that's the whole page bestie, every flag, every default, nothing skipped, we ate and left zero crumbs πŸ“

🌈 SEE ALSO 🌈

okay so technically this page doesn't list a SEE ALSO section, so there's nothing to point you to here β€” but you already have everything you need, iykyk πŸ’…


bowtie2-align-l 2.5.5 Β· February 2026 🫢 thanks for reading the whole thing, you're literally the main character of bioinformatics now, mwah πŸ’–βœ¨

πŸ“¦ where this page comes from