【发布时间】:2018-09-10 08:42:21
【问题描述】:
我正在尝试从 FASTA 文件生成序列标识符库和后续序列(分别作为键、值对),但遇到了我的新手编程大脑无法解决的问题。
简而言之,我的多行 FASTA 文件(如下所示)被存储为每个键的多个值。 FASTA 文件中的每个新行都会产生一个新值,而不是将整个序列存储为每个序列标识符的单个值。
我的代码在下面,我从中提取的示例 FASTA 文件在下面。有关如何将整个序列存储为单个值而不是多个值的任何帮助都会有所帮助!看来我还有很多阅读要做……
提前感谢您的帮助!
import sys
sequence = ''
fasta = {}
def seqs_from_file(filename):
with open(filename) as f:
for line in f:
line = line.rstrip("\n")
if not line:
continue
if line.startswith(">"):
seq_name = line[1:]
if seq_name not in fasta:
fasta[seq_name] = []
continue
sequence = line
fasta[seq_name].append(sequence)
print(fasta) # printing here is just so I can see if my dict. was correctly made
来自 FASTA 文件的示例:
>646311950
ATGAATAATCGAGTCCACCAGGGCCACTTAGCCCGTAAACGCTTCGGGCA
AAACTTTCTCAACGATCAGTTCGTGATCGACAGTATTGTGTCTGCCATTA
ACCCGCAAAAGGGCCAGGCGATGGTCGAAATCGGCCCCGGTCTGGCGGCA
TTGACCGAACCGGTCGGCGAACGTCTGGACCAGCTGACGGTCATCGAACT
TGACCGCGATCTGGCGGCACGTCTGCAAACGCATCCATTCTTAGGCCCGA
AACTGACGATTTATCAGCAGGATGCGATGACCTTTAACTTTGGTGAACTG
GCCGAGAAAATGGGTCAGCCGCTGCGTGTTTTCGGCAACCTGCCTTATAA
CATCTCCACGCCGTTGATGTTCCATCTGTTTAGCTATACTGATGCCATTG
CCGACATGCACTTTATGTTGCAAAAAGAGGTGGTGAATCGTCTGGTTGCA
GGACCGAACAGCAAAGCGTATGGTCGATTAAGCGTCATGGCGCAATACTA
TTGCAATGTGATCCCGGTACTGGAAGTACCGCCGTCAGCCTTTACACCAC
CACCCAAAGTGGATTCCGCCGTCGTGCGCCTGGTTCCTCATGCAACGATG
CCTCACCCGGTTAAAGATGTTCGTGTGTTGAGCCGCATCACCACCGAAGC
CTTTAACCAGCGTCGTAAAACCATTCGTAACAGCCTCGGCAACCTGTTTA
GCGTCGAGGTGTTAACGGGAATGGGGATCGACCCGGCGATGCGAGCGGAA
AATATCTCTGTCGCGCAATATTGCCAGATGGCGAACTATCTGGCGGAGAA
CGCGCCTTTGCAGGAGAGTTAA
【问题讨论】:
标签: python dictionary fasta