小编jon*_*lls的帖子

具有仿射空位罚分的Smith-Wateman算法中的回溯

我正在尝试使用仿射空位罚函数实现用于局部序列比对的Smith-Waterman算法.我想我理解如何启动和计算计算校准分数所需的矩阵,但我不知道如何追溯以找到对齐.要生成所需的3个矩阵,我有以下代码

for j in range(1, len2):
    for i in range(1, len1):
        fxOpen = F[i][j-1] + gap
        xExtend = Ix[i][j-1] + extend
        Ix[i][j] = max(fxOpen, xExtend)

        fyOpen = F[i-1][j] + gap
        yExtend = Iy[i-1][j] + extend
        Iy[i][j] = max(fyOpen, yExtend)

        matchScore = (F[i-1][j-1]  + simMatrixDict[seq1[i-1]+seq2[j-1]])
        xScore = Ix[i-1][j-1] + simMatrixDict[seq1[i-1]+seq2[j-1]]
        yScore = Iy[i-1][j-1] + simMatrixDict[seq1[i-1]+seq2[j-1]]
        F[i][j] = max(0, matchScore, xScore, yScore)
Run Code Online (Sandbox Code Playgroud)

我不确定我是否需要一个矩阵用于追溯,或者只需要1?任何关于如何从F中的最大分数追溯的澄清将非常感激.

python bioinformatics biopython sequence-alignment

9
推荐指数
1
解决办法
6751
查看次数

实现Waterman-Eggert算法

我正在尝试实现Waterman-Eggert算法来寻找次优的局部序列比对,但我正在努力理解如何"解散"单独的比对组.我有基本的Smith-Waterman算法正常工作.

一个简单的测试,将以下序列与自身对齐:

'HEAGHEAGHEAG'
'HEAGHEAGHEAG'
Run Code Online (Sandbox Code Playgroud)

产生一个fMatrix如下:

 [[  0.   0.   0.   0.   0.   0.   0.   0.   0.   0.   0.   0.   0.]
  [  0.   8.   0.   0.   0.   8.   0.   0.   0.   8.   0.   0.   0.]
  [  0.   0.  13.   0.   0.   0.  13.   0.   0.   0.  13.   0.   0.]
  [  0.   0.   0.  17.   0.   0.   0.  17.   0.   0.   0.  17.   0.]
  [  0.   0.   0.   0.  23.   0.   0.   0.  23.   0.   0.   0.  23.]
  [  0.   8.   0.   0. …
Run Code Online (Sandbox Code Playgroud)

python bioinformatics sequence-alignment

7
推荐指数
1
解决办法
962
查看次数

Python 3中的类实例化比Python 2慢

我偶然注意到,在Python 2.7和3.5中,从大型数据文件生成类的简单程序运行速度要快得多.我在这里读到,使用"无限精度"整数归咎于简单枚举的减速,但即使我尝试实例化这个类的简单测试,我发现Python 3明显变慢:

class Benchmark(object):
    def __init__(self):
        self.members = ['a', 'b', 'c', 'd']


def test():
    test = Benchmark()

if __name__ == '__main__':
    import timeit
    print(timeit.timeit("test()", setup="from __main__ import test"))
Run Code Online (Sandbox Code Playgroud)

我想也许这与每个类实例的大小有关,但Python 3实例小于2(56对64)

$python3 benchmarks.py
0.7017288669958361
$python benchmarks.py
0.508942842484
Run Code Online (Sandbox Code Playgroud)

我已尝试过很多关于这个主题的变体,包括在不同的机器上使用3.4,并且仍然得到相同的结果.有什么想法发生了什么?

python class instance python-3.x

5
推荐指数
1
解决办法
323
查看次数