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和贪婪模式匹配。蓝线表示片段不评价,因为他们的最大长度或获得的分数比的长度或得分低从以前搜索最佳匹配片段。
 
 
 
测试: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的更多相关文章

  1. 论文笔记之:Semi-supervised Classification with Graph Convolutional Networks

    Semi-supervised Classification with Graph Convolutional Networks 2018-01-16  22:33:36 1. 文章主要思想: 2. ...

  2. Fast RCNN论文学习

    Fast RCNN建立在以前使用深度卷积网络有效分类目标proposals的工作的基础上.使用了几个创新点来改善训练和测试的速度,同时还能增加检测的精确度.Fast RCNN训练VGG16网络的速度是 ...

  3. 数据挖掘方面重要会议的最佳paper集合

    数据挖掘方面重要会议的最佳paper集合,兴许将陆续分析一下内容: 主要有KDD.SIGMOD.VLDB.ICML.SIGIR KDD (Data Mining) 2013 Simple and De ...

  4. 比对软件Blast,Blast+,Diamond比较

    1. Blast (1)格式化数据库 formatdb -i db.seq -p T -o T -l logfile 主要参数: -i 输入需要格式化的源数据库名称 -p 文件类型,是核苷酸序列数据库 ...

  5. 学习OpenCV——Surf(特征点篇)&flann

    Surf(Speed Up Robust Feature) Surf算法的原理                                                             ...

  6. OpenCV图像Surf与flann特征点(转载)

    Surf(Speed Up Robust Feature) Surf算法的原理                                                             ...

  7. Awesome-Text-Classification:文本分类资源合集

    Awesome-Text-Classification https://github.com/fendouai/Awesome-Text-Classification Projects fastTex ...

  8. OpenCV特征点检测------Surf(特征点篇)

    Surf(Speed Up Robust Feature) Surf算法的原理                                                              ...

  9. kegg富集分析之:KEGGREST包(9大功能)

    这个包依赖极有可能是这个:https://www.kegg.jp/kegg/docs/keggapi.html ,如果可以看懂会很好理解 由于KEGG数据库分享数据的策略改变,因此KEGG.db包不在 ...

随机推荐

  1. Open source packages on Deep Reinforcement Learning

    智能车 self driving car + 强化学习 reinforcement learning + 神经网络 模拟 https://github.com/MorvanZhou/my_resear ...

  2. 用Python编写的第一个回测程序

    用Python编写的第一个回测程序 2016-08-06 def savfig(figureObj, fn_prefix1='backtest8', fn_prefix2='_1_'): import ...

  3. 转!!XML,DTD,XSD,XSL的区别

    XML=可扩展标记语言(eXtensible Markup Language).可扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可用 方便的方式建立,虽然XML占 ...

  4. TextView 行数控制

    控制textview只显示 2 行文本,超过 2 行显示展开/折叠按钮(mShowImage),isShow=true时,是展开状态,isShow=false时,是折叠状态 方法一: int line ...

  5. zabbix3.0.4 部署之三 (LNMP > Mysql 安装)

    MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具. 因此,我们首先要在系统中源码编译安装cmake工具. 接下来的安装过程中会遇到错误,我们 ...

  6. (34)odoo反代理中客户IP处理

    * 前言    一般我们部署时会用nginx做为前端处理,有时负载时还会用到其它web服务反代理    这里只给出nginx处理方法,其它参考处理    * nginx上的客户IP传递        ...

  7. google应用商店的解决

    { "enabled_plugins": [ "SimpleReloadPlugin", "SimpleRefresh" ] } git c ...

  8. Servlet实现文件,图片等的下载 含代码

    实现文件的下载源代码如下: package com.fxl.servlet; import java.io.FileInputStream;import java.io.IOException;imp ...

  9. win8平台下Ruby on Rails的第一个web应用

    最近在做一个网站web前端的前期开发,老板要求用Ruby on Rails搭建部署开发环境,上网搜之,发现整个搭建流程比较坑爹,于是用了一款集成软件Bitnami Ruby Stack一键安装到我的w ...

  10. OC语言类的本质和分类

    OC语言类的深入和分类 一.分类 (一)分类的基本知识  概念:Category  分类是OC特有的语言,依赖于类. 分类的作用:在不改变原来的类内容的基础上,为类增加一些方法. 添加一个分类: 文件 ...