python - 将多行作为一个字符串填充字典

标签 python python-3.x dictionary bioinformatics biopython

我有一个包含多行 FASTA 格式的文件,我想将其分解并用这些片段填充字典。

>piece_1 
Lorem ipsum dolor sit amet
consectetur adipiscing elit. Nam a pellentesque mi. 
>piece_2 
Integer dignissim ultrices eros a consequat. Praesent vestibulum
>piece_3 
Morbi eget sollicitudin mauris. Nunc varius felis 
vitae dui congue hendrerit. Nam semper venenatis auctor.  
Suspendisse potenti. Suspendisse facilisis velit vel convallis 
fringilla. Duis condimentum auctor mauris eu lobortis. 

我想根据上面的文本创建一个字典,其中包含所有单独的文本片段,键为 >piece_1 等。

到目前为止,我设法用所有键填充字典,但我不知道如何从文件中提取文本。

f = open('Output.txt', 'r')
mydict = dict()

for index, line in enumerate(f):
    if line[:1]=='>':
        mydict[index] = line #instead, the key should be line with the value being the relative text.
        print(line, end='')

最佳答案

我建议使用 Biopython ,它会比自己编写解决方案更健壮和简洁:

>>> from Bio import SeqIO
>>> d = SeqIO.to_dict(SeqIO.parse('input.fa', 'fasta'))

对于您的数据:

>>> d['piece_1']
SeqRecord(seq=Seq('Loremipsumdolorsitametconsecteturadipiscingelit.Namape...mi.', SingleLetterAlphabet()), id='piece_1', name='piece_1', description='piece_1', dbxrefs=[])
>>> str(d['piece_1'].seq)
'Loremipsumdolorsitametconsecteturadipiscingelit.Namapellentesquemi.'

关于python - 将多行作为一个字符串填充字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56292055/

相关文章:

python - 为什么我的python程序总是显示相反的 react

python - 如何使用 zip 迭代 x 个列表

python - 如何避免使用回调函数创建全局变量

python - 让一个数字遍历数组中的 3 个数字

python - 合并列表字典中具有相同值的键

python - 展平 Pandas 数据透视表

python - 当我尝试使用opencv和camgear从youtube获得实时流时,出现以下错误

Python3.3 : . format() with unicode format_spec

python - 列表作为字典中不可 JSON 序列化的条目

python - 将值分配给嵌套字典错误