载入包
from rdkit import Chem
载入smiles
mol = Chem.MolFromSmiles("CC1=C(N(N=N1)C)C2=CC3=C(C4=C(N3C(C5CCOCC5)C6=CC=CC=C6)C=C(C=C4)C(C)(C)O)N=C2")
转换
s = Chem.MolToSmarts(mol)
smart = s.replace('#6', 'C').replace('#8', 'O').replace('#15', 'P').replace('#7', 'N')
print(Chem.MolToSmiles(mol))
print(s)
print(smart)
结果
Cc1nnn(C)c1-c1cnc2c3ccc(C(C)(C)O)cc3n(C(c3ccccc3)C3CCOCC3)c2c1
[#6]-[#6]1:[#6](:[#7](:[#7]:[#7]:1)-[#6])-[#6]1:[#6]:[#6]2:[#6](:[#6]3:[#6](:[#7]:2-[#6](-[#6]2-[#6]-[#6]-[#8]-[#6]-[#6]-2)-[#6]2:[#6]:[#6]:[#6]:[#6][#6]:2):[#6]:[#6](:[#6]:[#6]:3)-[#6](-[#6])(-[#6])-[#8]):[#7]:[#6]:1
[C]-[C]1:[C](:[N](:[N]:[N]:1)-[C])-[C]1:[C]:[C]2:[C](:[C]3:[C](:[N]:2-[C](-[C]2-[C]-[C]-[O]-[C]-[C]-2)-[C]2:[C]:[C]:[C]:[C]:[C]:2):[C]:[C](:[C]:[C]:3)-[C](-[C])(-[C])-[O]):[N]:[C]:1