1. 简介
Kraken2是一个基于k-mer算法的高精度宏基因组序列分类软件,能够快速的将测序reads进行物种分类。
Bracken (Bayesian Reestimation of Abundance with KrakEN)是一种高精度统计方法,结合Kraken可以实现高准确度的宏基因组测序数据物种分类分析。
Kraken和Bracken的更多介绍可以参考:宏基因组序列物种分类之kraken 1/2和Bracken的使用
2. 软件安装和数据库下载
Kraken2安装
# 源码安装
git clone https://github.com/DerrickWood/kraken2.git
cd kraken2
sh install_kraken2.sh ~/bin/kraken2 # 安装路径(编译后文件存储文件夹)
~/bin/kraken2/kraken2 --help #可加入到环境变量,方便使用
# conda安装(推荐,可以帮忙解决很多依赖)
conda install -y kraken2
kraken2 --help
Bracken安装
# 源码安装(推荐,后续要用到其中的子程序)
git clone https://github.com/jenniferlu717/Bracken.git
cd Bracken
bash install_bracken.sh
cd src/ && make
../bracken -h # 可将bracken加入环境变量方便使用,绝对路径为~/software/Bracken/bracken
# conda安装
conda install -y bracken
brcken -h
数据库下载(第一种方式)
直接下载Kraken官网索引好的数据库。
# 可直接在下载页面下载
# http://ccb.jhu.edu/software/kraken2/downloads.shtml
# MiniKraken2_v1_8GB 包含了细菌(acteria)、古菌( archaea)和病毒(viral)
# MiniKraken2_v2_8GB 在v1的基础上加入了人基因组(GRCh38)
wget ftp://ftp.ccb.jhu.edu/pub/data/kraken2_dbs/old/minikraken2_v1_8GB_201904.tgz
tar zxvf minikraken2_v1_8GB_201904_UPDATE.tgz -C ./ #绝对路径为~/db/minikraken2_v1_8GB/
# Bracken数据库构建
~/software/Bracken/bracken-build -d ~/db/minikraken2_v1_8GB -t 8 -k 35 -l 150 #结束后会在kraken数据库路径下生成database150mers.kmer_distrib
Bracken参数解释:
- -d,Kraken数据库路径;
- -t,线程数;
- -k,k-mer长度,Kraken1默认为31,Kraken2默认为32;
- -l,reads读长。
数据库下载(第二种)
使用命令行下载Kraken数据库。
# 命令行下载数据库(需要时间长)
kraken2-build --standard --threads 56 --db kraken2_db # 标准模式下只下载古菌(archaea)、细菌(bacteria)、人类(human)、载体(UniVec_Core)、病毒(viral)
数据库下载(第三种)
下载序列后本地索引,较为灵活但下载时间较长。
mkdir kraken2_db && cd kraken2_db
# 先下载taxonomy
kraken2-build --threads 56 --db ./ --download-taxonomy
# 然后下载所需类型数据库序列
# 可用数据库:"archaea", "bacteria", "plasmid", "viral", "human", "fungi", "plant", "protozoa", "nr", "nt", "UniVec", "UniVec_Core"
kraken2-build --threads 56 --db ./ --download-library bacteria
kraken2-build --threads 56 --db ./ --download-library viral
......
# 最后索引
kraken2-build --build --threads 56 --db ./
补充说明:官方单独整理了一个真核病原菌的数据库,详情可参考EuPathDB。
3. 分析
数据:质控好的PE150(如果为其它长度,Bracken数据库索引的长度也要改变)数据TEST.R1.clean.fq.gz和TEST.R2.clean.fq.gz。
# 第一步,使用Kraken2分析,不使用--use-mpa-style模式
mkdir out
~/bin/kraken2/kraken2 --db ~/dbminikraken2_v1_8GB --threads 56 --report ./out/TEST.report --output out/TEST.output --paired TEST.R1.clean.fq.gz TEST.R2.clean.fq.gz
# 第二步,使用Braken校正
~/software/Bracken/bracken -d ~/dbminikraken2_v1_8GB -i ./out/TEST.report -o ./out/TEST.S.bracken -w TEST.S.bracken.report -r 150 -l S
# 第三步,将Braken的report格式转换成--use-mpa-style格式
# 用Bracken的子程序
~/software/Bracken/kreport2mpa.py -r TEST.S.bracken.report -o TEST.new.report
结果展示
KraKen2参数解释:
- --db,数据库路径;
- --threads,线程数;
- --report,注释结果统计报告(每个物种的reads数目)文件名;
- --output,每条reads注释详情输出文件名;
- --paired,输入数据为paired-end数据。
Bracken参数解释
- -d,Kraken2数据库路径(包含Braken对应长度索引);
- -i,Kraken2的输出文件名(--report的输出文件名),在这里作为输入文件;
- -o,Bracken输出文件(校正详情)文件名;
- -w,Bracken计算后的新报告(每个物种的reads数目)文件名;
- -r, reads长度;
- -l,分类水平(D,P,C,O,F,G,S)。
kreport2mpa.py参数解释:
- -r,需要转换的报告文件名;
- -o,转换后的报告文件名(--use-mpa-style格式)。