當前位置:成語大全網 - 新華字典 - Python如何計算序列長度

Python如何計算序列長度

根據妳之前的問題,假定妳的數據符合這種格式:

>SeqName1

Seq1

>SeqName2

Seq2

...

這裏不要求Seq1只占壹行(即允許其中有換行符出現)。假如Seq總是只占壹行的話,其實就是奇數行是名字,偶數行是序列本體而已,讀取不要太簡單……

以下是簡單的實現。考慮到文件可能很大,使用叠代來逐個讀入數據。文件較小的情況可以使用列表表達式直接實現- -。

遍歷文件時的流程:

如當前行以'>'開始,將其存為k(序列名稱),直到發現下壹個序列名稱為止的所有行,填入v(序列)。再次發現'>'開始的行時,將(k, v)存入字典,並將v清空。此外的是實現細節。註釋之後太啰嗦了,對哪裏有疑問請追問。

fileFa?=?open("SEQ.FASTA",?"r")

dic,?k,?v?=?{},?'',?[]

for?i?in?fileFa:

if?i.startswith('>'):?

dic[k]?=?v?

k?=?i[1:-1]?

v?=?[]

else:

v.append(i)

dic[k]?=?v

dic.pop('')

print?"%s?sequences?in?total"?%?len(dic)

for?(k,?v)?in?dic.items():

print("SEQUENCE:?%s\nLENGTH:%s"?%?(k,?sum(map(len,?v))))

使用妳上壹問題提供的4個序列,輸出如下:

4?sequences?in?total

SEQUENCE:?qwe56_44514

LENGTH:98

SEQUENCE:?qwe56_44606

LENGTH:82

SEQUENCE:?qwe56_44424

LENGTH:43

SEQUENCE:?qwe56_869

LENGTH:39