Kaiju: Fast and sensitive taxonomic classification for metagenomics
作者:
彼得·门泽尔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的更多相关文章
- 论文笔记之:Semi-supervised Classification with Graph Convolutional Networks
Semi-supervised Classification with Graph Convolutional Networks 2018-01-16 22:33:36 1. 文章主要思想: 2. ...
- Fast RCNN论文学习
Fast RCNN建立在以前使用深度卷积网络有效分类目标proposals的工作的基础上.使用了几个创新点来改善训练和测试的速度,同时还能增加检测的精确度.Fast RCNN训练VGG16网络的速度是 ...
- 数据挖掘方面重要会议的最佳paper集合
数据挖掘方面重要会议的最佳paper集合,兴许将陆续分析一下内容: 主要有KDD.SIGMOD.VLDB.ICML.SIGIR KDD (Data Mining) 2013 Simple and De ...
- 比对软件Blast,Blast+,Diamond比较
1. Blast (1)格式化数据库 formatdb -i db.seq -p T -o T -l logfile 主要参数: -i 输入需要格式化的源数据库名称 -p 文件类型,是核苷酸序列数据库 ...
- 学习OpenCV——Surf(特征点篇)&flann
Surf(Speed Up Robust Feature) Surf算法的原理 ...
- OpenCV图像Surf与flann特征点(转载)
Surf(Speed Up Robust Feature) Surf算法的原理 ...
- Awesome-Text-Classification:文本分类资源合集
Awesome-Text-Classification https://github.com/fendouai/Awesome-Text-Classification Projects fastTex ...
- OpenCV特征点检测------Surf(特征点篇)
Surf(Speed Up Robust Feature) Surf算法的原理 ...
- kegg富集分析之:KEGGREST包(9大功能)
这个包依赖极有可能是这个:https://www.kegg.jp/kegg/docs/keggapi.html ,如果可以看懂会很好理解 由于KEGG数据库分享数据的策略改变,因此KEGG.db包不在 ...
随机推荐
- GridControl
隐藏Drag a column header here to group by that column https://www.devexpress.com/Support/Center/Questi ...
- Ubuntu Linux 12.04 LTS amd64系统本地root提权
URL:http://www.ichunqiu.com/section/173 由于fusermount二进制调用setuid的(geteuid())重置RUID时,它调用/bin/mount才能使用 ...
- jQuery核心之那些有效的方法
jQuery提供了一些很有效的方法,这些方法都在$命名空间之下,对常规的编码很有帮助,完整的api详见:utilities documentation on api.jquery.com $.trim ...
- python去除空格和换行符的方法
一.去除空格 strip() " xyz ".strip() # returns "xyz" " xyz ".lstrip() # retu ...
- leetcode-188 买卖股票4
题目 给定一个数组表示股票每天的价格,最多交易k次,且手上最多只能拥有一支股票(即只能先卖出手上现有的股票再去购买新的股票),求最大的收益. 题目链接:买卖股票4 开始思路不清楚,参考 ...
- remount failed: Operation not permitted ,怎么办呢?
remount failed: Operation not permitted ,怎么办呢? 1. 确定是否正确连接手机了$ adb devices 2. 进入shell$ adb shell 3. ...
- 浅谈AJAX的基本原理和原生AJAX的基础用法
一.什么是AJAX? AJAX,即"Asynchronous Javascript And XML",翻译为异步的JavaScript和XML,是一种创建交互式网页应用的网页开发技 ...
- 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 ...
- cookie的使用
cookie的使用 1.创建cookie对象: function addCookie(name, value) { var path = filterRoot(); var cookieString ...
- spring随手笔记3:销毁方法
1. public class HelloWorld { private String msg; public void setMsg(String msg) { this.msg = msg; } ...