1 引入所需库
#! /usr/bin/python
# coding: utf-8
# rdkit 操作分子对象
from rdkit import Chem
2 获取分子中的原子
smi='CC(C)OC(=O)C(C)NP(=O)(OCC1C(C(C(O1)N2C=CC(=O)NC2=O)(C)F)O)OC3=CC=CC=C3'
mol = Chem.MolFromSmiles(smi)
atoms = mol.GetAtoms()
atoms_num = mol.GetNumAtoms()
print(atoms) # <rdkit.Chem.rdchem._ROAtomSeq object at 0x1050ddc10>
print(atoms[0]) # <rdkit.Chem.rdchem.Atom object at 0x10aa13760>
print('类型=',type(atoms)) # 类型= <class 'rdkit.Chem.rdchem._ROAtomSeq'>
print('类型0=',type(atoms[0])) # 类型0= <class 'rdkit.Chem.rdchem.Atom'>
print("省略氢的原子数=",atoms_num)
3 获取原子的坐标信息
注:前提,导入的原子必须带有坐标信息
print(mol.GetConformer().GetAtomPosition(1)[0])
print(mol.GetConformer().GetAtomPosition(1).x)
print(mol.GetConformer().GetAtomPosition(1).y)
print(mol.GetConformer(