BWA -A -B -O -E参数控制比对得分
为了说明如何使用 -A
、-B
、-O
和 -E
参数控制比对得分,我们通过一个简单的例子来展示这些参数对比对结果的影响。
背景信息
假设我们有一个参考基因组序列(ref.fa)和一个读取序列(reads.fq),并希望调整比对得分参数来控制比对的准确性。
参考基因组序列(ref.fa):
>ref
ACTGACTGACTGACTGACTGACTGACTGACTGACTGACTG
读取序列(reads.fq):
@read1
ACTGACTTACTGACTGACTGACTGACTGACTGACTGAC
+
########################################
在这个读取序列中,注意第 9 个碱基与参考序列中的第 9 个碱基不同。读取序列包含一个错配。
默认比对参数
首先,我们使用默认的比对参数进行比对:
bwa mem ref.fa reads.fq > aln.sam
结果:
比对会成功,但由于默认的错配罚分和间隙罚分,错配可能会影响比对得分。
调整比对得分参数
我们使用以下自定义参数来调整比对得分:
bwa mem -A 1 -B 4 -O 6 -E 1 ref.fa reads.fq > aln.sam
-A 1
:匹配得分设置为 1,表示每个正确匹配的碱基都会加 1 分。-B 4
:错配罚分设置为 4,表示每个错配的碱基会扣 4 分。-O 6
:空位开启罚分设置为 6,表示出现空位(gap)时会一次性扣 6 分。-E 1
:间隙延伸罚分设置为 1,表示每延伸一次空位多扣 1 分。
比对得分计算示例
让我们详细计算一下这个读取序列的比对得分:
-
匹配部分:读取序列的前 8 个碱基与参考序列完全匹配,因此得分为:
匹配得分 = 8 * A = 8 * 1 = 8 分
-
错配部分:第 9 个碱基
T
(在读取序列中)与参考序列中的C
不匹配,因此错配罚分为:错配罚分 = -B = -4 分
-
其余匹配部分:第 10 到第 40 个碱基再次与参考序列完全匹配,因此得分为:
匹配得分 = 31 * A = 31 * 1 = 31 分
总得分计算:
总得分 = 8 + (-4) + 31 = 35 分
调整得分参数的影响
-
增加
-B
(错配罚分):如果我们将错配罚分设置为 6,即-B 6
,那么错配的惩罚会加重,比对得分会降低。对于同样的比对结果,得分会变为:总得分 = 8 + (-6) + 31 = 33 分
-
增加
-O
和-E
(空位罚分):如果在读取序列中有空位(例如插入或缺失),-O
和-E
参数将会生效。设置较高的空位罚分可以更严格地限制插入或缺失的出现。例如,如果读取序列中有一个长度为 2 的插入,并且设置-O 6 -E 1
,总罚分会是:空位罚分 = -O - E * 1 = -6 - 1 = -7 分
总结
-A
(匹配得分):设置为较高的值可以增加比对的得分,特别是在匹配碱基较多的情况下。-B
(错配罚分):设置为较高的值可以对错配进行更严厉的惩罚,减少错配的比对结果。-O
(空位开启罚分):设置较高的值可以减少空位(插入或缺失)的比对出现。-E
(间隙延伸罚分):控制空位延伸的惩罚,较高的值可以进一步减少长插入或缺失的比对。
通过调整这些参数,你可以更精确地控制比对的灵敏度和准确性。你对这个例子是否理解了?如果需要更多解释或示例,欢迎继续讨论!