While-Loop-Multiple-Print GC 百分比
While-Loop-Multiple-Print GC Percentage
我正在尝试编写一个程序来获取 DNA 序列中 GC 的百分比。
print("Enter With Z to finish")
while True:
sequence_dna = input("Enter with sequence:")
print("DNA Sequence:\t\t",sequence_dna)
dna = sequence_dna
DNA = dna.upper()
DNAlist = list(DNA)
CountC = sequence_dna.count("C")
CountG = sequence_dna.count("G")
GC = (100*(CountC+CountG)/float(len(dna)))
print("the percentage of GC is: %.2f"%GC)
我还需要编写一个程序来请求多个 DNA 字符串,而不是像我那样只需要一个。我需要做什么?
该程序需要使用 break
命令结束,并指出哪个 DNA 序列具有最多的 GC。
例如:
In DNA Sequence(0)
Out percentage of DNA Sequence(0)
enter code here
In DNA Sequence(1)
Out percentage of DNA Sequence(1)
enter code
In DNA Sequence(2)
Out percentage of DNA Sequence(2)
break
the DNA Sequence(1) have the highest percentage of GC`s
这应该有效:
from operator import itemgetter
print("Enter With 'z' to finish") #must be lowercase 'z'
dna_list = []
while True:
sequence_dna = input("Enter DNA sequence: ")
print("DNA Sequence:\t\t",sequence_dna)
dna = sequence_dna
DNA = dna.upper()
dna_list.append(DNA)
if sequence_dna == 'z':
break
gc_percentages = []
for sequence in dna_list[:-1]: # Takes all elements of the list except for the empty entry in the last position.
CountC = sequence.count("C")
CountG = sequence.count("G")
GC = str((((CountC + CountG)/len(sequence)) * 100)) + '%'
print("The percentage of GC content for the sequence in list position %s is: %s"%(dna_list.index(sequence), GC))
gc_percentages.append((sequence, (((CountC + CountG)/len(sequence)) * 100) ))
sorted_gc_scores = sorted(gc_percentages, key= itemgetter(1), reverse= True)
print ("\nThe sequence with the highest GC percentage of %s is:\n%s" %(str(sorted_gc_scores[0][1]) + '%', sorted_gc_scores[0][0]))
一旦代码有 运行,您可以参考 dna_list 中哪个序列给出了最高的 GC 百分比。
我正在尝试编写一个程序来获取 DNA 序列中 GC 的百分比。
print("Enter With Z to finish")
while True:
sequence_dna = input("Enter with sequence:")
print("DNA Sequence:\t\t",sequence_dna)
dna = sequence_dna
DNA = dna.upper()
DNAlist = list(DNA)
CountC = sequence_dna.count("C")
CountG = sequence_dna.count("G")
GC = (100*(CountC+CountG)/float(len(dna)))
print("the percentage of GC is: %.2f"%GC)
我还需要编写一个程序来请求多个 DNA 字符串,而不是像我那样只需要一个。我需要做什么?
该程序需要使用 break
命令结束,并指出哪个 DNA 序列具有最多的 GC。
例如:
In DNA Sequence(0)
Out percentage of DNA Sequence(0)
enter code here
In DNA Sequence(1)
Out percentage of DNA Sequence(1)
enter code
In DNA Sequence(2)
Out percentage of DNA Sequence(2)
break
the DNA Sequence(1) have the highest percentage of GC`s
这应该有效:
from operator import itemgetter
print("Enter With 'z' to finish") #must be lowercase 'z'
dna_list = []
while True:
sequence_dna = input("Enter DNA sequence: ")
print("DNA Sequence:\t\t",sequence_dna)
dna = sequence_dna
DNA = dna.upper()
dna_list.append(DNA)
if sequence_dna == 'z':
break
gc_percentages = []
for sequence in dna_list[:-1]: # Takes all elements of the list except for the empty entry in the last position.
CountC = sequence.count("C")
CountG = sequence.count("G")
GC = str((((CountC + CountG)/len(sequence)) * 100)) + '%'
print("The percentage of GC content for the sequence in list position %s is: %s"%(dna_list.index(sequence), GC))
gc_percentages.append((sequence, (((CountC + CountG)/len(sequence)) * 100) ))
sorted_gc_scores = sorted(gc_percentages, key= itemgetter(1), reverse= True)
print ("\nThe sequence with the highest GC percentage of %s is:\n%s" %(str(sorted_gc_scores[0][1]) + '%', sorted_gc_scores[0][0]))
一旦代码有 运行,您可以参考 dna_list 中哪个序列给出了最高的 GC 百分比。