计算化学公社

标题: 求助有没有懂RDKit的大佬,想利用RDKit读取out文件 [打印本页]

作者
Author:
0325-ddd    时间: 2023-12-3 21:17
标题: 求助有没有懂RDKit的大佬,想利用RDKit读取out文件
想要利用RDKit读取Gaussian的out文件之后从分子结构中提取所有的分子描述符,现在用了下面的代码之后,显示[size=13.0667px][21:13:29] Cannot convert ' De' to unsigned int on line 4Failed to read molecule structure from the Gaussian output file.[size=13.0667px]初步猜测可能是RDKit的函数选择的不正确(可能是由于输出文件的信息太多,因为这个函数读取的文件格式和out文件格式不太一样)(因为out文件gauss view和multiwfn都可以正确的显示分子),不知道有没有大佬做过类似的任务,有没有别的解决方法?代码中只显示了部分要提取的分子性质from rdkit import Chem
from rdkit.Chem import Descriptors
from rdkit.Chem import AllChem

# 读取 Gaussian out 文件
with open('D:\\int-out\\1a.out', 'r') as file:
    content = file.read()

# 使用 RDKit 读取分子结构
molecule = Chem.MolFromMolFile('D:\\int-out\\1a.log')

# 计算分子的一般性质
if molecule:
    # 计算分子的LogP
    mol_logp = Descriptors.MolLogP(molecule)
    print(f'Molecular LogP: {mol_logp}')

    # 计算分子的总电荷
    mol_charge = AllChem.GetFormalCharge(molecule)
    print(f'Total Charge: {mol_charge}')
else:
    print('Failed to read molecule structure from the Gaussian output file.')



作者
Author:
doublezhang    时间: 2023-12-3 21:31
你要找的是不是: cclib ?
作者
Author:
0325-ddd    时间: 2023-12-4 21:10
doublezhang 发表于 2023-12-3 21:31
你要找的是不是: cclib ?

刚刚查了下这个好像确实可以,您用过嘛?可以指点下我嘛?谢谢大佬
作者
Author:
duyunguye    时间: 2023-12-5 14:39
Chem.MolFromMolFile()是读取mol文件的,不能读取out文件。你可以提取out文件里的坐标按照xyz文件格式写一个xyz文件然后用Chem.MolFromXYZBlock转成rdkit可读的mol文件格式再去做后续任务。
作者
Author:
0325-ddd    时间: 2023-12-5 17:04
duyunguye 发表于 2023-12-5 14:39
Chem.MolFromMolFile()是读取mol文件的,不能读取out文件。你可以提取out文件里的坐标按照xyz文件格式写一 ...

好的,我试一下,谢谢您!我是不是应该选择能量最低的那个坐标?就是对应SCF Done值的那个坐标?
作者
Author:
0325-ddd    时间: 2023-12-5 17:06
duyunguye 发表于 2023-12-5 14:39
Chem.MolFromMolFile()是读取mol文件的,不能读取out文件。你可以提取out文件里的坐标按照xyz文件格式写一 ...

好的谢谢您!我试一下,我想问下您提取这个坐标有没有比较快速提取的脚本?我的out文件有点多




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3