美文网首页
【Python编程】---实现两DNA序列片段最长相同子序列的方

【Python编程】---实现两DNA序列片段最长相同子序列的方

作者: 卡布达b1 | 来源:发表于2020-04-15 13:18 被阅读0次

前言:现有长度相等,但碱基存在一定差异的两条DNA序列,求它们之间的最长相同子序列,并输出差异碱基的位置。

  1. 已知两DNA序列长度均为S,构建二维数组,从第0位开始匹配连续相同的字符,代码如下:
def GetSubStr(str1,str2):
    lstr1 = len(str1)
    lstr2 = len(str2)
    record = [[0 for i in range(lstr2+1)] for j in range(lstr1+1)]
    maxNum = 0
    p = 0
    for i in range(lstr1):
        for j in range(lstr2):
            if str1[i] == str2[j]:
                record[i+1][j+1] = record[i][j] + 1
                if record[i+1][j+1] > maxNum:
                    maxNum = record[i+1][j+1]
                    p = i + 1
    return [str1[p-maxNum:p], maxNum]
  1. 在两条原DNA序列中去除最长的相同子序列

(输出差异碱基的位置,见下篇)。

相关文章

网友评论

      本文标题:【Python编程】---实现两DNA序列片段最长相同子序列的方

      本文链接:https://www.haomeiwen.com/subject/yqhcvhtx.html