Я пытаюсь сгенерировать библиотеку идентификаторов последовательностей и последующей последовательности (как ключ, пары значений, соответственно) из файла 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