用pandas库读入csv文件中一列smiles数据,并将其依次转换为mol格式,再用QED模块计算类药性,并写入原csv表格中
时间: 2024-06-11 16:06:46 浏览: 13
以下是一个示例代码,假设csv文件名为data.csv,smiles数据在第一列,需要安装rdkit、pandas和py3Dmol库:
```python
from rdkit import Chem
from rdkit.Chem import QED
import pandas as pd
import py3Dmol
# 读入csv文件
df = pd.read_csv('data.csv')
# 将smiles数据转换为mol格式,并计算QED值
qeds = []
for smiles in df.iloc[:, 0]:
mol = Chem.MolFromSmiles(smiles)
qed = QED.qed(mol)
qeds.append(qed)
# 将QED值添加到原表格中
df['QED'] = qeds
# 展示一个分子的3D结构
mol = Chem.MolFromSmiles(df.iloc[0, 0])
mb = Chem.MolToMolBlock(mol)
v = py3Dmol.view(width=400, height=400)
v.addModel(mb, 'sdf')
v.setStyle({'stick': {}})
v.setBackgroundColor('0xeeeeee')
v.zoomTo()
v.show()
```
这段代码首先读入csv文件,然后用循环将每个smiles数据转换为mol格式,并计算QED值,最后将QED值添加到原表格中。在最后展示了第一个分子的3D结构,需要用py3Dmol库渲染。需要注意的是,这段代码假设smiles数据在第一列,如果不是需要修改`df.iloc[:, 0]`的索引。