【ROSALIND】【練Python,學(xué)生信】01 統(tǒng)計(jì)DNA序列脫氧核苷酸數(shù)目

如果第一次閱讀本系列文檔請(qǐng)先移步閱讀【ROSALIND】【練Python,學(xué)生信】00 寫在前面 ?謝謝配合~

題目:
統(tǒng)計(jì)核苷酸數(shù)目(Counting DNA Nucleotides)
Given: A DNA string ss of length at most 1000 nt.
所給:一條被命名為ss的DNA鏈,長度至少為1000個(gè)堿基。
Return: Four integers (separated by spaces) counting the respective number of times that the symbols 'A', 'C', 'G', and 'T' occur in ss.
需得:四個(gè)以空格分隔的整數(shù),分別為ss中A、C、G、T的數(shù)量。
?
測試數(shù)據(jù)
AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC
測試輸出
20 12 17 21
?
生物背景
細(xì)胞是生命活動(dòng)的主要承擔(dān)者,早在一百多年前,人們就意識(shí)到細(xì)胞核在調(diào)節(jié)細(xì)胞生命活動(dòng)中起著中心作用。細(xì)胞核中充滿著被稱為染色質(zhì)(分裂期凝縮為染色體)的生物大分子,核酸是染色質(zhì)的重要組成部分,由單體核苷酸聚合形成。核苷酸又由五碳糖、核酸基團(tuán)和堿基組成。對(duì)DNA分子來說,堿基有四種,分別為腺嘌呤(adenine,A)、鳥嘌呤(guanine,G)、胞嘧啶(cytosine,C)和胸腺嘧啶(thymine,T)。遺傳信息就包含在堿基序列中。
?
Python知識(shí)點(diǎn)
DNA序列是一個(gè)字符串,Python中針對(duì)字符串提供了大量方法可直接調(diào)用,其中“.count()”方法可用于計(jì)數(shù)。
將文件保存在與.py文件相同的路徑下可以很方便地讀入和編輯,參數(shù)’r’代表讀入;’a’代表添加到文件已有內(nèi)容之后;’w’代表寫入文件,覆蓋原有內(nèi)容。
?
代碼
# s = "AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGC? AGC"??????
f = open("rosalind_dna.txt",'r')? # 直接讀入序列文件
s = f.read()
print("%d %d %d %d" % (s.count('A'), s.count('C'), s.count('G'), s.count('T')))