写一段代码片段打分
时间: 2024-02-21 11:59:26 浏览: 139
以下是一个使用 RDKit 库计算分子 Tanimoto 相似度的 Python 代码片段:
```python
from rdkit import Chem
from rdkit import DataStructs
from rdkit.Chem import AllChem
# 读取两个 SMILES
smiles1 = 'CC(=O)OCC'
smiles2 = 'CC(=O)NC(C)C'
# 将 SMILES 转换为分子对象
mol1 = Chem.MolFromSmiles(smiles1)
mol2 = Chem.MolFromSmiles(smiles2)
# 计算分子的 Morgan 指纹
fp1 = AllChem.GetMorganFingerprint(mol1, 2)
fp2 = AllChem.GetMorganFingerprint(mol2, 2)
# 计算 Tanimoto 相似度
similarity = DataStructs.TanimotoSimilarity(fp1, fp2)
# 输出结果
print('Tanimoto similarity between %s and %s is %.2f' % (smiles1, smiles2, similarity))
```
在上述代码中,我们首先读取两个 SMILES(`smiles1` 和 `smiles2`),然后将它们转换为 RDKit 分子对象(`mol1` 和 `mol2`)。接下来,我们使用 Morgan 指纹算法计算它们的分子指纹(`fp1` 和 `fp2`),然后使用 Tanimoto 相似度算法计算它们之间的相似度(`similarity`)。最后,我们将结果输出到控制台中。
请注意,上述代码中使用的是 Morgan 指纹和 Tanimoto 相似度算法。您可以根据您的需求选择不同的指纹算法和相似度算法。
阅读全文