【发布时间】:2020-12-26 05:13:10
【问题描述】:
我已经为 PSET6 编写了大部分代码,并且我明白了它的要点。但是我被一些围绕如何迭代 DNA 序列和计算最长连续 STR 序列的逻辑所困。对于没有参加 CS50 课程的人,我基本上必须实施一个程序,根据他们的 DNA 来识别一个人。为了解决这个问题,我必须遍历 DNA 序列并计算 DNA 子串重复的次数,并计算该子串连续运行的最长运行时间。这是我的代码
def count_substring(sequence_dna, substring):
strcounter = 0
run = []
substring = strlist
for i in range(len(sequence_dna) - len(substring)):
while i < len(sequence_dna):
if sequence_dna[i:i+len(substring)] == substring:
strcounter += 1
i += i + len(substring)
run += 1
run.append()
else:
run = 0
i += i + len(substring)
return max(run)
因此,我创建了变量来跟踪重复的总数 (strcounter) 和一个数组来跟踪最长连续运行的 STR 重复。我打开了 csvfile 并将第一行 STR 名称设置为子字符串。然后我遍历 DNA 文本文件并开始计算 STR 出现的次数,但这是我卡住的地方,因此我的代码不完整。我不确定如何编写代码并将运行次数添加到我创建的数组中。我也不确定返回最大值是否会取所有值的最大值或每个 STR 运行次数的最大值。谁能帮我?非常感谢任何建议(关于您看到的任何错误)!
【问题讨论】: