我是这个RDKit的新手,下面是我用来从公式中获取化学图像的代码,
from rdkit import Chem
m = Chem.MolFromSmiles('OCC1OC(C(C(C1O)O)O)[C]1(C)(CO)CC(=O)C=C(C1CCC(=O)C)C')
m
如果代码是正确的,它会显示结构。上面的代码显示错误消息
"[15:23:55] Explicit valence for atom # 11 C, 5, is greater than permitted"
我试着添加尝试捕捉,但它没有帮助。
我需要捕获此异常/消息并将其显示给用户。
我们如何才能做到这一点?Issue Image Here
try:
from rdkit import Chem
m = Chem.MolFromSmiles('OCC1OC(C(C(C1O)O)O)[C]1(C)(CO)CC(=O)C=C(C1CCC(=O)C)C')
m
except Exception as e:
print(e)
1条答案
按热度按时间h7appiyu1#
这不是一个错误,而是一个警告。你的代码在执行该赋值时不会中断。所以没有错误要捕捉。
但是您的解决方案在于返回
Chem.MolFromSmiles
,如果它无法构建SMILES的mol对象,则返回None
,而当它设法“正确处理SMILES”时,则返回mol对象。当然,您可以自己引发错误!
我知道我的答案是缺乏。我的解决方案是不转发警告给用户。我觉得这是很难做到的。如果有一个解决方案,它可能会发现利用
logging
或warnings
包。我也会感兴趣,但不能管理到目前为止,我自己。