diff --git a/chython/files/libinchi/libinchi_arm64.dylib b/chython/files/libinchi/libinchi_arm64.dylib new file mode 100644 index 00000000..4a6edc9a Binary files /dev/null and b/chython/files/libinchi/libinchi_arm64.dylib differ diff --git a/chython/reactor/reactions/_DIBAL_reduction.py b/chython/reactor/reactions/_DIBAL_reduction.py new file mode 100644 index 00000000..527f354f --- /dev/null +++ b/chython/reactor/reactions/_DIBAL_reduction.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'DIBAL_Reduction', + 'description': 'Reducing esters and nitriles to aldehydes using DIBAL-H', + 'templates': [ + # Template 1: Ester and DIBAL-H to CHO + { + 'A': [ + # Ester + '[O;x0;z2;M]=[C;D3;x2;z2:1][O;D2;x0;z1:2]' + ], + 'product': '[A:1]', + 'alerts': [], + 'ufe': { + 'A': 2 + } + }, + # Template 2: Nitriles and DIBAL-H to CHO + { + 'A': [ + # Nitrile + '[N;D1;z3;x0:2]#[C;D2;x1;z3:1]' + ], + 'product': '[A:1]=[O]', + 'alerts': [], + 'ufe': { + 'A': 2 + } + }, + ], + 'alerts': [] +} \ No newline at end of file diff --git a/chython/reactor/reactions/__init__.py b/chython/reactor/reactions/__init__.py index 78e2f9e9..1652282a 100644 --- a/chython/reactor/reactions/__init__.py +++ b/chython/reactor/reactions/__init__.py @@ -29,6 +29,57 @@ from ._sonogashira import template as songashira_template from ._sulfonamidation import template as sulfonamidation_template from ._suzuki_miyaura import template as suzuki_miyaura_template +from ._aza_cope_mannich import template as aza_cope_mannich_template +from ._DIBAL_reduction import template as DIBAL_reduction_template +from ._diels_alder import template as diels_alder_template +from ._evans_aldol import template as evans_aldol_template +from ._biginelli import template as biginelli_template +from ._swern_oxidation import template as swern_oxidation_template +from ._ugi import template as ugi_template +from ._bucherer_bergs import template as bucherer_bergs_template +from ._hantzsch import template as hantzsch_template +from ._gilman import template as gilman_template +from ._heck import template as heck_template +from ._horner_wadsworth_emmons import template as horner_wadsworth_emmons_template +from ._nazarov_cyclization import template as nazarov_cyclization_template +from ._kabachnik_fields import template as kabachnik_fields_template +from ._mannich import template as mannich_template +from ._passerini import template as passerini_template +from ._pauson_khand import template as pauson_khand_template +from ._robinson_annulation import template as robinson_annulation_template +from ._gewald import template as gewald_template +from ._petasis import template as petasis_template +from ._pfitzinger import template as pfitzinger_template +from ._arndt_eistert import template as arndt_eistert_template +from ._baeyer_villiger import template as baeyer_villiger_template +from ._baeyer_mills import template as baeyer_mills_template +from ._balz_schiemann import template as balz_schiemann_template +from ._baylis_hillman import template as baylis_hillman_template +from ._beckmann import template as beckmann_template +from ._chan_lam import template as chan_lam_template +from ._click import template as click_template +from ._doebner_miller import template as doebner_miller_template +from ._eschenmoser import template as eschenmoser_template +from ._ester_hydrolysis import template as ester_hydrolysis_template +from ._fischer_indole import template as fischer_indole_template +from ._gould_jacobs import template as gould_jacobs_template +from ._hayashi_miyaura import template as hayashi_miyaura_template +from ._knorr_quinoline import template as knorr_quinoline_template +from ._olefin_metathesis import template as olefin_metathesis_template +from ._paal_knorr_pyrrole import template as paal_knorr_pyrrole_template +from ._perkin import template as perkin_template +from ._pictet_spengler import template as pictet_spengler_template +from ._prins_pinacol import template as prins_pinacol_template +from ._reformatsky import template as reformatsky_template +from ._riley_oxidations import template as riley_oxidations_template +from ._sandmayer import template as sandmayer_template +from ._schotten_baumann import template as schotten_baumann_template +from ._stille_coupling import template as stille_coupling_template +from ._ullmann import template as ullmann_template +from ._wittig import template as wittig_template +from ._wolff_rearrangement import template as wolff_rearrangement_template +from ._wurtz import template as wurtz_template +from ._wurtz_fittig import template as wurtz_fittig_template from ..reactor import Reactor, fix_mapping_overlap from ... import smarts, ReactionContainer, MoleculeContainer diff --git a/chython/reactor/reactions/_arndt_eistert.py b/chython/reactor/reactions/_arndt_eistert.py new file mode 100644 index 00000000..9fd5b6b6 --- /dev/null +++ b/chython/reactor/reactions/_arndt_eistert.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name' : 'Arndt-Eistert Synthesis', + 'description': 'Formation of homologated carboxylic acids by reaction of the activated carboxylic acids with diazomethane', + 'templates': [ + { + 'A': [ + # Ar-COOH + '[O;x0;z2;M]=[C;x2:1]([O;M])[C;a:2]', + # Alk-COOH + '[O;x0;z2;M]=[C;x2:1]([O;M])[C;z1:2]' + ], + 'B': [ + # CH2N2 + '[C;x1;z2:3]=[N+;x1:4]=[N-;x1:5]' + ], + 'product': '[A:2][A:3][A:1]', + 'alerts': [], + 'ufe': { + 'A': 1, + 'B': '[A:4][A:5]' + } + } + ], + 'alerts':[] +} diff --git a/chython/reactor/reactions/_aza_cope_mannich.py b/chython/reactor/reactions/_aza_cope_mannich.py new file mode 100644 index 00000000..98972854 --- /dev/null +++ b/chython/reactor/reactions/_aza_cope_mannich.py @@ -0,0 +1,64 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Aza-Cope Mannich Reaction', + 'description': 'Sigmatropic rearrangement of an unsaturated iminium cation to complex cyclic molecules', + 'templates' : [ + #Three Aza-Cope Mannich Reaction + { + 'A': [ + # Alk#Alk-Alk-N + '[C;x0,x1;z2:1]=[C;x1;z2:2]([O;M])[C;x1;z1:3][N;z1:4][C;x1;z1;M][C;x0;z1;M][C;z3:5]#[C;z3:6]', + # Ar-N + '[C;x0,x1;z2:1]=[C;x1;z2:2]([O;M])[C;x1;z1:3][N;z1:4][C;x1;z1;M][C;a;M]:[C;a;M][C;z3:5]#[C;z3:6]', + # Alk#Alk-Alk-Alk-N + '[C;x0,x1;z2:1]=[C;x1;z2:2]([O;M])[C;x1;z1:3][N;z1:4][C;z1;M][C;z1;M][C;z1;M][C;z3:5]#[C;z3:6]' + ], + 'product': '[A:1]1=[A:2][A:3][A:5]([A:4])[A:6]1', + 'alerts': [], + 'ufe': { + 'A': '[A:1][A:6]' + } + }, + #Two Aza-Cope Mannich Reaction + { + 'A': [ + # Iminium + '[N;D2;x0;z1:1][C;x1;z1:2][C;x1;z1:3]([O:4])[C;D2;x0;z2:5]=[C;x0;z2:6]' + ], + 'B': [ + # Formaldehyde + '[O;z2;x0:7]=[C;D1;x1;z2:8]', + # 2,2-dimethoxypropane + '[O;z1:7]-[C;x2;z1:8]-[O;z1:9]' + ], + 'product': '[A:1]1[A:2][A:5]([A:3]=[A:4])[A:6][A:8]1', + 'alerts': [], + 'ufe': { + 'A': '[A:1][A:6]', + 'B': '[A:7][A:9]' + } + } + ], + 'alerts': [] +} diff --git a/chython/reactor/reactions/_baeyer_mills.py b/chython/reactor/reactions/_baeyer_mills.py new file mode 100644 index 00000000..57cf27c1 --- /dev/null +++ b/chython/reactor/reactions/_baeyer_mills.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name' : 'Baeyer-Mills Reaction', + 'description': 'Aniline and a nitrosoarene to produce azobenzenes', + 'templates': [ + { + 'A': [ + # Ar-N=O + '[N;D2;x1;z2:1](=[O;x1;z2:2])[C;a;M]' + ], + 'B': [ + # Ar-NH2 + '[N;D1;x0;z1:3][C;a;M]' + ], + 'product': '[A:1]=[A:3]', + 'alerts': [], + 'ufe':{ + 'A':'[A:1][A:2]', + 'B': '[A:3][At;M]' + } + } + ], + 'alerts' : [] +} diff --git a/chython/reactor/reactions/_baeyer_villiger.py b/chython/reactor/reactions/_baeyer_villiger.py new file mode 100644 index 00000000..c976706a --- /dev/null +++ b/chython/reactor/reactions/_baeyer_villiger.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Baeyer-Villiger Oxidation', + 'description': 'Ketones into esters using mCPBA or H2O2', + 'templates': [ + { + 'A': [ + # Ar-Ketone + '[O;z2;x0;M]=[C;D3;x1;z2:1]([C;z1;M])[C;a:2]', + '[O;z2;x0;M]=[C;D3;x1;z2:1]([C;a;M])[C;z1:2]', + # Alk-Ketone + '[O;z2;x0;M]=[C;D3;x1;z2:1]([C;z1;M])[C;D3,D2;z1,z2:2]', + # Alk-CHO + '[O;z2;x0;M]=[C;D2;x1;z2:1][C;D3,D2;x0,x1,x2;z1,z2:2]', + # Ar-CHO + '[O;z2;x0;M]=[C;D2;x1;z2:1][C;a:2]', + # Cyclic-Ketone + '[O;z2;x0;M]=[C;D3;x1;z2:1]([C;D2;x0,x1;z1;r4,r5,r6,r7,r8;M])[C;D2,D3;x0;z1;r4,r5,r6,r7,r8:2]' + ], + 'B': [ + # mCPBA + '[O;D1;x1;z1:3][O;D2;x1;z1:4][C;x2;z2:5](=[O;z2;x0:6])[C;a:7]', + # H2O2 + '[O;D1:3][O;D1:4]' + ], + 'product': '[A:2][A:3][A:1]', + 'alerts': [], + 'ufe': { + 'A': 1, + 'B': '[A:5][A:5][A:6]' + } + } + ], + 'alerts':[] +} diff --git a/chython/reactor/reactions/_balz_schiemann.py b/chython/reactor/reactions/_balz_schiemann.py new file mode 100644 index 00000000..ac5facff --- /dev/null +++ b/chython/reactor/reactions/_balz_schiemann.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Balz-Schiemann Reaction', + 'description': 'Fluoroarene formation from anilines using HBF4', + 'templates': [ + { + 'A': [ + # Ar-NH2 + '[N;D1;x0;z1:1][C;a:2]' + ], + 'B': [ + # HBF4 + '[H+:3].[B-;D4;x4;z1:4][F:5]' + ], + 'product': '[A:2]-[A:5]', + 'alerts': [], + 'ufe': { + 'A': 1, + 'B': '[A:3][A:4]' + } + } + ], + 'alerts': [] +} diff --git a/chython/reactor/reactions/_baylis_hillman.py b/chython/reactor/reactions/_baylis_hillman.py new file mode 100644 index 00000000..1d5e90fd --- /dev/null +++ b/chython/reactor/reactions/_baylis_hillman.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Baylis-Hillman Reaction', + 'description': 'Activated alkene and an aldehyde to β-hydroxy-α-methylene carbonyl compound', + 'templates': [ + { + 'A': [ + # R-CHO + '[O;z2;x0:1]=[C;D1,D2;x1;z2:2]' + ], + 'B': [ + # C=C-EWG + '[C;D1;x0;z2;M]=[C;D2;x0;z2:3][C;x1,x2;z2;M]=[O;M]', + # Alk-C=C-EWG + '[C;x0;z1;M][C;x0;z2;M]=[C;D2;x0;z2:3][C;x1,x2;z2;M]=[O;M]', + # C=C-SO2R + '[C;x0;z2;M]=[C;D2;x1;z2:3][S;x2;z3;M]=[O;M]' + ], + 'product': '[A:1][A:2]-[A:3]', + 'alerts': [], + 'ufe': { + 'A': 1, + 'B': '[A:3][At;M]' + } + } + ], + 'alerts': [] +} + diff --git a/chython/reactor/reactions/_beckmann.py b/chython/reactor/reactions/_beckmann.py new file mode 100644 index 00000000..6ce18d8a --- /dev/null +++ b/chython/reactor/reactions/_beckmann.py @@ -0,0 +1,71 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Beckmann Rearrangement', + 'description': 'Aldehyde or Ketone convert to amide', + 'templates': [ + # Ketone + { + 'A': [ + # Alk-C(=O)-Ar + '[O;z2;x0;M]=[C;D3;x1;z2:1]([C;z1;M])[C;a:2]', + # Ar-C(=O)-Ar + '[O;z2;x0;M]=[C;D3;x1;z2:1]([C;a;M])[C;a:2]', + # Alk-C(=O)-Subs-Alk + '[O;z2;x0;M]=[C;D3;x1;z2:1]([C;z1;M])[C;D3;z1:2]', + # Alk-C(=O)-Alk + '[O;z2;x0;M]=[C;D3;x1;z2:1]([C;z1;M])[C;z1:2]' + + ], + 'B': [ + # NH4OH + '[N+;z1:3].[O-:4]' + ], + 'product': '[A:1][A:3][A:2]', + 'alerts': [], + 'ufe':{ + 'A': 2, + 'B': 4 + } + }, + # Aldehyde + { + 'A': [ + # R-CHO + '[O;z2;x0;M]=[C;D2;x1;z2:1]' + + ], + 'B': [ + # NH4OH + '[N+;z1:3].[O-:4]' + ], + 'product': '[A:1][A:3]', + 'alerts': [], + 'ufe':{ + 'A': 2, + 'B': 4 + } + }, + ], + 'alerts':[] +} diff --git a/chython/reactor/reactions/_biginelli.py b/chython/reactor/reactions/_biginelli.py new file mode 100644 index 00000000..d7e70b46 --- /dev/null +++ b/chython/reactor/reactions/_biginelli.py @@ -0,0 +1,52 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Biginelli Reaction', + 'description': 'Reaction of aldehyde, thio urea, and acetoacetate to pyrimidines', + 'templates' : [ + { + 'A': [ + # Ar-CHO + '[O;z2;x0:1]=[C;D2;x1;z2:2][C;a;M]' + ], + 'B': [ + # Urea + '[N;D1;x0;z1:3][C;D3;x3;z2:4](=[O,S;M])[N;D1;x0;z1:5]', + ], + 'C': [ + # β-Dicarbonyl + '[O;z2;x0:6]=[C;D3;x1;z2:7][C;D2;x0;z1:8][C;D3;x2;z2;M](=[O;z2;x0;M])[O;D2;x0;M]', + # Cyclohexane-1,3-dione + '[O;x0;z2:6]=[C;D3;x1;z2:7][C;D2;x0;z1:8][C;D3;x1,x2;z2;r6;M]=[O;x0;z2;M]' + ], + 'product': '[A:2]1[A:3][A:4][A:5][A:7]=[A:8]1', + 'alerts': [], + 'ufe': { + 'A': '[A:1][A:2]', + 'B': '[A:3][A:4][A:5]', + 'C': '[A:6][A:7][A:8]' + } + } + ], + 'alerts': [] +} \ No newline at end of file diff --git a/chython/reactor/reactions/_bucherer_bergs.py b/chython/reactor/reactions/_bucherer_bergs.py new file mode 100644 index 00000000..0eb49f77 --- /dev/null +++ b/chython/reactor/reactions/_bucherer_bergs.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Bucherer–Bergs Reaction', + 'description': 'Reaction between carbonyl, potassium cyanide and ammonium carbonate to form hydantoins', + 'templates': [ + { + 'A': [ + # O=CR2 + '[O;x0;z2:2]=[C;x1;z2:1]' + ], + 'B': [ + # KCN + '[N;D1:3]#[C-;D1:4].[K+:5]' + ], + 'C': [ + # (NH4)2CO3 + '[O-:6][C;x3;z2:7](=[O;M])[O-:8].[N+:9].[N+:10]' + ], + 'product': '[A:1]1[A:4](=[A:6])[A:3][A:7][A:9]1', + 'alerts': [], + 'ufe': { + 'A': 2, + 'B': 5, + 'C': '[A:8][A:10]' + } + } + ], + 'alerts': [] +} \ No newline at end of file diff --git a/chython/reactor/reactions/_chan_lam.py b/chython/reactor/reactions/_chan_lam.py new file mode 100644 index 00000000..54cdd568 --- /dev/null +++ b/chython/reactor/reactions/_chan_lam.py @@ -0,0 +1,62 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Chan-Lam Reaction', + 'description': 'Cross-coupling reaction between an aryl or alkyl boronic acid and an amine or alcohol', + 'templates': [ + { + 'A': [ + # Ar-NH2 + '[N;D1;x0;z1:1][C;a;M]', + # Alk2NH + '[N;D2;x0;z1:1]([C;z1;x1;M])[C;z1;x1;M]', + # Pyrrole + '[N;h1;a;r5:1]:[C;a;r6;M]', + # Lactom Ring-NH, + '[N;D2;x0;z1:1]([C;z2;x2;M])[C;z1;x1;M]', + # O=C-NH2 + '[N;D1;x0;z1:1][C;z2;x2;M]=[O;x0;z2;M]', + # RCOOH + '[O;x0;z2;M]=[C;x2;M][O;D1:1]' + ], + 'B': [ + # Ar-B + '[B;D3;x2;z1:3]([O:4])([O:5])-[C;a:2]', + # C=C-B, [N,O]C=C-B, C=C([N,O])-B + '[B;D3;x2;z1:3]([O:4])([O:5])-[C;x1,x2;z2:2]=[C;x0,x1;z2;M]', + # B-C#C + '[B;D3;x2;z1:3]([O:4])([O:5])-[C;D2;x1;z3:2]', + # B-C(alk) + '[B;D3;x2;z1:3]([O:4])([O:5])-[C;x1,x2;z1:2]' + + ], + 'product': '[A:1]-[A:2]', + 'alerts': [], + 'ufe': { + 'A': 1, + 'B': '[A:3][At;M]' + } + } + ], + 'alerts': [] +} diff --git a/chython/reactor/reactions/_click.py b/chython/reactor/reactions/_click.py new file mode 100644 index 00000000..23512ecd --- /dev/null +++ b/chython/reactor/reactions/_click.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Click Reaction', + 'description' : 'Azide-alkyne cycloaddition reaction', + 'templates' : [ + { + 'A': [ + # N=N=N-Ar + '[N-;D1;x1;z2:1]=[N+;D2;x2;z3:2]=[N;D2;x1;z2:3][C;a;M]', + # N=N=N-Alk + '[N-;D1;x1;z2:1]=[N+;D2;x2;z3:2]=[N;D2;x1;z2:3][C;x1;z1;M]' + ], + 'B': [ + # C#C-Ar + '[C;x0;z3:5]#[C;x0:4][C;a;M]', + # C#C-Alk + '[C;x0;z3:5]#[C;x0:4][C;x0;z1;M]' + ], + 'product': '[A:1]1=[A:2]-[A:3]-[A:5]=[A:4]1', + 'alerts' : [], + 'ufe' : { + 'A': '[A:1][A:2][A:3][At;M]', + 'B': '[A:4][A:5][At;M]' + } + } + ], + 'alerts' : [] +} diff --git a/chython/reactor/reactions/_diels_alder.py b/chython/reactor/reactions/_diels_alder.py new file mode 100644 index 00000000..93c1b233 --- /dev/null +++ b/chython/reactor/reactions/_diels_alder.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name' : 'Diels Alder Reaction', + 'description': 'Conjugated diene and a dienophile reaction to form the cyclohexene ring', + 'templates': [ + #Alkene Template + { + 'A': [ + # Conjugated diene + '[C;D1;z2:1]=[C;z2:2][C;z2:3]=[C;D1;z2:4]', + # Conjugated diene-EDG + # Conjugated diene-Hetero + '[C;x0;z2:1]=[C;z2:2][C;z2:3]=[C;x1;z2:4][O,N,Cl,Br,I;M]', + # Conjugated diene-Alk + '[C;x0;z2:1]=[C;z2:2][C;z2:3]=[C;x0;z2:4][C;z1,z2;M]', + # Conjugated diene-Ar + '[C;x0;z2:1]=[C;z2:2][C;z2:3]=[C;x0;z2:4][C;a;M]', + # Conjugated diene C=O-Hetero + '[O;x0;z2:1]=[C;x1;z2:2][C;z2:3]=[C;x1;z2:4][O,N,Cl,Br,I;M]', + # Conjugated diene C=O-Alk + '[O;x0;z2:1]=[C;x1;z2:2][C;z2:3]=[C;x0;z2:4][C;z1,z2;M]', + # Conjugated diene-Ar + '[O;x0;z2:1]=[C;x1;z2:2][C;z2:3]=[C;x0;z2:4][C;a;M]', + # Cyclopentadiene + '[C;x0;z2:1]1=[C;z2:2][C;z2:3]=[C;x0;z2:4][C;z1;M]1' + + ], + 'B': [ + # Dienophile + '[C;D1;x0;z2:5]=[C;D1;x0;z2:6]', + # Dienophile-EWG + # Dienophile-C=O + '[C;D1,D2;z2:5]=[C;D2;x0;z2:6][C;x1,x2;z2;M]=[O;M]', + # Dienophile-CO-Alk + '[C;D1,D2;z2:5]=[C;D2;x0;z2:6][C;x1;z2;M]-[O;M]', + # Dienophile-CF3 + '[C;D1,D2;z2:5]=[C;D2;x0;z2:6][C;x3;z2;M]-[F;M]', + # Dienophile-C#N + '[C;D1,D2;z2:5]=[C;D2;x0;z2:6][C;x1;z3;M]#[N;M]', + # Dienophile-NO2 + '[C;D1,D2;z2:5]=[C;D2;x1;z2:6][N+;D3;x2;M][O-;M]', + # Dienophile-SO3H + '[C;D1,D2;z2:5]=[C;D2;x1;z2:6][S;D3;x3;M][O;M]' + ], + + 'product': '[A:1]1[A:5][A:6][A:4][A:3]=[A:2]1', + 'alerts': [], + 'ufe': { + 'A': '[A:1][A:2]', + 'B': '[A:3][A:6]' + } + + }, + #Alkyne Template + { + 'A': [ + # Conjugated diene + '[C;D1;z2:1]=[C;z2:2][C;z2:3]=[C;D1;z2:4]', + # Conjugated diene-EDG + # Conjugated diene-Hetero + '[C;x0;z2:1]=[C;z2:2][C;z2:3]=[C;x1;z2:4][O,N,Cl,Br,I;M]', + # Conjugated diene-Alk + '[C;x0;z2:1]=[C;z2:2][C;z2:3]=[C;x0;z2:4][C;z1,z2;M]', + # Conjugated diene-Ar + '[C;x0;z2:1]=[C;z2:2][C;z2:3]=[C;x0;z2:4][C;a;M]', + # Conjugated diene C=O-Hetero + '[O;x0;z2:1]=[C;x1;z2:2][C;z2:3]=[C;x1;z2:4][O,N,Cl,Br,I;M]', + # Conjugated diene C=O-Alk + '[O;x0;z2:1]=[C;x1;z2:2][C;z2:3]=[C;x0;z2:4][C;z1,z2;M]', + # Conjugated diene-Ar + '[O;x0;z2:1]=[C;x1;z2:2][C;z2:3]=[C;x0;z2:4][C;a;M]', + # Cyclopentadiene + '[C;x0;z2:1]1=[C;z2:2][C;z2:3]=[C;x0;z2:4][C;z1;M]1' + + ], + 'B': [ + # Dienophile#EWG + # Dienophile#CHO + '[C;D1,D2;x0;z3:5]#[C;D2;x0,x1;z3:6][C;x1,x2;z2;M]=[O;M]', + # Dienophile#CO-Alk + '[C;D1,D2;x0;z3:5]#[C;D2;x0;z3:6][C;x1;z2;M]-[O;M]', + # Dienophile#CO-Hetere + '[C;D1,D2;x0;z3:5]#[C;D2;x0;z3:6][C;x2;z2;M]=[O;M]', + # Dienophile#CF3 + '[C;D1,D2;x0;z3:5]#[C;D2;x0;z3:6][C;x3;z2;M]-[F;M]', + # Dienophile-C#N + '[C;D1,D2;x0;z3:5]#[C;D2;x0;z3:6][C;x1;z3;M]#[N;M]', + # Dienophile-NO2 + '[C;D1,D2;x0;z3:5]#[C;D2;x1;z3:6][N+;D3;x2;M][O-;M]', + # Dienophile-SO3H + '[C;D1,D2;x0;z3:5]#[C;D2;x1;z3:6][S;D3;x3;M][O;M]' + ], + + 'product': '[A:1]1[A:5]=[A:6][A:4][A:3]=[A:2]1', + 'alerts': [], + 'ufe': { + 'A': '[A:1][A:2]', + 'B': '[A:3][A:6]' + } + + } + + ], + + 'alerts': [] +} diff --git a/chython/reactor/reactions/_doebner_miller.py b/chython/reactor/reactions/_doebner_miller.py new file mode 100644 index 00000000..94d8fa58 --- /dev/null +++ b/chython/reactor/reactions/_doebner_miller.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Doebner-Miller Reaction', + 'description': 'Ondensation of an aniline or acetanilide with an α,β-unsaturated carbonyl to quinolines', + 'templates': [ + { + 'A': [ + # α,β-unsaturated carbonyl + '[O;z2;x0:1]=[C;z2;x1:2][C;z2;x0:3]=[C;D2;z2;x0:4]' + + ], + 'B': [ + # Aniline + '[N;D1;x0;z1:5][C;a;M]:[C;a;D2:6]', + # Acetanilide + '[N;D2;x0;z1:5]([C;x2;z2:7]=[O:8])[C;a;M]:[C;a;D2:6]' + ], + 'product': '[A:5]=[A:4][A:3]=[A:2][A:6]', + 'alerts': [], + 'ufe': { + 'A': '[A:1][A:2]', + 'B': '[A:3][At;M]' + } + } + ], + 'alerts' : [] +} diff --git a/chython/reactor/reactions/_eschenmoser.py b/chython/reactor/reactions/_eschenmoser.py new file mode 100644 index 00000000..e1c4f885 --- /dev/null +++ b/chython/reactor/reactions/_eschenmoser.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name' : 'Eschenmoser Coupling', + 'description': 'thioamide and an α-halocarbonyl compound to enaminones products', + 'templates': [ + { + 'A': [ + # S=C-N-R + '[S;D1;x0;z2:1]=[C;D3;x2;z2:2][N;x0;z1;M]' + ], + 'B': [ + # Br-CC(=O)R + '[Br;D1:3][C;D2;x1;z1:4][C;z2;M]=[O;M]', + # COOR-CBr-COOR + '[O;M][C;x2;z2;M](=[O;M])[C;D3;x1;z1:4]([Br;D1:3])[C;x2;z2;M](=[O;M])[O;M]', + # 3-bromoindolin-2-one + '[Br;D1:3]-[C;D3;x1;z1:4]([C;a;M])[C;x2;z2;M](=[O;M])[N;h1;M]' + ], + 'product': '[A:2]=[A:4]', + 'alerts': [], + 'ufe':{ + 'A': 1, + 'B': '[A:3]' + } + } + ], + 'alerts' : [] +} diff --git a/chython/reactor/reactions/_ester_hydrolysis.py b/chython/reactor/reactions/_ester_hydrolysis.py new file mode 100644 index 00000000..d4f4eda0 --- /dev/null +++ b/chython/reactor/reactions/_ester_hydrolysis.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Ester Hydrolysis', + 'description': 'Ester to carboxylic acid using NaOH or KOH', + 'templates': [ + { + 'A': [ + # Ester + '[O;z2;x0;M]=[C;D3;x2;z2:1][O;D2;x0:2]' + ], + 'B': [ + # Base_NaOH + '[Na+:3].[O-;h1:4]', + # Base_KOH + '[K+:3].[O-;h1:4]' + ], + 'product': '[A:1]-[A:4]', + 'alerts': [], + 'ufe': { + 'A': 2, + 'B': '[A:3]' + } + } + ], + 'alerts': [] +} diff --git a/chython/reactor/reactions/_evans_aldol.py b/chython/reactor/reactions/_evans_aldol.py new file mode 100644 index 00000000..97218a48 --- /dev/null +++ b/chython/reactor/reactions/_evans_aldol.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Evans Aldol Reaction', + 'description': 'Aldehyde to aldol using chiral acyl oxazolidinone', + 'templates': [ + { + 'A': [ + # Ar-CHO + '[O;x0;z2:1]=[C;D2;x1;z2:2][C;a;M]', + # Alk-CHO + '[O;z2;x0:1]=[C;D2;x1;z2:2][C;z1;M]' + ], + 'B': [ + # Acylated oxazolidinones + '[C;D1,D2;x0;z1:3][C;x2;z2;M](=[O;M])[N;D3;x0;z1;M][C;x3;z2;M;r5]=[O,S;M]' + + ], + 'product':'[A:1][A:2]-[A:3]', + 'alerts': [], + 'ufe': { + 'A': 1, + 'B':'[A:3][At;M]' + } + }, + ], + 'alerts': [] +} \ No newline at end of file diff --git a/chython/reactor/reactions/_fischer_indole.py b/chython/reactor/reactions/_fischer_indole.py new file mode 100644 index 00000000..c789a65b --- /dev/null +++ b/chython/reactor/reactions/_fischer_indole.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Fischer Indole Synthesis', + 'description': 'Cyclization of arylhydrazones woth aldehyde or ketone to indoles', + 'templates': [ + { + 'A': [ + # Phenylhydrazine + '[C;a:1]:[C;a;M][N;x1;z1:2][N;D1;x1;z1:3]' + + ], + 'B': [ + # Alk-C=O + '[O;D1;z2;x0:4]=[C;D3;x1;z2:5]([C;z1;x0;M])[C;D2,D3;z1;x0:6]', + # Alk-CHO + '[O;D1;z2;x0:4]=[C;D2;x1;z2:5][C;D2,D3;z1;x0:6]', + # Alk-OH + '[O;D1;x0;z1:4][C;D3;x1;z1:5]([C;z1;x0;M])[C;D2;z1;x0:6]' + ], + 'product': '[A:2][A:5]=[A:6][A:1]', + 'alerts': [], + 'ufe':{ + 'A': '[A:1][A:2][A:3]', + 'B': '[A:4][A:5][A:6]' + } + } + ], + 'alerts': [] +} diff --git a/chython/reactor/reactions/_gewald.py b/chython/reactor/reactions/_gewald.py new file mode 100644 index 00000000..87c01227 --- /dev/null +++ b/chython/reactor/reactions/_gewald.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + +template = { + 'name':'Gewald Aminothiophene Synthesis', + 'description': 'Synthesis of 2-aminothiophenes using sulfur, an α-methylene carbonyl and α-cyanoester', + 'templates': [ + { + 'A': [ + # α-Methylene carbonyl + '[O;D1;z2:1]=[C;z2:2][C;D2;x0;z1:3]' + ], + 'B': [ + # α-Cyanoester + '[C;D2;x0;z1:4]([C;x2;z2;M](=[O;M])[O;M])[C;x1;z3:5]#[N;x0;z3:6]' + ], + 'C': [ + # Sulfur-S8 + '[S;D2;x2;z1;r8:7]([S;D2;x2;z1:8])[S;D2;x2;z1:9]' + ], + 'product': '[A:3]1=[A:2][A:4]=[A:5]([A:6])[A:7]1', + 'alerts': [], + 'ufe': { + 'A': 1, + 'B': '[A:6][At;M]', + 'C': 8 + } + } + ], + 'alerts': [] +} diff --git a/chython/reactor/reactions/_gilman.py b/chython/reactor/reactions/_gilman.py new file mode 100644 index 00000000..515038f5 --- /dev/null +++ b/chython/reactor/reactions/_gilman.py @@ -0,0 +1,65 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Gilman Reaction', + 'description': 'Acid chlorides and α,β-unsaturated carbonyl compounds reaction with Gilman reagents to form C-C bonds', + 'templates': [ + { + 'A': [ + # α,β-unsaturated ketones + '[O;D1;x0;z2;M]=[C;x1,x2;z2;M][C;x0;z2:1]=[C;D2;x0;z2:2]' + ], + 'B':[ + # Gilman Reagent + '[C;x1;z1,z2:3][Cu;x0;-:4].[Li;+:5]', + '[C;a:3][Cu;-:4].[Li;+:5]' + ], + 'product': '[A:1][A:2]-[A:3]', + 'alerts': [], + 'ufe': { + 'A': '[A:1][A:2]', + 'B': '[A:3]' + } + }, + { + 'A': [ + # Acid Chloride-Alk + '[Cl;D1:1][C;D3;x2;z2:2]([C;x0;z1;M])=[O;M]', + # Acid Chloride-Ar + '[Cl;D1:1][C;D3;x2;z2:2]([C;a;M])=[O;M]', + ], + 'B':[ + # Gilman Reagent + '[C;x1;z1,z2:3][Cu;x0;-:4].[Li;+:5]', + '[C;a:3][Cu;-:4].[Li;+:5]' + ], + 'product': '[A:2]-[A:3]', + 'alerts': [], + 'ufe': { + 'A': '[A:1][A:2]', + 'B': '[A:3]' + } + }, + ], + 'alerts' : [] +} diff --git a/chython/reactor/reactions/_gould_jacobs.py b/chython/reactor/reactions/_gould_jacobs.py new file mode 100644 index 00000000..d49440ee --- /dev/null +++ b/chython/reactor/reactions/_gould_jacobs.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Gould–Jacobs Reaction', + 'description': 'Anilines and Diethyl ethoxymethylenemalonate to quinolones', + 'templates': [ + { + 'A': [ + # Ar-NH2 + '[N;D1;x0;z1:1][C;a;M]:[C;a;D2:2]' + ], + 'B': [ + # Diethyl ethoxymethylenemalonate + '[C;x0;z1:3][C;x1;z1:4][O;x0;z1:5][C;x1;z2:6]=[C;D3;x0;z2:7]([C;x2;z2;M])[C;x2;z2:8]([O;x0;z1:9])=[O;M]' + ], + 'product': '[A:1][A:6]=[A:7][A:8][A:2]', + 'alerts': [], + 'ufe': { + 'A': '[A:1][A:2]', + 'B': '[A:3][A:4]' + } + } + ], + 'alerts': [] +} diff --git a/chython/reactor/reactions/_hantzsch.py b/chython/reactor/reactions/_hantzsch.py new file mode 100644 index 00000000..31c0c9c5 --- /dev/null +++ b/chython/reactor/reactions/_hantzsch.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Hantzsch Dihydropyridine Synthesis', + 'description': 'Condensation of aldehyde, two β-ketoesters and ammonium acetate to dihydropyridines', + 'templates': [ + { + 'A': [ + # Ar-CHO + '[O;z2;x0:1]=[C;D2;x1;z2:2][C;a;M]', + # Alk-CHO + '[O;z2;x0:1]=[C;D2;x1;z2:2][C;z1;M]' + ], + 'B': [ + # ß-ketoester + '[O;z2;x0:3]=[C;D3;x1;z2:4][C;D2;x0;z1:5][C;D3;x2;z2;M](=[O;z2;x0;M])[O;D2;x0;M]' + ], + 'C': [ + # ß-ketoester + '[O;z2;x0:6]=[C;D3;x1;z2:7][C;D2;x0;z1:8][C;D3;x2;z2;M](=[O;z2;x0;M])[O;D2;x0;M]' + ], + 'D': [ + # Ammonium Acetate + '[N+:9].[C;D1;x0;z1:10][C;D3;x2;z2:11]=[O:12]' + ], + + + 'product': '[A:2]1[A:5]=[A:4][A:9][A:7]=[A:8]1', + 'alerts': [], + 'ufe': { + 'A': '[A:1]', + 'B': '[A:3]', + 'C': '[A:6]', + 'D': '[A:10]' + } + } + ], + 'alerts': [] +} \ No newline at end of file diff --git a/chython/reactor/reactions/_hayashi_miyaura.py b/chython/reactor/reactions/_hayashi_miyaura.py new file mode 100644 index 00000000..7f356e09 --- /dev/null +++ b/chython/reactor/reactions/_hayashi_miyaura.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Hayashi-Miyaura_Reaction', + 'description': 'Aryl- or Alkenyl-boronic acids to α,β-unsaturated ketones', + 'templates': [ + { + 'A': [ + # α,β-unsaturated ketone + '[O;z2;x0;M]=[C;D3;z2;x1,x2;M][C;z2;x0:1]=[C;D2;z2;x0,x1:2]' + ], + 'B': [ + # Ar-B + '[B;D3;x2;z1:4]([O:5])([O:6])-[C;a:3]', + # C=C-B, [N,O]C=C-B, C=C([N,O])-B + '[B;D3;x2;z1:4]([O:5])([O:6])-[C;x1,x2;z2:3]=[C;x0,x1;z2;M]' + ], + 'product': '[A:1][A:2]-[A:3]', + 'alerts': [], + 'ufe': { + 'A': '[A:1][A:2]', + 'B': '[A:3][At;M]' + } + } + ], + 'alerts' : [] +} diff --git a/chython/reactor/reactions/_heck.py b/chython/reactor/reactions/_heck.py new file mode 100644 index 00000000..34edc4eb --- /dev/null +++ b/chython/reactor/reactions/_heck.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Heck Reaction', + 'description': 'C-C coupling between aryl halides or vinyl halides and activated alkenes', + 'templates': [ + { + 'A': [ + # Hal, OTf-Ar + '[Cl,Br,I;D1:1]-[C;a:2]', + '[S;D4;x3:4][O;x1;z1:1]-[C;a:2]', + # Hal, OTf-Alkenyl + '[Cl,Br,I;D1:1]-[C;x1;z2:2]=[C;x0;z2;M]', + '[S;D4;x3:4][O;x1;z1:1][C;x1;z2:2]=[C;x0;z2;M]' + ], + 'B': [ + # C=C-Alk + '[C;D1;x0;z2:3]=[C;D2;x0;z2;M][C;x0;z1;M]', + # C=C-Ar + '[C;D1;x0;z2:3]=[C;D2;x0;z2;M][C;a;M]', + # C=C-Acid + '[C;D1;x0;z2:3]=[C;x0,x1;z2;M][C;x2;z2;M]', + # Olefines + '[C;D2;x0;z2:3]=[C;D3;x0;z2;M]' + ], + 'product': '[A:2]-[A:3]', + 'alerts': [], + 'ufe': { + 'A': 1, + 'B': 3 + } + } + ], + 'alerts': [] +} diff --git a/chython/reactor/reactions/_horner_wadsworth_emmons.py b/chython/reactor/reactions/_horner_wadsworth_emmons.py new file mode 100644 index 00000000..b3de8de0 --- /dev/null +++ b/chython/reactor/reactions/_horner_wadsworth_emmons.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Horner Wadsworth Emmons Reaction', + 'description': 'Olefin formation from aldehydes and phosphonates', + 'templates': [ + { + 'A': [ + # Ar-CHO + '[O;x0;z2:1]=[C;D2;x1;z2:2][C;a;M]', + # Alk-CHO + '[O;x0;z2:1]=[C;D2;x1;z2:2][C;z1;M]' + ], + 'B': [ + # Phosphonate + '[C;x1;z1:3][O:4][P:5](=O)([O:6][C;x1;z1:7])[C;D2,D3;z1;x1:8][C;z2;x2;M]' + ], + 'product': '[A:2]=[A:8]', + 'alerts': [], + 'ufe': { + 'A': 1, + 'B':'[A:3][A:4][A:5][A:6][A:7]' + } + } + ], + 'alerts' : [] +} \ No newline at end of file diff --git a/chython/reactor/reactions/_kabachnik_fields.py b/chython/reactor/reactions/_kabachnik_fields.py new file mode 100644 index 00000000..a0e3c345 --- /dev/null +++ b/chython/reactor/reactions/_kabachnik_fields.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + +template = { + 'name' : 'Kabachnik Fields Reaction', + 'description': 'Coupling of a aldehyde, primary amine and a hydrophosphoryl to aminophosphonates', + 'templates': [ + { + 'A': [ + # Ar-NH2 + '[N;D1;x0;z1:1][C;a;M]', + # Alk-NH2 + '[N;D1;x0;z1:1][C;x1;z1;M]' + ], + 'B': [ + # Ar-CHO + '[O;x0;z2:2]=[C;D2;x1;z2:3][C;a;M]', + # Alk-CHO + '[O;x0;z2:2]=[C;D2;x1;z2:3][C;z1;M]' + ], + 'C': [ + # Hydrophosphoryl + '[O;z2;x1;M]=[P;D3:4]([O;z1;x1;M])[O;z1;x1;M]' + ], + 'product': '[A:1][A:3][A:4]', + 'alerts': [], + 'ufe': { + 'A': '[A:1]', + 'B': '[A:2]', + 'C': '[A:4][At;M]' + } + } + ], + 'alerts':[] +} diff --git a/chython/reactor/reactions/_knorr_quinoline.py b/chython/reactor/reactions/_knorr_quinoline.py new file mode 100644 index 00000000..e56cebbf --- /dev/null +++ b/chython/reactor/reactions/_knorr_quinoline.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name' : 'Knorr Quinoline Synthesis', + 'description': 'Anilines and β-keto esters to 2-hydroxyquinoline', + 'templates' : [ + { + 'A': [ + # Ar-NH2 + '[N;D1;x0;z1:1][C;a;M]:[C;a;D2:2]' + ], + 'B': [ + # ß-ketoester + '[O;z2;x0:8]=[C;D3;x1;z2:7][C;x0;z1:6][C;D3;x2;z2:4](=[O:3])[O;D2;x0:5]' + ], + 'product': '[A:1]=[A:4]([A:3])[A:6]=[A:7][A:2]', + 'alerts': [], + 'ufe': { + 'A': '[A:1][A:2]', + 'B': '[A:5][A:8]' + } + } + ], + 'alerts': [] +} diff --git a/chython/reactor/reactions/_mannich.py b/chython/reactor/reactions/_mannich.py new file mode 100644 index 00000000..0cfcc0da --- /dev/null +++ b/chython/reactor/reactions/_mannich.py @@ -0,0 +1,61 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + +template = { + 'name': 'Mannich Reaction', + 'description': 'Three-component aminomethylation from amine, aldehyde and acidic methylene moiety', + 'templates': [ + { + 'A': [ + # Acidic methylene + '[O;z2;x0;M]=[C;D3;x1;z2;M][C;x0;z1:1]' + ], + 'B': [ + # Ar-CHO + '[O;z2;x0:2]=[C;D2;x1;z2:3][C;a;M]', + # Alkyl-CHO + '[O;z2;x0:2]=[C;D2;x1;z2:3][C;z1;M]', + # CH2O + '[O;z2;x0:2]=[C;D1,D2;x1;z2:3]' + ], + 'C': [ + # Ar-NH2 + '[N;D1;x0;z1:4][C;a;M]', + # Alk-NH2 + '[N;D1;x0;z1:4][C;z1;x1;M]', + # Ar-NH-Ar + '[N;D2;x0;z1:4]([C;a;M])[C;a;M]', + # Alk-NH-Ar + '[N;D2;x0;z1:4]([C;a;M])[C;z1;x1;M]', + # Alk2NH + '[N;D2;x0;z1:4]([C;z1;x1;M])[C;z1;x1;M]' + ], + 'product': '[A:1][A:3][A:4]', + 'alerts': [], + 'ufe': { + 'A': 1, + 'B': '[A:2][At;M]', + 'C': '[A:3][At;M]' + } + }, + ], + 'alerts': [] +} diff --git a/chython/reactor/reactions/_nazarov_cyclization.py b/chython/reactor/reactions/_nazarov_cyclization.py new file mode 100644 index 00000000..aab607fc --- /dev/null +++ b/chython/reactor/reactions/_nazarov_cyclization.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Nazarov Cyclization', + 'description': 'Formation of cyclopentenone from di-vinyl ketone', + 'templates': [ + { + 'A': [ + # Divinyl Ketone + '[C;x0,x1;z2:1]=[C;x0,x1;z2:2][C;x1;z2;M]([C;x0,x1;z2;M]=[C;x0,x1;z2:4])=[O;M]', + # Divinyl Dione + '[C;z2;x0,x1:1]=[C;z2;x0,x1:2][C;z2;x1;M]([C;z2;x0,x1;M]=[O;z2;x0:4])=[O;M]', + # Divinyl-Ar + '[C;z2;x0,x1:1]=[C;z2;x0,x1:2][C;z2;x1;M](=[O;M])[C;a;M]:[C;a:4]' + ], + 'product': '[A:4][A:1][A:2]', + 'alerts': [], + 'ufe': { + 'A': '[A:1][A:4]' + + } + }, + ], + 'alerts': [] +} \ No newline at end of file diff --git a/chython/reactor/reactions/_olefin_metathesis.py b/chython/reactor/reactions/_olefin_metathesis.py new file mode 100644 index 00000000..f01eb7fb --- /dev/null +++ b/chython/reactor/reactions/_olefin_metathesis.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +smarts_A = ['[C;D1;z2;x0:1]=[C;z2;x0:2]' + '[A;M]'*x + '[C;z2;x0:3]=[C;D1;z2;x0:4]' for x in range(2,20)] +smarts_B = ['[C;D1;z2;x0:1]=[C;z2;x0:2][C;z1;x0;M][C;a;M]:[C;a;M]' + '[A;M]'*x + '[C;z2;x0:3]=[C;D1;z2;x0:4]' for x in range(0,20)] +smarts_all = smarts_A + smarts_B +template = { + 'name': 'Olefin Metathesis', + 'description': 'Rearranges the fragments of alkenes and reforming carbon-carbon double bonds', + 'templates': [ + # Intramolecular olefin metathesis (ring-closing metathesis) + { + 'A': smarts_all, + + 'product': '[A:2]=[A:3]', + 'alerts' : [], + 'ufe': { + 'A': '[A:1][A:4]' + } + }, + # Interamolecular olefin metathesis (cross-metathesis) + { + 'A':[ + # C=C + '[C;D1;z2;x0:1]=[C;D2,D3;z2;x0:2]' + ], + 'B': [ + # C=C + '[C;D1;z2;x0:3]=[C;D2,D3;z2;x0:4]' + ], + 'product': '[A:2]=[A:4]', + 'alerts' : [], + 'ufe': { + 'A': 1, + 'B': 3 + } + } + ], + 'alerts': [] +} diff --git a/chython/reactor/reactions/_paal_knorr_pyrrole.py b/chython/reactor/reactions/_paal_knorr_pyrrole.py new file mode 100644 index 00000000..7795f113 --- /dev/null +++ b/chython/reactor/reactions/_paal_knorr_pyrrole.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Paal-Knorr Pyrrole Synthesis', + 'description': '1,4-dicarbonyl compound with a primary amine or ammonia to pyrrole', + 'templates': [ + { + 'A': [ + # 1,4-diketones + '[O;x0;z2:2]=[C;x1;z2:1][C;x0;z1:3][C;x0;z1:4][C;x1;z2:5]=[O;x0;z2:6]' + ], + 'B': [ + # Ar-NH2 + '[N;D1;x0;z1:7][C;a;M]', + # Alk-NH2 + '[N;D1;x0;z1:7][C;z1;x1;M]' + ], + 'product': '[A:1]1=[A:3][A:4]=[A:5][A:7]1', + 'alerts': [], + 'ufe': { + 'A': '[A:2][A:6]', + 'B': 7 + } + } + ], + 'alerts': [] +} diff --git a/chython/reactor/reactions/_passerini.py b/chython/reactor/reactions/_passerini.py new file mode 100644 index 00000000..e9fd6e15 --- /dev/null +++ b/chython/reactor/reactions/_passerini.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + +template = { + 'name': 'Passerini Reaction', + 'description': 'Reaction of carboxylic acid, carbonyl compound and isocyanide to α-hydroxy carboxamides', + 'templates': [ + { + 'A': [ + # R-COOH + '[O;D1;x0;z1:2][C;D3;x2;z2:1]=[O;x0;z2:3]' + ], + 'B': [ + # Alk-CHO + '[O;z2;x0:4]=[C;D2;x1;z2:5][C,N;z1;M]' + ], + 'C': [ + # Isocyanides + '[C-;D1;x1;z3:6]#[N+;D2;x0;z3:7]' + ], + 'product': '[A:1](=[A:2])[A:4][A:5][A:6](=[A:3])[A:7]', + 'alerts': [], + 'ufe': { + 'A': '[A:1][A:3]', + 'B': '[A:4][A:5]', + 'C': '[A:6][A:7]' + } + } + ], + 'alerts':[] +} diff --git a/chython/reactor/reactions/_pauson_khand.py b/chython/reactor/reactions/_pauson_khand.py new file mode 100644 index 00000000..b39fa9ac --- /dev/null +++ b/chython/reactor/reactions/_pauson_khand.py @@ -0,0 +1,69 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + +#SMARST for Intramolecular aklyne and alkene Pauson-Khand reaction +smarts_A = ['[C;x0;z3:1]#[C;x0;z3:2][C;z1;M]' + '[A;M]'*x + '[C;z1;M][C;z2;x0:3]=[C;z2;x0:4]' for x in range(1,20)] +template = { + 'name': 'Pauson Khand Reaction', + 'description': 'Alkyne, alkene and carbon monoxide combine into a α,β-cyclopentenone', + 'templates': [ + #Template for Intermolecular Pauson-Khand reaction + { + 'A': [ + # C#C + '[C;x0;z3:1]#[C;x0;z3:2]' + ], + 'B':[ + # C#C + '[C;z2;x0:3]=[C;z2;x0:4]' + ], + 'C': [ + # C#O + "[O;+:5]#[C;-:6]" + + ], + 'product': '[A:1]1=[A:2][A:3][A:4][A:6]1=[A:5]', + 'alerts':[], + 'ufe':{ + 'A':'[A:1][A:2]', + 'B':'[A:3][A:4]', + 'C':'[A:5][A:6]' + } + }, + #Template for Intramolecular Pauson-Khand reaction + + { + 'A': smarts_A, + + 'B':[ + #Carbon_monoxide + "[O;+:5]#[C;-:6]" + ], + 'product': '[A:1]1=[A:2][A:3][A:4][A:6]1=[A:5]', + 'alerts':[], + 'ufe':{ + 'A':'[A:1][A:2][A:3][A:4]', + 'B':'[A:5][A:6]' + } + } + ], + 'alerts': [] +} \ No newline at end of file diff --git a/chython/reactor/reactions/_perkin.py b/chython/reactor/reactions/_perkin.py new file mode 100644 index 00000000..b8413be6 --- /dev/null +++ b/chython/reactor/reactions/_perkin.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Perkin Reaction', + 'description': 'Condensation of an aromatic aldehyde and an acid anhydride to α,β-unsaturated aromatic acid', + 'templates': [ + { + 'A': [ + # Ar-CHO + '[O;z2;x0:1]=[C;D2;x1;z2:2][C;a;M]' + ], + 'B': [ + # Acid anhydride + '[C;D1;x0;z1:3][C;x2;z2:4](=[O;M])[O;x0;z1:5][C;x2;z2:6](=[O:7])[C;x0;z1:8]' + ], + 'product': '[A:2]=[A:3][A:4][A:5]', + 'alerts': [], + 'ufe': { + 'A': '[A:1]', + 'B': '[A:6][A:7]' + } + } + ], + 'alerts': [] +} diff --git a/chython/reactor/reactions/_petasis.py b/chython/reactor/reactions/_petasis.py new file mode 100644 index 00000000..b5378614 --- /dev/null +++ b/chython/reactor/reactions/_petasis.py @@ -0,0 +1,65 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + +template = { + 'name': 'Petasis Reaction', + 'description': 'Combines a carbonyl derivative, an amine, and a boronic acid to produce substituted amines', + 'templates': [ + { + 'A': [ + # Ar-NH2 + '[N;D1;x0;z1:1][C;a;M]', + # Alk-NH2 + '[N;D1;x0;z1:1][C;z1,z2;x1,x2;M]', + # Ar-NH-Ar + '[N;D2;x0;z1:1]([C;a;M])[C;a;M]', + # Alk-NH-Ar + '[N;D2;x0;z1:1]([C;a;M])[C;z1;x1;M]', + # Alk2NH + '[N;D2;x0;z1:1]([C;z1;x1;M])[C;z1;x1;M]' + ], + 'B': [ + # Ar-CHO + '[O;z2;x0:2]=[C;D2,D3;x1;z2:3][C;a;M]', + # Alk-CHO + '[O;z2;x0:2]=[C;D2,D3;x1;z2:3][C;z1,z2;M]' + ], + 'C': [ + # Ar-B + '[B;D3;x2;z1:4]([O:5])([O:6])-[C;a:7]', + # C=C-B, [N,O]C=C-B, C=C([N,O])-B + '[B;D3;x2;z1:4]([O:5])([O:6])-[C;x1,x2;z2:7]=[C;x0,x1;z2;M]', + # B-C#C + '[B;D3;x2;z1:4]([O:5])([O:6])-[C;D2;x1;z3:7]', + # B-C(alk) + '[B;D3;x2;z1:4]([O:5])([O:6])-[C;x1,x2;z1:7]' + ], + 'product': '[A:1][A:3]-[A:7]', + 'alerts': [], + 'ufe': { + 'A': '[A:1]', + 'B': '[A:2]', + 'C': '[A:4][At;M]' + } + } + ], + 'alerts': [] +} diff --git a/chython/reactor/reactions/_pfitzinger.py b/chython/reactor/reactions/_pfitzinger.py new file mode 100644 index 00000000..c013ebca --- /dev/null +++ b/chython/reactor/reactions/_pfitzinger.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + +template = { + 'name': 'Pfitzinger-Borsche Reaction', + 'description': 'Isatin with base and a carbonyl compound to quinoline-4-carboxylic acids', + 'templates': [ + { + 'A': [ + # Isatin + '[N;D2;x0;z1;r5:1]([C;a;M])[C;D3;x2;z2:2](=[O;M])[C;D3;x1;z2:3]=[O:4]' + ], + 'B': [ + # α-Methylene carbonyl + '[O;D1;z2;x0:5]=[C;x1;z2:6][C;D2;x0,x1;z1:7]' + ], + 'C': [ + # Alk-OH + '[O;D1;x0;z1:8][C;x1;z1;M]', + # Base KOH + '[O-:8].[K+:9]' + ], + 'product': '[A:1]=[A:6][A:7]=[A:3][A:2][A:8]', + 'alerts': [], + 'ufe': { + 'A': 4, + 'B': '[A:5]', + 'C': '[A:8]' + } + } + ], + 'alerts': [] +} diff --git a/chython/reactor/reactions/_pictet_spengler.py b/chython/reactor/reactions/_pictet_spengler.py new file mode 100644 index 00000000..96628888 --- /dev/null +++ b/chython/reactor/reactions/_pictet_spengler.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Pictet–Spengler Reaction', + 'description': 'β-arylethylamine undergoes condensation with an aldehyde or ketone followed by ring closure', + 'templates': [ + { + 'A': [ + # β-arylethylamine + '[N;D1,D2;x0;z1:1][C;x1;z1;M][C;x0;z1;M][C;a;M]:[C;a;D2:2]' + ], + 'B': [ + # Carbonyl + '[O;z2;x0:3]=[C;D1,D2,D3;x1;z2:4]' + ], + 'product': '[A:2][A:4]-[A:1]', + 'alerts': [], + 'ufe': { + 'A': 1, + 'B': '[A:3]' + } + } + ], + 'alerts': [] +} diff --git a/chython/reactor/reactions/_prins_pinacol.py b/chython/reactor/reactions/_prins_pinacol.py new file mode 100644 index 00000000..73a168e0 --- /dev/null +++ b/chython/reactor/reactions/_prins_pinacol.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Prins Pinacol Rearrangement', + 'description': 'Substituted Alkene and aldehyde in the presence of a Lewis acid to form a cyclic compound', + 'templates': [ + { + 'A': [ + # Alk-OH-C=C + '[O;D1;x0;z1:1][C;x1;z1;M][C;x0;z1;M][C;x0;z2:2](=[C;x0;z2:3])[C;D4;x1;z1:4]([C;x0;z1:6])[O;D1;x0;z1:5]', + # Ar-OH-C=C + '[O;D1;x0;z1:1][C;x1;z1;M][C;x0;z1;M][C;x0;z2:2](=[C;x0;z2:3])[C;D4;x1;z1:4]([C;a:6])[O;D1;x0;z1:5]' + ], + 'B' : [ + # Ar-CHO + '[O;x0;z2:8]=[C;D2;x1;z2:7][C;a;M]' + ], + 'product':'[A:1][A:7][A:3][A:2]([A:6])[A:4]=[A:5]', + 'alerts':[], + 'ufe': { + 'A': '[A:1][A:3][A:5]', + 'B': 8 + } + } + ], + 'alerts':[] +} diff --git a/chython/reactor/reactions/_reformatsky.py b/chython/reactor/reactions/_reformatsky.py new file mode 100644 index 00000000..7015722f --- /dev/null +++ b/chython/reactor/reactions/_reformatsky.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Reformatsky Reaction', + 'description': 'Condenses aldehydes or ketones, with α-halo esters', + 'templates' : [ + { + 'A': [ + # Alk-Ketone + '[O;D1;x0;z2:1]=[C;D3;x1;z2:2]([C;z1;x0;M])', + # Ar-CHO + '[O;D1;x0;z2:1]=[C;D2;x1;z2:2][C;a;M]' + ], + 'B': [ + # α-halo esters + '[Cl,Br,I;D1:3][C;x1;z1:4][C;x2;z2;M](=[O;M])[O;x0;z1;M]' + ], + 'product': '[A:1][A:2]-[A:4]', + 'alerts': [], + 'ufe': { + 'A': 1, + 'B': '[A:2]' + } + } + ], + 'alerts': [] +} diff --git a/chython/reactor/reactions/_riley_oxidations.py b/chython/reactor/reactions/_riley_oxidations.py new file mode 100644 index 00000000..e6409506 --- /dev/null +++ b/chython/reactor/reactions/_riley_oxidations.py @@ -0,0 +1,85 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Riley Oxidations', + 'description': 'Oxidation of allylic C-H bonds with selenium oxide', + 'templates': [ + # Template 1: Alkene group(R-C=C-R) + { + 'A':[ + # R-C(R)=C + '[C;D1;z1;x0:1][C;D3;z2;x0;M]=[C;z2;M]', + # R-C=C + '[C;D1;z1;x0:1][C;D2;z2;M]=[C,O;z2;M]', + # C-Ar + '[C;D1;z1;x0:1]-[C;a;M]' + ], + 'B': [ + # SeO2 + '[O;D1;z2;x1:2]=[Se;z3;x2:3]=[O;D1;z2;x1:4]' + ], + 'product': '[A:1]=[A:2]', + 'alerts': [], + 'ufe':{ + 'A': '[A:1][At;M]', + 'B': '[A:2][A:3][A:4]' + } + }, + # Template 2: Alkyne group(R-C#C-R) + { + 'A':[ + # RC#CR + '[C;D2;z3;x0:1]#[C;D2;z3;x0:2]' + ], + 'B': [ + # SeO2 + '[O;D1;z2;x1:3]=[Se;z3;x2:4]=[O;D1;z2;x1:5]' + ], + 'product': '[A:3]=[A:1][A:2]=[A:5]', + 'alerts': [], + 'ufe':{ + 'A': '[A:1][At;M]', + 'B': '[A:2][A:3][A:4]' + } + }, + # Template 3: Alkyne group(R-C#C-H) + { + 'A':[ + # RC#CH + '[C;D2;z3;x0:1]#[C;D1;z3;x0:2]' + + ], + 'B': [ + # SeO2 + '[O;D1;z2;x1:3]=[Se;z3;x2:4]=[O;D1;z2;x1:5]' + ], + 'product': '[A:3]=[A:1][A:2]([O])=[A:5]', + 'alerts': [], + 'ufe':{ + 'A': '[A:1][At;M]', + 'B': '[A:2][A:3][A:4]' + } + } + ], + 'alerts':[] +} diff --git a/chython/reactor/reactions/_robinson_annulation.py b/chython/reactor/reactions/_robinson_annulation.py new file mode 100644 index 00000000..a20917ca --- /dev/null +++ b/chython/reactor/reactions/_robinson_annulation.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + +template = { + 'name': 'Robinson Annulation', + 'description': 'Cyclohexanone reaction with alpha_beta unsaturated ketone', + 'templates': [ + { + 'A': [ + # α,β-Unsaturated ketone + '[C;z2;x0:1]=[C;z2;x0:2][C;z2;x1;M](=[O;M])[C;z1;x0:3]' + ], + 'B':[ + # Cyclic diKetone + '[O;D1;x0;z2:4]=[C;D3;x1;z2;r4,r5,r6,r7,r8:5][C;D3;z1;x0:6]([C;M])[C;z2;x1;M]=[O;M]', + # Enolate + '[O;D1;x0;z2:4]=[C;D3;x1;z2;r4,r5,r6,r7,r8:5]([C;D2;z1;x0;M])[C;D3;z1;x0:6]', + # Cyclohexanone + '[O;D1;x0;z2:4]=[C;D3;x1;z2;r4,r5,r6,r7,r8:5]([C;D2;z1;x0;M])[C;D2;z1;x0:6]' + ], + 'product': '[A:2][A:1]-[A:6][A:5]=[A:3]', + 'alerts': [], + 'ufe' : { + 'A': '[A:1][A:2][A:3]', + 'B': '[A:4][A:5][A:6]' + } + } + ], + 'alerts': [] +} diff --git a/chython/reactor/reactions/_sandmayer.py b/chython/reactor/reactions/_sandmayer.py new file mode 100644 index 00000000..4ee18526 --- /dev/null +++ b/chython/reactor/reactions/_sandmayer.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Sandmayer Reaction', + 'description': 'Aryl amine into an aryl halide or cyanide using copper', + 'templates': [ + { + 'A' : [ + # Ar-NH2 + '[N;D1;x0;z1:1][C;a:2]' + ], + 'B': [ + # Cu-X + '[Cl,Br;D1:3]-[Cu:4]', + # KI + '[I-;D1:3]-[K+:4]', + # Cu-CN + '[N;D1;z3;x0;M]#[C;D2;x2:3]-[Cu:4]' + ], + 'product':'[A:3]-[A:2]', + 'alerts':[], + 'ufe': { + 'A': '[A:1]', + 'B': '[A:4]' + } + } + ], + 'alerts': [] +} diff --git a/chython/reactor/reactions/_schotten_baumann.py b/chython/reactor/reactions/_schotten_baumann.py new file mode 100644 index 00000000..726481a1 --- /dev/null +++ b/chython/reactor/reactions/_schotten_baumann.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Schotten Baumann Reaction', + 'description': 'C-N and C-O coupling reaction', + 'templates': [ + { + 'A': [ + # Alk-acid Hal + '[Cl,Br,I;D1:1][C;x2;z2:2](=[O;M])[C;x0;z1;M]', + # Ar-acid Hal + '[Cl,Br,I;D1:1][C;x2;z2:2](=[O;M])[C;a;M]' + ], + 'B': [ + # Ar-NH2 + '[N;D1;x0;z1:3][C;a;M]', + # Alk-NH2 + '[N;D1;x0;z1:3][C;z1;x1;M]', + # Alk-NH-Ar + '[N;D2;x0;z1:3]([C;a;M])[C;z1;x1;M]', + # Alk2NH + '[N;D2;x0;z1:3]([C;z1;x1;M])[C;z1;x1;M]', + # R-OH + '[O;D1;x0;z1:3]-[C;x1;z1;M]', + # Ar-OH + '[O;D1;x0;z1:3][C;a;M]' + ], + 'product': '[A:2]-[A:3]', + 'alerts': [], + 'ufe': { + 'A': 1, + 'B': '[A:3][At;M]' + } + } + ], + 'alerts': [] +} diff --git a/chython/reactor/reactions/_stille_coupling.py b/chython/reactor/reactions/_stille_coupling.py new file mode 100644 index 00000000..d3027829 --- /dev/null +++ b/chython/reactor/reactions/_stille_coupling.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Stille Coupling Reaction', + 'description': 'C-C bonds between an organotin compound and an organic (sp2) halide', + 'templates' : [ + { + 'A': [ + # X-Ar + '[Cl,Br,I;D1:1][C;a:2]', + # X-sp2 + '[Cl,Br,I;D1:1][C;x1;z2:2]' + ], + 'B': [ + # Alk-Sn-Bu3 + '[Sn;x0;z1:3][C;x1;z2:4]=[C;x0,x1;z2;M]', + # Ar-Sn-Bu3 + '[Sn;x0;z1:3][C;a:4]' + ], + 'product': '[A:2]-[A:4]', + 'alerts':[], + 'ufe':{ + 'A': 1, + 'B': '[A:4][At;M]' + } + }, + ], + 'alerts':[] +} diff --git a/chython/reactor/reactions/_swern_oxidation.py b/chython/reactor/reactions/_swern_oxidation.py new file mode 100644 index 00000000..d073a995 --- /dev/null +++ b/chython/reactor/reactions/_swern_oxidation.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Swern Oxidation', + 'description': 'Primary and secondary alcohol to aldehyde or ketones', + 'templates' : [ + { + 'A': [ + #Alcohol + '[O;D1;x0;z1:1][C;D2;D3;x1;z1:2]' + ], + 'product': '[A:1]=[A:2]', + 'alerts': [], + 'ufe': { + 'A': 1 + + } + }, + ], + 'alerts': [] +} \ No newline at end of file diff --git a/chython/reactor/reactions/_ugi.py b/chython/reactor/reactions/_ugi.py new file mode 100644 index 00000000..860441cc --- /dev/null +++ b/chython/reactor/reactions/_ugi.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Ugi Reaction', + 'description': 'Reaction of aldehyde, an amine, a carboxylic acid and an isocyanide to α-aminoacyl amide ', + 'templates': [ + { + 'A': [ + #C(=O)O + '[O;D1;x0;z1:2][C;x2;z2:1]=[O;M]' + ], + 'B': [ + #Alk-NH2 + '[N;D1;x0;z1:3][C;x1;z1;M]' + ], + 'C': [ + #R-CHO + '[O;x0;z2:4]=[C;D2;x1;z2:5][C;a;M]', + '[O;x0;z2:4]=[C;D2;x1;z2:5][C;x0;z1;M]' + ], + 'D': [ + #CN + '[C-;D1;x1;z3:6]#[N+;D2;x0;z3:7]' + ], + 'product': '[A:1][A:3][A:5][A:6](=[A:2])[A:7]', + 'alerts': [], + 'ufe': { + 'A': 2, + 'B': 3, + 'C': '[A:4][A:5]', + 'D': '[A:6][A:7]' + } + } + ], + 'alerts':[] +} \ No newline at end of file diff --git a/chython/reactor/reactions/_ullmann.py b/chython/reactor/reactions/_ullmann.py new file mode 100644 index 00000000..08ae985b --- /dev/null +++ b/chython/reactor/reactions/_ullmann.py @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Ullmann Reactions', + 'description': 'Synthesis of symmetric biaryls C–C, C–O and C-S coupling reaction', + 'templates': [ + # Template 1: Ullmann C–C Coupling + { + 'A': [ + # Hal-Ar + '[Cl,Br,I;D1:1][C;a:2]' + ], + 'B': [ + # Hal-Ar + '[Cl,Br,I;D1:3][C;a:4]' + ], + 'product': '[A:2]-[A:4]', + 'alerts': [], + 'ufe': { + 'A': 1, + 'B': 3 + } + }, + # Template 2: Ullmann Ether (C–O) Coupling + { + 'A': [ + # Hal-Ar + '[Cl,Br,I;D1:1][C;a:2]' + ], + 'B': [ + # Ar-OH, Ar-SH + '[O,S;D1;x0;z1:3][C;a;M]' + ], + 'product': '[A:2]-[A:3]', + 'alerts': [], + 'ufe': { + 'A': 1, + 'B': '[A:3][At:M]' + } + } + ], + 'alerts': [] +} diff --git a/chython/reactor/reactions/_wittig.py b/chython/reactor/reactions/_wittig.py new file mode 100644 index 00000000..6799d7dc --- /dev/null +++ b/chython/reactor/reactions/_wittig.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Wittig Reaction', + 'description': 'Reaction of an aldehyde or ketone with the ylide to alkene', + 'templates': [ + { + 'A': [ + # Carbonyls + '[O;D1;z2;x0:1]=[C;D2,D3;x1;z2:2]' + ], + 'B': [ + # Ylide + '[C;D1,D2;z2:3]=[P:4]([C;a:5])([C;a:6])[C;a:7]' + ], + 'product': '[A:2]=[A:3]', + 'alerts': [], + 'ufe':{ + 'A':1, + 'B': '[A:4][A:5][A:6][A:7]' + } + } + ], + 'alerts': [] +} diff --git a/chython/reactor/reactions/_wolff_rearrangement.py b/chython/reactor/reactions/_wolff_rearrangement.py new file mode 100644 index 00000000..ad8e5da9 --- /dev/null +++ b/chython/reactor/reactions/_wolff_rearrangement.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name' : 'Wolff Rearrangement', + 'description': 'Diazoketone in to a ketene and ring constraction', + 'templates': [ + { + 'A': [ + # H-Diazoketone + '[N-;z2;x1:1]=[N+;x1;z3:2]=[C;x1;z2:3][C;x1;z2:4](=[O;M])[H:5]', + # Ar-Diazoketone + '[N-;z2;x1:1]=[N+;x1;z3:2]=[C;x1;z2:3][C;x1;z2:4](=[O;M])[C;a:5]', + # Alk-Diazoketone + '[N-;z2;x1:1]=[N+;x1;z3:2]=[C;x1;z2:3][C;x1;z2:4](=[O;M])[C;z1:5]', + ], + 'B': [ + # CH2OH + '[C;x1;z1;M][O;D1;z1:6]' + ], + 'product': '[A:5][A:3][A:4][A:6]', + 'alerts': [], + 'ufe': { + 'A': 1, + 'B': '[A:6]' + } + } + ], + 'alerts':[] +} diff --git a/chython/reactor/reactions/_wurtz.py b/chython/reactor/reactions/_wurtz.py new file mode 100644 index 00000000..ab9a4f02 --- /dev/null +++ b/chython/reactor/reactions/_wurtz.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name': 'Wurtz Reaction', + 'description': 'Coupling of two alkyl halides to form symmetrical alkanes', + 'templates' : [ + { + 'A': [ + # X-Alk + '[Cl,Br,I;D1:1]-[C;D1,D2;x1;z1:2]' + ], + 'B': [ + # X-Alk + '[Cl,Br,I;D1:3]-[C;D1,D2;x1;z1:4]' + ], + 'product': '[A:2]-[A:4]', + 'alerts': [], + 'ufe': { + 'A': 1, + 'B': 3 + } + } + ], + 'alerts':[] +} diff --git a/chython/reactor/reactions/_wurtz_fittig.py b/chython/reactor/reactions/_wurtz_fittig.py new file mode 100644 index 00000000..277c2d0a --- /dev/null +++ b/chython/reactor/reactions/_wurtz_fittig.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2022-2024 Ramil Nugmanov +# Copyright 2023 Timur Gimadiev +# Copyright 2025 Balasubramaniyan Sakthivel +# This file is part of chython. +# +# chython is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, see . +# + + +template = { + 'name':'Wurtz Fittig reaction', + 'description': 'Coupling of aryl halide and alkyl halide to form the substituted aromatic compounds', + 'templates' : [ + { + 'A': [ + # X-Ar + '[Cl,Br,I;D1:1]-[C;a:2]' + ], + 'B': [ + # X-Alk + '[Cl,Br,I;D1:3]-[C;D1,D2;x1;z1:4]' + ], + 'product': '[A:2]-[A:4]', + 'alerts': [], + 'ufe': { + 'A': 1, + 'B': 3 + } + } + ], + 'alerts':[] +}