请写一段代码计算多个分子的相似性
时间: 2024-02-09 16:12:32 浏览: 136
以下是使用Python中的RDKit库计算多个分子的相似性的示例代码:
```python
from rdkit import Chem
from rdkit.Chem import AllChem
from rdkit import DataStructs
# 定义分子列表
molecules = [Chem.MolFromSmiles('CCO'), Chem.MolFromSmiles('CCN'), Chem.MolFromSmiles('CCC')]
# 生成分子指纹
fps = [AllChem.GetMorganFingerprintAsBitVect(m, 2, nBits=1024) for m in molecules]
# 计算指纹相似性得分
similarity_matrix = []
for i in range(len(molecules)):
row = []
for j in range(len(molecules)):
score = DataStructs.TanimotoSimilarity(fps[i], fps[j])
row.append(score)
similarity_matrix.append(row)
# 输出相似性得分
for row in similarity_matrix:
print(row)
```
这段代码中,我们首先定义了一个分子列表,其中包含三个分子。然后,我们使用RDKit中的GetMorganFingerprintAsBitVect方法生成每个分子的指纹。接着,我们使用TanimotoSimilarity方法计算每两个分子之间的相似性得分。最后,我们输出相似性得分矩阵。
阅读全文