mirror of
https://github.com/rdkit/rdkit.git
synced 2026-06-03 21:44:30 +08:00
220 lines
6.6 KiB
Plaintext
220 lines
6.6 KiB
Plaintext
# $Id$
|
|
#
|
|
# RDKit base fdef file.
|
|
# Created by Greg Landrum
|
|
#
|
|
|
|
AtomType NDonor [N&!H0&v3,N&!H0&+1&v4,n&H1&+0]
|
|
AtomType AmideN [$(N-C(=O))]
|
|
AtomType SulfonamideN [$([N;H0]S(=O)(=O))]
|
|
AtomType NDonor [$([Nv3](-C)(-C)-C)]
|
|
|
|
AtomType NDonor [$(n[n;H1]),$(nc[n;H1])]
|
|
|
|
AtomType ChalcDonor [O,S;H1;+0]
|
|
DefineFeature SingleAtomDonor [{NDonor},{ChalcDonor}]
|
|
Family Donor
|
|
Weights 1
|
|
EndFeature
|
|
|
|
# aromatic N, but not indole or pyrole or fusing two rings
|
|
AtomType NAcceptor [n;+0;!X3;!$([n;H1](cc)cc)]
|
|
AtomType NAcceptor [$([N;H0]#[C&v4])]
|
|
# tertiary nitrogen adjacent to aromatic carbon
|
|
AtomType NAcceptor [N&v3;H0;$(Nc)]
|
|
|
|
# removes thioether and nitro oxygen
|
|
AtomType ChalcAcceptor [O;H0;v2;!$(O=N-*)]
|
|
Atomtype ChalcAcceptor [O;-;!$(*-N=O)]
|
|
|
|
# Removed aromatic sulfur from ChalcAcceptor definition
|
|
Atomtype ChalcAcceptor [o;+0]
|
|
|
|
# Hydroxyls and acids
|
|
AtomType Hydroxyl [O;H1;v2]
|
|
|
|
# F is an acceptor so long as the C has no other halogen neighbors. This is maybe
|
|
# a bit too general, but the idea is to eliminate things like CF3
|
|
AtomType HalogenAcceptor [F;$(F-[#6]);!$(FC[F,Cl,Br,I])]
|
|
|
|
DefineFeature SingleAtomAcceptor [{Hydroxyl},{ChalcAcceptor},{NAcceptor},{HalogenAcceptor}]
|
|
Family Acceptor
|
|
Weights 1
|
|
EndFeature
|
|
|
|
# this one is delightfully easy:
|
|
DefineFeature AcidicGroup [C,S](=[O,S,P])-[O;H1,H0&-1]
|
|
Family NegIonizable
|
|
Weights 1.0,1.0,1.0
|
|
EndFeature
|
|
|
|
AtomType Carbon_NotDouble [C;!$(C=*)]
|
|
AtomType BasicNH2 [$([N;H2&+0][{Carbon_NotDouble}])]
|
|
AtomType BasicNH1 [$([N;H1&+0]([{Carbon_NotDouble}])[{Carbon_NotDouble}])]
|
|
AtomType PosNH3 [$([N;H3&+1][{Carbon_NotDouble}])]
|
|
AtomType PosNH2 [$([N;H2&+1]([{Carbon_NotDouble}])[{Carbon_NotDouble}])]
|
|
AtomType PosNH1 [$([N;H1&+1]([{Carbon_NotDouble}])([{Carbon_NotDouble}])[{Carbon_NotDouble}])]
|
|
AtomType BasicNH0 [$([N;H0&+0]([{Carbon_NotDouble}])([{Carbon_NotDouble}])[{Carbon_NotDouble}])]
|
|
AtomType QuatN [$([N;H0&+1]([{Carbon_NotDouble}])([{Carbon_NotDouble}])([{Carbon_NotDouble}])[{Carbon_NotDouble}])]
|
|
|
|
|
|
DefineFeature BasicGroup [{BasicNH2},{BasicNH1},{BasicNH0};!$(N[a])]
|
|
Family PosIonizable
|
|
Weights 1.0
|
|
EndFeature
|
|
|
|
# 14.11.2007 (GL): add !$([N+]-[O-]) constraint so we don't match
|
|
# nitro (or similar) groups
|
|
DefineFeature PosN [#7;+;!$([N+]-[O-])]
|
|
Family PosIonizable
|
|
Weights 1.0
|
|
EndFeature
|
|
|
|
# imidazole group can be positively charged (too promiscuous?)
|
|
DefineFeature Imidazole c1ncnc1
|
|
Family PosIonizable
|
|
Weights 1.0,1.0,1.0,1.0,1.0
|
|
EndFeature
|
|
# guanidine group is positively charged (too promiscuous?)
|
|
DefineFeature Guanidine NC(=N)N
|
|
Family PosIonizable
|
|
Weights 1.0,1.0,1.0,1.0
|
|
EndFeature
|
|
|
|
# the LigZn binder features were adapted from combichem.fdl
|
|
DefineFeature ZnBinder1 [S;D1]-[#6]
|
|
Family ZnBinder
|
|
Weights 1,0
|
|
EndFeature
|
|
DefineFeature ZnBinder2 [#6]-C(=O)-C-[S;D1]
|
|
Family ZnBinder
|
|
Weights 0,0,1,0,1
|
|
EndFeature
|
|
DefineFeature ZnBinder3 [#6]-C(=O)-C-C-[S;D1]
|
|
Family ZnBinder
|
|
Weights 0,0,1,0,0,1
|
|
EndFeature
|
|
|
|
DefineFeature ZnBinder4 [#6]-C(=O)-N-[O;D1]
|
|
Family ZnBinder
|
|
Weights 0,0,1,0,1
|
|
EndFeature
|
|
DefineFeature ZnBinder5 [#6]-C(=O)-[O;D1]
|
|
Family ZnBinder
|
|
Weights 0,0,1,1
|
|
EndFeature
|
|
DefineFeature ZnBinder6 [#6]-P(=O)(-O)-[C,O,N]-[C,H]
|
|
Family ZnBinder
|
|
Weights 0,0,1,1,0,0
|
|
EndFeature
|
|
|
|
|
|
# aromatic rings of various sizes:
|
|
#
|
|
# Note that with the aromatics, it's important to include the ring-size queries along with
|
|
# the aromaticity query for two reasons:
|
|
# 1) Much of the current feature-location code assumes that the feature point is
|
|
# equidistant from the atoms defining it. Larger definitions like: a1aaaaaaaa1 will actually
|
|
# match things like 'o1c2cccc2ccc1', which have an aromatic unit spread across multiple simple
|
|
# rings and so don't fit that requirement.
|
|
# 2) It's *way* faster.
|
|
#
|
|
|
|
#
|
|
# 21.1.2008 (GL): update ring membership tests to reflect corrected meaning of
|
|
# "r" in SMARTS parser
|
|
#
|
|
AtomType AromR4 [a;r4,!R1&r3]
|
|
DefineFeature Arom4 [{AromR4}]1:[{AromR4}]:[{AromR4}]:[{AromR4}]:1
|
|
Family Aromatic
|
|
Weights 1.0,1.0,1.0,1.0
|
|
EndFeature
|
|
AtomType AromR5 [a;r5,!R1&r4,!R1&r3]
|
|
DefineFeature Arom5 [{AromR5}]1:[{AromR5}]:[{AromR5}]:[{AromR5}]:[{AromR5}]:1
|
|
Family Aromatic
|
|
Weights 1.0,1.0,1.0,1.0,1.0
|
|
EndFeature
|
|
AtomType AromR6 [a;r6,!R1&r5,!R1&r4,!R1&r3]
|
|
DefineFeature Arom6 [{AromR6}]1:[{AromR6}]:[{AromR6}]:[{AromR6}]:[{AromR6}]:[{AromR6}]:1
|
|
Family Aromatic
|
|
Weights 1.0,1.0,1.0,1.0,1.0,1.0
|
|
EndFeature
|
|
AtomType AromR7 [a;r7,!R1&r6,!R1&r5,!R1&r4,!R1&r3]
|
|
DefineFeature Arom7 [{AromR7}]1:[{AromR7}]:[{AromR7}]:[{AromR7}]:[{AromR7}]:[{AromR7}]:[{AromR7}]:1
|
|
Family Aromatic
|
|
Weights 1.0,1.0,1.0,1.0,1.0,1.0,1.0
|
|
EndFeature
|
|
AtomType AromR8 [a;r8,!R1&r7,!R1&r6,!R1&r5,!R1&r4,!R1&r3]
|
|
DefineFeature Arom8 [{AromR8}]1:[{AromR8}]:[{AromR8}]:[{AromR8}]:[{AromR8}]:[{AromR8}]:[{AromR8}]:[{AromR8}]:1
|
|
Family Aromatic
|
|
Weights 1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0
|
|
EndFeature
|
|
|
|
# hydrophobic features
|
|
# any carbon that is not bonded to a polar atom is considered a hydrophobe
|
|
#
|
|
# 23.11.2007 (GL): match any bond (not just single bonds); add #6 at
|
|
# beginning to make it more efficient
|
|
AtomType Carbon_Polar [#6;$([#6]~[#7,#8,#9])]
|
|
# 23.11.2007 (GL): don't match charged carbon
|
|
AtomType Carbon_NonPolar [#6;+0;!{Carbon_Polar}]
|
|
|
|
DefineFeature ThreeWayAttach [D3,D4;{Carbon_NonPolar}]
|
|
Family Hydrophobe
|
|
Weights 1.0
|
|
EndFeature
|
|
|
|
DefineFeature ChainTwoWayAttach [R0;D2;{Carbon_NonPolar}]
|
|
Family Hydrophobe
|
|
Weights 1.0
|
|
EndFeature
|
|
|
|
# hydrophobic atom
|
|
AtomType Hphobe [c,s,S&H0&v2,Br,I,{Carbon_NonPolar}]
|
|
AtomType RingHphobe [R;{Hphobe}]
|
|
|
|
# nitro groups in the RD code are always: *-[N+](=O)[O-]
|
|
DefineFeature Nitro2 [N;D3;+](=O)[O-]
|
|
Family LumpedHydrophobe
|
|
Weights 1.0,1.0,1.0
|
|
EndFeature
|
|
|
|
#
|
|
# 21.1.2008 (GL): update ring membership tests to reflect corrected meaning of
|
|
# "r" in SMARTS parser
|
|
#
|
|
AtomType Ring6 [r6,!R1&r5,!R1&r4,!R1&r3]
|
|
DefineFeature RH6_6 [{Ring6};{RingHphobe}]1[{Ring6};{RingHphobe}][{Ring6};{RingHphobe}][{Ring6};{RingHphobe}][{Ring6};{RingHphobe}][{Ring6};{RingHphobe}]1
|
|
Family LumpedHydrophobe
|
|
Weights 1.0,1.0,1.0,1.0,1.0,1.0
|
|
EndFeature
|
|
|
|
AtomType Ring5 [r5,!R1&r4,!R1&r3]
|
|
DefineFeature RH5_5 [{Ring5};{RingHphobe}]1[{Ring5};{RingHphobe}][{Ring5};{RingHphobe}][{Ring5};{RingHphobe}][{Ring5};{RingHphobe}]1
|
|
Family LumpedHydrophobe
|
|
Weights 1.0,1.0,1.0,1.0,1.0
|
|
EndFeature
|
|
|
|
AtomType Ring4 [r4,!R1&r3]
|
|
DefineFeature RH4_4 [{Ring4};{RingHphobe}]1[{Ring4};{RingHphobe}][{Ring4};{RingHphobe}][{Ring4};{RingHphobe}]1
|
|
Family LumpedHydrophobe
|
|
Weights 1.0,1.0,1.0,1.0
|
|
EndFeature
|
|
|
|
AtomType Ring3 [r3]
|
|
DefineFeature RH3_3 [{Ring3};{RingHphobe}]1[{Ring3};{RingHphobe}][{Ring3};{RingHphobe}]1
|
|
Family LumpedHydrophobe
|
|
Weights 1.0,1.0,1.0
|
|
EndFeature
|
|
|
|
DefineFeature tButyl [C;!R](-[CH3])(-[CH3])-[CH3]
|
|
Family LumpedHydrophobe
|
|
Weights 1.0,0.0,0.0,0.0
|
|
EndFeature
|
|
|
|
DefineFeature iPropyl [CH;!R](-[CH3])-[CH3]
|
|
Family LumpedHydrophobe
|
|
Weights 1.0,1.0,1.0
|
|
EndFeature
|
|
|