• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

.github/workflows/H23-May-2021-3231

doc/H03-May-2022-3,1812,974

example/H23-May-2021-105,027104,941

scripts/H03-May-2022-12,6999,101

third_party/H23-May-2021-188122

.gitignoreH A D23-May-2021584 3837

.gitmodulesH A D23-May-2021136 54

.travis.ymlH A D23-May-20211.5 KiB6968

AUTHORSH A D23-May-20211.5 KiB3626

BOWTIE2_VERSIONH A D23-May-20215 11

LICENSEH A D23-May-202134.3 KiB675553

MANUALH A D23-May-202185.4 KiB2,0681,524

MANUAL.markdownH A D23-May-2021113.9 KiB2,9622,086

MakefileH A D03-May-202217.4 KiB597479

NEWSH A D23-May-202129.8 KiB565500

README.mdH A D23-May-20216 KiB12893

TUTORIALH A D23-May-2021248 53

aligner_bt.cppH A D23-May-202152.8 KiB1,7741,475

aligner_bt.hH A D23-May-202130.2 KiB948521

aligner_cache.cppH A D23-May-20216.9 KiB282217

aligner_cache.hH A D23-May-202124.4 KiB960496

aligner_driver.cppH A D23-May-202112.3 KiB393279

aligner_driver.hH A D23-May-202110.1 KiB313150

aligner_metrics.hH A D23-May-202111 KiB353247

aligner_report.hH A D23-May-2021986 3610

aligner_result.cppH A D23-May-202150 KiB1,9591,585

aligner_result.hH A D23-May-202152 KiB1,9831,135

aligner_seed.cppH A D23-May-202154.3 KiB1,8441,520

aligner_seed.hH A D23-May-202145.3 KiB1,6711,015

aligner_seed2.cppH A D23-May-2021101.6 KiB3,1882,570

aligner_seed2.hH A D23-May-202169.4 KiB2,5291,550

aligner_seed_policy.cppH A D23-May-202127.4 KiB885577

aligner_seed_policy.hH A D23-May-20217.4 KiB23640

aligner_sw.cppH A D23-May-2021102.1 KiB3,2442,890

aligner_sw.hH A D23-May-202125.1 KiB658324

aligner_sw_common.hH A D23-May-20218.2 KiB301209

aligner_sw_driver.cppH A D23-May-202182.5 KiB2,4041,935

aligner_sw_driver.hH A D23-May-202120 KiB538352

aligner_sw_nuc.hH A D23-May-20217 KiB263161

aligner_swsse.cppH A D23-May-20212.6 KiB8950

aligner_swsse.hH A D23-May-202114.7 KiB500273

aligner_swsse_ee_i16.cppH A D23-May-202161.9 KiB1,9081,402

aligner_swsse_ee_u8.cppH A D23-May-202161.1 KiB1,9021,395

aligner_swsse_loc_i16.cppH A D23-May-202174.6 KiB2,2741,600

aligner_swsse_loc_u8.cppH A D23-May-202173.3 KiB2,2701,613

aln_sink.cppH A D23-May-202174.1 KiB2,5582,072

aln_sink.hH A D23-May-202144.9 KiB1,379780

alphabet.cppH A D23-May-20218.3 KiB245164

alphabet.hH A D23-May-20213.7 KiB12865

assert_helpers.hH A D23-May-20219.3 KiB280234

banded.cppH A D23-May-2021823 286

banded.hH A D23-May-20211.2 KiB5320

binary_sa_search.hH A D23-May-20213.5 KiB10358

bitpack.hH A D23-May-20211.5 KiB5423

blockwise_sa.hH A D23-May-202135.5 KiB1,148848

bowtie2H A D03-May-202226.3 KiB648544

bowtie2-buildH A D03-May-20222.8 KiB9170

bowtie2-inspectH A D03-May-20222.7 KiB8464

bowtie_build_main.cppH A D23-May-20212 KiB7139

bowtie_main.cppH A D23-May-20212 KiB7038

bt2_build.cppH A D23-May-202123.7 KiB709610

bt2_dp.cppH A D23-May-202124.7 KiB787686

bt2_idx.cppH A D23-May-20218.1 KiB303215

bt2_idx.hH A D23-May-202196 KiB3,0952,272

bt2_inspect.cppH A D23-May-202115.1 KiB499411

bt2_io.cppH A D23-May-202130.1 KiB959754

bt2_locks.cppH A D23-May-2021920 3730

bt2_locks.hH A D23-May-20211.5 KiB7259

bt2_search.cppH A D23-May-2021199.5 KiB5,2384,557

bt2_search.hH A D23-May-20211.2 KiB4217

bt2_util.cppH A D23-May-20216.3 KiB220152

btypes.hH A D23-May-20211.3 KiB4819

ccnt_lut.cppH A D23-May-202114 KiB322299

cpu_numa_info.cppH A D23-May-2021288 107

cpu_numa_info.hH A D23-May-2021109 74

diff_sample.cppH A D23-May-20214.5 KiB11870

diff_sample.hH A D23-May-202129.1 KiB1,022768

dp_framer.cppH A D23-May-202136.3 KiB910542

dp_framer.hH A D23-May-20219.2 KiB267139

ds.cppH A D23-May-20213.1 KiB156116

ds.hH A D23-May-202186.3 KiB4,2882,567

edit.cppH A D23-May-202111.5 KiB472359

edit.hH A D23-May-20218 KiB331166

endian_swap.hH A D23-May-20213.9 KiB14789

fast_mutex.hH A D23-May-20216.8 KiB249174

filebuf.hH A D23-May-202117.6 KiB831552

formats.hH A D23-May-20211.2 KiB5931

group_walk.cppH A D23-May-2021759 211

group_walk.hH A D23-May-202136.2 KiB1,293828

ival_list.cppH A D23-May-20215.1 KiB166136

ival_list.hH A D23-May-20216.5 KiB300171

limit.cppH A D23-May-20211.8 KiB4422

limit.hH A D23-May-20211.3 KiB4925

ls.cppH A D23-May-20213.6 KiB143114

ls.hH A D23-May-202111.7 KiB334232

mask.cppH A D23-May-20211 KiB3713

mask.hH A D23-May-20212.1 KiB8036

mem_ids.hH A D23-May-20211.2 KiB369

mm.hH A D23-May-20211.2 KiB365

multikey_qsort.cppH A D23-May-2021858 242

multikey_qsort.hH A D23-May-202137.8 KiB1,234939

opts.hH A D23-May-20216.8 KiB168146

outq.cppH A D23-May-20216.4 KiB254203

outq.hH A D23-May-20214.1 KiB189117

pat.cppH A D23-May-202151.5 KiB1,9611,579

pat.hH A D23-May-202133.3 KiB1,409846

pe.cppH A D23-May-202130.8 KiB941691

pe.hH A D23-May-20219.5 KiB322161

presets.cppH A D23-May-20212.9 KiB9663

presets.hH A D23-May-20211.5 KiB6826

processor_support.hH A D23-May-20212.2 KiB6739

qual.cppH A D23-May-20213.9 KiB8658

qual.hH A D23-May-20216.4 KiB236158

random_source.cppH A D23-May-20213.2 KiB12999

random_source.hH A D23-May-20215.3 KiB249152

random_util.cppH A D23-May-2021907 254

random_util.hH A D23-May-20215.8 KiB222121

read.hH A D23-May-202112.5 KiB454299

read_qseq.cppH A D23-May-20215.8 KiB236178

ref_coord.cppH A D23-May-20211,014 3411

ref_coord.hH A D23-May-20219.8 KiB424228

ref_read.cppH A D23-May-20218.2 KiB306222

ref_read.hH A D23-May-20218.2 KiB315222

reference.cppH A D23-May-202120.3 KiB669548

reference.hH A D23-May-20215.7 KiB19087

sam.cppH A D23-May-202124.3 KiB979826

sam.hH A D23-May-202112.3 KiB408295

scoring.cppH A D23-May-20219.2 KiB286199

scoring.hH A D23-May-202115.1 KiB489270

search_globals.hH A D23-May-20211.2 KiB4218

sequence_io.hH A D23-May-20213.6 KiB12686

shmem.cppH A D23-May-20211.3 KiB5017

shmem.hH A D23-May-20214.9 KiB162121

simple_func.cppH A D23-May-20212.3 KiB9471

simple_func.hH A D23-May-20213.5 KiB13080

sse_util.cppH A D23-May-2021979 3410

sse_util.hH A D23-May-202114.3 KiB584353

sse_wrap.hH A D23-May-20212.6 KiB6838

sstring.cppH A D23-May-20215.3 KiB203168

sstring.hH A D23-May-202173.8 KiB3,4132,116

str_util.hH A D23-May-20211.4 KiB6331

threading.hH A D23-May-20215.2 KiB199145

timer.hH A D23-May-20214.6 KiB170110

tokenize.hH A D23-May-20211.7 KiB6333

unique.cppH A D23-May-20212.3 KiB6723

unique.hH A D23-May-202114.2 KiB519366

util.hH A D23-May-20211.4 KiB5324

word_io.hH A D23-May-20214.5 KiB214100

zbox.hH A D23-May-20212.7 KiB9862

zstd_decompress.cppH A D23-May-20213.1 KiB156128

zstd_decompress.hH A D23-May-2021748 3226

README.md

1
2<!-- badges: start -->
3![Github Actions](https://github.com/BenLangmead/bowtie2/actions/workflows/bowtie2.yml/badge.svg)
4[![Generic badge](https://img.shields.io/badge/version-2.4.4-green.svg)](https://shields.io/)
5[![Build Status](https://travis-ci.org/BenLangmead/bowtie2.svg?branch=master)](https://travis-ci.org/BenLangmead/bowtie2)
6[![License: GPL v3](https://img.shields.io/badge/license-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
7<!--badges: end -->
8
9## Overview
10
11*Bowtie 2* is an ultrafast and memory-efficient tool for aligning sequencing reads
12to long reference sequences. It is particularly good at aligning reads of about 50
13up to 100s or 1,000s of characters, and particularly good at aligning to relatively
14long (e.g. mammalian) genomes. Bowtie 2 indexes the genome with an FM Index to keep
15its memory footprint small: for the human genome, its memory footprint is typically
16around 3.2 GB. Bowtie 2 supports gapped, local, and paired-end alignment modes.
17
18## Obtaining Bowtie2
19
20*Bowtie 2* is available from various package managers, notably
21[Bioconda](https://anaconda.org/bioconda/bowtie2). With Bioconda installed, you
22should be able to install Bowtie 2 with `conda install bowtie2`.
23
24Containerized versions of Bowtie 2 are also available via the
25[Biocontainers](https://biocontainers.pro/) project (e.g. via
26[Docker Hub](https://hub.docker.com/r/biocontainers/bowtie2/)).
27
28You can also download Bowtie 2 sources and binaries from the
29"releases" tab on this page. Binaries are available for the Linux,
30Mac OS X, and Windows. By utilizing the [SIMDE project](https://github.com/simd-everywhere/simde)
31Bowtie 2 now supports the following architectures: ARM64, PPC64, and
32s390x.  If you plan to compile Bowtie 2 yourself, make sure you at least have
33the [zlib](https://www.zlib.net) library and header files installed. See the
34[Building from source](http://bowtie-bio.sourceforge.net/bowtie2/manual.shtml#building-from-source)
35section of the manual for details.
36
37## Getting started
38Looking to try out Bowtie 2? Check out the [Bowtie 2 UI](http://bit.ly/bt2ui-beta) (currently in beta).
39
40### Alignment
41`bowtie2` takes a Bowtie 2 index and a set of sequencing read files and outputs a
42set of alignments in SAM format.
43
44"Alignment" is the process by which we discover how and where the read sequences are
45similar to the reference sequence. An "alignment" is a result from this process,
46specifically: an alignment is a way of "lining up" some or all of the characters in
47the read with some characters from the reference in a way that reveals how they're
48similar. For example:
49
50```
51  Read:      GACTGGGCGATCTCGACTTCG
52             |||||  |||||||||| |||
53  Reference: GACTG--CGATCTCGACATCG
54```
55Where dash symbols represent gaps and vertical bars show where aligned characters match.
56
57We use alignment to make an educated guess as to where a read originated with
58respect to the reference genome. It's not always possible to determine this with
59certainty. For instance, if the reference genome contains several long stretches of
60As (`AAAAAAAAA` etc.) and the read sequence is a short stretch of As (`AAAAAAA`), we
61cannot know for certain exactly where in the sea of As the read originated.
62
63**Examples**
64```
65# Aligning unpaired reads
66bowtie2 -x example/index/lambda_virus -U example/reads/longreads.fq
67
68# Aligning paired reads
69bowtie2 -x example/index/lambda_virus -1 example/reads/reads_1.fq -2 example/reads/reads_2.fq
70```
71
72### Building an index
73
74`bowtie2-build` builds a Bowtie index from a set of DNA sequences. `bowtie2-build`
75outputs a set of 6 files with suffixes `.1.bt2`, `.2.bt2`, `.3.bt2`, `.4.bt2`,
76`.rev.1.bt2`, and `.rev.2.bt2`. In the case of a large index these suffixes will
77have a `bt2l` termination. These files together constitute the index: they are all
78that is needed to align reads to that reference. The original sequence FASTA files
79are no longer used by Bowtie 2 once the index is built.
80
81Bowtie 2's `.bt2` index format is different from Bowtie 1's `.ebwt` format, and they
82are not compatible with each other.
83
84**Examples**
85```
86# Building a small index
87bowtie2-build example/reference/lambda_virus.fa example/index/lambda_virus
88
89# Building a large index
90bowtie2-build --large-index example/reference/lambda_virus.fa example/index/lambda_virus
91```
92
93### Index inpection
94
95`bowtie2-inspect` extracts information from a Bowtie 2 index about what kind of
96index it is and what reference sequences were used to build it. When run without any
97options, the tool will output a FASTA file containing the sequences of the original
98references (with all non-A/C/G/T characters converted to Ns). It can also be used to
99extract just the reference sequence names using the `-n/--names` option or a more
100verbose summary using the `-s/--summary` option.
101
102**Examples**
103```
104# Inspecting a lambda_virus index (small index) and outputting the summary
105bowtie2-inspect --summary example/index/lambda_virus
106
107# Inspecting the entire lambda virus index (large index)
108bowtie2-inspect --large-index example/index/lambda_virus
109```
110
111## Publications
112
113### Bowtie 2 Papers
114
115- Langmead B, Wilks C., Antonescu V., Charles R. __[Scaling read aligners to hundreds of threads on general-purpose processors](https://doi.org/10.1093/bioinformatics/bty648)__. [Bioinformatics](https://academic.oup.com/bioinformatics). bty648.
116
117- Langmead B, Salzberg S. __[Fast gapped-read alignment with Bowtie 2](http://www.nature.com/nmeth/journal/v9/n4/full/nmeth.1923.html)__. [Nature Methods](http://www.nature.com/nmeth). 2012, 9:357-359.
118
119- Langmead B, Trapnell C, Pop M, Salzberg SL. __[Ultrafast and memory-efficient alignment of short DNA sequences to the human genome](http://genomebiology.com/2009/10/3/R25)__. [Genome Biology](http://genomebiology.com/) 10:R25.
120
121### Related Publications
122
123- P. Ferragina, G. Manzini __[Opportunistic data structures with applications](https://ieeexplore.ieee.org/document/892127)__. [IEEE Xplore](http://genomebiology.com/) 10.1109/SFCS.2000.892127
124
125## Related Work
126
127Check out the [Bowtie 2 UI](http://bit.ly/bt2ui-beta), a [shiny](https://shiny.rstudio.com), frontend to the Bowtie 2 command line.
128