全称: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
下载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
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
该算法先使用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。