在python中处理异常并继续for循环

2024-06-08 07:06:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码:

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=[]

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

    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

有没有人建议让异常处理工作起来,从而完成对指定列表的迭代,而不是停止脚本?你知道吗


Tags: ofingo列表forlenservicerange
1条回答
网友
1楼 · 发布于 2024-06-08 07:06:57

好吧,我刚刚意识到问题是错误来自不同的代码。。。所以我基本上什么都不想处理。我现在已经修好了,多亏了所有的人。你知道吗

相关问题 更多 >

    热门问题