大型FASTA d的列表

2024-04-26 22:45:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我在找可以加载的脚本法斯塔.txt由几个大的FASTA序列组成,根据它的报头(>;FASTA)和单独列表上的序列实例进行排序

下面您可以找到执行此任务的代码

def main(FASTA):


    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=[]
    seq_list=[]

    for line in in_file:

        line=line.strip()
        for i in line:
            if i=='>':
                name_list.append(line)
                if data:
                    seq_list.append(data)
                    data=''
                break
            else:
                line=line.upper()
        if all([k==k.upper() for k in line]):
            data=data+line

    #print seq_list[0] #TEST

怎么可能简化这样的代码?简单地说,它应该忽略>;FASTA titles将每个序列字符串加载到数据列表中,然后将所有数据实例编译到由每个序列组成的序列列表中,作为单独的列表元素。谢谢你的建议


Tags: 实例代码ingt列表fordataif
2条回答

如果我理解得很好,你可以这样做,给出一个这样的fasta文件:

!cat foo.fst 
>AAAAA
ATCGATCGATTCGATCGGAGCTAGGCTAGCGAATCGATCGATTCGATCGGAGCTAGGCTAGCGAATCGATCGATTCGATCGGAGCTA
>CCCCCC
CGGAGCTAGGCTAGCGAATCGATCGATTCGATCGGAGCTAGCGGAGCTAGGCTAGCGAATCGATCG
>BBBBBB
TCGATCGATTCGATCGGAGCTAGCGGAGCTAGGCTAGCGAATCGATCGATCGATTCGATCGGAGCTAGCGGAGCTAGGCTAG

注意:你需要biopython

^{pr2}$

然后,可以使用s.seq而不是s.name访问按名称排序的序列

希望这有帮助。 但如果它不能回答你的问题,请尽量说得更清楚些。在

你应该看看生物泰森。它有一个SeqIO模块,使您能够轻松地解析Fasta文件等。在

您可以在此处查看文档:http://biopython.org/DIST/docs/tutorial/Tutorial.html

相关问题 更多 >