Your company here — click to reach over 10,000 unique daily visitors

bowtie2 - Man Page

manual page for bowtie2 2.5.1


Bowtie 2 version 2.5.1 by Ben Langmead (langmea@cs.jhu.edu, www.cs.jhu.edu/~langmea) Usage:

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


Index filename prefix (minus trailing .X.bt2). NOTE: Bowtie 1 and Bowtie 2 indexes are not compatible.


Files with #1 mates, paired with files in <m2>. Could be gzip'ed (extension: .gz) or bzip2'ed (extension: .bz2).


Files with #2 mates, paired with files in <m1>. Could be gzip'ed (extension: .gz) or bzip2'ed (extension: .bz2).


Files with unpaired reads. Could be gzip'ed (extension: .gz) or bzip2'ed (extension: .bz2).


Files with interleaved paired-end FASTQ/FASTA reads Could be gzip'ed (extension: .gz) or bzip2'ed (extension: .bz2).


Files are unaligned BAM sorted by read name.


File for SAM output (default: stdout)

<m1>, <m2>, <r> can be comma-separated lists (no whitespace) and can be specified many times.  E.g. '-U file1.fq,file2.fq -U file3.fq'.

Options (defaults in parentheses):



query input files are FASTQ .fq/.fastq (default)


query input files are TAB5 .tab5


query input files are TAB6 .tab6


query input files are in Illumina's qseq format


query input files are (multi-)FASTA .fa/.mfa


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 a FASTA file <s> and aligned at offsets 1, 1+i, 1+2i ... end of reference


<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 first <int> reads/pairs (no limit)

-5/--trim5 <int>

trim <int> bases from 5'/left end of reads (0)

-3/--trim3 <int>

trim <int> bases from 3'/right end of reads (0)

--trim-to [3:|5:]<int> trim reads exceeding <int> bases from either 3' or 5' end

If the read end is not specified then it defaults to 3 (0)


qualities are Phred+33 (default)


qualities are Phred+64


qualities encoded as space-delimited integers


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


-N <int>

max # mismatches in 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>

func for max # non-A/C/G/Ts permitted in aln (L,0,0.15)

--dpad <int>

include <int> extra ref chars on sides of DP table (15)

--gbar <int>

disallow gaps within <int> nucs of read extremes (4)


treat all quality values as 30 on Phred scale (off)


do not align forward (original) version of read (off)


do not align reverse-complement version of read (off)


do not allow 1 mismatch alignments before attempting to scan for the optimal seeded alignments


entire read must align; no clipping (on)



local alignment; ends might be soft clipped (off)


--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)



look for multiple alignments, report best, with MAPQ


-k <int>

report up to <int> alns per read; MAPQ not meaningful



report all alignments; very slow, MAPQ not meaningful


-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)


-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)


suppress unpaired alignments for paired reads


suppress discordant alignments for paired reads


concordant when mates extend past each other


not concordant when one mate alignment contains other


not concordant when mates overlap at all



Bowtie2 will, by default, attempt to align unpaired BAM reads. Use this option to align paired-end reads instead.


Preserve tags from the original BAM record by appending them to the end of the corresponding SAM output.



print wall-clock time taken by search phases

--un <path>

write unpaired reads that didn't align to <path>

--al <path>

write unpaired reads that aligned at least once to <path>

--un-conc <path>

write pairs that didn't align concordantly to <path>

--al-conc <path>

write pairs that aligned concordantly at least once to <path>

(Note: for --un, --al, --un-conc, or --al-conc, add '-gz' to the option name, e.g. --un-gz <path>, to gzip compress output, or add '-bz2' to bzip2 compress output.)


print nothing to stderr except serious errors

--met-file <path>

send metrics to file at <path> (off)


send metrics to stderr (off)

--met <int>

report internal counters & metrics every <int> secs (1)


suppress SAM records for unaligned reads


suppress header lines, i.e. lines starting with @


suppress @SQ header lines

--rg-id <text>

set read group id, reflected in @RG line and RG:Z: opt field

--rg <text>

add <text> ("lab:value") to @RG line of SAM header. Note: @RG line only printed when --rg-id is set.


put '*' in SEQ and QUAL fields for secondary alignments.


Suppress standard behavior of truncating readname at first whitespace at the expense of generating non-standard SAM.


Use '='/'X', instead of 'M,' to specify matches/mismatches in SAM record.


Exclude soft-clipped bases when reporting TLEN


Append FASTA/FASTQ comment to SAM record


-p/--threads <int> number of alignment threads to launch (1)


force SAM output order to match order of input reads


use memory-mapped I/O for index; many 'bowtie's can share



filter out reads that are bad according to QSEQ filter

--seed <int>

seed for random number generator (0)


seed rand. gen. arbitrarily instead of using read attributes


print version information and quit


print this usage message


January 2024 bowtie2 2.5.1