DeepAcceptor / compound_constants.py
jinysun's picture
Upload 10 files
36c5570
# -*- coding: utf-8 -*-
"""
Created on Thu Jul 28 21:20:20 2022
@author: BM109X32G-10GPU-02
"""
"""
| Compound constants.
"""
# functional groups from https://www.daylight.com/dayhtml_tutorials/languages/smarts/smarts_examples.html
DAY_LIGHT_FG_SMARTS_LIST = [
# C
"[CX4]",
"[$([CX2](=C)=C)]",
"[$([CX3]=[CX3])]",
"[$([CX2]#C)]",
# C & O
"[CX3]=[OX1]",
"[$([CX3]=[OX1]),$([CX3+]-[OX1-])]",
"[CX3](=[OX1])C",
"[OX1]=CN",
"[CX3](=[OX1])O",
"[CX3](=[OX1])[F,Cl,Br,I]",
"[CX3H1](=O)[#6]",
"[CX3](=[OX1])[OX2][CX3](=[OX1])",
"[NX3][CX3](=[OX1])[#6]",
"[NX3][CX3]=[NX3+]",
"[NX3,NX4+][CX3](=[OX1])[OX2,OX1-]",
"[NX3][CX3](=[OX1])[OX2H0]",
"[NX3,NX4+][CX3](=[OX1])[OX2H,OX1-]",
"[CX3](=O)[O-]",
"[CX3](=[OX1])(O)O",
"[CX3](=[OX1])([OX2])[OX2H,OX1H0-1]",
"C[OX2][CX3](=[OX1])[OX2]C",
"[CX3](=O)[OX2H1]",
"[CX3](=O)[OX1H0-,OX2H1]",
"[NX3][CX2]#[NX1]",
"[#6][CX3](=O)[OX2H0][#6]",
"[#6][CX3](=O)[#6]",
"[OD2]([#6])[#6]",
# H
"[H]",
"[!#1]",
"[H+]",
"[+H]",
"[!H]",
# N
"[NX3;H2,H1;!$(NC=O)]",
"[NX3][CX3]=[CX3]",
"[NX3;H2;!$(NC=[!#6]);!$(NC#[!#6])][#6]",
"[NX3;H2,H1;!$(NC=O)].[NX3;H2,H1;!$(NC=O)]",
"[NX3][$(C=C),$(cc)]",
"[NX3,NX4+][CX4H]([*])[CX3](=[OX1])[O,N]",
"[NX3H2,NH3X4+][CX4H]([*])[CX3](=[OX1])[NX3,NX4+][CX4H]([*])[CX3](=[OX1])[OX2H,OX1-]",
"[$([NX3H2,NX4H3+]),$([NX3H](C)(C))][CX4H]([*])[CX3](=[OX1])[OX2H,OX1-,N]",
"[CH3X4]",
"[CH2X4][CH2X4][CH2X4][NHX3][CH0X3](=[NH2X3+,NHX2+0])[NH2X3]",
"[CH2X4][CX3](=[OX1])[NX3H2]",
"[CH2X4][CX3](=[OX1])[OH0-,OH]",
"[CH2X4][SX2H,SX1H0-]",
"[CH2X4][CH2X4][CX3](=[OX1])[OH0-,OH]",
"[$([$([NX3H2,NX4H3+]),$([NX3H](C)(C))][CX4H2][CX3](=[OX1])[OX2H,OX1-,N])]",
"[CH2X4][#6X3]1:[$([#7X3H+,#7X2H0+0]:[#6X3H]:[#7X3H]),$([#7X3H])]:[#6X3H]:\
[$([#7X3H+,#7X2H0+0]:[#6X3H]:[#7X3H]),$([#7X3H])]:[#6X3H]1",
"[CHX4]([CH3X4])[CH2X4][CH3X4]",
"[CH2X4][CHX4]([CH3X4])[CH3X4]",
"[CH2X4][CH2X4][CH2X4][CH2X4][NX4+,NX3+0]",
"[CH2X4][CH2X4][SX2][CH3X4]",
"[CH2X4][cX3]1[cX3H][cX3H][cX3H][cX3H][cX3H]1",
"[$([NX3H,NX4H2+]),$([NX3](C)(C)(C))]1[CX4H]([CH2][CH2][CH2]1)[CX3](=[OX1])[OX2H,OX1-,N]",
"[CH2X4][OX2H]",
"[NX3][CX3]=[SX1]",
"[CHX4]([CH3X4])[OX2H]",
"[CH2X4][cX3]1[cX3H][nX3H][cX3]2[cX3H][cX3H][cX3H][cX3H][cX3]12",
"[CH2X4][cX3]1[cX3H][cX3H][cX3]([OHX2,OH0X1-])[cX3H][cX3H]1",
"[CHX4]([CH3X4])[CH3X4]",
"N[CX4H2][CX3](=[OX1])[O,N]",
"N1[CX4H]([CH2][CH2][CH2]1)[CX3](=[OX1])[O,N]",
"[$(*-[NX2-]-[NX2+]#[NX1]),$(*-[NX2]=[NX2+]=[NX1-])]",
"[$([NX1-]=[NX2+]=[NX1-]),$([NX1]#[NX2+]-[NX1-2])]",
"[#7]",
"[NX2]=N",
"[NX2]=[NX2]",
"[$([NX2]=[NX3+]([O-])[#6]),$([NX2]=[NX3+0](=[O])[#6])]",
"[$([#6]=[N+]=[N-]),$([#6-]-[N+]#[N])]",
"[$([nr5]:[nr5,or5,sr5]),$([nr5]:[cr5]:[nr5,or5,sr5])]",
"[NX3][NX3]",
"[NX3][NX2]=[*]",
"[CX3;$([C]([#6])[#6]),$([CH][#6])]=[NX2][#6]",
"[$([CX3]([#6])[#6]),$([CX3H][#6])]=[$([NX2][#6]),$([NX2H])]",
"[NX3+]=[CX3]",
"[CX3](=[OX1])[NX3H][CX3](=[OX1])",
"[CX3](=[OX1])[NX3H0]([#6])[CX3](=[OX1])",
"[CX3](=[OX1])[NX3H0]([NX3H0]([CX3](=[OX1]))[CX3](=[OX1]))[CX3](=[OX1])",
"[$([NX3](=[OX1])(=[OX1])O),$([NX3+]([OX1-])(=[OX1])O)]",
"[$([OX1]=[NX3](=[OX1])[OX1-]),$([OX1]=[NX3+]([OX1-])[OX1-])]",
"[NX1]#[CX2]",
"[CX1-]#[NX2+]",
"[$([NX3](=O)=O),$([NX3+](=O)[O-])][!#8]",
"[$([NX3](=O)=O),$([NX3+](=O)[O-])][!#8].[$([NX3](=O)=O),$([NX3+](=O)[O-])][!#8]",
"[NX2]=[OX1]",
"[$([#7+][OX1-]),$([#7v5]=[OX1]);!$([#7](~[O])~[O]);!$([#7]=[#7])]",
# O
"[OX2H]",
"[#6][OX2H]",
"[OX2H][CX3]=[OX1]",
"[OX2H]P",
"[OX2H][#6X3]=[#6]",
"[OX2H][cX3]:[c]",
"[OX2H][$(C=C),$(cc)]",
"[$([OH]-*=[!#6])]",
"[OX2,OX1-][OX2,OX1-]",
# P
"[$(P(=[OX1])([$([OX2H]),$([OX1-]),$([OX2]P)])([$([OX2H]),$([OX1-]),\
$([OX2]P)])[$([OX2H]),$([OX1-]),$([OX2]P)]),$([P+]([OX1-])([$([OX2H]),$([OX1-])\
,$([OX2]P)])([$([OX2H]),$([OX1-]),$([OX2]P)])[$([OX2H]),$([OX1-]),$([OX2]P)])]",
"[$(P(=[OX1])([OX2][#6])([$([OX2H]),$([OX1-]),$([OX2][#6])])[$([OX2H]),\
$([OX1-]),$([OX2][#6]),$([OX2]P)]),$([P+]([OX1-])([OX2][#6])([$([OX2H]),$([OX1-]),\
$([OX2][#6])])[$([OX2H]),$([OX1-]),$([OX2][#6]),$([OX2]P)])]",
# S
"[S-][CX3](=S)[#6]",
"[#6X3](=[SX1])([!N])[!N]",
"[SX2]",
"[#16X2H]",
"[#16!H0]",
"[#16X2H0]",
"[#16X2H0][!#16]",
"[#16X2H0][#16X2H0]",
"[#16X2H0][!#16].[#16X2H0][!#16]",
"[$([#16X3](=[OX1])[OX2H0]),$([#16X3+]([OX1-])[OX2H0])]",
"[$([#16X3](=[OX1])[OX2H,OX1H0-]),$([#16X3+]([OX1-])[OX2H,OX1H0-])]",
"[$([#16X4](=[OX1])=[OX1]),$([#16X4+2]([OX1-])[OX1-])]",
"[$([#16X4](=[OX1])(=[OX1])([#6])[#6]),$([#16X4+2]([OX1-])([OX1-])([#6])[#6])]",
"[$([#16X4](=[OX1])(=[OX1])([#6])[OX2H,OX1H0-]),$([#16X4+2]([OX1-])([OX1-])([#6])[OX2H,OX1H0-])]",
"[$([#16X4](=[OX1])(=[OX1])([#6])[OX2H0]),$([#16X4+2]([OX1-])([OX1-])([#6])[OX2H0])]",
"[$([#16X4]([NX3])(=[OX1])(=[OX1])[#6]),$([#16X4+2]([NX3])([OX1-])([OX1-])[#6])]",
"[SX4](C)(C)(=O)=N",
"[$([SX4](=[OX1])(=[OX1])([!O])[NX3]),$([SX4+2]([OX1-])([OX1-])([!O])[NX3])]",
"[$([#16X3]=[OX1]),$([#16X3+][OX1-])]",
"[$([#16X3](=[OX1])([#6])[#6]),$([#16X3+]([OX1-])([#6])[#6])]",
"[$([#16X4](=[OX1])(=[OX1])([OX2H,OX1H0-])[OX2][#6]),$([#16X4+2]([OX1-])([OX1-])([OX2H,OX1H0-])[OX2][#6])]",
"[$([SX4](=O)(=O)(O)O),$([SX4+2]([O-])([O-])(O)O)]",
"[$([#16X4](=[OX1])(=[OX1])([OX2][#6])[OX2][#6]),$([#16X4](=[OX1])(=[OX1])([OX2][#6])[OX2][#6])]",
"[$([#16X4]([NX3])(=[OX1])(=[OX1])[OX2][#6]),$([#16X4+2]([NX3])([OX1-])([OX1-])[OX2][#6])]",
"[$([#16X4]([NX3])(=[OX1])(=[OX1])[OX2H,OX1H0-]),$([#16X4+2]([NX3])([OX1-])([OX1-])[OX2H,OX1H0-])]",
"[#16X2][OX2H,OX1H0-]",
"[#16X2][OX2H0]",
# X
"[#6][F,Cl,Br,I]",
"[F,Cl,Br,I]",
"[F,Cl,Br,I].[F,Cl,Br,I].[F,Cl,Br,I]",
]