SMARTS and SMIRKS templates for Reactor

User 677b9c22ff

03-08-2007 23:11:20

Hi,


I was designing some reactions and Reactor has already a terms helper, which pops up with right click in the reaction


rules definition window. However the definition of the different functional groups is very hard to understand for somebody


who doesn't write reactions SMARTS everyday. I know I can lookup in the Daylight definitions, but template window with


common functional groups and combined groups would be helpful. This could include groups like amidine amidine carboxylate


tertamine amide, but the Marvin Sketch groups are not really helpful (these are drawing templates only). Also I am not sure if the


functest groups covers all common groups.





Is it possible to call the Evaluator.xml


from within Reactor? Mabye also some short explanations like in many of these excellent (sic!) Powerpoints about Reactor.





It takes a long time to search for all these definitions and PT etc.pp. And writing reactions in SMARTS is like writing


a complete operating system using the most esoteric programming language.


Tobias











<Mol ID="pos" Structure="[*+]"/>


<Mol ID="nitro" Structure="[O:2]~[N:1]=[O:3]"/>


<Mol ID="amine" Structure="C[N:1]"/>


<Mol ID="tertamine" Structure="C[N:1](C)C"/>


<Mol ID="aniline" Structure="c[N:1]"/>


<Mol ID="amide" Structure="[#7:1][C,P,S:2]=O"/>


<Mol ID="hydrazine" Structure="NN"/>


<Mol ID="phenylhydrazine" Structure="c[N:1][N:2]"/>


<Mol ID="hydrazide" Structure="[#7:1]NC=O"/>


<Mol ID="amidine" Structure="[#7:2][C,P,S:1]=[N:3]"/>


<Mol ID="neg" Structure="[*-]"/>


<Mol ID="carbox" Structure="[H][O:3][C:1]=[O:2]"/>


<Mol ID="carboxylate" Structure="[H][O:3][C:1]=[O:2]"/>


<Mol ID="sulfonyl" Structure="[H][O:3](=[O:2])=[O:4]"/>


<Mol ID="sulfonate" Structure="[O-:3](=[O:4])=[O:2]"/>


<Mol ID="phosphonyl" Structure="[H][O:4][P:1]([O:2])=[O:3]"/>


<Mol ID="phosphonate" Structure="[O:4][P:1]([O-:2])=[O:3]"/>


<Mol ID="arom" Structure="[*;a]"/>


<Mol ID="cx" Structure="[C,F,Cl,Br,I,At]"/>


<Mol ID="nos" Structure="[#7,#8,#16]"/>


<Mol ID="pyr" Structure="[nX3]"/>


<Mol ID="qh" Structure="[!#1!#6:1][H]"/>





[C:4][O;X2:3][CH1:1]([#6:2])[O;X2:3][C:4] acetal


[CX2:1]#[CX2:1] acetylene


[CX3:1](=[OX1:2])[F,Cl,Br,I:3] acid_halide


[C:1][OH;!$(OC~[!#1!#6]):2] alcohol


[CX3H1:1]=[OX1;!$(O=C~[!#1!#6]):2] aldehyde


[CH1:1]=[N:2][OH1:3] aldoxime


[A:1] aliphatic


[#6X4:1][NX3;!$(NC~[!#1!#6]);!$(Nc):2] aliphatic_amine


[!#1!#6;A:1] aliphatic_hetero


  • alkali_metal


    [Be,Mg,Ca,Sr,Ba,Ra:1] alkaline_earth_metal


    [C:1]=[C:1] alkene


    [CX2:1](=[C:2])=[C:2] allene


    [CH2:3]=[CH:2][CH2:1] allyl


    [NX3:2][CX3:1]=[OX1:3] amide


    [NX3:3][C:1]=[NX2:2] amidine


    [#6X4:1][NX3;!$(NC~[!#1!#6]):2] amine


    [#6:1][NX4+:2] ammonium


    [CX3:1](=[OX1:2])[OX2:3][CX3:1]=[OX1:2] anhydride


    [c:1][NX3;!$(NC~[!#1!#6]):2] aniline


    [*:1] any_atom


    [a:1] aromatic


    [!#1!#6;a:1] aromatic_hetero


    [$([NX2-:1]-[NX2+:2]#[NX1:3]),$([NX2:1]=[NX2+:2]=[NX1-:3])] azide


    [#6:1][SX4:2]([#6:1])(=[O:4])=[N:3] azosulfone


    [#6:1][$([NX2:2]=[NX3+:3]([O-:4])[#6:5]),$([NX2:2]=[NX3+0:3](=[O:4])[#6:5])] azoxy


    [NX3,NX4+:2][CX3:1](=[OX1:3])[OX2,OX1-:4] carbamate


    [C:1](=[OX1:2])([O:3][#6:4])[O:3][#6:4] carbonate


    [CX3:1]=[OX1:2] carbonyl


    [CX3:1](=[O:2])[OX2H1:3] carboxyl


    [CX3:1](=[O:2])[O-:3] carboxylate


    [*;R0:1] chain


    [NX3:3][CX2:1]#[NX1:2] cyanamide


    [$([#6:1]=[N+:2]=[N-:3]),$([#6-:1]-[N+:2]#[N:3])] diazo


    [#6:1][SX2H0:2][SX2H0:2][#6:1] disulfide


    [NX3;!$(NC~[!#1!#6]):3][CX3:1]=[CX3:2] enamine


    [OX2H:3][CX3:2]=[C:1] enol


    [#6:5][OX2:2][CX3:1](=[O:3])[#6:4] ester


    [OD2;!$(OC~[!#1!#6]):2]([#6:1])[#6:1] ether


    [F,Cl,Br,I:1] halogen


    [!#1!#6:1] hetero


    [#6:1][NX3:2][NX3:3] hydrazine


    [NX3:3][NX2:2]=[C:1] hydrazone


    [#6:1][OH;!$(O[#6]~[!#1!#6]):2] hydroxyl


    [NX2:2][OH1:3] hydroxylamine


    [CX3:1](=[OX1:3])[NX3:2][CX3:1](=[OX1:3]) imide


    [CX3:1]=[NX2;!$(N~C~[!#1!#6]):3][#6,#1:2] imine


    [NX3+:2]=[CX3:1] iminium


    [NX2:2]=[C:1]=[OX1:3] isocyanate


    [N+:2]#[C-:1] isocyanide


    [NX2+:2]#[CX1-:1] isonitrile


    [NX2:2]=[C:1]=[SX1:3] isothiocyanate


    [C:4][O;X2:3][C:1]([#6:2])([#6:2])[O;X2:3][C:4] ketal


    [C:1]=[C:2]=[OX1:3] ketene


    [#6:2][CX3:1](=[O:3])[#6:2] ketone


    [C:1](=[N:2][OH1:3])([#6:4])[#6:4] ketoxime


    [!#1!#2!#5!#6!#7!#8!#9!#10!#14!#15!#16!#17!#18!#32!#33!#34!#35!#36!#51!#52!#53!#54!#85!#86:1] metal


    metalloid


    [#7:1][OX1;!$(O[#7]~[!#1!#6]):2] N_oxide


    [NX1:2]#[CX2:1] nitrile


    [#6:1][$([NX3:2](=[O:3])=[O:3]),$([NX3+:1](=[O:3])[O-:3])] nitro


    [NX2:1]=[OX1:2] nitroso


    [#1,#2,#6,#7,#8,F,#10,#15,#16,Cl,#18,#34,Br,#36,I,#54,#86:1] nonmetal


    [C:1]=[N:2][OH1:3] oxime


    [OX2,OX1-][OX2,OX1-] peroxide


    [c:1][OX2H:2] phenol


    [#1,#6:1][P;!$(P#6~[!#1!#6]):2]([#1,#6:1])[#1,#6:1] phosphine


    [#6X4:1][NX3H2;!$(NC~[!#1!#6]):2] primary_amine


    [*H1,H2,H3,H4+:1] protonated


    [*;R:1] ring


    [#6:1][SX2H0;!$(SC~[!#1!#6]):2][#6:1] sulfide


    [#6:1][$([SX4:2]([NX3:3])(=[OX1:4])(=[OX1:4])),$([SX4+2:2]([NX3:3])([OX1-:4])([OX1-:4]))] sulfonamide


    [$([SX4:2](=[OX1:3])(=[OX1:3])([#6:1])[#6:1]),$([SX4+2:2]([OX1-:3])([OX1-:3])([#6:1])[#6:1])] sulfone


    [#6:1][$([SX4:2](=[OX1:4])(=[OX1:4])[OX2H,OX1H0-:3]),$([SX4+2:2]([OX1-:4])([OX1-:4])[OX2H,OX1H0-:3])] sulfonic acid


    [$([#SX3:2](=[OX1:3])([#6:1])[#6:2]),$([SX3+:2]([OX1-:3])([#6:1])[#6:1])] sulfoxide


    [NX3:2][CX3:1]=[SX1:3] thioamide


    [CX3:1](=)[SX2H1:3] thiocarboxide


    [CX3:1](=) thiocarboxylate


    [#6:5][SX2:2][CX3:1](=[O:3])[#6:4] thioester


    [#6:1][SH;!$(S[#6]~[!#1!#6]):2] thiol


    [NX3:2][CX3:1](=[SX1:3])[NX3:2] thiourea


    [NX3:2][CX3:1](=[OX1:3])[NX3:2] urea


    [CX3:1]=[CX3:1] vinyl


ChemAxon d76e6e95eb

04-08-2007 10:32:15

Reactor uses Evaluator for the evaluation of the rules. Same feature set is applied, just in a reaction context.





The Chemical Terms editor already supports a set of predefined functional groups. It is different from the abbreviated group list, and it looks very similar to your embedded list. Is it the same? ;)





These functional groups can be used in reactor but in other areas as well. Try, for example you can add this expression as an additional filter to your query in Instant JChem or in the NCI section of the online


JSP example:


Code:
match(ether)



It will return all compounds having ether functionality (which is distingushed from ester!).





The system uses a lookup dictionary of functional groups. So, chemists can refer to functional groups by name, and the complexity of queries are hidden in the background.





As I said, you can already refer to it in the reaction editor. Unfortunately, the editor does not currently support the popup functionality of the functional groups, though this feature is on our to do list. Furthermore, the functional group list is not complete, lots of important ones are missing. We would like to allow you to extend that lookup dictionary directly in the editor in the future.

User 677b9c22ff

05-08-2007 23:00:12

Hi,


Gyuri wrote:



The Chemical Terms editor already supports a set of predefined functional groups. It is different from the abbreviated group list, and it looks very similar to your embedded list. Is it the same? ;)


Yes the list from your website (see link above).
Gyuri wrote:



These functional groups can be used in reactor but in other areas as well. Try, for example you can add this expression as an additional filter to your query in Instant JChem or in the NCI section of the online


JSP example:


Code:
match(ether)



It will return all compounds having ether functionality (which is distingushed from ester!).


Well, thats exactly my point, you know it probably very well,


for me its hard to distinguish a imidazole or imidazoline (ok thats certainly not Reactors fault).


What I want to say is that certain smarts dont hit on NH2 if they are connected to a aromatic ring nitrogen lets say.





So its helpful to have a guide for SMARTS and reactions and functional groups already within the Reactor GUI.


It makes the whole user experience much better. Thats why


I had the BrainF*ck example above in my post. Because whoever can explain the SMARTS function


[$([#1X1][$([nX3](:*):*),$([nX2](:*):*),$([#7X2]=*),$([NX3](=*)=*),$([#7X3+](-*)=*),$([#7X3+H]=*)])]


to me without looking it up, please step forward (and replace with more complex code ;-).





Tobias

ChemAxon d76e6e95eb

06-08-2007 09:59:21

Unfortunately the functional group list is not yet completed. Do you think, that an explanation for each functional group SMARTS would do?

User 677b9c22ff

21-08-2007 04:23:44

Gyuri wrote:
Unfortunately the functional group list is not yet completed. Do you think, that an explanation for each functional group SMARTS would do?
Hi Gyuri,


there are several small lists from MDL and Daylight and OpenBabel and pharma companies and group contribution methods from the literature but the problems with SMARTS is


you never know what they hit. I guess the scaffold set of useful functional groups is like 5000 to 10000 groups, so on the other hand it actually doesn't matter what there name is,


or one can create the naming function to create a name.


I just thought it will be very helpful for people who are new to it.


Tobias

ChemAxon d76e6e95eb

27-08-2007 13:09:05

Yes you are absolutely right.