我一直试图通过在不使用Biopython的情况下使用Python 3.5构建字典,在单个fasta文件中将多个DNA序列与其标题分开。我无法正常工作。任何建议,将不胜感激。非常感谢你。 标题跟随符号'>'
以下是单个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
答案 0 :(得分:2)
以下内容如何:
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)))
您将如何分析字典中的每条记录。让我们说你 想要计算序列中的一些字母?
代码生成一个字典,标题作为键,连接数据作为值。我添加了一个循环来提取标题和数据,并打印出数据长度的标题。