2

我有以下代码:

import Bio
from bioservices import KEGGParser, UniProt, QuickGO

#start a new method of my custom 'Retrieve_Data' class
def locate_common_GO(self,list_of_genes,GO_term):
    
    #initialize variables and classes
    q = QuickGO()
    a = Retrieve_Data()
    b=[]

使用(自定义方法)获取 uniprot IDShugo2uniprot

for i in range(0,len(list_of_genes)):
    b.append(a.hugo2uniprot(list_of_genes[i],'hsa'))
    print 'Gene: {} \t UniProtID: {}'.format(list_of_genes[i],b[i])
    

搜索 GO 术语(使用bioservices' QuickGO)并存储为字典

GO_dict = {}
q = QuickGO()

我拥有的一些大型基因名称列表没有返回任何命中。这些导致AttributeError我想要处理然后移动到列表中的下一个项目。当前代码返回错误:

AttributeError:“int”对象没有属性“split”。

错误源于bioservices模块内(所以当我打电话时q.Annotation

for i in range(len(b)):
    try:
        GO_dict[list_of_genes[i]] = q.Annotation(protein=b[i], frmt="tsv", _with=True,tax=9606, source="UniProt", col="goName")
    except AttributeError:
        continue

# The rest of this code is irrelevant to my problem but I've included it for completeness: 
# Essentially it is designed to locate specific keywords in the results of the above code and return the gene name that they came from. 
keys = GO_dict.keys()
matches = []
for gene in range(0,len(keys)):
    if GO_term in GO_dict[keys[gene]].splitlines():
        matches.append(keys[gene])
return matches

有没有人有任何建议让异常处理工作,以便完成对指定列表的迭代而不是停止脚本?

4

1 回答 1

1

好的,我刚刚意识到问题在于错误来自不同的代码......所以我基本上什么都不做。我现在已经解决了,感谢所有回复的人。

于 2014-11-13T16:31:32.740 回答