用于帮助从单独文件中绘制序列的python脚本

用于帮助从单独文件中绘制序列的python脚本,python,sequence,bioinformatics,biopython,Python,Sequence,Bioinformatics,Biopython,我正在尝试运行一个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_egg

我正在尝试运行一个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'"
(两行之间没有空格,出于某种原因,本网站已将其格式化为这样) 字段0在一段时间后会更改,但这就是分组的本质所在

感谢您的帮助,
JT

您需要先初始化
基因家族[fields[0]]=[]
,然后将其追加到此列表
基因家族[fields[0]]。追加(fields[1])
追加
应使用不同的括号,如:
追加(fields[1])
。如果不起作用,请尝试使用集合导入defaultdict中的
,并将
基因fams={}
更改为
基因fams=defaultdict(列表)
拆分空行会导致
[']
(或者
['\n']
,如果它们仍然包含换行符)。
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