如何在python中读取fasta文件(多个记录)(不允许使用biopython)

时间:2015-03-05 19:10:43

标签: python sequence readfile fasta

我刚开始用python编程。我完全坚持以下几点。 我有一个包含多个蛋白质序列的fasta文件。 不同的蛋白质以'>'开头就像所有的fasta文件一样。我需要这些蛋白质在一个文件中精确。所以我不能只拆分文件。但我想过滤掉一切不是蛋白质序列的东西。

所以,如果我有这样的文件(它是一个巨大文件的一部分):

>gi|636665534|ref|YP_009028572.1| Asp [Human immunodeficiency virus 1]
MPQTVSCNRCCCASIALSKLFCC
CTIPDNNCLACTVSVIEAAPI
>gi|28872817|ref|NP_057852.2| Vpr [Human immunodeficiency virus 1]
MEQAPEDQGPQ
REPHNEWTLELLEELKNEAVR
HFPRIWLHG

我只想将序列粘贴在一起:

  

MPQTVSCNRCCCASIALSKLFCCCTIPDNNCLACTVSVIEAAPIMEQAPEDQGPQREPHNEWTLELLEELKNEAVRHFPRIWLHG

我只能过滤掉第一个而不是其他的。或者我只能读取第一个序列。我需要阅读这些用于学校的fasta文件并使用matplotlib制作图表。除了我一直卡在阅读fasta文件部分。

我以为我可以制作像这样的代码

items = []
for line in file:
    if line.startswith('>'):
        read = file.readline()
        items.append(read)

但我注意到蛋白质序列之间存在\ n。所以这不起作用......

就像我说的那样,如果你能以最简单的方式(不一定是最好的方式)回答,我就这样开始了。所以在初始的python语言中:)

1 个答案:

答案 0 :(得分:2)

with open("file.fasta") as infile, open("output.txt", 'w') as outfile:
    for line in infile:
        if line.startswith(">"): continue
        outfile.write(line.strip())