下载安装

地址:https://sourceforge.net/projects/bio-bwa/files/

wget http://superb-sea2.dl.sourceforge.net/project/bio-bwa/bwa-0.7.17.tar.bz2
tar -jxf bwa-0.7.17.tar.bz2
cd bwa-0.7.17/
make
make install
echo 'export PATH=/home/li.han/Softwares/bwa-0.7.17:$PATH ' >> ~/.bashrc

运行

./bwa

作用

BWA 是一种能够将差异度较小的序列比对到一个较大的参考基因组上的软件包

算法

BWA-backtrack

比对小于100bp的序列

参数:aln / samse / sampe

BWA-SW

比对70bp-1Mbp的序列

参数:bwasw

BWA-MEM

比对70bp-1Mbp的序列,但BWA-MEM更快更准确,在比对70-100bp的reads时也比BWA-backtrack好

参数:mem

使用:

需要两种输入文件:

  1. Reference genome data(fasta格式 .fa, .fasta, .fna)
  2. Short reads data (fastq格式 .fastq, .fq)

步骤:

  1. 使用BWA构建参考基因组的index数据库
  2. BWA-MEM / BWA-SW / BWA-backtrack比对

格式:

fai是对ref基因组文件建的索引,方便软件快速随机读取基因组序列
sai是将fastq比对后出来的文件,用于最后输出比对结果sam文件的

step 1: 对参考基因组构建索引

根据reference genome data 建立 Index File,最后生成文件:hg19.fa.amb、hg19.fa.ann、hg19.fa.bwt、hg19.fa.pac和hg19.fa.sa。

bwa index -a bwtsw reference.fa

-a参数:

bwa构建索引有三种算法,三种算法都是基于BWT的,这三种算法通过参数-a is 、-a div-a bwtsw进行选择。

-a is(效果和-a div是一样的)是默认参数,虽然相对较快,但是需要较大的内存,适用于小于等于2G的参考基因组文件。

-a bwtsw适用于大于等于10Mb的参考基因组文件。

step 2: 与参考基因组比对

使用BWA-backtrack算法:

1. 寻找输入reads文件的SA坐标

aln功能:

将目标序列与参考序列进行比对,生成sai文件

aln用法:bwa aln [options] <prefix> <in.fq>

处理pair-end 数据(read_1.fq和read_2.fq)

bwa aln -l 30 -k 2 -t 4 -I hg19.fa read_1.fq.gz > read_1.saibwa aln -l 30 -k 2 -t 4 -I hg19.fa read_2.fq.gz > read_2.sai

处理single 数据(read.fq)

bwa aln -l 30 -k 2 -t 4 -I hg19.fa read.fq.gz > read.sai

如果希望多线程运行,在其中加入 -t这个参数,另外-f这个参数可以指定结果输出文件,如:

bwa aln -t 3 -f read.sai hg19.fa read.fq

aln参数:

-b 输入格式为bam格式
-B int 设置标记序列。从5’端开始多少个碱基作为标记序列,当-B为正值时,在比对之前会将每个read的标记序列剪切,并将此标记序列表示在BC SAM 标签里,对于pair end数据,两端的标记序列会被连接。
-d int 不允许在3’端出现大于多少bp的deletion
-e int 每个gap允许的最大长度
-f 输出文件
-i int 不允许在reads两端出现大于多少bp的indel
-I int 大写 i,表示输入的文件格式为Illumina 1.3+的fq格式。
-k int 在seed中的最大编辑距离,使用默认2,与-l配合使用。
-l int 小写 L,Read前多少个碱基作为seed,如果设置的seed大于read长度,将无法继续,最好设置在25-35,与-k 2 配合使用。
-n 允许最大错配数:mismatch+gap
-o int 允许出现的最大gap数
-R int 此参数只应用于pair end中,当没有出现大于此值的最佳比对结果时,将会降低标准再次进行比对。增加这个值可以提高配对比对的准确率,但是同时会消耗更长的时间,默认是32。
-t 使用的线程数

2: 生成sam格式的比对文件。如果一条read比对到多个位置,会随机选择一种。

如果是pair-end数据

bwa sampe -a 500 -f pair-end.sam hg19.fa read_1.sai read_2.sai read_1.fq read_2.fq

参数说明:

-a int 最大插入片段大小
-f 输出Sam文件
-n int 如果reads比对次数超过多少次,就不在XA标签显示
-o int pair end两reads中其中之一所允许配对的最大次数,超过该次数,将被视为single end。降低这个参数,可以加快运算速度,对于少于30bp的read,建议降低-o值。
-r str 定义头文件。‘@RG\tID:foo\tSM:bar’,如果在此步骤不进行头文件定义,在后续GATK分析中还是需要重新增加头文件。

如果是single reads数据

bwa samse -f single.sam hg19.fa read.sai read.fq

参数说明:

-n int 如果reads比对次数超过多少次,就不在XA标签显示
-r str 定义头文件。同pair end。

使用bwa-mem算法:

原理:

mem 使用MEMs(maximal exact matches)进行seedling alignments,再使用 SW(affine-gap Smith-Waterman 算法)进行seeding extending。
mem 进行局部比对,因此,对于一条序列的不同区域可能会产生多种最优匹配结果, 这对于long reads 来说尤为重要。有些软件如 Picard’s markDuplicates 跟 mem 的这种剪接性比对不兼容,在这种情况下,可以使用 –M 选项来将 shorter split hits 标记为次优。

用法:

bwa mem -M -t 15 -R '@RG\tID:foo_lane\tPL:illumina\tLB:library\tSM:sample_name' <ref.fa> <read1.fq> <read2.fq>  >  lane.sam

参数:

-M 处理同一个reads比对到参考基因组上不同位置的情况,将 shorter split hits 标记为次优,以兼容 Picard’s markDuplicates 软件
-p 若无此参数,输入文件只有1个,则进行单端比对;若输入文件有两个,则作为paired reads进行比对。若加入此参数,则仅以第一个文件作为输入,该文件必须是read1.fq和read2.fq进行reads交叉的数据
-R

设置Read Group信息,“\t”分割。 它是用来将比对的read进行分组的,这个信息对于我们后续对比对数据进行错误率分析和Mark duplicate时非常重要。不设置-R参数不会报错,但使用GATK时是会报错的。ID,PL和SM信息在正式的项目中是不能缺少的(如果样本包含多个测序文库的话,LB信息也不要省略)

-t 线程数,默认是1

在Read Group中,有如下几个信息非常重要:

  • ID,这是Read Group的分组ID,一般设置为测序的lane ID(不同lane之间的测序过程认为是独立的),下机数据中我们都能看到这个信息的,一般都是包含在fastq的文件名中;
  • PL,指的是所用的测序平台,在GATK中,PL只允许被设置为:ILLUMINA,SLX,SOLEXA,SOLID,454,LS454,COMPLETE,PACBIO,IONTORRENT,CAPILLARY,HELICOS或UNKNOWN这12个中的一个,名字方面不区分大小写。如果你在分析的时候这里没设置正确,那么在后续使用GATK过程中可能会碰到类似如下的错误:
ERROR MESSAGE: The platform (xx) associated with read group GATKSAMReadGroupRecord @RG:xx is not a recognized platform.

这个时候你需要对比对文件的header信息进行重写,就会稍微比较麻烦。

  • SM,样本ID,同样非常重要,有时候我们测序的数据比较多的时候,那么可能会分成多个不同的lane分布测出来,这个时候SM名字就是可以用于区分这些样本;
  • LB,测序文库的名字,这个重要性稍微低一些,主要也是为了协助区分不同的group而存在。文库名字一般可以在下机的fq文件名中找到,如果上面的lane ID足够用于区分的话,也可以不用设置LB。

bwa 0.7.17-r1188相关推荐

  1. spark集群环境下Lost task 0.0 in stage 10.0 (TID 17, 10.28.23.202): java.io.FileNotFoundException

    spark从当前目录加载文件报错,Lost task 0.0 in stage 10.0 (TID 17, 10.28.23.202): java.io.FileNotFoundException,明 ...

  2. 服务器:安装Windows NT 4.0的17个注意事项

    服务器:安装Windows NT 4.0的17个注意事项   适用机型: 所有服务器 文档内容: 1.做三张引导盘来引导安装NT4.0.做法如下. 在95或98系统中,插入NT光盘,进入DOS窗口,进 ...

  3. 由于 Typora 开始收费,之前采用版本:0.11.17.0 能解决。突然出现提示: This beta version of Typora is expired .....

    问题报错 This beta version of Typora is expired, please download and install a newer version. 打开 0.11.17 ...

  4. Could not resolve: com.ibm.websphere:uow:6.0.2.17

    目录 背景 问题分析 解决方案 背景 导入Spring源码时,总是无法下载com.ibm.websphere:uow:6.0.2.17包,原来的地址https://repo.spring.io/lib ...

  5. Android8.0 学习 (17)Android国际化(多语言)实现,支持8.0

    Android国际化(多语言)实现,支持8.0 前言 最近因为项目中使用了国际化,所以正好研究了下实现方法: 首先说下项目需求: 可以随着系统切换语言而切换语言,不支持的语言显示默认 用户可以选择语言 ...

  6. htc d10w android 7.0,LineageOS 17.1即将发布:基于Android 10,大量老款手机支持

    IT之家3月27日消息 来自外媒androidpolice的报道,基于Android 10的非官方Lineage ROM已经诞生了几个月,官方版本仍没有任何动静.要知道去年的这个时候,LineageO ...

  7. cordova-plugin-themeablebrowser 0.2.17 ThemeableBrowserionic跳转外链插件在ios中heardBar会遮住内容的bug...

    ionic+angular的app项目中需要在App打开一个外部的url链接,用了这个插件发现在iPhone手机中会出现toolbar挡住url页面内容 解决方法: 在原有基础上加上statusBar ...

  8. UT-Exynos4412 三星ARM四核旗舰开发平台android4.0体验-17板载按键调试

    经过2012年的等待,四核的开发平台终于跟广大嵌入从业人员见面了,下面让我们来看下UT-Exynos 4412 开发板的详细参数吧,供广大嵌入式开发人员参考. 一.UT-Exynos 4412开发板高 ...

  9. chrome 70 android,Android版Chrome Beta 70 (70.0.3538.17) 已发布

    Shape Detection 初步尝试 Shape Detection API 是在 web 上提供形状检测的功能,包含三个功能:人脸检测.条形码检测和文本检测,在 Chrome 70 中开始推出试 ...

最新文章

  1. 深入思考全局静态存储区、堆区和栈区
  2. Javascript教程:AngularJS的五个超酷特性
  3. java内存溢出排查jstack_Java命令行监控工具(jmap,jstack,jstat,jinfo,jps)
  4. js下拉 selenium_selenium 常见面试题以及答案(Java版)
  5. java map 多种类型吗_是多种类型的Java列表是否可行
  6. qml中使用combobox实现多级菜单_excel实用技巧:如何构建多级下拉菜单
  7. Easyui的DateBox日期格式化
  8. VMware中的三种网络模式-----NAT模式
  9. php访问c#接口,介绍C#中的接口
  10. 2005 mysql连接字符串_怎么用c#远程连接sql server2005,连接字符串怎么写
  11. ios6.x 插件介绍及常用源
  12. win8.1 安装kb2999226 一直提示 搜索更新
  13. android 小米盒子开发,接小米盒子Android SDK
  14. 如何对研发团队绩效进行考核--附各环节人员考核参考表
  15. Minecraft Mod开发:1-配置工作环境
  16. 编译原理:flex与bison--从0到1完成一个编译器(sample语言)①
  17. 卸载xampp并重装mysql
  18. 毕业设计 Stm32云平台的智能病房监控系统
  19. .NET(C#):await返回Task的async方法
  20. qt-qss之按键样式

热门文章

  1. 计算机音乐刚好遇见你乐谱,刚好遇见你简谱
  2. 优化网站的几种常见手段 大幅度降低Load time时间
  3. 二手电商迎来“新风口”?
  4. 潘凯:C++对象布局及多态实现的探索(十一)
  5. 中南大学计算机学院优秀毕业论文,中南大学计算机学院研究生学业奖学金评定实施细则...
  6. 用计算机算sin75 等于分数,sin75度等于多少,用分数表示
  7. 在10Gbps网络下开启Huawei CE6850交换机的ECN功能并实验DCTCP协议
  8. 将windows10 的编码修改为UTF-8
  9. ssh mysql crm_Jsp+Ssh2+Mysql实现的CRM客户关系管理系统
  10. SAP中销售交货问题处理实例