1. 首页
  2. 编程语言
  3. Python
  4. 使用rdkit将SMILES转换成三维坐标数据并提取数据

使用rdkit将SMILES转换成三维坐标数据并提取数据

上传者: 2023-03-20 18:26:14上传 PY文件 603B 热度 8次

从 rdkit 包中导入 Chem 和 AllChem,然后通过正则表达式,将SMILES字符串转换为三维坐标数据,同时提取其中的位置信息和元素符号。代码如下:

from rdkit import Chem

from rdkit.Chem import AllChem

import re

smiles = "CC(=O)OC1=CC=C1C(=O)O"

mol = Chem.MolFromSmiles(smiles)

mol3d = Chem.AddHs(mol)

statis = Chem.MolToMolBlock(mol3d)

coords = re.findall(r'(-?\d+.\d+)\s+(-?\d+.\d+)\s+(-?\d+.\d+)\s+(\w+)', statis)

new_coords = []

for coord in coords:

new_coords.append([coord[0], coord[1], coord[2]])

print(new_coords)

下载地址
用户评论