生信小白学习日记Day4Day5——NGS基础 NGS分析注释(BWA软件)

article/2025/9/14 10:48:07

2019年5月30日,晚上,心情变好,好几天没更新了,看到男朋友在学一款软件,我也近朱者赤,来继续注释Day2-2中NGS分析流程中的一个重要软件——BWA

NGS基础

NGS分析注释

BWA

对应于NGS分析流程的这两步:
在这里插入图片描述
BWA是目前常用的将测序回来的reads比对到参考基因组上的软件,简单来说,参考基因组相当于一整块已知的地图,而reads是被切碎的,与已知地图存在少量区别的地图碎片,而BWA要做的就是找到两者之间的相似信息,并将地图碎片拼到已知地图上去。
关于BWA的使用贴来“庐州月光”(他可能喜欢听许嵩的歌)的这篇简书https://www.jianshu.com/p/1552cc6ac3be,明天再参考多几篇博文和实验室常用脚本,进行详细说明。

1. 首先BWA包含了以下3种算法
BWA-backtrack
BWA-SW
BWA-MEM
BWA-backtrack适合比对长度不超过100bp的序列;BWA-SW和BWA-MEM适合于长度为70-1M bp的序列;其中BWA-MEM是最新开发的算法,对于高质量的测序数据,其比对的速度更快,精确度更高,对于70-100bp的reads, BWA-MEM算法在比对长度为70-100bp的序列时,效果比BWA-backtrack 算法的效果更好。总而言之,通常情况下,选择BWA-MEM算法就好。

2. bwa 的源代码存储在github上,链接如下
https://github.com/lh3/bwa
安装过程如下:

git clone https://github.com/lh3/bwa.git
cd bwa
make

安装好之后,会出现一个名为bwa的可执行文件,输入下面命令可以查看帮助信息

./bwa
Program: bwa (alignment via Burrows-Wheeler transformation)
Version: 0.7.17-r1188
Contact: Heng Li <<a href="mailto:lh3@sanger.ac.uk" _href="mailto:lh3@sanger.ac.uk">lh3@sanger.ac.uk</a>>
Usage:   bwa <command> [options]
Command: index         index sequences in the FASTA formatmem           BWA-MEM algorithmfastmap       identify super-maximal exact matchespemerge       merge overlapping paired ends (EXPERIMENTAL)aln           gapped/ungapped alignmentsamse         generate alignment (single ended)sampe         generate alignment (paired ended)bwasw         BWA-SW for long queriesshm           manage indices in shared memoryfa2pac        convert FASTA to PAC formatpac2bwt       generate BWT from PACpac2bwtgen    alternative algorithm for generating BWTbwtupdate     update .bwt to the new formatbwt2sa        generate SA from BWT and Occ
Note: To use BWA, you need to first index the genome with `bwa index'.There are three alignment algorithms in BWA: `mem', `bwasw', and`aln/samse/sampe'. If you are not sure which to use, try `bwa mem'first. Please `man ./bwa.1' for the manual.

3. 比对之前首先要对参考基因组建立索引,命令如下:

bwa index ref.fasta

下面是对小鼠基因组构建索引的示例

bwa index mm10.fasta
├── mm10.fasta
├── mm10.fasta.amb
├── mm10.fasta.ann
├── mm10.fasta.bwt
├── mm10.fasta.pac
└── mm10.fastq.sa
  • lb
/mnt/**/bwa index -a bwtsw ref.fasta

前面是bwa的绝对路径,index -a 可以指示构建索引的算法,包括两种,is和bwtsw,这里使用的是后者。对于大于2G的参考基因组文件需使用bwtsw算法,且使用该算法时,参考基因组大小必须大于10M。
除此之外,还可加入另外的参数:-p,可用于指示输出文件前缀,

即:建立索引:bwa index [-p prefix] [-a algoType] <ref.fa>

  • 在网上查阅其他文章时,中间还有一步:https://www.plob.org/article/7009.html 这篇文章中的步骤与我们常用步骤略有不同,借鉴一部分即可。
    寻找输入reads文件的SA坐标
## pair end
bwa aln hg19.fa read1.fq.gz -l 30 -k 2 -t 4 -I > read1.fq.gz.sai
bwa aln hg19.fa read2.fq.gz -l 30 -k 2 -t 4 -I > read2.fq.gz.sai
##single end:
bwa aln hg19.fa read.fq.gz -l 30 -k 2 -t 4 -I > read.fq.gz.sai

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

4. 建立好参考基因组之后,就可以进行比对了。不同的比对算法,命令不同。

BWA-backtrack 算法
对应的子命令为aln/samse/sample
单端数据用法如下:

bwa aln ref.fa reads.fq > aln_sa.sai
bwa samse ref.fa aln_sa.sai reads.fq > aln-se.sam

双端数据用法如下:

bwa aln ref.fa read1.fq > aln1_sa.sai
bwa aln ref.fa read2.fq > aln2_sa.sai
bwa sampe ref.fa aln_sa1.sai aln_sa2.sai read1.fq read2.fq > aln-pe.sam

BWA-SW 算法
对应的子命令为bwasw, 基本用法如下

bwa bwasw ref.fa reads.fq > aln-se.sam
bwa bwasw ref.fa read1.fq read2.fq > aln-pe.sam

BWA-MEM
算法对应的子命令为mem, 基本用法如下:

bwa mem ref.fa reads.fq > aln-se.sam
bwa mem ref.fa read1.fq read2.fq > aln-pe.sam
  • lb
##Align reads with BWA-MEM algorithm/mnt/**/bwa mem -t 6 -M -R "@RG\tID:${lane_id}\tLB:${sample}\tPL:Illumina\tPU:${sample}\tSM:${sample}" \ref.fasta ${read1} ${read2} \> /**/00.BAM/${sample}.bwa.sam \2> /**/00.BAM/${sample}.bwa.log

采用常用的mem算法进行比对,-t 用于指示线程数;-M将较短的split hits标记为secondary,与picard兼容;-R设置reads标头,“\t”分割。-R STR Complete read group header line. ’\t’ can be used in STR and will be converted to a TAB in the output SAM. The read group ID will be attached to every read in the output. An example is ’@RG\tID:foo\tSM:bar’.
ID str:输入reads集ID号;LB:read集文库名;PL:测序平台(illunima或solid);PU:测序平台下级单位名称(run的名称);SM:样本名称。

${lane_id}${sample}是上一步读取.fq文件时生成的变量,在下一篇博客介绍。
其基本语法如下:

bwa mem -R '@RG\tID:foo\tSM:bar\tLB:library1' <ref.fa> <read1.fa> <read2.fa> > aln-pe.sam

对于超长读长的reads,比如PacBio和Nanopore测序仪产生的reads, 用法如下:

bwa mem -x pacbio ref.fa reads.fq > aln.sam
bwa mem -x ont2d ref.fa reads.fq > aln.sam

上述的代码中, ref.fa指的是参考基因组索引的名字,对于上面提供的小鼠的例子而言,参考基因组索引的名字为mm10.fasta, 注意是不包含后缀的。默认用法都非常简单,有时还需要对参数进行调整,以mem子命令为例,常用的参数包括以下几个: -t指定线程数,默认为1,增加线程数,会减少运行时间;-p 忽略第二个输入序列,默认情况下,输入一个序列文件认为是单端测序,输入两个序列文件则是双端测序,加上这个参数后,会忽略第二个输入序列文件,把第一个文件当做单端测序的数据进行比对; -Y参数对数据进行soft clipping, 当错配或者gap数过多比对不上时,会对序列进行切除,这里的切除并只是在比对时去掉这部分序列,最终输出结果中序列还是存在的,所以称为soft clipping

  • https://www.plob.org/article/7009.html可能还有的其他步骤:
  • (1)对sam文件进行进行重新排序(reorder)
    由BWA生成的sam文件时按字典式排序法进行的排序(lexicographically)进行排序的(chr10,chr11…chr19,chr1,chr20…chr22,chr2,chr3…chrM,chrX,chrY),但是GATK在进行callsnp的时候是按照染色体组型(karyotypic)进行的(chrM,chr1,chr2…chr22,chrX,chrY),因此要对原始sam文件进行reorder。可以使用picard-tools中的ReorderSam完成。
java -jar picard-tools-1.96/ReorderSam.jar
I=hg19.sam
O=hg19.reorder_00.sam
REFERENCE=hg19.fa

注意:
1 这一步的头文件可以人工加上,同时要确保头文件中有的序号在下面序列中也有对应的。虽然在GATK网站上的说明chrM可以在最前也可以在最后,但是当把chrM放在最后时可能会出错。
2 在进行排序之前,要先构建参考序列的索引

samtools faidx hg19.fa

最后生成的索引文件:hg19.fa.fai。
3 如果在上一步想把大文件切分成小文件的时候,头文件可以自己手工加上,之后运行这一步就好了。

  • (2) 将sam文件转换成bam文件(bam是二进制文件,运算速度快)
    这一步可使用samtools view完成。
samtools view -bS hg19.reorder_00.sam -o hg19.sam_01.bam

5. 排序并生成 .bam
这一步是将sam文件中同一染色体对应的条目按照坐标顺序从小到大进行排序。可以使用picard-tools中SortSam完成。
lb

 ## sort bam filejava -Djava.io.tmpdir=/**/tmp -jar /mnt/*/picard-tools-1.124/picard.jar SortSam \INPUT=/mnt/*/00.BAM/${sample}.bwa.sam \OUTPUT=/mnt/*/00.BAM/${sample}.bwa.sort.bam \SORT_ORDER=coordinate VALIDATION_STRINGENCY=LENIENT \>> /mnt/*/00.BAM/${sample}.bwa.log 2>&1 && \rm -v /mnt/*/00.BAM/${sample}.bwa.samecho "[`date`]: Start marking duplicates ${sample} ... "
  • -Djava.io.tmpdir: 获取操作系统缓存的临时目录
  • 基本语法:
java -jar picard-tools-1.96/SortSam.jar
INPUT=hg19.sam_01.bam  这里也可以先转化为.bam文件,再sort
OUTPUT=hg19.sam.sort_02.bam
SORT_ORDER=coordinate

如何理解这里的:

  >> /mnt/*/00.BAM/${sample}.bwa.log 2>&1 && \rm -v /mnt/*/00.BAM/${sample}.bwa.sam

log 2>&1 && rm -v .sam

  1. 关于2>&1的含义:把标准错误输出指向log
    本来1----->屏幕 (1指向屏幕)
    执行>log后, 1----->log (1指向log)
    执行2>&1后, 2----->1 (2指向1,而1指向log,因此2也指向了log)
  2. &&
    &&与& 区别:两者都表示“与”运算,但是&&运算符第一个表达式不成立的话,后面的表达式不运算,直接返回。而&对所有表达式都得判断。
    || 与| 区别:两者都表示“或”运算,但是||运算符第一个表达式成立的话,后面的表达式不运算,直接返回。而|对所有表达式都得判断。

写得很乱,请原谅一个小白迷茫的絮絮叨叨,若以后有更好的理解,希望能整理成一个简单的说明文档


http://chatgpt.dhexx.cn/article/f8SkUeJT.shtml

相关文章

NGS数据分析实践:00. 变异识别的基本流程

NGS数据分析实践&#xff1a;00. 变异识别的基本流程 变异识别过程可以分成3大块&#xff1a;1. 原始数据质控&#xff1b;2. 数据预处理&#xff1b;3. 变异识别。大致可以细分为6个部分&#xff1a;(1) 原始测序数据的质控&#xff1b;(2) read比对&#xff0c;排序和标记PCR…

如何用软件模拟NGS数据

如何用软件模拟NGS数据 为了评价一个工具的性能&#xff0c;通常我们都需要先模拟一批数据。这样相当于有了参考答案&#xff0c;才能检查工具的实际表现情况。因此对于我们而言&#xff0c;面对一个新的功能&#xff0c;可以先用模拟的数据测试下不同工具的优缺点。有如下几个…

生信小白学习日记Day2——NGS基础 illumina高通量测序原理

2019年5月26日&#xff0c;周日&#xff0c;小雨 说明&#xff1a;阅读生信宝典和查阅文章的总结&#xff0c;原文请关注公众号生信宝典&#xff0c;参考的博文都附有链接&#xff0c;仅供参考。 生信宝典 NGS基础——高通量测序原理 本文介绍了测序文库构建原理、链特异性文…

NGS数据分析实践:05. 测序数据的基本质控 [2] - MultiQC

NGS数据分析实践&#xff1a;05. 测序数据的基本质控 [2] - MultiQC 2. MultiQC2.1 帮助信息及运行代码2.2 报告解读2.3 小结 文接上篇&#xff1a;NGS数据分析实践&#xff1a;05. 测序数据的基本质控 [1] - FastQC 2. MultiQC NGS技术的进步催生了新的实验设计、分析类型和极…

NGS数据分析实践:03. 涉及的常用数据格式[2] - sam/bam格式

NGS数据分析实践&#xff1a;03. 涉及的常用数据格式[2] - sam/bam格式 2. sam和bam格式 系列文章&#xff1a; 二代测序方法&#xff1a;DNA测序之靶向重测序 NGS数据分析实践&#xff1a;00. 变异识别的基本流程 NGS数据分析实践&#xff1a;01. Conda环境配置及软件安装 NGS…

NGS数据过滤之trimmomatic

NGS 原始数据过滤对后续分析至关重要&#xff0c;去除一些无用的序列也可以提高后续分析的准确率和效率。Trimmomatic 是一个功能强大的数据过滤软件。 Trimmomatic 介绍 Trimmomatic 发表的文章至今已被引用了 2810 次&#xff0c;是一个广受欢迎的 Illumina 平台数据过滤工具…

NGS基础:测序原始数据批量下载

生物或医学中涉及高通量测序的论文&#xff0c;一般会将原始测序数据上传到公开的数据库&#xff0c;上传方式见测序文章数据上传找哪里&#xff1b;并在文章末尾标明数据存储位置和登录号,如 The data from this study was deposited in NCBI Sequence Read Archive under acc…

NGS之数据格式

生物信息中常见的几种数据格式有:fasta、fastq、bam、sam、vcf、bed、gff。 参考&#xff1a;http://www.biotrainee.com/thread-42-1-1.html FASTQ 参考&#xff1a;https://en.wikipedia.org/wiki/FASTQ_format fastq格式是文本格式。它有对应序列字符的质量分数&#xff…

生信小白学习日记Day3——NGS基础 NGS分析注解(质量分析软件)

2019年5月27日&#xff0c;天气舒适&#xff0c;忙碌一天之后开始今天的生信学习。今天就昨天Day2-2的一些标记加以查询说明&#xff0c;仅供参考。 NGS基础 NGS分析注解 1. 质量分析软件 昨天提到&#xff0c;拿到数据后可以通过一些软件来评估测序质量的好坏&#xff0c;…

NGS 数据过滤之 Trimmomatic

NGS Trimmomatic 支持多线程&#xff0c;处理数据速度快&#xff0c;主要用来去除 Illumina 平台的 Fastq 序列中的接头&#xff0c;并根据碱基质量值对 Fastq 进行修剪。软件有两种过滤模式&#xff0c;分别对应 SE 和 PE 测序数据&#xff0c;同时支持 gzip 和 bzip2 压缩文…

NGS基础名词解释(1)

什么是高通量测序&#xff1f; 高通量测序技术&#xff08; High-throughput sequencing &#xff0c; HTS &#xff09;是对传统 Sanger 测序&#xff08;称为一代测序技术&#xff09;革命性的改变 , 一次对几十万到几百万条核酸分子进行序列测定 , 因此在有些文献中称其为…

【评测】NGS建库试剂盒

NGS建库试剂 一、基本信息&#xff1a; 1、产品名称&#xff1a;SynplSeq DNA Library Prep Kit for Illumina 2、货号及规格 3、保存条件&#xff1a;-20℃ 二、产品描述&#xff1a; 1、产品介绍 文库构建是NGS测序的关键环节。SynplSeq DNA Library Prep Kit for illu…

NGS分析流程

NGS实验步骤 核酸提取与检测、文库构建与文库检测、上机测序 生信分析步骤 1. 质量分析 fastqc、multiqc、SolexaQA 测序数据的质量好坏会影响我们的下游分析。但不同的测序平台其测序错误率的图谱都是有差别的。因此&#xff0c;非常建议在我们分析测序数据之前先搞清楚如…

生信小白学习日记Day2-2——NGS基础 NGS分析

2019年5月26日下午&#xff0c;无意中看到hanli0902的关于NGS分析的博文https://blog.csdn.net/hanli1992/article/details/82790386有很多需要学习的地方&#xff0c;在这里贴一些并就不理解之处做些笔记&#xff0c;仅供参考。 NGS基础——NGS分析 NGS 分析步骤 1. 质量分析…

NGS实验室设计

NGS&#xff08;Next-Generation Sequencing&#xff09;实验室是进行高通量测序研究的场所&#xff0c;其规划布局需要考虑实验室的功能需求、设备需求、安全性、通风与空调、废弃物处理等多方面的因素。以下是NGS实验室规划布局需要考虑的几个方面&#xff1a; 1、实验室空间…

【gis技术】web墨卡托投影和经纬度直投的差别

本文不适用于不知道投影概念的人。 web墨卡托投影 是以经度0&#xff0c;纬度90为原点&#xff0c;x正轴朝东&#xff08;右&#xff09;&#xff0c;y轴朝南&#xff08;下&#xff09;&#xff1b; 格网分割为2*2格网划分&#xff0c;如图 经纬度直投的原点和轴向与前者一致…

墨卡托投影坐标系(Mercator Projection)原理

Web墨卡托投影坐标系&#xff1a; 以整个世界范围&#xff0c;赤道作为标准纬线&#xff0c;本初子午线作为中央经线&#xff0c;两者交点为坐标原点&#xff0c;向东向北为正&#xff0c;向西向南为负。 X轴&#xff1a;由于赤道半径为6378137米&#xff0c;则赤道周长为2*P…

网络墨卡托投影的前世今生

谷歌地图、微软地图、百度地图、腾讯地图、高德地图等网络地图所使用的投影都是网络墨卡托投影&#xff08;Web Mercator&#xff09;&#xff0c;尽管我们喜欢把百度地图、高德地图称之为火星坐标系&#xff0c;不过它们还是没逃出网络墨卡托投影的手心。 网络墨卡托投影由墨卡…

墨卡托投影原理及瓦片公式推导

墨卡托投影 墨卡托投影将地球球面投影到一个圆柱体柱面上,将地球看作一个正球体时,以 O O O为地球球心,从球心向外辐射射线,与地球外接圆柱面交与 P ′ P P′。 设纬度为 ϕ \phi ϕ,经度为 λ \lambda λ,其中: ϕ ∈ ( − π 2 , π 2 ) \phi\in(-\frac{\pi}{2},\fr…

墨卡托投影实现

又称正轴等角圆柱投影。圆柱投影的一种&#xff0c;由荷兰地图学家墨卡托&#xff08;G. Mercator&#xff09;于1569年创拟。为地图投影方法中影响最大的。 设想一个与地轴方向一致的圆柱切于或割于地球&#xff0c;按等角条件将经纬网投影到圆柱面上&#xff0c;将圆柱面展为…