【问题标题】:Use the list of sequence & write a program that finds the sequence with the highest GC content使用序列列表并编写一个程序,找到具有最高 GC 内容的序列
【发布时间】:2019-09-07 04:38:44
【问题描述】:

我需要编写一个程序来计算列表中每个项目的GC含量,并打印百分比含量和最高的序列。

我尝试使用 for 语句并尝试合并计数并除以每个序列中的总数

以序列["ATATCCG", "TCCG", "ATGTACTG", "ATGGCTG", "ATCA"]的列表为例,编写一个程序,找出序列列表中GC含量最高的序列(G和C核苷酸的百分比)。程序应打印序列及其 GC 内容。

尝试了以下但没有给出正确答案

dnas = ["ATATCCG", "TCCG", "ATGTACTG", "ATGGCTG", "ATCA"]

def gc_percentage(dna):
    count = 0
    for sequence in dna:
        if sequence in "GC":
            count += 1
    return (count * 100) / len(dnas)


maxgc = 0
for i in range(len(dnas)):
    if gc_percentage(dnas[i]) > gc_percentage(dnas[maxgc]):
        max_gc = i

print(dnas[max_gc])
print(str(gc_percentage(data[max_gc])))

【问题讨论】:

    标签: python-3.x list if-statement


    【解决方案1】:

    如果您打算将 G 和 C 的出现次数相加作为判别器,您可以这样做

    print(
        max(
            ((s.count('G')+s.count('C'), s) for s in dnas)
        )
    )
    

    在您的情况下,它会打印具有最高 GC 计数的元组(先计数,然后是序列)

    (4, "ATGGCTG")
    

    【讨论】:

      猜你喜欢
      • 2010-10-05
      • 1970-01-01
      • 2015-08-06
      • 1970-01-01
      • 2017-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多