2014-03-05 33 views
1

我以下網頁上的教程: http://pythonhosted.org/bioservices/compound_tutorial.htmlPython包:Bioservices,使用錯誤Unichem的()命令

一切工作順利,直到我到了下面的命令:

uni = UniChem() 

,然後我收到該錯誤消息:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "P:\Anaconda\lib\site-packages\bioservices\unichem.py", line 84, in __init__ 
    maxid_service = int(self.get_all_src_ids()[-1]['src_id']) 
TypeError: list indices must be integers, not str 

作爲最低工作示例:

from bioservices import * 
uni = UniChem() 

然後我收到錯誤消息。我理解錯誤(大部分),但我不知道如何解決它。所以我的問題是如何解決這個功能或解決它?

總體目標是將1000個藥物名稱(希望在不久的將來會更多)列表映射到Chembl ID。

回答

0

您看到的錯誤可能與以下事實有關:當您嘗試連接到UniChem服務時,它因維護而關閉,或者花費太多時間進行初始化。結果是服務沒有啓動,因此你得到了錯誤信息。

我只是試着(bioservices 1.2.6)

from bioservices import * 
uni = UniChem() 

和它的工作。以下要求也起作用:

>>> mapping = uni.get_mapping("kegg_ligand", "chembl") 
'CHEMBL278315'