1

我正在使用带有 Python 3.7 的 RDKIt 来计算 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 ?

4

1 回答 1

2

您可以使用SDMolSupplier.

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)
于 2019-09-15T16:28:12.260 回答