我有一个看起来像这样的文件:
>sequence_name_16hj51
CAACCTTGGCCAT
>sequence_name_158ghni52
AATTGGCCTTGGA
>sequence_name_468rth
AAGGTTCCA
我想得到这个: ['CAACCTTGGCCAT', 'AATTGGCCTTGGA', 'AAGGTTCCA']
我有一个包含所有序列名称的列表,标题为 title_finder。当我尝试使用时:
for i in range(0,len(title_finder)):
seq = seq.split(title_finder[i])
print seq
我得到这个回溯:
Traceback (most recent call last):
File "D:/Desktop/Python/consensus new.py", line 23, in <module>
seq = seq.split(title_finder[i])
AttributeError: 'list' object has no attribute 'split'
有人可以帮帮我吗?
编辑:有时一些序列跨越多行,因此当我使用 for 循环执行此操作时,我会得到不止一个字符串。
请您参考如下方法:
如果你从事生物信息学,你真的应该考虑安装 BioPython .
from Bio import SeqIO
with open('your_file.fasta') as f:
return [str(record.seq) for record in SeqIO.parse(f, "fasta")]
如果你想用纯 Python 来做,那么这个就可以了:
with open('your_file.fasta') as f:
print [line.rstrip() for line in f if not line.startswith('>')]
