bowtie:短序列比对的新工具(转)

(2014-11-17 22:15:24)

标签:

转载

 

Bowtie是一个超级快速的,较为节省内存的短序列拼接至模板基因组的工具。它在拼接35碱基长度的序列时,可以达到每小时2.5亿次的拼接速度。

Bowtie并不是一个简单的拼接工具,它不同于Blast等。它适合的工作是将小序列比对至大基因组上去。它最长能读取1024个碱基的片段。换言之,bowtie非常适合下一代测序技术。

在 使用bowtie前,需要使用bowtie-build来构建比对模板。如果你需要比对是比较常见的基因组的话,你可以去http://bowtie- bio.sourceforge.net/manual.shtml下载你所需要的Pre-built indexes文件就可以了。

如 前所述,bowtie适合于将短序列拼接至大的模板上,尤其是基因组。模板最小尺寸不能小于1024碱基,而短序列最长而不能超过1024碱基。 Bowtie设计思路是,1)短序列在基因组上至少有一处最适匹配, 2)大部分的短序列的质量是比较高,3)短序列在基因组上最适匹配的位置最好只有一处。这些标准基本上和RNA-seq, ChIP-seq以及其它一些正在兴起的测序技术或者再测序技术的要求一致。

如果bowtie在你的机器上运行起来很慢,那么你可以试试以下的一些办法来让它跑得快一些:

  1. 尽 可能的使用64位bowtie。很显然,64位运算会比32位运算更快。所以最好使用支持64位运算的计算机来运行64位的bowtie。如果你是从原文 件开始编译程序,在g++编译时,你需要传递-m64参数,你也可以在make的时候加入这一信息,比如说传递BITS=64给make,具体 的:make BITS=64 bowtie。想知道你自己运算的是什么版本的bowtie,你可以运行bowtie –version
  2. 如果你的计算机有多个CPU或者CPU内核,那么请使用-p参数。-p参数会让bowtie进入多线程模式。每一个线程都会使用单独的CPU或者CPU内核。这种并行的运算模式也会大大加快运算速度。
  3. 如 果你的报告文件中每条短序列都有太多的匹配位点(超过10)那么你可以试着重新使用bowtie-build加上 –offrate参数,如bowtie-build –offrate 4。-o/–offrate默认值为5,每下降1,比对速度会增加1倍,但是系统消耗(硬盘空间和内存)也会加倍。
  4. 如果你的系统 配置太低,比如内存不足4GB,那么建议你在bowtie的时候使用–offrate参数。与上一条相反的,你需要加大offrate的值。bowtie –offrate 6. 其默认值为5。每增加1,内存空间的要求下降,这样会减少读取硬盘当中虚拟内存的次数,速度反而会有所上升。

-n模式与-v模式

默认的,bowtie采用了和Maq一样的质量控制策略,设置 -n 2 -l 28 -e 70。总的来说,比对模式分为两种,一种是 -n 模式, 一种是 -v 模式,而且这两种模式是不能同时使用的。bowtie默认使用-n模式。

-n模式参数: -n N -l L -e E

其中N,L,E都为整数。-n N 代表在高保真区内错配不能超过N个,可以是0?3,一般的设置为2。-l L代表序列高保真区的长度,最短不能少于5,对于短序列长度为32的,设置为28就很不错。-e E代表在错配位点Phred quality值不能超过E,默认值为40。Phred quality值的计算式为:-10 log(P,base(10))

Phred Quality值 错配可能性 正配可能性
10 1/10 90%
20 1/100 99%
30 1/1000 99.9%
40 1/10000 99.99%
50 1/100000 99.999%

而-v模式的参数相对较少。

-v模式参数:-v V

其中V为整数。-v V代表全长错配不能超过V个,可以是0?3。这时,不考虑是否高保真区,也不考虑Phred quality值。

–best 与–strata

–best 参数代表报告文件中,每个短序列的匹配结果将按匹配质量由高到低排序。–strata参数必须与–best参数一起使用,其作用是只报告质量最高的那部 分。所谓质量高低,其实就是指错配的碱基数,如果指定了-l L参数,那就是在高保真区内的错配数,否则就是全序列的错配数。如果你还指定了 -M X的话,那就会在质量最高的当中,随机选择X个来报告。也就是说,当我们指定了-M 1 –best –strata的话,那就只报告1个最好的。

对于输入,-q是指输入的文件为FASTQ(文件扩展名通常为.fq或者.fastq)格式;-f是指输入文件为FASTA(文件扩展名通常为.fa, .mfa或者.fna)格式;-c是指在命令行直接输入要比对的序列。

下面就是一个具体的例子:

bowtie -v 2 -M 1 –best –strata Genomes/hg19_ebwt/hg19 Pol2ChIP.fastq Pol2ChIP.map

1.本人用过的短序列比对工具里,感觉bowtie最好使,大体用法和blast挺像的,也很简单,就两步:
第一步,build:感觉和blast的第一步formatdb差不多,在命令行输入bowtie-build <seqfile> <dbname>
第二步,align:和blast的核心(blastall)差不多,在命令行输入:bowtie [options]* <dbname> <short_reads_file> <outfile>
bowtie的速度比Maq和SOAP都快,PC机上也能胜任大规模数据分析,一般100M大小的基因组做mapping,2-3min就可以了,快的让我不敢接受,呵呵,bwt算法就是牛!
bowtie的用途不仅仅是短序列比对最mapping,更多信息请参考:
http://bowtie-bio.sourceforge.net/index.shtml

2.

Bowtie aligner 簡介

軟體簡介 Bowtie is an ultrafast, memory-efficient short read aligner
核心技術 Mapping / Burrows-Wheeler / FM Index
原創作者 Ben Langmead / Cole Trapnell
維護狀況 0.12.3 release - 2010/02/17
輸入格式 FASTQ
輸出格式 SAM / Bowtie default format
適用機器架構 i386 / x86_64
作業平台 Linux, Windows, and Mac OS X

使用說明

本軟體目前安裝於BIP2(140.123.126.234)主機, 實驗帳號為Bioinfo 若有需要利用此軟體進行實驗, 請與 冠宏/盈達 聯絡索取實驗帳號資料

軟體目錄目標路徑: /home/bioinfo/alignmentTool/bowtie-0.12.3

Getting started
Building a new index
Performing alignments
Finding variations with SAMtools
準備資料
Reference genome data (*.fa)
NGS Short reads data (*.fastq)
Building a new index
根據 reference genome data(e.g. reference.fa) 建立 Index File

# bowtie-build [options]* <reference_in> <ebwt_base>

Performing alignments
NGS short reads data (e.g. leftRead.fastq / rightRead.fastq)
refernece genome data(e.g. reference.fa)

# bowtie [options]* <ebwt> {-1 <m1> -2 <m2> | --12 <r> | <s>} [<hit>]

Solid data for single-read alignment

# bowtie -S -a -f -C -p 7 <reference-index> <singleRead.csfasta> -Q <singleRead.qual> > <alignResult.sam> -S :輸出為sam檔 -a :把所有對到的read列出來,即使有multiple mapping -C :input為.csfasta -Q :.csfasta 內容裡無 quality value,所以需準備 .qual -f :伴隨 -Q -C 參數 -p int :用幾顆cpu跑

If bowtie Paired end 100% failed to align

http://seqanswers.com/forums/showthread.php?t=6522

Finding variations with SAMtools
輸出sam格式

# bowtie -S e_coli reads/e_coli_10000snp.fq ec_snp.sam

轉成bam格式

# samtools view -bS -o ec_snp.bam ec_snp.sam

排序bam資料

# samtools sort ec_snp.bam ec_snp.sorted

結合bam資料

# samtools merge <out.bam> <in.bam> | <in.bam> …

找尋SNP

# samtools pileup -cv -f genomes/NC_008253.fna ec_snp.sorted.bam

其他
參考資料

Langmead B, Trapnell C, Pop M, Salzberg SL.. 2009. Genome Biology

Bowtie Introduction on NCBI Presentation

相關連結

Bowtie Homepage

http://bioinfo.cs.ccu.edu.tw/wiki/doku.php?id=bowtie

bowtie:短序列比对的新工具的更多相关文章

  1. 短序列组装Sequence Assembly(转载)

    转载:http://blog.sina.com.cn/s/blog_4af3f0d20100fq5i.html 短序列组装(Sequence assembly)几乎是近年来next-generatio ...

  2. 郑晔谈 Java 开发:新工具、新框架、新思维【转载】【整理】

    原文地址 导语:"我很惊讶地发现,现在许多程序员讨论的内容几乎和我十多年前刚开始做 Java 时几乎完全一样.要知道,我们生存的这个行业号称是变化飞快的.其实,这十几年时间,在开发领域已经有 ...

  3. 资源 | TensorFlow推出新工具Seedbank:即刻使用的预训练模型库【转】

    本文转载自:http://tech.ifeng.com/a/20180713/45062331_0.shtml 选自TensorFlow 作者:Michael Tyka 机器之心编译 参与:路.王淑婷 ...

  4. JavaScript代码优化新工具UglifyJS

    jQuery 1.5 发布的时候 john resig 大神说所用的代码优化程序从Google Closure切换到UglifyJS,新工具的压缩效果非常令人满意. UglifyJS 是一个服务端no ...

  5. (转载)详解7.0带来的新工具类:DiffUtil

    [Android]详解7.0带来的新工具类:DiffUtil 标签: diffutil 2017-04-17 18:21 226人阅读 评论(0) 收藏 举报  分类: Android学习笔记(94) ...

  6. 谷歌推出备份新工具:Google Drive将同步计算机文件

    Google 正在将云端硬盘 Drive 转变成更强大的文件备份工具.很快,Google Drive 将能监测并备份你电脑上的(几乎)所有文件,只要是你勾选的文档,Drive 就能同步至云端. 具体来 ...

  7. 新工具Scapy

    新工具 Scapy 1.环境: 命令: pip install scapy 启动终端: 看这花里胡哨的界面那就成功啦! 注意上图中的INFO信息,如果没有安装可选包,部分功能不可用,在需要的时候单独安 ...

  8. Python音视频开发:消除抖音短视频Logo的图形化工具实现

    ☞ ░ 前往老猿Python博文目录 ░ 一.引言 在<Python音视频开发:消除抖音短视频Logo和去电视台标的实现详解>节介绍了怎么通过Python+Moviepy+OpenCV实现 ...

  9. 南京大学发布无序列限制的DNA编辑新工具(转自生物通)

    编辑推荐: 内切酶经过改造可以成为强大的DNA编辑工具,比如ZFN.TALEN.风头正劲的CRISPR–Cas系统和充满争议的NgAgo技术.不过这些技术都是通过序列识别来实现靶向切割的,会受到序列偏 ...

随机推荐

  1. 使用pickle进行存储变量

    有时候我们需要把我们的变量内容存下来,这时我们就可以用pickle来操作. 存储操作如下所示: #!/usr/bin/python # -*- coding:utf-8 -*- import pick ...

  2. 跨年操作--new Date()

    //时间在2017/12/31 17:00 --- 2018/1/1 06:00区间,提示用户无法操作公告. //time.js (function(){ var date = new Date(); ...

  3. Java:类加载机制及反射

    一.Java类加载机制 1.概述 Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允 ...

  4. AssetBundle 策略

    [AssetBundle 策略] 1.Logical Entity Grouping.按逻辑功能分. Examples Bundling all the textures and layout dat ...

  5. Typechecking With PropTypes

    [Typechecking With PropTypes] 1.props类型检查 React has some built-in typechecking abilities. To run typ ...

  6. centos 7 下多网卡绑定+ vlan 网卡配置

    一.前言 CentOS7之前系统提供给用户的是bonding driver来实现链路聚合,实际上bonding适用于大多数应用.Bonding driver的架构是由内核空间完全控制.管理. Team ...

  7. CentOS7中编译安装redis5.0

    1. 环境介绍 CentOS7 (未安装Development Tools) 2. 下载Redis5.0-rc3 wget -O redis-5.0-rc3.tar.gz https://github ...

  8. e-olymp Problem4196 Chocolate bars

    吐槽一下,这个OJ的题目真的是阅读理解题.代码非常短,就是题目难理解.心累. 传送门:点我 Chocolate bars It is hard to overestimate the role of ...

  9. CTF题-http://120.24.86.145:8002/flagphp/:Bugku----flag.php

    今天做了一道关于序列化的题目,收益颇多,愉快地开始. 首先,提示了“hint”,所以尝试加入hint参数.这儿没啥好说的,最后hint=1显示了重点内容.如下图所示 没错,是金灿灿的网页代码,开心,仔 ...

  10. ASCII码翻译方法可直接使用谷歌

    ASCII码翻译方法可直接使用谷歌. 如: key{you are right} 将此段ASCII码输入谷歌搜索栏,直接翻译结果: