Kraken拓展工具KrakenTools

背景

Kraken(Kraken2)默认的report格式并不利于后续的分析,在运行Kraken时我通常会使用--use-mpa-style这个参数来生成像MetaPhlan(MetaPhlan2)格式的结果。但是如果想要做后续的分析(Bracken),就还要用到report格式的结果。之前我采用的策略是运行两次Kraken2

### run it twice...
kraken2 \
    --db $KRAKEN_DB \
    --paired \
    --threads 8 \
    --output ${prefix}.out \
    --report ${prefix}.kraken2.tsv \
    $fq1 $fq2 \
    --use-mpa-style

### run again for bracken
kraken2 \
    --db $KRAKEN_DB \
    --paired \
    --threads 8 \
    --report ${prefix}.kraken2 \
    $fq1 $fq2 > /dev/null

经验上来讲Kraken很大一部分运行时间花在将数据库载入内存和硬盘读写(IO),对于大数据库、深度测序,会造成一定的资源浪费、并且CPU利用率不高。

最近发现了Bracken的作者开发的很有用的工具集。其中包含一个将Kraken report格式转换为mpa格式的输出的脚本kreport2mpa.py

使用kreport2mpa.py简化kraken流程

下面是简化后的Kraken2流程:

kraken2 \
    --db $KRAKEN_DB \
    --paired \
    --threads 8 \
    --output ${prefix}.kraken2.out \
    --report ${prefix}.kraken2.report \
    $reads1 $reads2 
    ### Convert kraken report to mpa file
kreport2mpa.py \
     -r ${prefix}.kraken2.report \
     -o ${prefix}.kraken2.tax \
     --no-intermediate-ranks

shotgunmetagenomics-nf流程的develop branch已经更新了对应的module

使用extract_kraken_reads.py提取对应TaxID的序列

这个程序可以用来快速过滤出属于一个物种(或其他分类等级)的序列。

## 提取E. coli序列
extract_kraken_reads.py \
    -t 562 \ 
    -k ${prefix}.kraken2.report \
    -s1 $reads1 -s2 $reads2 \
    -o $extracted1 -o2 $extracted2 \
    --fastq-output

Related

comments powered by Disqus