kraken2
Kraken 是一种分类学序列分类器,专门用于对 DNA 序列进行分类,将其归入已知的生物分类体系中。Kraken 检查查询序列中的 k-mer,并利用这些 k-mer 中的信息来查询数据库。该数据库将 k-mer 映射到包含特定 k-mer 的所有基因组的最低公共祖先(LCA)。
https://github.com/DerrickWood/kraken2
数据库¶
Kraken2 数据库是一个文件夹包含了至少3个文件:
hash.k2d
: 包含到分类单元映射的最小化器opts.k2d
: 包含有关用于构建数据库的选项的信息taxo.k2d
: 包含用于构建数据库的分类信息
kraken2可以自己构建数据库也可以下载构建好的数据库。
下载构建好的数据库:
构建标准数据库:
kraken2-build --standard --threads 24 --db $DBNAME
其中
$DBNAME
是指定数据库存储的位置,此步下载数据超过50GB的数据,数据库在创建期间将使用超过100 GB的磁盘空间。默认下载5种数据库:古菌archaea、细菌bacteria、人类human、载体UniVec_Core、病毒viral。构建自定义数据库:
kraken2可以下载如下:
archaea
: RefSeq complete archaeal genomes/proteinsbacteria
: RefSeq complete bacterial genomes/proteinsplasmid
: RefSeq plasmid nucleotide/protein sequencesviral
: RefSeq complete viral genomes/proteinshuman
: GRCh38 human genome/proteinsfungi
: RefSeq complete fungal genomes/proteinsplant
: RefSeq complete plant genomes/proteinsprotozoa
: RefSeq complete protozoan genomes/proteinsnr
: NCBI non-redundant protein databasent
: NCBI non-redundant nucleotide databaseUniVec
: NCBI-supplied database of vector, adapter, linker, and primer sequences that may be contaminating sequencing projects and/or assembliesUniVec_Core
: A subset of UniVec chosen to minimize false positive hits to the vector databaseenv_nr
andenv_nt
are no longer supported by NCBI and therefore are no longer available for download.
# 下载nr数据库并构建数据库 $ kraken2-build --download-library nr --threads 24 --db $DBNAME
添加单个序列到数据库
序列格式如下格式:
>sequence16|kraken:taxid|32630 Adapter sequence CAAGCAGAAGACGGCATACGAGATCTTCGAGTGACTGGAGTTCCTTGGCACCCGAGAATTCCA
$ kraken2-build --add-to-library chr1.fa --db $DBNAME # 添加完成后需要构建数据库,建立索引 raken2-build --build --db $DBNAME
分类¶
$ kraken2 --db /tmp/db/ --threads 40 --memory-mapping --quick --report report.txt --output out.txt seqs.fa
kraken2 参数选项:
Multithreading
:--threads
NUM线程数Quick operation
: 与搜索序列中所有的 l-mers不同,在第一个数据库命中后即停止分类; 使用--quick
启用此模式。Hit group threshold
:选项--minimum-hit-groups
将允许您在声明分类序列之前找到多个命中组(一组重叠的 k-mer,它们共享在哈希表中找到的公共最小化器),这可以 在测试序列是否属于特定基因组时,对自定义数据库特别有用。Sequence filtering
: 分类或未分类的序列可以发送到文件以供以后处理,分别使用--classified-out
和--unclassified-out
选项。Output redirection
: 可以使用标准 shell 重定向(| 或 >)或使用--output
来定向输出。Compressed input
: Kraken 2 可以通过指定--gzip-compressed
或--bzip2-compressed
的正确开关来处理 gzip 和 bzip2 压缩文件作为输入。Input format auto-detection
:如果在命令行上指定常规文件(即不是管道或设备文件)作为输入,Kraken2 将尝试在分类之前确定输入的格式。 您可以通过显式指定--gzip-compressed
或--bzip2-compressed
来禁用此功能。Paired reads
: Kraken 2 无需在读取之间使用“N”字符将配对连接在一起,而是能够在识别配对信息的同时单独处理配对。 对 kraken2 使用--paired
选项将向 kraken2 指示提供的输入文件是成对的读取数据,并且将从成对的文件中同时读取数据。--paired
的使用也会影响--classified-out
和--unclassified-out
选项; 用户应该在提供给这些选项的文件名中提供一个 # 字符,它将被 kraken2 替换为 "_1" 和 "_2" ,并适当地分布在两个文件中。 例如:将分类对中的第一个读取放入kraken2 --paired --classified-out cseqs#.fq seqs_1.fq seqs_2.fq
cseqs_1.fq
中,并将这些对中的第二次读取放入cseqs_2.fq
中。
注意事项¶
将数据库放在节点本地磁盘而非共享网络存储上,分类的运行速度会有比较大的提升。
参考:
https://github.com/DerrickWood/kraken2/wiki/Manual
https://hpc.nih.gov/apps/kraken.html
https://paleogenomics-tor-vergata.readthedocs.io/en/latest/4_Metagenomics_v2.html#kraken-2
https://www.jianshu.com/p/df3f923451f2
本文阅读量 次本站总访问量 次