【发布时间】:2021-08-05 17:19:13
【问题描述】:
计算生物学的一项重要任务是找到短 DNA 序列的重复模式。这些模式有助于 生物学家分析生活中不同部分的功能 存在。作为一名计算机科学专业的学生,你被要求编写一个程序 这将从 DNA 序列中找到给定长度的所有模式 以及它们在该序列中的存在次数。该信息将 帮助找到序列中给定长度的主导模式。 您还会发现主导模式。主导模式是 出现次数最多的序列。如果有多个占优 pattern 程序将打印“No Dominant Pattern found”。
样本输入:ATTCGATCG 3 样本输出:ATT 1 TTC 1 TCG 2 CGA 1 GAT 1 ATC 1 主导模式:TCG
样本输入:ATTCGATCGATC 4 样本输出:ATTC 1 TTCG 1 TCGA 2 CGAT 2 GATC 2 ATCG 1 未找到主导模式。
这是我试图解决的问题,我已经涵盖了几乎所有内容,但是我正在努力处理打印 主导字符串而没有主导字符串的最后一段代码。
dna = input()
new = []
n =0
for n in range(len(dna)-2):
new.append(dna[n:n+3])
n = n + 1
count = {}
for element in new:
if element in count:
count[element] += 1
else:
count[element] = 1
for keys, value in count.items():
print("{} {}".format(keys, value))
max_value = 0
for key, value in count.items():
if int(value) > max_value:
if value == max_value:
pass
else:
max_value = value
print(max_value)
def max_key(val):
for key, value in count.items():
if val == value:
return key
print(max_key(max_value))
在哪里以及如何缩短代码
我是全新的
【问题讨论】:
标签: python dictionary count compare max