我刚开始用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语言中:)
答案 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())