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. GridControl

    隐藏Drag a column header here to group by that column https://www.devexpress.com/Support/Center/Questi ...

  2. Ubuntu Linux 12.04 LTS amd64系统本地root提权

    URL:http://www.ichunqiu.com/section/173 由于fusermount二进制调用setuid的(geteuid())重置RUID时,它调用/bin/mount才能使用 ...

  3. jQuery核心之那些有效的方法

    jQuery提供了一些很有效的方法,这些方法都在$命名空间之下,对常规的编码很有帮助,完整的api详见:utilities documentation on api.jquery.com $.trim ...

  4. python去除空格和换行符的方法

    一.去除空格 strip() " xyz ".strip() # returns "xyz" " xyz ".lstrip() # retu ...

  5. leetcode-188 买卖股票4

    题目 给定一个数组表示股票每天的价格,最多交易k次,且手上最多只能拥有一支股票(即只能先卖出手上现有的股票再去购买新的股票),求最大的收益.     题目链接:买卖股票4     开始思路不清楚,参考 ...

  6. remount failed: Operation not permitted ,怎么办呢?

    remount failed: Operation not permitted ,怎么办呢? 1. 确定是否正确连接手机了$ adb devices 2. 进入shell$ adb shell 3. ...

  7. 浅谈AJAX的基本原理和原生AJAX的基础用法

    一.什么是AJAX? AJAX,即"Asynchronous Javascript And XML",翻译为异步的JavaScript和XML,是一种创建交互式网页应用的网页开发技 ...

  8. AngularJS: 'Template for directive must have exactly one root element' when using 'th' tag in directive template

    .controller('HomeController', function($scope,$location) { $scope.userName='天下大势,为我所控!'; $scope.clkU ...

  9. cookie的使用

    cookie的使用 1.创建cookie对象: function addCookie(name, value) { var path = filterRoot(); var cookieString ...

  10. spring随手笔记3:销毁方法

    1. public class HelloWorld { private String msg; public void setMsg(String msg) { this.msg = msg; } ...