首页 > 代码库 > Kaiju: Fast and sensitive taxonomic classification for metagenomics

Kaiju: Fast and sensitive taxonomic classification for metagenomics

Kaiju: Fast and sensitive taxonomic classification for  metagenomics
 技术分享

 

问题描述:However, nucleotide comparison using a fixed k-mer length often lacks the sensitivity to overcome the evolutionary distance between sampled species and genomes in the reference database.
然而,使用一个定长的k-mer核酸序列比对往往会缺少克服在样本物种和参考数据库中的基因之间的进化距离的敏感度。
 技术分享

 

解决方法:Here, we present the novel metagenome classifier Kaiju for fast assignment of reads to taxa.
这里,我们提出新的宏基因主分类器kaiju-将read快速分类到物种上。
Kaiju finds maximum exact matches on the protein-level using the Borrows-Wheeler transform, and can optionally allow amino acid substitutions in the search using a greedy heuristic.
kaiju用borrows-Wheeler变换寻找在蛋白质水平上的最大精确匹配,并且可以任意地选用用启发式贪婪算法搜索氨基酸替代。
We show in a genome exclusion study that Kaiju can classify more reads with higher sensitivity and similar precision compared to fast k-mer based classifiers, especially in genera that are underrepresented in reference databases.
在基因分类研究中我们发现,kaiju相比基于k-mer的分类器,尤其是在那些在参考数据库代表性不足的genera,能够更加灵敏更加精确的对reads进行分类。
 
Kaiju最大的算法精确匹配(右)和贪婪匹配(左)。灰色的线表示翻译氨基酸片段搜索在数据库中,而红和橙色线表示在MEM和贪婪模式匹配。蓝线表示片段不评价,因为他们的最大长度或获得的分数比的长度或得分低从以前搜索最佳匹配片段。
技术分享
 技术分享
文章地址:http://biorxiv.org/content/early/2015/11/16/031229?rss=1
 
安装:git clone https://github.com/bioinformatics-centre/kaiju
 
测试:cd src/
           make
           kaiju -t  /biostack/database/kaiju/nodes.dmp   -f   /biostack/database/kaiju/kaiju_db_nr_euk.fmi  -i   test.fa -o  kaiju.tsv  -z 20
 技术分享

 

使用说明:

作者:
彼得·门泽尔pmenzel@gmail.com
安德斯·克罗krogh@binf.ku.dk

创建参考数据库和索引

kaiju是一个针对Illumina or Roche/454高通量宏基因组分类软件。用NCBI分类学和微生物和病毒的蛋白质序列的参考数据库将reads直接进行比对。

在进行reads分类之前,kaiju需要从参考蛋白数据库中构建数据库索引。你也可以从GenBank数据库中当前可用的数据中构造索引,或者从kaijuweb服务器上
下载一个索引。

为了创建一个索引,目录中的该程序将直接从NCBI FTP服务器上下载参考基因和分类文件,把他们转换成蛋白质数据库并且构建kaiju索引。

从NCBI参考数据库中下下载拼装完整的和注释好的古菌和细菌。截止到2016年10月,这个数据库包含20M 蛋白质序列,kaiju要求14G的RAM才能运行。

自定义数据库:

从蛋白序列集中可以构建一个自定义数据库。格式必须是FASTA格式的文件,其中标头是该蛋白质序列NCBI号,

分类标志必须包含在NCBI分类文件nodes.dmp and names.dmp.然后,kaiju
用程序mkbwt and mkfmi创建索引。如果数据库fasta文件被命名为proteins.faa,运行程序:
mkbwt -n 5 -a ACDEFGHIKLMNPQRSTVWY -o proteins proteins.faa
mkfmi proteins

运行kaiju

技术分享

 

 


运行kaiju至少需要3个参数:

kaiju -t nodes.dmp -f kaiju_db.fmi -i inputfile.fastq

如果你选择makeDB.sh -n或-e,然后要用 -f kaiju_db_nr.fmi or -f kaiju_db_nr_euk.fmi
对于双端的序列要用  -i firstfile.fastq and -j secondfile.fastq。这两
个reads文件必须有相同的顺序。kaiju将删除所有 / 和空格。 reads名字
相同的将被合并在一起,如果两者有不同将发出一个错误。

kaiju能读取FASTQ and FASTA 格式的输入文件。如果文件被压缩,shell程序
可以在内部进行解压。
默认情况下,kaiju将输出到终端,输出也可以被写到指定的文件夹中,使用
选项-o :
kaiju -t nodes.dmp -f kaiju_db.fmi -i inputfile.fastq -o kaiju.out

运行模式:

默认运行模式是MEM,只考虑精确匹配的情况下。如果使用贪婪模式,允许不进
行匹配,通过选项-a进行设置模式,用选项 -e设置允许替换的数量:
kaiju -t nodes.dmp -f kaiju_db.fmi -i inputfile.fastq -a greedy -e 5

为了降低最低要求的匹配长度和匹配率的的临界值可以使用选项 -m和-s来改变
如果输入序列已经是蛋白质序列,那么要使用 -p选项来禁用输入转录。

选项-x可用于使通过使用SEG算法从鼓风+软件包含低复杂性区域的查询序列的过滤。启用该选项,以避免因虚假匹配误报匹配始终建议,由于简单重复的图案或其他测序噪音。

输出格式:

kaiju将输出每一个单端或者双端reads。默认输出格式包含由制表符分割的三列。使用选项-v可启用详细输出,将会额外打印三行:
1.C或U,表示reads被分类或未被分类。
2.每个read的名字。
3.NCBI分类号
4.用于分类的最佳匹配的分数和长度
5.最佳匹配的所有数据库序列的分类识别
6.匹配的read

分类准确度:

分类的精度取决于参考数据库的选择和运行Kaiju当所选选项两者。这些选择也影响Kaiju的速度和内存使用情况。对于灵敏度高的要求,建议使用NR库作为参考数据库,因为他们是最全面的蛋白质数据库。另外,使用proGenomes的精确度超过Refseq
此外,贪婪算法的运行模式,允许5个错误匹配,比MEM模式产生更高的灵敏度。
为了达到最快的分类,使用MEM模式和多个并行线程(-z); 和最低的内存使用量使用proGenomes参考数据库。并行线程数只对内存的使用影响不大。

此外,所需的最小匹配长度(的选择-m的MEM模式或匹配分数() -s)的贪婪方式支配的分类的灵敏度和精确度之间的权衡。请参阅本文关于这一主题的讨论。

Creating input file for Krona   

技术分享

 

              本次翻译是在2016.11.18号晚上于实验室,由于时间有限只能翻译重点部分。

 

Kaiju: Fast and sensitive taxonomic classification for metagenomics