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_nrandenv_ntare 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:--threadsNUM线程数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.fqcseqs_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
本文阅读量 次本站总访问量 次