python - 使用 RDKit 计算 sdf 文件和结构 SMILE 之间的 Tanimoto 相似度?

标签 python scipy rdkit

我正在使用 RDKIt 和 Python 3.7 来计算 sdf(每个结构的微笑)中的数据库与分子的相似度,其中我有微笑。我找到了一种使用以下代码仅计算两个 SMILES 之间的 Tanimoto 指数的方法:

import numpy as np 
import scipy
import matplotlib
import matplotlib.pyplot as plt
import rdkit as  rd
from rdkit import Chem

ref = Chem.MolFromSmiles('Nc1nc2nc(N)nc(N)c2nc1-c1cccc(Cl)c1')
mol1 = Chem.MolFromSmiles('structure smiles')
fp1 = Chem.RDKFingerprint(ref)
fp2 = Chem.RDKFingerprint(mol1)

Tan  =DataStructs.TanimotoSimilarity(fp1,fp2)

print (Tan)

有没有办法用 sdf 文件替换 mol1?

最佳答案

您可以使用 SDMolSupplier 迭代 SDF。

from rdkit import Chem, DataStructs

ref = Chem.MolFromSmiles('Nc1nc2nc(N)nc(N)c2nc1-c1cccc(Cl)c1')
fp1 = Chem.RDKFingerprint(ref)

suppl = Chem.SDMolSupplier('yourSDF.sdf')
for mol in suppl:
    fp2 = Chem.RDKFingerprint(mol)
    Tan = DataStructs.TanimotoSimilarity(fp1,fp2)
    print(Tan)

关于python - 使用 RDKit 计算 sdf 文件和结构 SMILE 之间的 Tanimoto 相似度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57945564/

相关文章:

python - 在 Python3 中使用 %x 格式化不好吗?

python - 使用 python 脚本填充数据库

Python:如何将复杂数组转换为二维数组?

python - 使用 python 计算矢量场的散度

python - 从 matplotlib 获取网格点

python - Python 中的多重继承有问题吗?

python - 如何使用 python 将值列表插入到 mysql 数据库中?

python - RDKit 的函数 MolFromInchi 不起作用

python - IPython.display : how to change width, 显示图像的高度和分辨率

pip - 如何使用 pip 从 Conda 安装包 rdkit?