kraken基于k-mer精确比对,采用最LCA投票结果快速宏基因组DNA序列进行物种注释。
Kraken2数据库至少包括3个文件
hash.k2d: 物种地图,即所有序列与物种的数据库
opts.k2d: 数据库构建的信息
taxo.k2d: 数据库的分类学信息
以上文件为快速读取,全为二进制文件。
如果仅使用kraken2,除以上三个文件外,其它的文件在空间有限下可以删除。如果要使用bracken时,仍需保留其他文件,用于构建索引等。
标准数据库构建
#下载数据库,先设置存放位置
DBNAME=~/db/kraken2/201127
mkdir -p $DBNAME
#可调线程数据,加速构建过程
kraken2-build --standard --threads 24 --db $DBNAME
标准模式下只下载5种数据库:古菌archaea、细菌bacteria、人类human、载体UniVec_Core、病毒viral
# 下载数据库,先设置存放位置
DBNAME=~/db/kraken2/201201
mkdir -p DBNAME
cd $DBNAME
# 下载物种注释,259
kraken2-build --download-taxonomy --threads 24 --db $DBNAME
# 下载非默认数据库中的真菌库 1.33G
kraken2-build --download-library fungi --threads 24 --db $DBNAME
# 批量下载,非标准数据库
for i in archaea bacteria plasmid viral human fungi plant protozoa nr nt env_nr env_nt UniVec; do
kraken2-build --download-library $i --threads 24 --db $DBNAME
done
# 确定的库建索引
kraken2-build --build --threads 24 --db $DBNAME
NCBI上的三个重要的数据库—NR/NT,Taxonomy和RefSeq。NR(Non-Redundant Protein Sequence Database)非冗余蛋白库,所有GenBank+EMBL+DDBJ+PDB中的非冗余蛋白序列,对于所有已知的或可能的编码序列,NR记录中都给出了相应的氨基酸序列(通过已知或可能的读码框推断而来)以及专门蛋白数据库中的序列号。NR库相当于一个以核酸序列为基础的交叉索引,将核酸数据和蛋白数据联系起来。NT(Nucleotide Sequence Database),核酸序列数据库,是NR库的子集。NCBI的分类数据库,包括大于7万余个物种的名字和种系,这些物种都至少在遗传数据库中有一条核酸或蛋白序列。其目的是为序列数据库建立一个一致的种系发生分类学。RefSeq(the reference sequence database,https://www.ncbi.nlm.nih.gov/refseq/ ).参考序列数据库,包含RefSeq_genomic(NCBI genomic reference sequences),RefSeq_protein(NCBI protein reference sequences)和RefSeq transpans(NCBI transpans reference sequences)具有生物意义上的非冗余基因,转录本和蛋白质序列,是经过NCBI和其他组织校正的数据库,使用人类基因命名委员会定义的术语,并且包括了官方的基因符号和可选的符号。[3]
自行添加基因组,需要满足以下两点要求
fasta格式,可以多个文件
必须包括NCBI物种ID,如>sequence16|kraken:taxid|32630 Adapter sequence
# 添加单个序列
kraken2-build --add-to-library chr1.fa --db $DBNAME
# 批量添加序列
for file in chr*.fa
do
kraken2-build --add-to-library $file --db $DBNAME
done
数据库确定后,建索引
kraken2-build --build --db $DBNAME
—kmer-len 和 minimizer-len,要求核酸至少31,蛋白至少15
kraken2-build —help查看更多参数
非NCBI数据库
支持核酸数据库Greengene、RDP、SILVA数据库制作。它们的物种注释不遵循NCBI的Taxonomy标准。
Greengenes (greengenes), 所有可用的16S
RDP (rdp), 细菌和古菌16S
SILVA (silva), 核糖体小亚基99%非冗余NR99序列集
以里以SILVA为例,因为它不仅包括16S,还包括18S,更适合宏基因组数据
kraken2-build --db $DBNAME --special silva