def GC_Content(data): print data result = 0.0 dlen = len(data) for nuc in data: if nuc == 'C' or nuc == 'G': result += 1.0/dlen return result def max_GC_Content(data): lines = data.splitlines() max_name = '' max_GC = 0; cur_name = '' cur_GC = 0; for line in lines: # Новая строка if line[0]=='>': # Проверка предыдущей строки if cur_name <> '': cur_GC = GC_Content(cur_line) if cur_GC > max_GC: max_GC = cur_GC max_name = cur_name # Начало формирования новой строки cur_name = line[1:] cur_line = '' else: cur_line += line if cur_name <> '': cur_GC = GC_Content(cur_line) if cur_GC > max_GC: max_GC = cur_GC max_name = cur_name return max_name, max_GC name, cnt = max_GC_Content('''>Rosalind_6404 CCTGCGGAAGATCGGCACTAGAATAGCCAGAACCGTTTCTCTGAGGCTTCCGGCCTTCCC TCCCACTAATAATTCTGAGG >Rosalind_5959 CCATCGGTAGCGCATCCTTAGTCCAATTAAGTCCCTATCCAGGCGCTCCGCCGAAGGTCT ATATCCATTTGTCAGCAGACACGC >Rosalind_0808 CCACCCTCGTGGTATGGCTAGGCATTCAGGAACCGGAGAACGCTTCAGACCAGCCCGGAC TGGGAACCTGCGGGCAGTAGGTGGAAT''') print name print "%.6f " % (cnt*100)
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question