|
Name |
|
Date |
Size |
#Lines |
LOC |
| .. | | 03-May-2022 | - |
| .github/workflows/ | H | 23-May-2021 | - | 32 | 31 |
| doc/ | H | 03-May-2022 | - | 3,181 | 2,974 |
| example/ | H | 23-May-2021 | - | 105,027 | 104,941 |
| scripts/ | H | 03-May-2022 | - | 12,699 | 9,101 |
| third_party/ | H | 23-May-2021 | - | 188 | 122 |
| .gitignore | H A D | 23-May-2021 | 584 | 38 | 37 |
| .gitmodules | H A D | 23-May-2021 | 136 | 5 | 4 |
| .travis.yml | H A D | 23-May-2021 | 1.5 KiB | 69 | 68 |
| AUTHORS | H A D | 23-May-2021 | 1.5 KiB | 36 | 26 |
| BOWTIE2_VERSION | H A D | 23-May-2021 | 5 | 1 | 1 |
| LICENSE | H A D | 23-May-2021 | 34.3 KiB | 675 | 553 |
| MANUAL | H A D | 23-May-2021 | 85.4 KiB | 2,068 | 1,524 |
| MANUAL.markdown | H A D | 23-May-2021 | 113.9 KiB | 2,962 | 2,086 |
| Makefile | H A D | 03-May-2022 | 17.4 KiB | 597 | 479 |
| NEWS | H A D | 23-May-2021 | 29.8 KiB | 565 | 500 |
| README.md | H A D | 23-May-2021 | 6 KiB | 128 | 93 |
| TUTORIAL | H A D | 23-May-2021 | 248 | 5 | 3 |
| aligner_bt.cpp | H A D | 23-May-2021 | 52.8 KiB | 1,774 | 1,475 |
| aligner_bt.h | H A D | 23-May-2021 | 30.2 KiB | 948 | 521 |
| aligner_cache.cpp | H A D | 23-May-2021 | 6.9 KiB | 282 | 217 |
| aligner_cache.h | H A D | 23-May-2021 | 24.4 KiB | 960 | 496 |
| aligner_driver.cpp | H A D | 23-May-2021 | 12.3 KiB | 393 | 279 |
| aligner_driver.h | H A D | 23-May-2021 | 10.1 KiB | 313 | 150 |
| aligner_metrics.h | H A D | 23-May-2021 | 11 KiB | 353 | 247 |
| aligner_report.h | H A D | 23-May-2021 | 986 | 36 | 10 |
| aligner_result.cpp | H A D | 23-May-2021 | 50 KiB | 1,959 | 1,585 |
| aligner_result.h | H A D | 23-May-2021 | 52 KiB | 1,983 | 1,135 |
| aligner_seed.cpp | H A D | 23-May-2021 | 54.3 KiB | 1,844 | 1,520 |
| aligner_seed.h | H A D | 23-May-2021 | 45.3 KiB | 1,671 | 1,015 |
| aligner_seed2.cpp | H A D | 23-May-2021 | 101.6 KiB | 3,188 | 2,570 |
| aligner_seed2.h | H A D | 23-May-2021 | 69.4 KiB | 2,529 | 1,550 |
| aligner_seed_policy.cpp | H A D | 23-May-2021 | 27.4 KiB | 885 | 577 |
| aligner_seed_policy.h | H A D | 23-May-2021 | 7.4 KiB | 236 | 40 |
| aligner_sw.cpp | H A D | 23-May-2021 | 102.1 KiB | 3,244 | 2,890 |
| aligner_sw.h | H A D | 23-May-2021 | 25.1 KiB | 658 | 324 |
| aligner_sw_common.h | H A D | 23-May-2021 | 8.2 KiB | 301 | 209 |
| aligner_sw_driver.cpp | H A D | 23-May-2021 | 82.5 KiB | 2,404 | 1,935 |
| aligner_sw_driver.h | H A D | 23-May-2021 | 20 KiB | 538 | 352 |
| aligner_sw_nuc.h | H A D | 23-May-2021 | 7 KiB | 263 | 161 |
| aligner_swsse.cpp | H A D | 23-May-2021 | 2.6 KiB | 89 | 50 |
| aligner_swsse.h | H A D | 23-May-2021 | 14.7 KiB | 500 | 273 |
| aligner_swsse_ee_i16.cpp | H A D | 23-May-2021 | 61.9 KiB | 1,908 | 1,402 |
| aligner_swsse_ee_u8.cpp | H A D | 23-May-2021 | 61.1 KiB | 1,902 | 1,395 |
| aligner_swsse_loc_i16.cpp | H A D | 23-May-2021 | 74.6 KiB | 2,274 | 1,600 |
| aligner_swsse_loc_u8.cpp | H A D | 23-May-2021 | 73.3 KiB | 2,270 | 1,613 |
| aln_sink.cpp | H A D | 23-May-2021 | 74.1 KiB | 2,558 | 2,072 |
| aln_sink.h | H A D | 23-May-2021 | 44.9 KiB | 1,379 | 780 |
| alphabet.cpp | H A D | 23-May-2021 | 8.3 KiB | 245 | 164 |
| alphabet.h | H A D | 23-May-2021 | 3.7 KiB | 128 | 65 |
| assert_helpers.h | H A D | 23-May-2021 | 9.3 KiB | 280 | 234 |
| banded.cpp | H A D | 23-May-2021 | 823 | 28 | 6 |
| banded.h | H A D | 23-May-2021 | 1.2 KiB | 53 | 20 |
| binary_sa_search.h | H A D | 23-May-2021 | 3.5 KiB | 103 | 58 |
| bitpack.h | H A D | 23-May-2021 | 1.5 KiB | 54 | 23 |
| blockwise_sa.h | H A D | 23-May-2021 | 35.5 KiB | 1,148 | 848 |
| bowtie2 | H A D | 03-May-2022 | 26.3 KiB | 648 | 544 |
| bowtie2-build | H A D | 03-May-2022 | 2.8 KiB | 91 | 70 |
| bowtie2-inspect | H A D | 03-May-2022 | 2.7 KiB | 84 | 64 |
| bowtie_build_main.cpp | H A D | 23-May-2021 | 2 KiB | 71 | 39 |
| bowtie_main.cpp | H A D | 23-May-2021 | 2 KiB | 70 | 38 |
| bt2_build.cpp | H A D | 23-May-2021 | 23.7 KiB | 709 | 610 |
| bt2_dp.cpp | H A D | 23-May-2021 | 24.7 KiB | 787 | 686 |
| bt2_idx.cpp | H A D | 23-May-2021 | 8.1 KiB | 303 | 215 |
| bt2_idx.h | H A D | 23-May-2021 | 96 KiB | 3,095 | 2,272 |
| bt2_inspect.cpp | H A D | 23-May-2021 | 15.1 KiB | 499 | 411 |
| bt2_io.cpp | H A D | 23-May-2021 | 30.1 KiB | 959 | 754 |
| bt2_locks.cpp | H A D | 23-May-2021 | 920 | 37 | 30 |
| bt2_locks.h | H A D | 23-May-2021 | 1.5 KiB | 72 | 59 |
| bt2_search.cpp | H A D | 23-May-2021 | 199.5 KiB | 5,238 | 4,557 |
| bt2_search.h | H A D | 23-May-2021 | 1.2 KiB | 42 | 17 |
| bt2_util.cpp | H A D | 23-May-2021 | 6.3 KiB | 220 | 152 |
| btypes.h | H A D | 23-May-2021 | 1.3 KiB | 48 | 19 |
| ccnt_lut.cpp | H A D | 23-May-2021 | 14 KiB | 322 | 299 |
| cpu_numa_info.cpp | H A D | 23-May-2021 | 288 | 10 | 7 |
| cpu_numa_info.h | H A D | 23-May-2021 | 109 | 7 | 4 |
| diff_sample.cpp | H A D | 23-May-2021 | 4.5 KiB | 118 | 70 |
| diff_sample.h | H A D | 23-May-2021 | 29.1 KiB | 1,022 | 768 |
| dp_framer.cpp | H A D | 23-May-2021 | 36.3 KiB | 910 | 542 |
| dp_framer.h | H A D | 23-May-2021 | 9.2 KiB | 267 | 139 |
| ds.cpp | H A D | 23-May-2021 | 3.1 KiB | 156 | 116 |
| ds.h | H A D | 23-May-2021 | 86.3 KiB | 4,288 | 2,567 |
| edit.cpp | H A D | 23-May-2021 | 11.5 KiB | 472 | 359 |
| edit.h | H A D | 23-May-2021 | 8 KiB | 331 | 166 |
| endian_swap.h | H A D | 23-May-2021 | 3.9 KiB | 147 | 89 |
| fast_mutex.h | H A D | 23-May-2021 | 6.8 KiB | 249 | 174 |
| filebuf.h | H A D | 23-May-2021 | 17.6 KiB | 831 | 552 |
| formats.h | H A D | 23-May-2021 | 1.2 KiB | 59 | 31 |
| group_walk.cpp | H A D | 23-May-2021 | 759 | 21 | 1 |
| group_walk.h | H A D | 23-May-2021 | 36.2 KiB | 1,293 | 828 |
| ival_list.cpp | H A D | 23-May-2021 | 5.1 KiB | 166 | 136 |
| ival_list.h | H A D | 23-May-2021 | 6.5 KiB | 300 | 171 |
| limit.cpp | H A D | 23-May-2021 | 1.8 KiB | 44 | 22 |
| limit.h | H A D | 23-May-2021 | 1.3 KiB | 49 | 25 |
| ls.cpp | H A D | 23-May-2021 | 3.6 KiB | 143 | 114 |
| ls.h | H A D | 23-May-2021 | 11.7 KiB | 334 | 232 |
| mask.cpp | H A D | 23-May-2021 | 1 KiB | 37 | 13 |
| mask.h | H A D | 23-May-2021 | 2.1 KiB | 80 | 36 |
| mem_ids.h | H A D | 23-May-2021 | 1.2 KiB | 36 | 9 |
| mm.h | H A D | 23-May-2021 | 1.2 KiB | 36 | 5 |
| multikey_qsort.cpp | H A D | 23-May-2021 | 858 | 24 | 2 |
| multikey_qsort.h | H A D | 23-May-2021 | 37.8 KiB | 1,234 | 939 |
| opts.h | H A D | 23-May-2021 | 6.8 KiB | 168 | 146 |
| outq.cpp | H A D | 23-May-2021 | 6.4 KiB | 254 | 203 |
| outq.h | H A D | 23-May-2021 | 4.1 KiB | 189 | 117 |
| pat.cpp | H A D | 23-May-2021 | 51.5 KiB | 1,961 | 1,579 |
| pat.h | H A D | 23-May-2021 | 33.3 KiB | 1,409 | 846 |
| pe.cpp | H A D | 23-May-2021 | 30.8 KiB | 941 | 691 |
| pe.h | H A D | 23-May-2021 | 9.5 KiB | 322 | 161 |
| presets.cpp | H A D | 23-May-2021 | 2.9 KiB | 96 | 63 |
| presets.h | H A D | 23-May-2021 | 1.5 KiB | 68 | 26 |
| processor_support.h | H A D | 23-May-2021 | 2.2 KiB | 67 | 39 |
| qual.cpp | H A D | 23-May-2021 | 3.9 KiB | 86 | 58 |
| qual.h | H A D | 23-May-2021 | 6.4 KiB | 236 | 158 |
| random_source.cpp | H A D | 23-May-2021 | 3.2 KiB | 129 | 99 |
| random_source.h | H A D | 23-May-2021 | 5.3 KiB | 249 | 152 |
| random_util.cpp | H A D | 23-May-2021 | 907 | 25 | 4 |
| random_util.h | H A D | 23-May-2021 | 5.8 KiB | 222 | 121 |
| read.h | H A D | 23-May-2021 | 12.5 KiB | 454 | 299 |
| read_qseq.cpp | H A D | 23-May-2021 | 5.8 KiB | 236 | 178 |
| ref_coord.cpp | H A D | 23-May-2021 | 1,014 | 34 | 11 |
| ref_coord.h | H A D | 23-May-2021 | 9.8 KiB | 424 | 228 |
| ref_read.cpp | H A D | 23-May-2021 | 8.2 KiB | 306 | 222 |
| ref_read.h | H A D | 23-May-2021 | 8.2 KiB | 315 | 222 |
| reference.cpp | H A D | 23-May-2021 | 20.3 KiB | 669 | 548 |
| reference.h | H A D | 23-May-2021 | 5.7 KiB | 190 | 87 |
| sam.cpp | H A D | 23-May-2021 | 24.3 KiB | 979 | 826 |
| sam.h | H A D | 23-May-2021 | 12.3 KiB | 408 | 295 |
| scoring.cpp | H A D | 23-May-2021 | 9.2 KiB | 286 | 199 |
| scoring.h | H A D | 23-May-2021 | 15.1 KiB | 489 | 270 |
| search_globals.h | H A D | 23-May-2021 | 1.2 KiB | 42 | 18 |
| sequence_io.h | H A D | 23-May-2021 | 3.6 KiB | 126 | 86 |
| shmem.cpp | H A D | 23-May-2021 | 1.3 KiB | 50 | 17 |
| shmem.h | H A D | 23-May-2021 | 4.9 KiB | 162 | 121 |
| simple_func.cpp | H A D | 23-May-2021 | 2.3 KiB | 94 | 71 |
| simple_func.h | H A D | 23-May-2021 | 3.5 KiB | 130 | 80 |
| sse_util.cpp | H A D | 23-May-2021 | 979 | 34 | 10 |
| sse_util.h | H A D | 23-May-2021 | 14.3 KiB | 584 | 353 |
| sse_wrap.h | H A D | 23-May-2021 | 2.6 KiB | 68 | 38 |
| sstring.cpp | H A D | 23-May-2021 | 5.3 KiB | 203 | 168 |
| sstring.h | H A D | 23-May-2021 | 73.8 KiB | 3,413 | 2,116 |
| str_util.h | H A D | 23-May-2021 | 1.4 KiB | 63 | 31 |
| threading.h | H A D | 23-May-2021 | 5.2 KiB | 199 | 145 |
| timer.h | H A D | 23-May-2021 | 4.6 KiB | 170 | 110 |
| tokenize.h | H A D | 23-May-2021 | 1.7 KiB | 63 | 33 |
| unique.cpp | H A D | 23-May-2021 | 2.3 KiB | 67 | 23 |
| unique.h | H A D | 23-May-2021 | 14.2 KiB | 519 | 366 |
| util.h | H A D | 23-May-2021 | 1.4 KiB | 53 | 24 |
| word_io.h | H A D | 23-May-2021 | 4.5 KiB | 214 | 100 |
| zbox.h | H A D | 23-May-2021 | 2.7 KiB | 98 | 62 |
| zstd_decompress.cpp | H A D | 23-May-2021 | 3.1 KiB | 156 | 128 |
| zstd_decompress.h | H A D | 23-May-2021 | 748 | 32 | 26 |
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