BWA使用

全称:Burrows-Wheeler Aligner

参考:

https://www.cnblogs.com/zkkaka/p/6146214.html

http://mingkang1217.blog.163.com/blog/static/2035227201101254921398/

官方文档:

http://www.bbioo.com/lifesciences/40-113315-1.html
http://bio-bwa.sourceforge.net/bwa.shtml

1.下载与安装

下载BWA (download from BWA Source Forge ) bwa-0.5.7.tar.bz2 安装BWA

# tar -jxvf bwa-0.5.7.tar.bz2

编译BWA

# make

Samtool安装

下载Samtool (download from Samtool Source Forge )

安装Samtool

# tar -jxvf samtools-*.tar.bz2
# make

2.使用

bwa的使用需要两中输入文件
    Reference genome data(fasta格式 .fa, .fasta, .fna)
    Short reads data (fastaq格式 .fastaq, .fq)

step 1: 建立 Index
根据reference genome data(e.g. reference.fa) 建立 Index File
    bwa index -a bwtsw reference.fa

-a [is|bwtsw] : 输入构建Index的算法。is算法快速简单,是默认选项,但是不能用于基因组大于2GB的数据库。bwtsw适用于大基因组。

-p STR :输出的数据库的前缀。默认与输入的文件名一致。

bwa index 指令更多的用法及 options,通过以下的命令来查看
    bwa index

3.BWA-MEM

该算法先使用MEM(maximal exact matches)进行seeding alignments,再使用SW算法(affine-gap Smith-Waterman)算法进行seed的延伸。BWA-MEM算法执行局部比对和剪接性。可能会出现query序列的多个不同的部位出现各自的最优匹配,导致reads有多个最佳匹配位点。

bwa mem -t 4 -M genome read1.fq read2.fq > aln-pe.sam
-t INT  使用的线程数

-p  若无此参数,输入文件只有1个,则进行单端比对,输出文件有两个,则作为paired reads进行比对。若加入此参数,则仅以第一个文件作为输入,该文件必须是read1.fq和read2.fq进行reads交叉的数据

-M 加入此参数用于将shorted split hits标记为次优,有利于兼容Picard.

代码示例:

bwa mem -R '@RG\tID:1749503PA\tSM:1749503PA\tLB:1749503PA\tPU:run barcode\tPL:Illumina\tDS:resequencing\tCN:MajorBio' -M -t 5 /home/yang.zou/Database/ucsc.hg19.fasta /home/qian.liu/database/test_gaoyang/1749503PA/1749503PA_trim1.fastq /home/qian.liu/database/test_gaoyang/1749503PA/1749503PA_trim2.fastq > /home/qian.liu/database/test_gaoyang/1749503PA/1749503PA.sam
定义:对已知基因组序列的物种进行不同个体的基因组测序,从而对个体或群体进行差异性分析。如果是个体,进行SNP分析;如果是群体,进行全基因组关联分析。

必要条件:已知的物种基因组;待测物种与参考序列物种足够接近

插入片段:基因组DNA进行片段化后处理得到的片段。

双向测序:pair ends:克隆末端测序产生的成对reads,成对的reads之间的距离关系是确定的。

测序深度:两种计算方法:①实际测序得到的碱基总量30Gbp与基因组大小3G的比值得到10x的覆盖度②比对到基因组上的碱基总量与基因组大小的比值。它是评价测序量的指标之一。测序带来的错误率或假阳性结果会随着测序深度的提高而降低。

测序覆盖度:基因组被测序得到的碱基覆盖的比例;实际比对到基因组的碱基覆盖的比例;测序覆盖度能反映测序的随机性。

模型:Lander-Waterman模型:测序深度达到5X即可达到99%以上的覆盖度。

重测序分析:

多态性分析:可找到大量的SNP;结构变异位点SV;分析不同个体基因组的结构差异

SNP分析:转换A-T or C-G;颠换 A/T-G/C

同义与非同义突变:由于密码子的简并性,核苷酸发生变化,但所编码的氨基酸保持不变 [同义]。

结构变异-SV:比如插入、缺失、反转

移码突变:碱基的插入或缺失非3的倍数,会导致翻译错误的现象。

多态性分布与差异分析:

进化分析:构建进化树

分析流程及工具

测序深度可能不均匀、一些碱基的质量不可靠。

序列比对:bwa 若序列长于200bp,需要用bwtsw工具

bwa index Ref.fa

bwa aln Ref.fa sam_1.fq

SNP检测:samtools、bcftools

SV检测:pindel、breakdancer

可以容许更多错配和gap,所占内存只有soap的一半。

Fast and accurate short read ...

比对:SA coordinates: bwa aln

寻找SA位点:bwa aln 常用参数

-n 允许最大错配数:mismatch+gap

-o 允许的gap数

-t CPU使用个数

-f 输出文件

-I 输入为Illumina 1.3+的fq格式

bwa sampe/samse:pe双端;se单端

bwa sampe ref.fa Read_1.sai Read_2.sai Sam.R28_20120613_1.fq Sam.R28_20120613_2.fq -f out.sam -a 500 -s

samtools view -S out.sam -b -o out.bam 格式转换

samtools sort

samtools view -bt ref_list.txt -o aln.bam aln.sam.gz

samtools sort aln.bam aln.sorted

samtools index aln.sorted.bam

samtools idxstats aln.sorted.bam

samtools view aln.sorted.bam chr2:20,100,000-20,200,000

samtools merge out.bam in1.bam in2.bam in3.bam

samtools faidx ref.fasta

samtools pileup -vcf ref.fasta aln.sorted.bam

samtools mpileup -C50 -gf ref.fasta -r chr3:1,000-2,000 in1.bam in2.bam

samtools tview aln.sorted.bam ref.fasta

bcftools index in.bcf

bcftools view in.bcf chr2:100-200 > out.vcf

bcftools view -vc in.bcf > out.vcf 2> out.afs

SAM/BAM格式

两者信息相同,BAM压缩率更高。

Flag:是对比对的综合评价。如99:1100011

SAMtools

SAMtools一系列处理BAM格式的工具包。格式转换:bam、sam

samtools view

-b

-s

-u

-t

-T

-o

samtools view -S out.sam | more

samtools mpileup 查找SNP与Indel等

-6 碱基质量标准

-C 最小比对质量值

-f FASTA格式的参考序列,缺少索引文件,将产生file.fai

-g

-D

-u

比对结果排序: -samtools sort out.bam out.sort 用于检查SNP

输出bcf格式文件

-samtools mpileup -C 50 -f ref.fa -g -D -u out.sort.bam > out.bcf查找sNP第一步

samtools tview:文本定位查看器

samtools index out.sort.bam

BCFtools

bcf与vcf格式转换工具,bcf与vcf格式的关系也是压缩率不一样

bcftools view

-b 输出bcf格式,缺省为vcf格式

-S

-v

-N

-c

-g

Bcftools view -N -c -g -l -v out.bcf > out.snp snp第二步。 -I表示跳过INDEL

bcftools view -N -c -g -I -v out.bcf > out.snp

SV检测工具:Pindel:通过Paired-END序列发现缺失10kb与小的插入20bp。

./bam2pindel.pl -i out.sort.bam -pi 309 -o outkey -s key -om

BreakDancer:检测插入和缺失

BreakDancerMin:检测较小的SV

BreakDancerMax:检测较大的SV

./bam2cfg.pl out.sort.bam > breakdancer.cfg

./ BreakDancerMin.pl breakdancer.cfg > out.b

结果的筛选:

深度: 位点覆盖度至少2X以上,排除重复序列的干扰,深度不能太高。

质量值:是反映该snp或 sv的可靠性的值,一般大于20。

你可能感兴趣的:(生信软件)