python - 将 FASTA 文件中的多个序列添加到 python 列表中

标签 python list append sequence fasta

我正在尝试用多个序列组织文件。这样做时,我试图将名称添加到列表中,并将序列添加到与名称列表平行的单独列表中。我想出了如何将名称添加到列表中,但我无法弄清楚如何将其后的序列添加到单独的列表中。我尝试将序列行 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

如何将序列作为一组字符串添加到列表中?

输入文件是这样的

enter image description here

最佳答案

如果您正在使用 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/

相关文章:

python - 将循环的结果分配给 Python 中的变量

python - 根据 Python 中的月份列表制作列表

Jquery .append 语法

python - 使用python的Mysql LIMIT OFFSET错误

python - 在子进程中调用包装器脚本

python - 如何将具有相同索引的两个单独列表的组合元素插入到另一个列表?

Java链接列表无法将项目添加到末尾

python - 寻找一种解决方案来检测带有列表的类属性中的值更改并追加

python - 内部类 - 继承和覆盖它们的属性

python - 如何启动一个进程并将其置于 python 后台?