annotate README.md @ 0:60d9479c58d6 draft

Uploaded
author devteam
date Wed, 22 Apr 2015 13:03:54 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
1 Introduction
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
2 ============
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
3
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
4 [Kraken] is a taxonomic sequence classifier that assigns taxonomic
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
5 labels to short DNA reads. It does this by examining the $k$-mers
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
6 within a read and querying a database with those $k$-mers. This database
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
7 contains a mapping of every $k$-mer in [Kraken]'s genomic library to the
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
8 lowest common ancestor (LCA) in a taxonomic tree of all genomes that
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
9 contain that $k$-mer. The set of LCA taxa that correspond to the $k$-mers
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
10 in a read are then analyzed to create a single taxonomic label for the
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
11 read; this label can be any of the nodes in the taxonomic tree.
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
12 [Kraken] is designed to be rapid, sensitive, and highly precise. Our
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
13 tests on various real and simulated data have shown [Kraken] to have
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
14 sensitivity slightly lower than Megablast with precision being slightly
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
15 higher. On a set of simulated 100 bp reads, [Kraken] processed over 1.3
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
16 million reads per minute on a single core in normal operation, and over
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
17 4.1 million reads per minute in quick operation.
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
18
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
19 The latest released version of Kraken will be available at the
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
20 [Kraken website], and the latest updates to the Kraken source code
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
21 are available at the [Kraken GitHub repository].
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
22
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
23 If you use [Kraken] in your research, please cite the [Kraken paper].
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
24 Thank you!
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
25
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
26 [Kraken]: http://ccb.jhu.edu/software/kraken/
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
27 [Kraken website]: http://ccb.jhu.edu/software/kraken/
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
28 [Kraken paper]: http://genomebiology.com/2014/15/3/R46
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
29 [Kraken GitHub repository]: https://github.com/DerrickWood/kraken
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
30
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
31
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
32 System Requirements
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
33 ===================
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
34
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
35 Note: Users concerned about the disk or memory requirements should
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
36 read the paragraph about MiniKraken, below.
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
37
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
38 * **Disk space**: Construction of Kraken's standard database will require at
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
39 least 160 GB of disk space. Customized databases may require
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
40 more or less space. Disk space used is linearly proportional
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
41 to the number of distinct $k$-mers; as of Feb. 2015, Kraken's
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
42 default database contains just under 6 billion (6e9) distinct $k$-mers.
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
43
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
44 In addition, the disk used to store the database should be
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
45 locally-attached storage. Storing the database on a network
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
46 filesystem (NFS) partition can cause Kraken's operation to be
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
47 very slow, or to be stopped completely. As NFS accesses are
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
48 much slower than local disk accesses, both preloading and database
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
49 building will be slowed by use of NFS.
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
50
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
51 * **Memory**: To run efficiently, Kraken requires enough free memory to
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
52 hold the database in RAM. While this can be accomplished using a
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
53 ramdisk, Kraken supplies a utility for loading the database into
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
54 RAM via the OS cache. The default database size is 75 GB (as of
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
55 Feb. 2015), and so you will need at least that much RAM if you want
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
56 to build or run with the default database.
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
57
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
58 * **Dependencies**: Kraken currently makes extensive use of Linux utilities
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
59 such as sed, find, and wget. Many scripts are written using the
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
60 Bash shell, and the main scripts are written using Perl. Core
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
61 programs needed to build the database and run the classifier are
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
62 written in C++, and need to be compiled using g++. Multithreading
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
63 is handled using OpenMP. Downloads of NCBI data are performed by
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
64 wget and in some cases, by rsync. Most Linux systems that have any
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
65 sort of development package installed will have all of the above
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
66 listed programs and libraries available.
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
67
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
68 Finally, if you want to build your own database, you will need to
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
69 install the [Jellyfish] $k$-mer counter. Note that Kraken only
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
70 supports use of Jellyfish version 1. Jellyfish version 2 is not
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
71 yet compatible with Kraken.
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
72
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
73 * **Network connectivity**: Kraken's standard database build and download
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
74 commands expect unfettered FTP and rsync access to the NCBI FTP
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
75 server. If you're working behind a proxy, you may need to set
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
76 certain environment variables (such as `ftp_proxy` or `RSYNC_PROXY`)
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
77 in order to get these commands to work properly.
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
78
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
79 * **MiniKraken**: To allow users with low-memory computing environments to
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
80 use Kraken, we supply a reduced standard database that can be
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
81 downloaded from the Kraken web site. When Kraken is run with a
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
82 reduced database, we call it MiniKraken.
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
83
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
84 The database we make available is only 4 GB in size, and should
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
85 run well on computers with as little as 8 GB of RAM. Disk space
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
86 required for this database is also only 4 GB.
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
87
60d9479c58d6 Uploaded
devteam
parents:
diff changeset
88 [Jellyfish]: http://www.cbcb.umd.edu/software/jellyfish/