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



我刚刚开始用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

我只想像这样把序列粘贴在一起:

mpqtvscnrccasialsklfccctipdnclactvsvieaapimeqapedqgpqrepnewtlelleelkneavrhfpriwlhg

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

我想我可以做一个像这样的代码

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

但是我注意到在蛋白质序列之间有。所以那没用。。。

就像我说的,我刚开始,所以如果你能用最简单的(不一定是最好的)方式回答的话。因此,就像python语言的开头一样:)

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

最新更新