生物信息学代码:我有这个代码,我希望输入是两个字符串:文本和模式,输出是一个数字


def PatternCount(Text,Pattern):
count = 0
for i in range(0,len(Text)-len(Pattern)):
if Text[i:len(Pattern)] == Pattern:
count = count + 1
return count
Text = input("enter DNA string")
Pattern = input("enter 1st Pattern")

这是我的密码。

  • 输入:字符串文本和模式
  • 输出:计数(文本、图案(

例如:

  • 样本输入:
    • 文本:GCGCG
    • 图案:GCG
  • 样本输出:
    • 2

Text[i:len(Pattern)]中的第二个数字不是长度,而是最终位置。您需要将i添加到其中。

此外,要找到最终匹配,您需要再迭代一个循环。

def PatternCount(Text,Pattern):
count = 0
for i in range(0, 1 + len(Text) - len(Pattern)):
if Text[i:i + len(Pattern)] == Pattern:
count = count + 1
return count
Text = input("enter DNA string ")
Pattern = input("enter 1st Pattern ")
print(PatternCount(Text,Pattern))

除了choroba所示的校正函数外,您还可以使用finditer-

import re
print(len(list(re.finditer("(?=%s)" % Pattern, Text))))

-或者具有相同零宽度先行模式的CCD_ 4。

最新更新