生物分子模拟论坛

 找回密码
 我想注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2428|回复: 1

[AutoDock&Vina] AttributeError: Docking instance has no attribute 'ligMol' 问题详解

[复制链接]
发表于 2017-7-12 21:41:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,下载更多分子模拟资源。

您需要 登录 才可以下载或查看,没有帐号?我想注册

x
写在前面:该问题目前并没有解决。

最近使用autodock进行对接,过程中出现两个错误:
1, 运行autogrid4时直接报的error2,这是因为进行autogrid时候没有指定autogrid4.exe的路径,指定绝对路径后,运行,没有问题。
2, 运行autogrid4,autodock4后得到dlg文件,点击Analyse --> Dockings ---> Open, 打开dlg文件,报错,错误如下:

Traceback (most recent call last):
  File "C:\Program Files (x86)\MGLTools-1.5.6\lib\site-packages\ViewerFramework\VF.py", line 898, in tryto
    result = command( *args, **kw )
  File "C:\Program Files (x86)\MGLTools-1.5.6\lib\site-packages\AutoDockTools\autoanalyzeCommands.py", line 3852, in doit
    d.readDlg(dlgFile)
  File "C:\Program Files (x86)\MGLTools-1.5.6\lib\site-packages\AutoDockTools\Docking.py", line 105, in readDlg
    self.ch = ConformationHandler(self.ligMol,
AttributeError: Docking instance has no attribute 'ligMol'

查看原始代码:
autoanalyzeCommands.py 中执行了代码如下(部分代码):

[Python] 纯文本查看 复制代码
from Docking import Docking
if not addToPrevious or not self.vf.docked:
    d = self.vf.docked = Docking()
d = self.vf.docked
d.readDlg(dlgFile)


而readDlg正是Docking类的一个方法,见Docking.py, Docking类下readDlg方法的定义如下(部分代码):

[Python] 纯文本查看 复制代码
	def readDlg(self, dlgFile, ligand=None):
        if ligand is not None:
            self.ligMol = ligand
        if self.defaultParser:
            dlo = DockingLogObject(self, dlgFile)
        else:
            dlo = DockingLogObject(self, dlgFile, self.parser)

        if len(dlo.parser.WARNINGS):
            self.warnings.extend(dlo.parser.WARNINGS)

        self.version = dlo.version
        if not self.ch:
            self.ch = ConformationHandler(self.ligMol, dlo.dpo['about']['value'])

                                                                          
从代码中可以看到ConformationHandler中有self.ligMol参数。而self.ligMol参数在前面的if语句中定义了,即:

[Python] 纯文本查看 复制代码
        if ligand is not None:
            self.ligMol = ligand


这里是关键,ligand默认是None, 而调用的时候是用的d.readDlg(digFile),并没有传入ligand参数,也就是,这里ligand=None,该if语句不执行,也即self.ligMol不存在。这也是出现AttributeError: Docking instance has no attribute 'ligMol'的原因。

问题在于:不论digFile长什么样子,ligand始终为None,self.ligMol始终不存在。程序始终会报错。


发表于 2019-6-9 10:45:45 | 显示全部楼层
你好,我也遇到这个问题,请问您解决了吗?谢谢
您需要登录后才可以回帖 登录 | 我想注册

本版积分规则

QQ|分迪科技|小黑屋|手机版|Archiver|生物分子模拟论坛 ( 蜀ICP备14009200号-3

GMT+8, 2019-8-20 20:20 , Processed in 0.113913 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表