【bioinfo】bwa mem 比对分值参数测试

bwa commands

常用的序列比对软件bwa
在这里插入图片描述
command对应的多种命令,这里使用的是mem,即使用BWA-MEM算法进行序列比对。

bwa mem

bwa mem命令比对:
下方官网上介绍的mem命令:
在这里插入图片描述

不同版本的bwa可能不同:(bwa Version: 0.7.10-r789)
在这里插入图片描述
在这里插入图片描述
其中,常用的参数:

-k INT        minimum seed length [19]; 最小种子长度
-T INT        minimum score to output [30]; 最小输出分值
-a            output all alignments for SE or unpaired PE; 所有比对可能
-Y            use soft clipping for supplementary alignments; softclip标记为补充比对
-M            mark shorter split hits as secondary; 短的标记为二次比对
-C            append FASTA/FASTQ comment to SAM output; 添加注释?

注:关于-C参数,测试read名称后需以空格分隔、不能有冒号":"、以de/De(description)开头但不能只有De/de(比如,可以是Desc_1),不符合时比对无结果,但是注释的信息是:De:A:o, de:A:i, De:A:1的候补信息(o/i来自哪里?)
示例有注释信息的fastq:

@readName Desc_1
CAGCATCTCCTGGGAA
+
FFFFFFFFFFFFFFFF

bwa mem分值参数说明

bwa mem 比对分值相关参数:
在这里插入图片描述

参数默认比对情况分值说明
-A[1]Match11bp比对得1分
-B[4]Mismatch-41bp错配扣4分
-O[6,6]gap(ins,del)-6,-61bp的ins扣6分,del扣6分
-E[1]gap extension1发生extension罚分系数
-L[5,5]soft clipping-5,-5在5’端,3’端的softclip扣5分
-U[17]unpaired read-17不成对的read扣17分
  • -E: g+[1]*s (g:gap罚分值, s:gap的长度(从第1bp的gap开始算), [1]:该参数设定)
  • -L: 按错配/indel,还是按softclip。 是选择分值高的作为最优比对。该分值设定越大,即对softclip的惩罚越大,那么选择最优比对时,更倾向于错配/indel(尽可能的比对上,而不是直接给出softclip),同样带来的弊端就是有很多错配。但是softclip的分值则不在AS中显示

测试分值参数

Test1:序列不同长度

$ BWA mem -M -k10 -T10 ref.fa tst1.fq > tst1.sam
$ cat ref.fa
>seq1
CACGATGTCTCTCCTCTTAATGTGCTGCACATCTGTAGGATGGGGACAAA

该测试主要针对序列的长度,以及有错配/Ins/Del的情况。 在这里插入图片描述
其中:

  • -M: mark shorter split hits as secondary (标记secodary比对结果);

  • -k: minimum seed length [19] (比对的序列最短长度,默认是19bp);这里设定10。

    这里的seed不是太明白,是否是指read序列,还是有别的含义?测试是序列可比对长度低于该阈值,则不显示比对结果。

  • -T: 比对的最小分值阈值,默认值30。即比对得分值<30不输出比对结果(结果显示未比对上),比对得分值>=30输出比对结果。这里设定10。

    [-k]参数的作用优于[-T],就是说,如果[-k]设定长度阈值较高(eg:19bp),而[-T]参数设置较低(eg:10,即分值最低为10),那么当read长度达不到19bp (但比对分值>=10),结果仍认为是未比对上。

  • ref.fa: fasta格式的参考序列文件;

  • tst1.fq: 输入的fq文件;

  • tst1.sam:输出sam格式比对结果文件。

该测试其他分值参数使用的是默认值,以read id 为 2del2ins的序列为例计算分值:

- CIGAR值得为:13M2D8M2I12M10S;(M:match;D:del;I:ins;S:softclip)
- AS tag给出比对分值:"AS:i:17"(17分)
- 分值计算:
	- match得分:13+8+12=33
	- indel罚分:(6+1*2)+(6+1*2) = 16 (ins和del各有两个)
	- 最终得分:33-16=17

注意:这里的分值并没有计算softclip,因为softclip的分值是在比对过程中,用于计算:
是将一端的序列视为softclip还是视为可比对(有match、mistmach、indel);
如果按比对的分值>视为softclip分值,则选择比对上结果,反之,视为softclip。

Test2:错配和softclip

测试靠近read两端位置出现错配, 比对结果是match/mismatch还是softclip?

$ BWA mem -M ref.fa tst.fq > tst.sam
$ cat ref.fa
>ref
TCGTCAATTCCAGGCCAGCCCATGAAGTGAGCAGA

在这里插入图片描述
比对结果中,分值计算:

readID: "match"是完全match,碱基数35,分值是: 35;
readID: "mis1"第三个碱基有一个碱基错配,比对上的碱基有34,得分值:34+(-4)=30(奇怪:这里为什么给到分值(AS)是32?)
readID:"mis1_ins1"是有一个碱基错配,和一个ins。
		 - 如果按错配+ins,可match碱基是34个,得分是:34+(-4)+(-6)=24;
		 - 如果从ins处及左端(5')视为6bp的softclip(罚5分),分值是:34+(-5)=29。
		 - 也就是按softclip分值更高,所以比较结果给出的是softclip。

注意:bwa比对时,如果序列长度和碱基质量值不同,bwa比对结果中不显示该序列,也没有报错。

Test3:参考序列有相似

对bwa比对的一些测试中,发现如果参考序列之间有相似时,要输出所有比对结果的话,情况可能不理想。

比如这是参考序列ref.fa:(随意编造的)

>ref1
CTACCGATCTGCACTGTAAGCACCCTTATG
>ref2
CTACCGATCTGCACTATAAGCACCCTTATA
>ref3
CTACCGATCTGCACGAACAGCACCCTTATG
>ref4
CTACCGATCTGCACTGTAAGCACCCTTATT
>ref5
CTACCGATCTGCACTATGAGCACCCTTATG

然后使用同样的序列作为test.fq,就是:

@ref1
CTACCGATCTGCACTGTAAGCACCCTTATG
+
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
@ref2
CTACCGATCTGCACTATAAGCACCCTTATA
+
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
@ref3
CTACCGATCTGCACGAACAGCACCCTTATG
+
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
@ref4
CTACCGATCTGCACTGTAAGCACCCTTATT
+
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
@ref5
CTACCGATCTGCACTATGAGCACCCTTATG
+
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

进行比对:

bwa index -a is ref.fa  # 构建索引
samtools faidx ref.fa  # 构建索引
bwa mem -k1 -T1 ref.fa test.fq > test.sam  # 默认输出结果
bwa mem -k1 -T1 -a ref.fa tmp.fq > test.all.sam  # 比对输出所有结果

默认输出的结果:(候选比对结果会在XAtag中)
在这里插入图片描述

使用-a参数输出的结果:(与默认在XA中的相同)
在这里插入图片描述
但是直观看的话,比如,ref1输出的比对只有ref1,ref4,直观看ref5也可以(2mis)
在这里插入图片描述
但是, 构建ref时,只使用一个序列,比如只用ref5:

>ref5
CTACCGATCTGCACTATGAGCACCCTTATG

test.fq的文件比对结果则是:全部可以比对上。
在这里插入图片描述

更新日志

  • 2024.02.22: mem参数说明
  • 2023.02.23: 参考序列有相似
  • 2021.06.08: 初版
数据集介绍:野生动物目标检测数据集 一、基础信息 数据集名称:野生动物目标检测数据集 图片数量: - 训练集:4,181张图片 - 验证集:1,212张图片 - 测试集:610张图片 总计:6,003张航拍及自然场景图片 分类类别: 涵盖23类野生动物,包括: - 濒危物种(北极熊、犀牛、熊猫) - 大型哺乳动物(大象、河马、长颈鹿) - 猛禽类(鹰、鹦鹉、企鹅) - 食肉动物(狮子、猎豹、美洲豹) - 草食动物(斑马、鹿、山羊) 标注格式: YOLO格式标注,包含边界框坐标与类别标签,适配主流目标检测框架。 数据特性: 航拍视角与地面视角相结合,包含动物群体活动和个体行为场景。 二、适用场景 生态保护监测系统: 构建野生动物种群识别系统,支持自然保护区自动监测动物迁徙和栖息地活动。 智能林业管理: 集成至森林巡护无人机系统,实时检测濒危物种并预警盗猎行为。 动物行为研究: 为科研机构提供标注数据支撑,辅助研究动物种群分布与行为特征。 自然纪录片制作: AI预处理工具开发,快速定位视频素材中的特定物种片段。 教育科普应用: 用于野生动物识别教育软件,支持互动式物种学习功能开发。 三、数据集优势 物种覆盖全面: 包含非洲草原系、极地系、森林系等23类特色动物,特别涵盖10种IUCN红色名录物种。 多场景适配: 整合航拍与地面视角数据,支持开发不同观测高度的检测模型。 标注质量可靠: 经动物学专家校验,确保复杂场景(群体/遮挡)下的标注准确性。 模型兼容性强: 原生YOLO格式可直接应用于YOLOv5/v7/v8等系列模型训练。 生态研究价值: 特别包含熊科动物(棕熊/北极熊/熊猫)细分类别,支持濒危物种保护研究。
<think>好的,我现在需要在Ubuntu 22.04上安装BWA工具。首先,我应该回忆一下BWA是什么。BWA是Burrows-Wheeler Aligner的缩写,主要用于基因序列比对,是生物信息学中常用的工具之一。用户可能是在进行基因组数据分析,比如处理测序数据时需要用到比对步骤。 接下来,我需要确定在Ubuntu系统上安装软件的常用方法。通常有几种方式:通过apt包管理器直接安装,从源代码编译安装,或者使用conda这样的包管理工具。用户可能希望选择最简单快捷的方式,所以先考虑apt安装。 首先检查系统是否已经添加了正确的软件源。Ubuntu的官方仓库通常包含一些生物信息学软件,但版本可能不是最新的。运行`sudo apt update`更新软件包列表,然后尝试`apt search bwa`看看是否有可用的包。如果有的话,直接使用`sudo apt install bwa`安装。但有可能仓库中的版本较旧,这时候用户可能需要从源码编译安装以获得最新版本。 如果通过apt安装的版本不符合需求,用户需要从源代码编译。这通常包括下载源代码,解压,然后使用make命令编译。需要确保系统已经安装了必要的编译工具,比如gcc、make等,以及zlib库,因为BWA依赖这些。可以使用`sudo apt install build-essential zlib1g-dev`来安装这些依赖项。 然后,从BWA的GitHub仓库或官方网站下载最新的源代码。使用wget或git clone获取源码包,解压后进入目录,执行make命令进行编译。编译成功后,生成的可执行文件应该位于当前目录,可以将其复制到系统的PATH路径下,比如/usr/local/bin,这样可以在任何位置运行bwa命令。 另外,考虑到用户可能使用conda环境,特别是如果他们在处理其他生物信息学工具时可能已经配置了conda。通过conda安装可以避免系统范围的安装,方便管理不同版本的软件。用户可以创建或激活一个conda环境,然后运行`conda install -c bioconda bwa`来安装。 在安装完成后,验证安装是否成功,可以运行`bwa`命令查看帮助信息,或者执行`bwa index`等子命令测试基本功能。同时,提醒用户可能需要参考BWA的官方文档或教程来正确使用该工具,特别是在参数设置和数据处理方面。 用户可能还关心如何更新BWA,如果是通过apt安装的,可以使用`sudo apt upgrade`来更新;而源码安装则需要重新下载最新版本并编译。对于conda安装,使用`conda update bwa`即可。 最后,考虑到用户可能是在学术或研究环境中使用,可能需要处理大量的基因组数据,建议他们确保系统有足够的内存和存储空间,并且了解如何高效地运行BWA,比如使用多线程参数来加速比对过程。同时,可以推荐一些相关的工具或教程,比如SAMtools用于处理比对后的文件,或者GATK用于后续的变异检测,帮助他们构建完整的工作流程。</think>### 在 Ubuntu 22.04 上安装 BWA 的步骤 BWA(Burrows-Wheeler Aligner)是基因组序列比对的核心工具,适用于二代测序数据的比对分析。以下是两种常用安装方法: --- #### **方法1:通过 `apt` 包管理器安装(简单快捷,但版本可能较旧)** 1. **更新软件包列表**: ```bash sudo apt update ``` 2. **安装 BWA**: ```bash sudo apt install bwa ``` 3. **验证安装**: ```bash bwa # 查看帮助信息,若显示版本和用法则安装成功 ``` --- #### **方法2:从源码编译安装(获取最新版本)** 1. **安装编译依赖**: ```bash sudo apt install build-essential zlib1g-dev ``` 2. **下载源码并解压**: ```bash wget https://github.com/lh3/bwa/releases/download/v0.7.17/bwa-0.7.17.tar.bz2 tar -xjvf bwa-0.7.17.tar.bz2 cd bwa-0.7.17 ``` 3. **编译并安装**: ```bash make sudo cp bwa /usr/local/bin/ # 将可执行文件复制到系统路径 ``` 4. **验证安装**: ```bash bwa # 检查是否显示帮助信息 ``` --- #### **方法3:通过 Conda 安装(推荐管理多环境)** 1. **安装 Miniconda(若未安装)**: ```bash wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh ``` 2. **创建并激活环境**: ```bash conda create -n bioinfo conda activate bioinfo ``` 3. **安装 BWA**: ```bash conda install -c bioconda bwa ``` --- ### **使用示例** ```bash # 构建参考基因组索引 bwa index reference.fasta # 执行比对(示例命令) bwa mem reference.fasta read1.fq read2.fq > output.sam ``` --- ### **相关问题** 1. BWA 比对算法(如 BWA-MEMBWA-backtrack)的区别及适用场景? 2. 如何优化 BWA 在多线程环境下的运行效率? 3. BWA 生成的 SAM 文件如何转换为 BAM 并进行排序? 4. 在宏基因组分析中,BWA 如何与其他工具(如 SAMtools、GATK)配合使用?[^1][^2] --- ### **参考建议** - 若需处理大规模数据,建议结合 `samtools` 进行后续处理[^1]。 - 对于微生物组分析,可参考宏基因组数据库和流程优化方法[^2][^3]。 - 使用云服务器或高性能计算集群时,注意资源配置与任务调度[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值