скрипт Python, используемый для рисования последовательности из отдельного файла - PullRequest
0 голосов
/ 26 ноября 2018

Я пытаюсь запустить скрипт Python для рисования последовательностей из отдельного файла (merged.fas), относительно списка (gene_fams_eggnog.txt), который я имею в качестве вывода из другой программы.

код выглядит следующим образом:

from Bio import SeqIO
import os, sys, re
sequences = "merged.fas"
all_seqs = SeqIO.index(sequences, "fasta")
gene_fams = {}

gene_fams_file = open("gene_fams_eggnog.txt")
for line in gene_fams_file:
   fields = re.split("\t", line.rstrip())
   gene_fams[fields[0]].append[fields[1]]

for fam in gene_fams.keys():
   output_filename = str(fam) + ".fasta"
   outh = open(output_filename, "w")
   for id in gene_fams[fam]:
     if id in all_seqs:
         outh.write(">" + all_seqs[id].description + "\n" + str(all_seqs[id].seq) + "\n")
     else:
        print "Uh oh! Sequence with ID " + str(id) + " is not in the all_seqs file!"
        quit()
     outh.close()

Однако я получаю сообщение об ошибке:

"File "make_fastafiles_from_gene_family_assignments.py", line 15, in <module>
    gene_fams[fields[0]].append(fields[1])
KeyError: '1'"

По какой-то причине оно не распознает поле, но его файл, безусловно, имеет 2 поля (0,1).

Файл выглядит следующим образом:

1   Saccharomycescerevisiae_DAA09367.1

1   bieneu_EED42827.1

1   Asp_XP_749186.1 

1   Mag_XP_003717339.1 

1   Mag_XP_003716586.1 

1   Mag_XP_003709453.1 

1   Asp_XP_749329.1 

(Между строками нет пробелов, по какой-то причине этот сайт отформатировал его следующим образом) Поле 0 изменяется через некоторое время,но это то, что группировка по сути.

Любая помощь приветствуется, JT

1 Ответ

0 голосов
/ 26 ноября 2018

Сначала нужно инициализировать gene_fams[fields[0]]=[], а затем добавить в этот список gene_fams[fields[0]].append(fields[1]).

...