57、用于局部DNA比对的并行Smith - Waterman算法

用于局部DNA比对的并行Smith - Waterman算法

1. 局部DNA比对的基础计算

在进行局部DNA比对时,需要逐行从左到右,或者逐列从上到下计算数组A。计算完成后,根据特定方程绘制箭头,以指示最大值的来源。例如,最佳局部比对的得分值可能出现在A[5, 4]和A[8, 6]处。

获取两个序列之间的最优局部比对的步骤如下:
1. 从数组A中的最大值开始。
2. 沿着该元素的箭头方向前进,直到遇到没有箭头的元素或值为0的元素。
3. 每使用一个箭头,就得到比对的一列。其中,从元素A[i, j]出发的向西箭头表示序列s中的空位与t[j]匹配;向北箭头表示s[i]与序列t中的空位匹配;向西北箭头表示s[i]与t[j]匹配。
4. 计算完数组A后,按照箭头从右向左构建最优局部比对。

2. 降低SW算法的空间复杂度

为了获取局部比对,采用了一种使用两个线性数组的Smith - Waterman算法变体。由于对于长序列,二维数组的内存开销过大,该算法通过模拟二维数组的填充过程,仅使用内存中的两行来计算元素A[i, j],其空间复杂度为线性O(n),时间复杂度仍为O(n²)。具体操作步骤如下:
1. 初始化其中一个线性数组为零。
2. 使用Smith - Waterman算法,每次使用序列s的一个字符,从第一个线性数组得到第二个线性数组的每个元素。
3. 当计算的得分达到开启阈值时,将当前坐标保存到包含候选比对的数据结构alignments中。
4. 当得分降至关闭阈值以下时,将当前坐标保存到同一数据结构中,并认为该比对结束。

3. 无阻塞因子的并行局部序列比对
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值