У меня есть файл в следующем формате:Чтение Fasta формат файла в Python словарь
>seq1
ATGGGTGTGTGTGTG
>seq2
ATGTGTTTGTGTGCTCCTCCTC
>seq3
AACGTCGTGACGGGTGCGTGGTGTGTGTCCAA
Я хочу, чтобы прочитать этот файл как словарь в Python. Я знаю функции BIO-python, но я хочу изучить скрипты на python в дополнение к выполнению моей работы. Я попробовал этот код до сих пор:
import sys
sequence = ' '
fasta = {}
with open(sys.argv[1]) as file_one:
file_one_content = file_one.read()
for line in file_one_content.split("\n"):
if not line.strip():
continue
if line.startswith(">"):
sequence_name = line.rstrip('\n').replace(">", "")
else:
sequence = line.rstrip('\n')
if sequence_name not in fasta:
fasta[sequence_name] = []
fasta[sequence_name].append(sequence)
print fasta
Я получаю следующий вывод:
{'seq3': ['ATGTGTTTGTGTGCTCCTCCTC', 'AACGTCGTGACGGGTGCGTGGTGTGTGTCCAA'], 'seq2': ['ATGGGTGTGTGTGTG', 'ATGTGTTTGTGTGCTCCTCCTC'], 'seq1': [' ', 'ATGGGTGTGTGTGTG']}
Мой ожидается выход файла:
{ 'seq3': [ 'AACGTCGTGACGGGTGCGTGGTGTGTGTCCAA'], ' seq2 ': [' ATGTGTTTGTGTGCTCCTCCTC '],' seq1 ': [' ATGGGTGTGTGTGTG ']}
Я пытался понять, почему словарь напечатан неправильно, но я не могу найти ошибку. Как я хочу узнать, было бы здорово, если бы вы могли сообщить мне, как я могу исправить ошибку в своем коде. Благодарю.
Ваш ожидаемый результат? –
Пожалуйста, покажите нам фактический файл ввода и ожидаемый результат для этого входного файла. –