不使用Biopython将头与fasta文件中的序列分开

2024-06-06 22:58:51 发布

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

我一直试图在一个fasta文件中从它们的头文件中分离出多个DNA序列,方法是用python3.5构建一个字典,而不使用Biopython。我不能让它正常工作。如有任何建议,我们将不胜感激。非常感谢你。 标题跟在符号“>;”

以下是单个fasta文件的示例:

>XM_021728176.1 PREDICTED: Ictidomys tridecemlineatus forkhead box N1 (Foxn1), transcript variant X1, mRNA
ATGGTGTCGCTACTCCCGCCACAGTCTGACGTCACGCTGCCTGGCCCCACCAGACTGGAGGGCGAGCCCC
AAGGGGACCTCATGCAGGCTCCGGGCCTCCCAGGCTCCCCTGCTCCACAGAGTAAGCACGCCGGCTTCAA
CTGCTCGTCATTTGTGCCCGACGGTCCTCCAGAGAGGGCACCCTCACTGCCCCCACACAGCCCGAGCATT
GCGTCACCAGGCCCCGAGCAAGTCCAGGGCCACTGCCCAGCCGGCCCTGGCCCAGGGCCTTTCCGGCTTT
CACCCTCAGATAAGTATCCTGGCTTTGGCTTTGAGGAGGGCCCAGCAAGCAGCCCTGGGCGCTACCTCAA
GGGCAACCACGTGCCCTTCCACCCATACAAGCGGCATTTCCATGAGGATATCTTCCCTGAAGCCCAGACC
GCCCTGGCCCTGGATGGACACTCCTTTAAGACCCCAGGGGCACTGGAGGCCTTTGAGGAGATCCCTGTGG
ACGTGGGGGAGGCCGAGGCCTTCCTGCCTGGTTTCCCTGCAGAGGCCTGGTGCAATGGGCTCCCTTACCC
CAGCCAGGAGCATGGCCAAGTCCTGCAGGCGTCAGAGGTCAAGATCAAGCCTCCAGCTCTGGAGAATGGT
CCTGGGATGTACTGCTACCAACCCCCCTTGCAGCACATGTACTGCCCTTCCCAGCCCCCTTTCCACCAGT
ATTCACAGGGTGGTGGCAGCTACCCTGTACCCTACCTGGGCTCCTCTCACTATCCATACCAGCGGATCGC
ACCCCAGGCCAGCGCTGATGGGCACCAGCCGCTCTTCCCCAAACCCATCTACTCCTACAGCATCCTCATC
TTCATGGCCCTCAAGAACAGCAAAACTGGAAGCCTGCCTGTCAGCGAGATCTACAATTTTATGACGGAGC

>XM_006532268.2 PREDICTED: Mus musculus forkhead box N1 (Foxn1), transcript variant X15, mRNA
CTCTCCAGGGAGACTCAGGATCAGGATGCTGCTGTGGAAGTGCAGAGAGCTCTGCTGACACAGCCTGGAA
TGGACAGCCTCGCCTGGCGCTGAGCCCCAAGGCCTCCCAGCTGCTCTGTGGTGCTGGGTCAGGGTTCTAC
AACAACAGTTCAGAAGGGGACTGGGTGATGGTGTCGCTACTCCCTCCGCAGTCTGACGTCACACTTCCAG
GCTCCACCCGACTGGAGGGCGAACCCCAAGGGGACCTCATGCAGGCTCCGGGCCTCCCAGACTCCCCTGC
CCCACAGAACCAGGGGTCAGAGGTCAAGGTCAAGCCCCAAGCTCTGGACAGTGGTCCTGGGATGTACTGC
TACCAGCCTCCCTTGCAACATATGTACTGTTCTTCTCAGCCTGCCTTCCATCAGTACTCCCCGGGTGGAG
GCAGCTACCCTGTGCCCTACCTGGGCTCACCTCACTATCCCTATCAGAGGATTGCACCCCAGGCCAACGC
CGAAGGTCACCAGCCACTCTTCCCAAAGCCCATCTACTCTTACAGCATCCTCATCTTCATGGCCCTTAAG
AACAGTAAGACCGGAAGCCTTCCAGTCAGTGAAATCTACAATTTCATGACGGAGCACTTCCCTTACTTCA
AGACTGCTCCTGATGGCTGGAAGAATTCTGTTCGCCATAACCTGTCCCTCAACAAGTGCTTTGAGAAGGT
GGAGAATAAATCCGGAAGTTCCTCTCGAAAGGGCTGTCTGTGGGCCCTCAATCCTTCCAAAATCGACAAG
ATGCAGGAAGAACTGCAGAAGTGGAAGAGGAAAGACCCCATTGCTGTGCGCAAAAGCATGGCCAAACCAG
AAGAGCTGGACAGCCTCATTGGAGACAAAAGGGAAAAACTGGGCTCTCCGCTGCTGGGCTGTCCACCCCC
TGGGCTGGCAGGCCCAGGTCCCATCCGGCCCATGGCACCATCAGCTGGTCTTTCCCAGCCTCTGCACCCA

Tags: 文件方法box头文件序列fastadnatranscript
1条回答
网友
1楼 · 发布于 2024-06-06 22:58:51

以下情况如何:

import sys

sequences = {}

with open(sys.argv[1]) as fasta:
    header = None
    data = ''

    for line in fasta:
        if line.startswith('>'):
            if header and data:
                sequences[header] = data
            data = ''
            header = line.rstrip()
        else:
            data += line.rstrip()

    if header and data:
        sequences[header] = data  # deal with the last one in the file

for header, data in sequences.items():
    print('{}; {}bp'.format(header, len(data)))

How would you analyze each record in the dictionary. Lets say you wanna count a number of letters in the sequence?

代码生成一个字典,其中头作为键,连接的数据作为值。我添加了一个循环来提取标题和数据,并打印出带有数据长度的标题。在

相关问题 更多 >