我正在尝试用多个序列组织文件。这样做时,我试图将名称添加到列表中,并将序列添加到与名称列表平行的单独列表中。我想出了如何将名称添加到列表中,但我无法弄清楚如何将其后的序列添加到单独的列表中。我尝试将序列行 append 到一个空字符串中,但它将所有序列的所有行 append 到一个字符串中。
所有的名字都以'>'开头
def Name_Organizer(FASTA,output):
import os
import re
in_file=open(FASTA,'r')
dir,file=os.path.split(FASTA)
temp = os.path.join(dir,output)
out_file=open(temp,'w')
data=''
name_list=[]
for line in in_file:
line=line.strip()
for i in line:
if i=='>':
name_list.append(line)
break
else:
line=line.upper()
if all([k==k.upper() for k in line]):
data=data+line
print data
如何将序列作为一组字符串添加到列表中?
输入文件是这样的
最佳答案
如果您正在使用 Python 和 fasta 文件,您可能需要考虑安装 BioPython.它已经包含此解析功能,以及更多内容。
解析一个 fasta 文件就这么简单:
from Bio import SeqIO
for record in SeqIO.parse('filename.fasta', 'fasta'):
print record.id, record.seq
关于python - 将 FASTA 文件中的多个序列添加到 python 列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9557713/