Мне нужно сделать общий синтаксический анализатор для разбора файлов fasta с использованием Python.
Формат такой:
>gi|348686675|gb|JH159151.1| Phytophthora sojae unplaced genomic scaffold PHYSOscaffold_1, whole genome shotgun sequence
TACGAGAATAATTTCTCATCATCCAGCTTTAACACAAAATTCGCA
>gi|348686675|gb|JH159151.1| Phytophthora sojae unplaced genomic scaffold PHYSOscaffold_2, whole genome shotgun sequence
CAGTTTTCGTTAAGAGAACTTAACATTTTCTTATGACGTAAATGA
AGTTTATATATAAATTTCCTTTTTATTGGA
>gi|348686675|gb|JH159151.1| Phytophthora sojae unplaced genomic scaffold PHYSOscaffold_3, whole genome shotgun sequence
GAACTTAACATTTTCTTATGACGTAAATGAAGTTTATATATAAATTTCCTTTTTATTGGA
TAATATGCCTATGCCGCATAATTTTTATATCTTTCTCCTAACAAAACATTCGCTTGTAAA
Мне нужно получить каждый заголовок и последовательность отдельно и вставить значения в мою созданную базу данных MySQL.
eg: title1 = PHYSOscaffold_1
sequence2 = TACGAGAATAATTTCTCATCATCCAGCTTTAACACAAAATTCGCA
title2 = PHYSOscaffold_2
sequence1 = CAGTTTTCGTTAAGAGAACTTAACATTTTCTTATGACGTAAATGA AGTTTATATATAAATTTCCTTTTTATTGGA
и так далее... Я вставляю эти значения в таблицу MySQL.
Результат моего синтаксического анализа должен быть таким:
name1 \t sequence1 \t length_of_sequence \t a_count \t t_count \t g_count \t c_count
name2 \t sequence2 \t length_of_sequence \t a_count \t t_count \t g_count \t c_count
До сих пор я написал очень простой скрипт, подобный этому:
infile = open("simple.fasta")
line = infile.readline()
if not line.startswith(">"):
raise TypeError("Not a FASTA file: %r" % line)
title = line
sequence_lines = []
while 1:
line = infile.readline().rstrip()
if line == "":
break
sequence_lines.append(line)
Я получаю только свою первую последовательность и заголовок.
Я новичок и мне нужна помощь специалиста.