molbuilder 1.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- molbuilder/__init__.py +8 -0
- molbuilder/__main__.py +6 -0
- molbuilder/atomic/__init__.py +4 -0
- molbuilder/atomic/bohr.py +235 -0
- molbuilder/atomic/quantum_atom.py +334 -0
- molbuilder/atomic/quantum_numbers.py +196 -0
- molbuilder/atomic/wavefunctions.py +297 -0
- molbuilder/bonding/__init__.py +4 -0
- molbuilder/bonding/covalent.py +442 -0
- molbuilder/bonding/lewis.py +347 -0
- molbuilder/bonding/vsepr.py +433 -0
- molbuilder/cli/__init__.py +1 -0
- molbuilder/cli/demos.py +516 -0
- molbuilder/cli/menu.py +127 -0
- molbuilder/cli/wizard.py +831 -0
- molbuilder/core/__init__.py +6 -0
- molbuilder/core/bond_data.py +170 -0
- molbuilder/core/constants.py +51 -0
- molbuilder/core/element_properties.py +183 -0
- molbuilder/core/elements.py +181 -0
- molbuilder/core/geometry.py +232 -0
- molbuilder/gui/__init__.py +2 -0
- molbuilder/gui/app.py +286 -0
- molbuilder/gui/canvas3d.py +115 -0
- molbuilder/gui/dialogs.py +117 -0
- molbuilder/gui/event_handler.py +118 -0
- molbuilder/gui/sidebar.py +105 -0
- molbuilder/gui/toolbar.py +71 -0
- molbuilder/io/__init__.py +1 -0
- molbuilder/io/json_io.py +146 -0
- molbuilder/io/mol_sdf.py +169 -0
- molbuilder/io/pdb.py +184 -0
- molbuilder/io/smiles_io.py +47 -0
- molbuilder/io/xyz.py +103 -0
- molbuilder/molecule/__init__.py +2 -0
- molbuilder/molecule/amino_acids.py +919 -0
- molbuilder/molecule/builders.py +257 -0
- molbuilder/molecule/conformations.py +70 -0
- molbuilder/molecule/functional_groups.py +484 -0
- molbuilder/molecule/graph.py +712 -0
- molbuilder/molecule/peptides.py +13 -0
- molbuilder/molecule/stereochemistry.py +6 -0
- molbuilder/process/__init__.py +3 -0
- molbuilder/process/conditions.py +260 -0
- molbuilder/process/costing.py +316 -0
- molbuilder/process/purification.py +285 -0
- molbuilder/process/reactor.py +297 -0
- molbuilder/process/safety.py +476 -0
- molbuilder/process/scale_up.py +427 -0
- molbuilder/process/solvent_systems.py +204 -0
- molbuilder/reactions/__init__.py +3 -0
- molbuilder/reactions/functional_group_detect.py +728 -0
- molbuilder/reactions/knowledge_base.py +1716 -0
- molbuilder/reactions/reaction_types.py +102 -0
- molbuilder/reactions/reagent_data.py +1248 -0
- molbuilder/reactions/retrosynthesis.py +1430 -0
- molbuilder/reactions/synthesis_route.py +377 -0
- molbuilder/reports/__init__.py +158 -0
- molbuilder/reports/cost_report.py +206 -0
- molbuilder/reports/molecule_report.py +279 -0
- molbuilder/reports/safety_report.py +296 -0
- molbuilder/reports/synthesis_report.py +283 -0
- molbuilder/reports/text_formatter.py +170 -0
- molbuilder/smiles/__init__.py +4 -0
- molbuilder/smiles/parser.py +487 -0
- molbuilder/smiles/tokenizer.py +291 -0
- molbuilder/smiles/writer.py +375 -0
- molbuilder/visualization/__init__.py +1 -0
- molbuilder/visualization/bohr_viz.py +166 -0
- molbuilder/visualization/molecule_viz.py +368 -0
- molbuilder/visualization/quantum_viz.py +434 -0
- molbuilder/visualization/theme.py +12 -0
- molbuilder-1.0.0.dist-info/METADATA +360 -0
- molbuilder-1.0.0.dist-info/RECORD +78 -0
- molbuilder-1.0.0.dist-info/WHEEL +5 -0
- molbuilder-1.0.0.dist-info/entry_points.txt +2 -0
- molbuilder-1.0.0.dist-info/licenses/LICENSE +21 -0
- molbuilder-1.0.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,1716 @@
|
|
|
1
|
+
"""Curated reaction knowledge base with ~80 reaction templates.
|
|
2
|
+
|
|
3
|
+
Every template is a ``ReactionTemplate`` instance that captures the
|
|
4
|
+
reagents, conditions, selectivity cues, functional-group requirements,
|
|
5
|
+
and retrosynthetic disconnections needed by the synthesis planner.
|
|
6
|
+
|
|
7
|
+
Use the lookup helpers at the bottom of the module to query the
|
|
8
|
+
database by functional group, category, or name.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from molbuilder.reactions.reaction_types import ReactionTemplate, ReactionCategory
|
|
12
|
+
|
|
13
|
+
# =====================================================================
|
|
14
|
+
# Master list of reaction templates
|
|
15
|
+
# =====================================================================
|
|
16
|
+
|
|
17
|
+
REACTION_TEMPLATES: list[ReactionTemplate] = []
|
|
18
|
+
|
|
19
|
+
# Helper to build and register in one step
|
|
20
|
+
def _t(**kw) -> ReactionTemplate:
|
|
21
|
+
tmpl = ReactionTemplate(**kw)
|
|
22
|
+
REACTION_TEMPLATES.append(tmpl)
|
|
23
|
+
return tmpl
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
# -----------------------------------------------------------------
|
|
27
|
+
# SUBSTITUTION (~10)
|
|
28
|
+
# -----------------------------------------------------------------
|
|
29
|
+
|
|
30
|
+
_t(
|
|
31
|
+
name="SN2 hydroxide on primary alkyl halide",
|
|
32
|
+
named_reaction="SN2",
|
|
33
|
+
category=ReactionCategory.SUBSTITUTION,
|
|
34
|
+
reagents=["NaOH"],
|
|
35
|
+
solvents=["DMSO", "DMF"],
|
|
36
|
+
temperature_range=(25.0, 80.0),
|
|
37
|
+
typical_yield=(70.0, 95.0),
|
|
38
|
+
functional_group_required=["alkyl_halide"],
|
|
39
|
+
functional_group_produced=["alcohol"],
|
|
40
|
+
functional_group_incompatible=["ester"],
|
|
41
|
+
mechanism="Back-side nucleophilic attack by hydroxide on the electrophilic carbon with simultaneous departure of the leaving group, proceeding through a single pentacoordinate transition state.",
|
|
42
|
+
reverse_transform="Disconnect C-OH bond; re-attach halide to carbon.",
|
|
43
|
+
safety_notes="NaOH is corrosive (H314).",
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
_t(
|
|
47
|
+
name="SN2 cyanide on primary alkyl halide",
|
|
48
|
+
named_reaction="SN2 cyanide displacement",
|
|
49
|
+
category=ReactionCategory.SUBSTITUTION,
|
|
50
|
+
reagents=["NaCN"],
|
|
51
|
+
solvents=["DMSO", "DMF"],
|
|
52
|
+
temperature_range=(25.0, 80.0),
|
|
53
|
+
typical_yield=(65.0, 90.0),
|
|
54
|
+
functional_group_required=["alkyl_halide"],
|
|
55
|
+
functional_group_produced=["nitrile"],
|
|
56
|
+
functional_group_incompatible=[],
|
|
57
|
+
mechanism="Cyanide ion attacks electrophilic carbon in an SN2 fashion, extending the carbon chain by one.",
|
|
58
|
+
reverse_transform="Disconnect C-CN bond; replace CN with halide.",
|
|
59
|
+
safety_notes="NaCN is acutely toxic (H300/H310/H330). Handle in fume hood with cyanide antidote kit available.",
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
_t(
|
|
63
|
+
name="SN2 azide on primary alkyl halide",
|
|
64
|
+
named_reaction="SN2 azide displacement",
|
|
65
|
+
category=ReactionCategory.SUBSTITUTION,
|
|
66
|
+
reagents=["NaN3"],
|
|
67
|
+
solvents=["DMF", "DMSO"],
|
|
68
|
+
temperature_range=(25.0, 60.0),
|
|
69
|
+
typical_yield=(75.0, 95.0),
|
|
70
|
+
functional_group_required=["alkyl_halide"],
|
|
71
|
+
functional_group_produced=["azide"],
|
|
72
|
+
functional_group_incompatible=[],
|
|
73
|
+
mechanism="Azide ion displaces halide in a concerted SN2 mechanism.",
|
|
74
|
+
reverse_transform="Disconnect C-N3 bond; replace azide with halide.",
|
|
75
|
+
safety_notes="NaN3 is highly toxic and forms explosive heavy-metal azides with Cu/Pb. Never acidify waste.",
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
_t(
|
|
79
|
+
name="SN1 tertiary halide solvolysis",
|
|
80
|
+
named_reaction="SN1",
|
|
81
|
+
category=ReactionCategory.SUBSTITUTION,
|
|
82
|
+
reagents=[],
|
|
83
|
+
solvents=["water", "EtOH", "AcOH"],
|
|
84
|
+
temperature_range=(25.0, 80.0),
|
|
85
|
+
typical_yield=(50.0, 85.0),
|
|
86
|
+
functional_group_required=["alkyl_halide"],
|
|
87
|
+
functional_group_produced=["alcohol"],
|
|
88
|
+
functional_group_incompatible=[],
|
|
89
|
+
mechanism="Ionisation of the tertiary halide generates a carbocation, which is captured by the solvent nucleophile.",
|
|
90
|
+
reverse_transform="Disconnect C-OH; reattach halide on the tertiary carbon.",
|
|
91
|
+
)
|
|
92
|
+
|
|
93
|
+
_t(
|
|
94
|
+
name="Gabriel synthesis",
|
|
95
|
+
named_reaction="Gabriel synthesis",
|
|
96
|
+
category=ReactionCategory.SUBSTITUTION,
|
|
97
|
+
reagents=["potassium phthalimide", "N2H4"],
|
|
98
|
+
solvents=["DMF", "EtOH"],
|
|
99
|
+
temperature_range=(25.0, 100.0),
|
|
100
|
+
typical_yield=(60.0, 85.0),
|
|
101
|
+
functional_group_required=["alkyl_halide"],
|
|
102
|
+
functional_group_produced=["primary_amine"],
|
|
103
|
+
functional_group_incompatible=[],
|
|
104
|
+
mechanism="Phthalimide anion displaces halide (SN2); subsequent hydrazinolysis liberates the primary amine.",
|
|
105
|
+
reverse_transform="Disconnect C-NH2; replace amine with halide.",
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
_t(
|
|
109
|
+
name="Finkelstein reaction",
|
|
110
|
+
named_reaction="Finkelstein reaction",
|
|
111
|
+
category=ReactionCategory.SUBSTITUTION,
|
|
112
|
+
reagents=["NaI"],
|
|
113
|
+
solvents=["acetone"],
|
|
114
|
+
temperature_range=(25.0, 60.0),
|
|
115
|
+
typical_yield=(75.0, 95.0),
|
|
116
|
+
functional_group_required=["alkyl_halide_cl", "alkyl_halide_br"],
|
|
117
|
+
functional_group_produced=["alkyl_halide_i"],
|
|
118
|
+
functional_group_incompatible=[],
|
|
119
|
+
mechanism="Iodide displaces chloride or bromide in acetone; NaCl or NaBr precipitates, driving equilibrium.",
|
|
120
|
+
reverse_transform="Replace iodide with the original halide.",
|
|
121
|
+
)
|
|
122
|
+
|
|
123
|
+
_t(
|
|
124
|
+
name="Mitsunobu reaction",
|
|
125
|
+
named_reaction="Mitsunobu reaction",
|
|
126
|
+
category=ReactionCategory.SUBSTITUTION,
|
|
127
|
+
reagents=["PPh3", "DIAD", "nucleophile (phthalimide, carboxylic acid, etc.)"],
|
|
128
|
+
solvents=["THF"],
|
|
129
|
+
temperature_range=(0.0, 25.0),
|
|
130
|
+
typical_yield=(60.0, 90.0),
|
|
131
|
+
functional_group_required=["alcohol"],
|
|
132
|
+
functional_group_produced=["ester", "ether", "azide"],
|
|
133
|
+
functional_group_incompatible=[],
|
|
134
|
+
mechanism="PPh3/DIAD activate the alcohol with inversion; a pronucleophile (pKa < 11) displaces via SN2.",
|
|
135
|
+
reverse_transform="Disconnect the new C-nucleophile bond; restore the alcohol with inverted stereochemistry.",
|
|
136
|
+
safety_notes="DIAD/DEAD are toxic and flammable. Triphenylphosphine oxide byproduct complicates purification.",
|
|
137
|
+
)
|
|
138
|
+
|
|
139
|
+
_t(
|
|
140
|
+
name="Williamson ether synthesis",
|
|
141
|
+
named_reaction="Williamson ether synthesis",
|
|
142
|
+
category=ReactionCategory.SUBSTITUTION,
|
|
143
|
+
reagents=["NaH", "alkyl halide (primary)"],
|
|
144
|
+
solvents=["THF", "DMF"],
|
|
145
|
+
temperature_range=(0.0, 70.0),
|
|
146
|
+
typical_yield=(70.0, 95.0),
|
|
147
|
+
functional_group_required=["alcohol"],
|
|
148
|
+
functional_group_produced=["ether"],
|
|
149
|
+
functional_group_incompatible=["carboxylic_acid", "primary_amine"],
|
|
150
|
+
mechanism="NaH deprotonates the alcohol to form an alkoxide, which then displaces a primary halide via SN2.",
|
|
151
|
+
reverse_transform="Disconnect C-O-C; one fragment becomes alcohol, other becomes alkyl halide.",
|
|
152
|
+
safety_notes="NaH is pyrophoric when dry. Generates H2 gas.",
|
|
153
|
+
)
|
|
154
|
+
|
|
155
|
+
_t(
|
|
156
|
+
name="SN2 with KOtBu on primary halide",
|
|
157
|
+
named_reaction="SN2 (bulky base can give elimination side products)",
|
|
158
|
+
category=ReactionCategory.SUBSTITUTION,
|
|
159
|
+
reagents=["KOtBu"],
|
|
160
|
+
solvents=["DMSO", "THF"],
|
|
161
|
+
temperature_range=(25.0, 60.0),
|
|
162
|
+
typical_yield=(40.0, 75.0),
|
|
163
|
+
functional_group_required=["alkyl_halide"],
|
|
164
|
+
functional_group_produced=["ether"],
|
|
165
|
+
functional_group_incompatible=[],
|
|
166
|
+
mechanism="tert-Butoxide can act as nucleophile on unhindered substrates, but elimination (E2) competes.",
|
|
167
|
+
reverse_transform="Disconnect C-O-tBu; replace with halide.",
|
|
168
|
+
safety_notes="KOtBu is pyrophoric and moisture-sensitive.",
|
|
169
|
+
)
|
|
170
|
+
|
|
171
|
+
# -----------------------------------------------------------------
|
|
172
|
+
# ELIMINATION (~6)
|
|
173
|
+
# -----------------------------------------------------------------
|
|
174
|
+
|
|
175
|
+
_t(
|
|
176
|
+
name="E2 elimination with KOtBu",
|
|
177
|
+
named_reaction="E2",
|
|
178
|
+
category=ReactionCategory.ELIMINATION,
|
|
179
|
+
reagents=["KOtBu"],
|
|
180
|
+
solvents=["THF", "t-BuOH"],
|
|
181
|
+
temperature_range=(25.0, 80.0),
|
|
182
|
+
typical_yield=(65.0, 90.0),
|
|
183
|
+
functional_group_required=["alkyl_halide"],
|
|
184
|
+
functional_group_produced=["alkene"],
|
|
185
|
+
functional_group_incompatible=[],
|
|
186
|
+
mechanism="Strong bulky base abstracts a beta-proton anti-periplanar to the leaving group in a concerted E2 mechanism.",
|
|
187
|
+
reverse_transform="Add H-X across the double bond.",
|
|
188
|
+
safety_notes="KOtBu is pyrophoric.",
|
|
189
|
+
)
|
|
190
|
+
|
|
191
|
+
_t(
|
|
192
|
+
name="E1 acid-catalyzed dehydration of alcohol",
|
|
193
|
+
named_reaction="E1 dehydration",
|
|
194
|
+
category=ReactionCategory.ELIMINATION,
|
|
195
|
+
reagents=["H2SO4"],
|
|
196
|
+
solvents=["neat", "toluene"],
|
|
197
|
+
temperature_range=(80.0, 180.0),
|
|
198
|
+
typical_yield=(50.0, 85.0),
|
|
199
|
+
functional_group_required=["alcohol"],
|
|
200
|
+
functional_group_produced=["alkene"],
|
|
201
|
+
functional_group_incompatible=["epoxide"],
|
|
202
|
+
mechanism="Protonation of the hydroxyl followed by loss of water generates a carbocation; loss of a beta-proton gives the alkene.",
|
|
203
|
+
reverse_transform="Add water across the double bond (acid-catalysed hydration).",
|
|
204
|
+
safety_notes="Concentrated H2SO4 is extremely corrosive.",
|
|
205
|
+
)
|
|
206
|
+
|
|
207
|
+
_t(
|
|
208
|
+
name="Hofmann elimination",
|
|
209
|
+
named_reaction="Hofmann elimination",
|
|
210
|
+
category=ReactionCategory.ELIMINATION,
|
|
211
|
+
reagents=["MeI (excess)", "Ag2O", "heat"],
|
|
212
|
+
solvents=["water"],
|
|
213
|
+
temperature_range=(100.0, 200.0),
|
|
214
|
+
typical_yield=(40.0, 70.0),
|
|
215
|
+
functional_group_required=["primary_amine", "secondary_amine", "tertiary_amine"],
|
|
216
|
+
functional_group_produced=["alkene"],
|
|
217
|
+
functional_group_incompatible=[],
|
|
218
|
+
mechanism="Exhaustive methylation of the amine followed by hydroxide-induced E2 elimination gives the less substituted (Hofmann) alkene.",
|
|
219
|
+
reverse_transform="Amino-alkylation of the less-substituted end of the alkene.",
|
|
220
|
+
)
|
|
221
|
+
|
|
222
|
+
_t(
|
|
223
|
+
name="Cope elimination",
|
|
224
|
+
named_reaction="Cope elimination",
|
|
225
|
+
category=ReactionCategory.ELIMINATION,
|
|
226
|
+
reagents=["mCPBA (to form N-oxide)", "heat"],
|
|
227
|
+
solvents=["DCM", "toluene"],
|
|
228
|
+
temperature_range=(80.0, 150.0),
|
|
229
|
+
typical_yield=(50.0, 80.0),
|
|
230
|
+
functional_group_required=["tertiary_amine"],
|
|
231
|
+
functional_group_produced=["alkene"],
|
|
232
|
+
functional_group_incompatible=[],
|
|
233
|
+
mechanism="Oxidation of a tertiary amine to the N-oxide, which undergoes syn-periplanar intramolecular elimination via a five-membered cyclic transition state.",
|
|
234
|
+
reverse_transform="Add amine across the double bond.",
|
|
235
|
+
)
|
|
236
|
+
|
|
237
|
+
_t(
|
|
238
|
+
name="Dehydrohalogenation with NaOEt",
|
|
239
|
+
named_reaction="E2 dehydrohalogenation",
|
|
240
|
+
category=ReactionCategory.ELIMINATION,
|
|
241
|
+
reagents=["NaOEt"],
|
|
242
|
+
solvents=["EtOH"],
|
|
243
|
+
temperature_range=(50.0, 80.0),
|
|
244
|
+
typical_yield=(60.0, 85.0),
|
|
245
|
+
functional_group_required=["alkyl_halide"],
|
|
246
|
+
functional_group_produced=["alkene"],
|
|
247
|
+
functional_group_incompatible=["ester"],
|
|
248
|
+
mechanism="Ethoxide base removes a beta-proton anti to the halide in a concerted E2 mechanism, favouring the Zaitsev product.",
|
|
249
|
+
reverse_transform="Add HX across the alkene.",
|
|
250
|
+
)
|
|
251
|
+
|
|
252
|
+
_t(
|
|
253
|
+
name="Zaitsev vs Hofmann selectivity (E2, size of base)",
|
|
254
|
+
named_reaction="E2 selectivity",
|
|
255
|
+
category=ReactionCategory.ELIMINATION,
|
|
256
|
+
reagents=["KOtBu (Hofmann)", "NaOEt (Zaitsev)"],
|
|
257
|
+
solvents=["THF", "EtOH"],
|
|
258
|
+
temperature_range=(25.0, 80.0),
|
|
259
|
+
typical_yield=(60.0, 85.0),
|
|
260
|
+
functional_group_required=["alkyl_halide"],
|
|
261
|
+
functional_group_produced=["alkene"],
|
|
262
|
+
functional_group_incompatible=[],
|
|
263
|
+
mechanism="Bulky bases (KOtBu) give the less-substituted (Hofmann) alkene; smaller bases (NaOEt) give the more-substituted (Zaitsev) alkene.",
|
|
264
|
+
reverse_transform="Add HX to the appropriate regiochemistry.",
|
|
265
|
+
)
|
|
266
|
+
|
|
267
|
+
# -----------------------------------------------------------------
|
|
268
|
+
# ADDITION (~10)
|
|
269
|
+
# -----------------------------------------------------------------
|
|
270
|
+
|
|
271
|
+
_t(
|
|
272
|
+
name="HBr addition to alkene (Markovnikov)",
|
|
273
|
+
named_reaction="Electrophilic addition",
|
|
274
|
+
category=ReactionCategory.ADDITION,
|
|
275
|
+
reagents=["HBr"],
|
|
276
|
+
solvents=["DCM"],
|
|
277
|
+
temperature_range=(-10.0, 25.0),
|
|
278
|
+
typical_yield=(70.0, 90.0),
|
|
279
|
+
functional_group_required=["alkene"],
|
|
280
|
+
functional_group_produced=["alkyl_halide_br"],
|
|
281
|
+
functional_group_incompatible=["alcohol"],
|
|
282
|
+
mechanism="Protonation of the alkene forms the more stable carbocation (Markovnikov); bromide captures the cation.",
|
|
283
|
+
reverse_transform="Remove HBr from the alkyl bromide via E2.",
|
|
284
|
+
)
|
|
285
|
+
|
|
286
|
+
_t(
|
|
287
|
+
name="Anti-Markovnikov HBr addition (peroxide)",
|
|
288
|
+
named_reaction="Radical addition (anti-Markovnikov)",
|
|
289
|
+
category=ReactionCategory.ADDITION,
|
|
290
|
+
reagents=["HBr", "ROOR (peroxide initiator)"],
|
|
291
|
+
solvents=["CCl4", "pentane"],
|
|
292
|
+
temperature_range=(25.0, 80.0),
|
|
293
|
+
typical_yield=(60.0, 85.0),
|
|
294
|
+
functional_group_required=["alkene"],
|
|
295
|
+
functional_group_produced=["alkyl_halide_br"],
|
|
296
|
+
functional_group_incompatible=[],
|
|
297
|
+
mechanism="Peroxide generates Br radical; Br adds to the less substituted carbon giving the more stable radical, then H-atom transfer completes addition.",
|
|
298
|
+
reverse_transform="Remove HBr from anti-Markovnikov position.",
|
|
299
|
+
safety_notes="Peroxides are shock-sensitive. Use freshly prepared.",
|
|
300
|
+
)
|
|
301
|
+
|
|
302
|
+
_t(
|
|
303
|
+
name="Hydroboration-oxidation",
|
|
304
|
+
named_reaction="Hydroboration-oxidation",
|
|
305
|
+
category=ReactionCategory.ADDITION,
|
|
306
|
+
reagents=["BH3*THF (or 9-BBN)", "H2O2", "NaOH"],
|
|
307
|
+
solvents=["THF"],
|
|
308
|
+
temperature_range=(0.0, 25.0),
|
|
309
|
+
typical_yield=(70.0, 90.0),
|
|
310
|
+
functional_group_required=["alkene"],
|
|
311
|
+
functional_group_produced=["alcohol"],
|
|
312
|
+
functional_group_incompatible=["aldehyde", "ketone"],
|
|
313
|
+
mechanism="Syn addition of B-H across the double bond with anti-Markovnikov regioselectivity; oxidative workup replaces B with OH with retention.",
|
|
314
|
+
reverse_transform="Disconnect C-OH at the anti-Markovnikov position; restore alkene.",
|
|
315
|
+
safety_notes="BH3 is pyrophoric; handle under inert atmosphere.",
|
|
316
|
+
)
|
|
317
|
+
|
|
318
|
+
_t(
|
|
319
|
+
name="Epoxidation with mCPBA",
|
|
320
|
+
named_reaction="Prilezhaev epoxidation",
|
|
321
|
+
category=ReactionCategory.ADDITION,
|
|
322
|
+
reagents=["mCPBA"],
|
|
323
|
+
solvents=["DCM"],
|
|
324
|
+
temperature_range=(0.0, 25.0),
|
|
325
|
+
typical_yield=(70.0, 95.0),
|
|
326
|
+
functional_group_required=["alkene"],
|
|
327
|
+
functional_group_produced=["epoxide"],
|
|
328
|
+
functional_group_incompatible=["primary_amine", "thiol"],
|
|
329
|
+
mechanism="Concerted delivery of oxygen from the peracid to the alkene via a butterfly transition state; syn addition.",
|
|
330
|
+
reverse_transform="Open the epoxide to reveal the original alkene.",
|
|
331
|
+
)
|
|
332
|
+
|
|
333
|
+
_t(
|
|
334
|
+
name="Dihydroxylation with OsO4",
|
|
335
|
+
named_reaction="Upjohn dihydroxylation",
|
|
336
|
+
category=ReactionCategory.ADDITION,
|
|
337
|
+
reagents=["OsO4 (cat.)", "NMO"],
|
|
338
|
+
solvents=["acetone/water", "THF/water"],
|
|
339
|
+
catalysts=["OsO4"],
|
|
340
|
+
temperature_range=(0.0, 25.0),
|
|
341
|
+
typical_yield=(75.0, 95.0),
|
|
342
|
+
functional_group_required=["alkene"],
|
|
343
|
+
functional_group_produced=["diol"],
|
|
344
|
+
functional_group_incompatible=[],
|
|
345
|
+
mechanism="OsO4 adds across the alkene in a [3+2] cycloaddition to form an osmate ester; NMO re-oxidises Os(VI) to Os(VIII) catalytically. Syn diol is produced.",
|
|
346
|
+
reverse_transform="Convert 1,2-diol back to alkene (via periodate cleavage or Corey-Winter).",
|
|
347
|
+
safety_notes="OsO4 is extremely toxic and volatile. Use catalytic amounts with NMO co-oxidant.",
|
|
348
|
+
)
|
|
349
|
+
|
|
350
|
+
_t(
|
|
351
|
+
name="Catalytic hydrogenation of alkene",
|
|
352
|
+
named_reaction="Catalytic hydrogenation",
|
|
353
|
+
category=ReactionCategory.ADDITION,
|
|
354
|
+
reagents=["H2"],
|
|
355
|
+
solvents=["EtOAc", "MeOH", "EtOH"],
|
|
356
|
+
catalysts=["Pd/C", "PtO2"],
|
|
357
|
+
temperature_range=(20.0, 50.0),
|
|
358
|
+
typical_yield=(85.0, 99.0),
|
|
359
|
+
functional_group_required=["alkene"],
|
|
360
|
+
functional_group_produced=[],
|
|
361
|
+
functional_group_incompatible=["alkyl_halide_br", "azide"],
|
|
362
|
+
mechanism="Syn addition of H2 across the double bond on the catalyst surface.",
|
|
363
|
+
reverse_transform="Re-introduce unsaturation by dehydrogenation or elimination.",
|
|
364
|
+
safety_notes="H2 is extremely flammable. Pd/C can be pyrophoric when dry.",
|
|
365
|
+
)
|
|
366
|
+
|
|
367
|
+
_t(
|
|
368
|
+
name="Halogenation of alkene (Br2/CCl4)",
|
|
369
|
+
named_reaction="Halogenation",
|
|
370
|
+
category=ReactionCategory.ADDITION,
|
|
371
|
+
reagents=["Br2"],
|
|
372
|
+
solvents=["CCl4", "DCM"],
|
|
373
|
+
temperature_range=(-10.0, 25.0),
|
|
374
|
+
typical_yield=(75.0, 95.0),
|
|
375
|
+
functional_group_required=["alkene"],
|
|
376
|
+
functional_group_produced=["alkyl_halide_br"],
|
|
377
|
+
functional_group_incompatible=[],
|
|
378
|
+
mechanism="Bromine adds anti across the double bond via a bromonium ion intermediate. Both carbons receive Br (vicinal dibromide).",
|
|
379
|
+
reverse_transform="Remove two Br atoms by Zn in AcOH to restore the alkene.",
|
|
380
|
+
safety_notes="Br2 is highly corrosive and toxic. Work in fume hood.",
|
|
381
|
+
)
|
|
382
|
+
|
|
383
|
+
_t(
|
|
384
|
+
name="Acid-catalysed hydration of alkene",
|
|
385
|
+
named_reaction="Acid-catalysed hydration",
|
|
386
|
+
category=ReactionCategory.ADDITION,
|
|
387
|
+
reagents=["H2SO4 (cat.)", "H2O"],
|
|
388
|
+
solvents=["water/THF"],
|
|
389
|
+
temperature_range=(25.0, 80.0),
|
|
390
|
+
typical_yield=(50.0, 80.0),
|
|
391
|
+
functional_group_required=["alkene"],
|
|
392
|
+
functional_group_produced=["alcohol"],
|
|
393
|
+
functional_group_incompatible=["epoxide"],
|
|
394
|
+
mechanism="Protonation of the alkene gives the Markovnikov carbocation; water captures it to yield the alcohol after deprotonation.",
|
|
395
|
+
reverse_transform="Dehydrate the alcohol to the alkene.",
|
|
396
|
+
)
|
|
397
|
+
|
|
398
|
+
_t(
|
|
399
|
+
name="Ozonolysis",
|
|
400
|
+
named_reaction="Ozonolysis",
|
|
401
|
+
category=ReactionCategory.ADDITION,
|
|
402
|
+
reagents=["O3", "Me2S (or PPh3)"],
|
|
403
|
+
solvents=["DCM", "MeOH"],
|
|
404
|
+
temperature_range=(-78.0, -40.0),
|
|
405
|
+
typical_yield=(65.0, 90.0),
|
|
406
|
+
functional_group_required=["alkene"],
|
|
407
|
+
functional_group_produced=["aldehyde", "ketone"],
|
|
408
|
+
functional_group_incompatible=["thiol"],
|
|
409
|
+
mechanism="Ozone adds across the double bond via a [3+2]/retro-[3+2]/[3+2] sequence forming an ozonide; reductive workup (Me2S or PPh3) cleaves it to carbonyls.",
|
|
410
|
+
reverse_transform="Join two carbonyl fragments with a Wittig or McMurry coupling to reform the alkene.",
|
|
411
|
+
safety_notes="Ozone is a powerful oxidizer and respiratory hazard. Ozonides are explosive; always quench completely before workup.",
|
|
412
|
+
)
|
|
413
|
+
|
|
414
|
+
_t(
|
|
415
|
+
name="Simmons-Smith cyclopropanation",
|
|
416
|
+
named_reaction="Simmons-Smith",
|
|
417
|
+
category=ReactionCategory.ADDITION,
|
|
418
|
+
reagents=["CH2I2", "Zn-Cu couple (or ZnEt2)"],
|
|
419
|
+
solvents=["Et2O", "DCM"],
|
|
420
|
+
temperature_range=(0.0, 40.0),
|
|
421
|
+
typical_yield=(55.0, 85.0),
|
|
422
|
+
functional_group_required=["alkene"],
|
|
423
|
+
functional_group_produced=["cyclopropane"],
|
|
424
|
+
functional_group_incompatible=[],
|
|
425
|
+
mechanism="Zinc carbenoid (IZnCH2I) delivers CH2 to the less hindered face of the alkene in a concerted [2+1] cycloaddition.",
|
|
426
|
+
reverse_transform="Open the cyclopropane to reveal alkene + CH2 unit.",
|
|
427
|
+
safety_notes="CH2I2 is a lachrymator; ZnEt2 is pyrophoric.",
|
|
428
|
+
)
|
|
429
|
+
|
|
430
|
+
# -----------------------------------------------------------------
|
|
431
|
+
# OXIDATION (~8)
|
|
432
|
+
# -----------------------------------------------------------------
|
|
433
|
+
|
|
434
|
+
_t(
|
|
435
|
+
name="PCC oxidation of primary alcohol to aldehyde",
|
|
436
|
+
named_reaction="PCC oxidation",
|
|
437
|
+
category=ReactionCategory.OXIDATION,
|
|
438
|
+
reagents=["PCC"],
|
|
439
|
+
solvents=["DCM"],
|
|
440
|
+
temperature_range=(20.0, 25.0),
|
|
441
|
+
typical_yield=(70.0, 90.0),
|
|
442
|
+
functional_group_required=["alcohol"],
|
|
443
|
+
functional_group_produced=["aldehyde"],
|
|
444
|
+
functional_group_incompatible=["primary_amine"],
|
|
445
|
+
mechanism="PCC oxidises the primary alcohol to the aldehyde stage and stops (no over-oxidation to carboxylic acid) because the mild conditions and anhydrous solvent prevent further oxidation.",
|
|
446
|
+
reverse_transform="Reduce aldehyde to primary alcohol (NaBH4).",
|
|
447
|
+
safety_notes="PCC contains Cr(VI) -- carcinogenic. Use minimum amount and dispose of Cr waste properly.",
|
|
448
|
+
)
|
|
449
|
+
|
|
450
|
+
_t(
|
|
451
|
+
name="Jones oxidation of alcohol to carboxylic acid / ketone",
|
|
452
|
+
named_reaction="Jones oxidation",
|
|
453
|
+
category=ReactionCategory.OXIDATION,
|
|
454
|
+
reagents=["CrO3", "H2SO4"],
|
|
455
|
+
solvents=["acetone"],
|
|
456
|
+
temperature_range=(0.0, 25.0),
|
|
457
|
+
typical_yield=(70.0, 90.0),
|
|
458
|
+
functional_group_required=["alcohol"],
|
|
459
|
+
functional_group_produced=["carboxylic_acid", "ketone"],
|
|
460
|
+
functional_group_incompatible=["alkene"],
|
|
461
|
+
mechanism="Cr(VI) oxidises primary alcohols all the way to carboxylic acids and secondary alcohols to ketones.",
|
|
462
|
+
reverse_transform="Reduce carboxylic acid/ketone back to alcohol.",
|
|
463
|
+
safety_notes="Cr(VI) is carcinogenic. Generate minimum chromium waste.",
|
|
464
|
+
)
|
|
465
|
+
|
|
466
|
+
_t(
|
|
467
|
+
name="Swern oxidation",
|
|
468
|
+
named_reaction="Swern oxidation",
|
|
469
|
+
category=ReactionCategory.OXIDATION,
|
|
470
|
+
reagents=["oxalyl chloride", "DMSO", "Et3N"],
|
|
471
|
+
solvents=["DCM"],
|
|
472
|
+
temperature_range=(-78.0, -40.0),
|
|
473
|
+
typical_yield=(75.0, 95.0),
|
|
474
|
+
functional_group_required=["alcohol"],
|
|
475
|
+
functional_group_produced=["aldehyde", "ketone"],
|
|
476
|
+
functional_group_incompatible=[],
|
|
477
|
+
mechanism="DMSO is activated by oxalyl chloride; the activated species oxidises the alcohol via an alkoxysulfonium intermediate. Triethylamine triggers intramolecular elimination to yield the carbonyl.",
|
|
478
|
+
reverse_transform="Reduce aldehyde/ketone back to alcohol.",
|
|
479
|
+
safety_notes="Must keep at -78 C to avoid Pummerer side reactions. DMSO/oxalyl chloride generates CO, CO2, and (CH3)2S (foul odour).",
|
|
480
|
+
)
|
|
481
|
+
|
|
482
|
+
_t(
|
|
483
|
+
name="KMnO4 oxidation of alkene",
|
|
484
|
+
named_reaction="Permanganate oxidation",
|
|
485
|
+
category=ReactionCategory.OXIDATION,
|
|
486
|
+
reagents=["KMnO4"],
|
|
487
|
+
solvents=["water/acetone", "water"],
|
|
488
|
+
temperature_range=(0.0, 100.0),
|
|
489
|
+
typical_yield=(50.0, 80.0),
|
|
490
|
+
functional_group_required=["alkene"],
|
|
491
|
+
functional_group_produced=["diol", "carboxylic_acid", "ketone"],
|
|
492
|
+
functional_group_incompatible=["aldehyde"],
|
|
493
|
+
mechanism="Cold dilute KMnO4 gives syn-dihydroxylation; hot concentrated KMnO4 cleaves the double bond to carboxylic acids/ketones.",
|
|
494
|
+
reverse_transform="Recombine fragments or reduce products.",
|
|
495
|
+
safety_notes="Strong oxidizer (H272). Purple waste can be quenched with sodium bisulfite.",
|
|
496
|
+
)
|
|
497
|
+
|
|
498
|
+
_t(
|
|
499
|
+
name="Dess-Martin periodinane oxidation",
|
|
500
|
+
named_reaction="Dess-Martin oxidation",
|
|
501
|
+
category=ReactionCategory.OXIDATION,
|
|
502
|
+
reagents=["Dess-Martin periodinane"],
|
|
503
|
+
solvents=["DCM"],
|
|
504
|
+
temperature_range=(20.0, 25.0),
|
|
505
|
+
typical_yield=(80.0, 98.0),
|
|
506
|
+
functional_group_required=["alcohol"],
|
|
507
|
+
functional_group_produced=["aldehyde", "ketone"],
|
|
508
|
+
functional_group_incompatible=[],
|
|
509
|
+
mechanism="Hypervalent iodine(V) reagent oxidises alcohols to carbonyls under very mild, neutral conditions with high functional-group tolerance.",
|
|
510
|
+
reverse_transform="Reduce carbonyl back to alcohol.",
|
|
511
|
+
safety_notes="Shock-sensitive when dry. Keep as solution.",
|
|
512
|
+
)
|
|
513
|
+
|
|
514
|
+
_t(
|
|
515
|
+
name="Baeyer-Villiger oxidation",
|
|
516
|
+
named_reaction="Baeyer-Villiger oxidation",
|
|
517
|
+
category=ReactionCategory.OXIDATION,
|
|
518
|
+
reagents=["mCPBA"],
|
|
519
|
+
solvents=["DCM"],
|
|
520
|
+
temperature_range=(0.0, 40.0),
|
|
521
|
+
typical_yield=(60.0, 90.0),
|
|
522
|
+
functional_group_required=["ketone"],
|
|
523
|
+
functional_group_produced=["ester"],
|
|
524
|
+
functional_group_incompatible=["primary_amine"],
|
|
525
|
+
mechanism="Peracid attacks the ketone to form a Criegee intermediate; 1,2-alkyl shift inserts an oxygen between the carbonyl carbon and the migrating group.",
|
|
526
|
+
reverse_transform="Disconnect the ester C-O bond; recombine as ketone.",
|
|
527
|
+
)
|
|
528
|
+
|
|
529
|
+
_t(
|
|
530
|
+
name="Sharpless asymmetric epoxidation",
|
|
531
|
+
named_reaction="Sharpless epoxidation",
|
|
532
|
+
category=ReactionCategory.OXIDATION,
|
|
533
|
+
reagents=["Ti(OiPr)4", "tBuOOH", "L-(+)-DIPT or D-(-)-DIPT"],
|
|
534
|
+
solvents=["DCM"],
|
|
535
|
+
catalysts=["Ti(OiPr)4"],
|
|
536
|
+
temperature_range=(-20.0, 0.0),
|
|
537
|
+
typical_yield=(70.0, 90.0),
|
|
538
|
+
functional_group_required=["alkene", "alcohol"],
|
|
539
|
+
functional_group_produced=["epoxide"],
|
|
540
|
+
functional_group_incompatible=["thiol"],
|
|
541
|
+
mechanism="Titanium-tartrate complex directs epoxidation of allylic alcohols with high enantioselectivity using tBuOOH as terminal oxidant.",
|
|
542
|
+
reverse_transform="Open epoxide to regenerate allylic alcohol.",
|
|
543
|
+
safety_notes="tBuOOH is an organic peroxide -- shock sensitive above certain concentrations.",
|
|
544
|
+
)
|
|
545
|
+
|
|
546
|
+
_t(
|
|
547
|
+
name="Wacker oxidation",
|
|
548
|
+
named_reaction="Wacker oxidation",
|
|
549
|
+
category=ReactionCategory.OXIDATION,
|
|
550
|
+
reagents=["PdCl2 (cat.)", "CuCl2 (co-cat.)", "O2"],
|
|
551
|
+
solvents=["DMF/water"],
|
|
552
|
+
catalysts=["PdCl2", "CuCl2"],
|
|
553
|
+
temperature_range=(25.0, 80.0),
|
|
554
|
+
typical_yield=(60.0, 85.0),
|
|
555
|
+
functional_group_required=["alkene"],
|
|
556
|
+
functional_group_produced=["ketone"],
|
|
557
|
+
functional_group_incompatible=[],
|
|
558
|
+
mechanism="Pd(II)-catalysed nucleophilic attack of water on the coordinated alkene (Markovnikov selectivity) gives a methyl ketone. CuCl2/O2 re-oxidises Pd(0) to Pd(II).",
|
|
559
|
+
reverse_transform="Disconnect CH3-C(=O)-R; rebuild terminal alkene.",
|
|
560
|
+
)
|
|
561
|
+
|
|
562
|
+
# -----------------------------------------------------------------
|
|
563
|
+
# REDUCTION (~8)
|
|
564
|
+
# -----------------------------------------------------------------
|
|
565
|
+
|
|
566
|
+
_t(
|
|
567
|
+
name="NaBH4 reduction of aldehyde/ketone to alcohol",
|
|
568
|
+
named_reaction="NaBH4 reduction",
|
|
569
|
+
category=ReactionCategory.REDUCTION,
|
|
570
|
+
reagents=["NaBH4"],
|
|
571
|
+
solvents=["MeOH", "EtOH"],
|
|
572
|
+
temperature_range=(0.0, 25.0),
|
|
573
|
+
typical_yield=(80.0, 98.0),
|
|
574
|
+
functional_group_required=["aldehyde", "ketone"],
|
|
575
|
+
functional_group_produced=["alcohol"],
|
|
576
|
+
functional_group_incompatible=[],
|
|
577
|
+
mechanism="Hydride delivery from borohydride to the electrophilic carbonyl carbon gives an alkoxide, protonated on workup.",
|
|
578
|
+
reverse_transform="Oxidise alcohol to aldehyde/ketone.",
|
|
579
|
+
)
|
|
580
|
+
|
|
581
|
+
_t(
|
|
582
|
+
name="LiAlH4 reduction of ester to primary alcohol",
|
|
583
|
+
named_reaction="LiAlH4 reduction",
|
|
584
|
+
category=ReactionCategory.REDUCTION,
|
|
585
|
+
reagents=["LiAlH4"],
|
|
586
|
+
solvents=["THF", "Et2O"],
|
|
587
|
+
temperature_range=(0.0, 70.0),
|
|
588
|
+
typical_yield=(75.0, 95.0),
|
|
589
|
+
functional_group_required=["ester"],
|
|
590
|
+
functional_group_produced=["alcohol"],
|
|
591
|
+
functional_group_incompatible=["alkyl_halide", "nitrile"],
|
|
592
|
+
mechanism="Two equivalents of hydride reduce the ester first to an aldehyde (hemiacetal collapses) then to the primary alcohol.",
|
|
593
|
+
reverse_transform="Oxidise alcohol and re-esterify.",
|
|
594
|
+
safety_notes="LiAlH4 reacts violently with water and protic solvents. Quench with careful Fieser workup (H2O, NaOH, H2O).",
|
|
595
|
+
)
|
|
596
|
+
|
|
597
|
+
_t(
|
|
598
|
+
name="LiAlH4 reduction of amide to amine",
|
|
599
|
+
named_reaction="LiAlH4 reduction",
|
|
600
|
+
category=ReactionCategory.REDUCTION,
|
|
601
|
+
reagents=["LiAlH4"],
|
|
602
|
+
solvents=["THF"],
|
|
603
|
+
temperature_range=(0.0, 70.0),
|
|
604
|
+
typical_yield=(65.0, 90.0),
|
|
605
|
+
functional_group_required=["amide"],
|
|
606
|
+
functional_group_produced=["primary_amine", "secondary_amine", "tertiary_amine"],
|
|
607
|
+
functional_group_incompatible=["alkyl_halide"],
|
|
608
|
+
mechanism="LiAlH4 reduces the amide C=O completely, yielding the corresponding amine.",
|
|
609
|
+
reverse_transform="Oxidise amine back to amide (difficult) or form amide from amine + acyl chloride.",
|
|
610
|
+
safety_notes="LiAlH4 is pyrophoric. Use strict anhydrous conditions.",
|
|
611
|
+
)
|
|
612
|
+
|
|
613
|
+
_t(
|
|
614
|
+
name="DIBAL-H reduction of ester to aldehyde at -78 C",
|
|
615
|
+
named_reaction="DIBAL-H partial reduction",
|
|
616
|
+
category=ReactionCategory.REDUCTION,
|
|
617
|
+
reagents=["DIBAL-H"],
|
|
618
|
+
solvents=["DCM", "toluene"],
|
|
619
|
+
temperature_range=(-78.0, -60.0),
|
|
620
|
+
typical_yield=(60.0, 85.0),
|
|
621
|
+
functional_group_required=["ester"],
|
|
622
|
+
functional_group_produced=["aldehyde"],
|
|
623
|
+
functional_group_incompatible=[],
|
|
624
|
+
mechanism="At -78 C, DIBAL-H delivers one equivalent of hydride to the ester, stopping at the aluminium hemiacetal stage. Aqueous workup liberates the aldehyde.",
|
|
625
|
+
reverse_transform="Re-esterify the aldehyde fragment.",
|
|
626
|
+
safety_notes="DIBAL-H is pyrophoric. Strict -78 C temperature control is essential to prevent over-reduction.",
|
|
627
|
+
)
|
|
628
|
+
|
|
629
|
+
_t(
|
|
630
|
+
name="Catalytic hydrogenation (general)",
|
|
631
|
+
named_reaction="Catalytic hydrogenation",
|
|
632
|
+
category=ReactionCategory.REDUCTION,
|
|
633
|
+
reagents=["H2"],
|
|
634
|
+
solvents=["EtOAc", "MeOH", "EtOH"],
|
|
635
|
+
catalysts=["Pd/C", "PtO2", "Rh/C"],
|
|
636
|
+
temperature_range=(20.0, 50.0),
|
|
637
|
+
typical_yield=(85.0, 99.0),
|
|
638
|
+
functional_group_required=["alkene", "alkyne", "nitrile", "nitro"],
|
|
639
|
+
functional_group_produced=["alcohol", "primary_amine"],
|
|
640
|
+
functional_group_incompatible=[],
|
|
641
|
+
mechanism="Substrate adsorbs on metal surface; H2 dissociates and adds syn to the unsaturated bond.",
|
|
642
|
+
reverse_transform="Re-oxidise or dehydrogenate.",
|
|
643
|
+
safety_notes="H2 is highly flammable (H220). Pd/C can be pyrophoric when dry.",
|
|
644
|
+
)
|
|
645
|
+
|
|
646
|
+
_t(
|
|
647
|
+
name="Birch reduction",
|
|
648
|
+
named_reaction="Birch reduction",
|
|
649
|
+
category=ReactionCategory.REDUCTION,
|
|
650
|
+
reagents=["Na (or Li)", "NH3 (liquid)", "t-BuOH"],
|
|
651
|
+
solvents=["liquid NH3"],
|
|
652
|
+
temperature_range=(-78.0, -33.0),
|
|
653
|
+
typical_yield=(60.0, 85.0),
|
|
654
|
+
functional_group_required=["aromatic_ring"],
|
|
655
|
+
functional_group_produced=["alkene"],
|
|
656
|
+
functional_group_incompatible=["alkyl_halide_br"],
|
|
657
|
+
mechanism="Dissolving metal (Na/Li in liq. NH3) delivers electrons to the aromatic ring; proton source (t-BuOH) quenches the radical anion to give 1,4-cyclohexadienes.",
|
|
658
|
+
reverse_transform="Re-aromatise by oxidation (DDQ or Pd/C).",
|
|
659
|
+
safety_notes="Liquid NH3 is extremely hazardous (bp -33 C). Na metal is pyrophoric. Requires cold-finger condenser.",
|
|
660
|
+
)
|
|
661
|
+
|
|
662
|
+
_t(
|
|
663
|
+
name="Wolff-Kishner reduction",
|
|
664
|
+
named_reaction="Wolff-Kishner reduction",
|
|
665
|
+
category=ReactionCategory.REDUCTION,
|
|
666
|
+
reagents=["N2H4", "KOH"],
|
|
667
|
+
solvents=["diethylene glycol", "ethylene glycol"],
|
|
668
|
+
temperature_range=(180.0, 230.0),
|
|
669
|
+
typical_yield=(60.0, 85.0),
|
|
670
|
+
functional_group_required=["aldehyde", "ketone"],
|
|
671
|
+
functional_group_produced=[],
|
|
672
|
+
functional_group_incompatible=["ester", "alkyl_halide"],
|
|
673
|
+
mechanism="Hydrazone formation followed by base-mediated decomposition with loss of N2 converts C=O to CH2.",
|
|
674
|
+
reverse_transform="Oxidise the methylene back to carbonyl.",
|
|
675
|
+
safety_notes="Hydrazine is toxic and carcinogenic (H350). Very high temperatures required.",
|
|
676
|
+
)
|
|
677
|
+
|
|
678
|
+
_t(
|
|
679
|
+
name="Clemmensen reduction",
|
|
680
|
+
named_reaction="Clemmensen reduction",
|
|
681
|
+
category=ReactionCategory.REDUCTION,
|
|
682
|
+
reagents=["Zn(Hg)", "HCl (conc.)"],
|
|
683
|
+
solvents=["water/HCl"],
|
|
684
|
+
temperature_range=(80.0, 110.0),
|
|
685
|
+
typical_yield=(55.0, 80.0),
|
|
686
|
+
functional_group_required=["aldehyde", "ketone"],
|
|
687
|
+
functional_group_produced=[],
|
|
688
|
+
functional_group_incompatible=["alcohol", "primary_amine"],
|
|
689
|
+
mechanism="Zinc amalgam in concentrated HCl reduces the carbonyl to a methylene group under acidic conditions (complement to Wolff-Kishner which uses base).",
|
|
690
|
+
reverse_transform="Oxidise the methylene back to carbonyl.",
|
|
691
|
+
safety_notes="Uses mercury amalgam (environmental hazard) and concentrated HCl.",
|
|
692
|
+
)
|
|
693
|
+
|
|
694
|
+
_t(
|
|
695
|
+
name="Luche reduction (NaBH4/CeCl3)",
|
|
696
|
+
named_reaction="Luche reduction",
|
|
697
|
+
category=ReactionCategory.REDUCTION,
|
|
698
|
+
reagents=["NaBH4", "CeCl3*7H2O"],
|
|
699
|
+
solvents=["MeOH"],
|
|
700
|
+
temperature_range=(-10.0, 0.0),
|
|
701
|
+
typical_yield=(75.0, 95.0),
|
|
702
|
+
functional_group_required=["ketone"],
|
|
703
|
+
functional_group_produced=["alcohol"],
|
|
704
|
+
functional_group_incompatible=[],
|
|
705
|
+
mechanism="CeCl3 activates the carbonyl as a hard electrophile, directing NaBH4 to achieve selective 1,2-reduction of enones (leaving conjugated alkene intact).",
|
|
706
|
+
reverse_transform="Oxidise allylic alcohol back to enone.",
|
|
707
|
+
)
|
|
708
|
+
|
|
709
|
+
# -----------------------------------------------------------------
|
|
710
|
+
# COUPLING (~10)
|
|
711
|
+
# -----------------------------------------------------------------
|
|
712
|
+
|
|
713
|
+
_t(
|
|
714
|
+
name="Grignard addition to aldehyde",
|
|
715
|
+
named_reaction="Grignard reaction",
|
|
716
|
+
category=ReactionCategory.COUPLING,
|
|
717
|
+
reagents=["RMgBr"],
|
|
718
|
+
solvents=["THF", "Et2O"],
|
|
719
|
+
temperature_range=(-20.0, 25.0),
|
|
720
|
+
typical_yield=(70.0, 95.0),
|
|
721
|
+
functional_group_required=["aldehyde"],
|
|
722
|
+
functional_group_produced=["alcohol"],
|
|
723
|
+
functional_group_incompatible=["alcohol", "carboxylic_acid", "primary_amine"],
|
|
724
|
+
mechanism="Grignard reagent adds to the aldehyde carbonyl; aqueous acid workup yields a secondary alcohol.",
|
|
725
|
+
reverse_transform="Disconnect C-C bond alpha to the OH; one fragment becomes RMgBr, the other becomes aldehyde.",
|
|
726
|
+
safety_notes="Grignard reagents are pyrophoric in air. Strict anhydrous conditions.",
|
|
727
|
+
)
|
|
728
|
+
|
|
729
|
+
_t(
|
|
730
|
+
name="Grignard addition to ketone",
|
|
731
|
+
named_reaction="Grignard reaction",
|
|
732
|
+
category=ReactionCategory.COUPLING,
|
|
733
|
+
reagents=["RMgBr"],
|
|
734
|
+
solvents=["THF", "Et2O"],
|
|
735
|
+
temperature_range=(-20.0, 25.0),
|
|
736
|
+
typical_yield=(65.0, 90.0),
|
|
737
|
+
functional_group_required=["ketone"],
|
|
738
|
+
functional_group_produced=["alcohol"],
|
|
739
|
+
functional_group_incompatible=["alcohol", "carboxylic_acid", "primary_amine"],
|
|
740
|
+
mechanism="Grignard reagent adds to the ketone carbonyl; aqueous acid workup gives a tertiary alcohol.",
|
|
741
|
+
reverse_transform="Disconnect one of the three C-C bonds at the tertiary alcohol carbon.",
|
|
742
|
+
)
|
|
743
|
+
|
|
744
|
+
_t(
|
|
745
|
+
name="Grignard addition to ester (gives tertiary alcohol)",
|
|
746
|
+
named_reaction="Grignard reaction (2 equiv on ester)",
|
|
747
|
+
category=ReactionCategory.COUPLING,
|
|
748
|
+
reagents=["RMgBr (2 equiv)"],
|
|
749
|
+
solvents=["THF"],
|
|
750
|
+
temperature_range=(-20.0, 25.0),
|
|
751
|
+
typical_yield=(60.0, 85.0),
|
|
752
|
+
functional_group_required=["ester"],
|
|
753
|
+
functional_group_produced=["alcohol"],
|
|
754
|
+
functional_group_incompatible=["alcohol", "primary_amine"],
|
|
755
|
+
mechanism="First equivalent of RMgBr attacks the ester; the tetrahedral intermediate collapses to a ketone + alkoxide. Second equivalent adds to the ketone to give a tertiary alcohol.",
|
|
756
|
+
reverse_transform="Disconnect two identical R groups from the tertiary alcohol; one fragment is RMgBr, the other is the ester.",
|
|
757
|
+
)
|
|
758
|
+
|
|
759
|
+
_t(
|
|
760
|
+
name="Grignard with CO2 (carboxylation)",
|
|
761
|
+
named_reaction="Grignard carboxylation",
|
|
762
|
+
category=ReactionCategory.COUPLING,
|
|
763
|
+
reagents=["RMgBr", "CO2 (dry ice)"],
|
|
764
|
+
solvents=["THF", "Et2O"],
|
|
765
|
+
temperature_range=(-78.0, 0.0),
|
|
766
|
+
typical_yield=(65.0, 90.0),
|
|
767
|
+
functional_group_required=[],
|
|
768
|
+
functional_group_produced=["carboxylic_acid"],
|
|
769
|
+
functional_group_incompatible=["alcohol", "primary_amine", "carboxylic_acid"],
|
|
770
|
+
mechanism="Grignard nucleophile attacks CO2 to form a carboxylate; acidic workup gives the carboxylic acid with one extra carbon.",
|
|
771
|
+
reverse_transform="Disconnect the C-COOH bond; carbon fragment becomes RMgBr.",
|
|
772
|
+
)
|
|
773
|
+
|
|
774
|
+
_t(
|
|
775
|
+
name="Suzuki coupling",
|
|
776
|
+
named_reaction="Suzuki-Miyaura coupling",
|
|
777
|
+
category=ReactionCategory.COUPLING,
|
|
778
|
+
reagents=["ArB(OH)2 (boronic acid)", "base (K2CO3, Cs2CO3, K3PO4)"],
|
|
779
|
+
solvents=["THF/water", "dioxane/water", "DMF"],
|
|
780
|
+
catalysts=["Pd(PPh3)4", "PdCl2(dppf)", "Pd(OAc)2/SPhos"],
|
|
781
|
+
temperature_range=(60.0, 100.0),
|
|
782
|
+
typical_yield=(70.0, 95.0),
|
|
783
|
+
functional_group_required=["alkyl_halide_br", "alkyl_halide_i"],
|
|
784
|
+
functional_group_produced=[],
|
|
785
|
+
functional_group_incompatible=[],
|
|
786
|
+
mechanism="Pd(0) oxidatively adds to the aryl/vinyl halide; transmetalation with the boronate ester transfers the second partner; reductive elimination forms the new C-C bond.",
|
|
787
|
+
reverse_transform="Disconnect the biaryl C-C bond; one fragment gets halide, the other gets B(OH)2.",
|
|
788
|
+
safety_notes="Pd catalysts are expensive. Boronic acids are generally low toxicity.",
|
|
789
|
+
)
|
|
790
|
+
|
|
791
|
+
_t(
|
|
792
|
+
name="Heck reaction",
|
|
793
|
+
named_reaction="Heck reaction",
|
|
794
|
+
category=ReactionCategory.COUPLING,
|
|
795
|
+
reagents=["aryl/vinyl halide", "alkene", "Et3N (or DIPEA)"],
|
|
796
|
+
solvents=["DMF", "MeCN", "toluene"],
|
|
797
|
+
catalysts=["Pd(OAc)2", "Pd(PPh3)4"],
|
|
798
|
+
temperature_range=(80.0, 140.0),
|
|
799
|
+
typical_yield=(60.0, 90.0),
|
|
800
|
+
functional_group_required=["alkene", "alkyl_halide_br"],
|
|
801
|
+
functional_group_produced=["alkene"],
|
|
802
|
+
functional_group_incompatible=[],
|
|
803
|
+
mechanism="Pd(0) oxidatively adds to the halide; syn migratory insertion into the alkene followed by beta-hydride elimination gives a new substituted alkene with retention of the double bond.",
|
|
804
|
+
reverse_transform="Disconnect the vinylic C-C bond; one fragment gets halide.",
|
|
805
|
+
)
|
|
806
|
+
|
|
807
|
+
_t(
|
|
808
|
+
name="Sonogashira coupling",
|
|
809
|
+
named_reaction="Sonogashira coupling",
|
|
810
|
+
category=ReactionCategory.COUPLING,
|
|
811
|
+
reagents=["terminal alkyne", "aryl/vinyl halide", "Et3N (or DIPEA)"],
|
|
812
|
+
solvents=["THF", "DMF", "Et3N (as solvent)"],
|
|
813
|
+
catalysts=["Pd(PPh3)4 (or PdCl2(PPh3)2)", "CuI"],
|
|
814
|
+
temperature_range=(25.0, 80.0),
|
|
815
|
+
typical_yield=(65.0, 90.0),
|
|
816
|
+
functional_group_required=["alkyne", "alkyl_halide_br"],
|
|
817
|
+
functional_group_produced=["alkyne"],
|
|
818
|
+
functional_group_incompatible=[],
|
|
819
|
+
mechanism="Cu(I) generates a copper acetylide from the terminal alkyne; Pd(0) oxidatively adds to the halide; transmetalation and reductive elimination form the new C(sp)-C(sp2) bond.",
|
|
820
|
+
reverse_transform="Disconnect the C(sp)-C(sp2) bond; one fragment gets halide, the other is a terminal alkyne.",
|
|
821
|
+
)
|
|
822
|
+
|
|
823
|
+
_t(
|
|
824
|
+
name="Wittig reaction",
|
|
825
|
+
named_reaction="Wittig reaction",
|
|
826
|
+
category=ReactionCategory.COUPLING,
|
|
827
|
+
reagents=["Ph3P=CHR (Wittig ylide)", "n-BuLi (for ylide generation)"],
|
|
828
|
+
solvents=["THF"],
|
|
829
|
+
temperature_range=(-78.0, 25.0),
|
|
830
|
+
typical_yield=(55.0, 85.0),
|
|
831
|
+
functional_group_required=["aldehyde", "ketone"],
|
|
832
|
+
functional_group_produced=["alkene"],
|
|
833
|
+
functional_group_incompatible=[],
|
|
834
|
+
mechanism="Phosphorus ylide attacks the carbonyl; a betaine forms and closes to an oxaphosphetane, which undergoes retro-[2+2] to give the alkene and Ph3P=O.",
|
|
835
|
+
reverse_transform="Disconnect the C=C bond; one fragment becomes an aldehyde/ketone, the other becomes a phosphonium salt.",
|
|
836
|
+
safety_notes="n-BuLi is pyrophoric. Ph3P=O is a troublesome byproduct (hard to remove).",
|
|
837
|
+
)
|
|
838
|
+
|
|
839
|
+
_t(
|
|
840
|
+
name="Horner-Wadsworth-Emmons reaction",
|
|
841
|
+
named_reaction="Horner-Wadsworth-Emmons",
|
|
842
|
+
category=ReactionCategory.COUPLING,
|
|
843
|
+
reagents=["(EtO)2P(O)CHR'CO2Et", "NaH (or LDA)"],
|
|
844
|
+
solvents=["THF"],
|
|
845
|
+
temperature_range=(-78.0, 25.0),
|
|
846
|
+
typical_yield=(60.0, 90.0),
|
|
847
|
+
functional_group_required=["aldehyde", "ketone"],
|
|
848
|
+
functional_group_produced=["alkene"],
|
|
849
|
+
functional_group_incompatible=[],
|
|
850
|
+
mechanism="Stabilised phosphonate carbanion attacks the carbonyl; the resulting betaine cyclises and fragments (retro-[2+2]) to give predominantly the E-alkene and water-soluble diethylphosphate.",
|
|
851
|
+
reverse_transform="Disconnect the C=C; one fragment becomes aldehyde/ketone, the other a phosphonate ester.",
|
|
852
|
+
)
|
|
853
|
+
|
|
854
|
+
_t(
|
|
855
|
+
name="Aldol reaction",
|
|
856
|
+
named_reaction="Aldol reaction",
|
|
857
|
+
category=ReactionCategory.COUPLING,
|
|
858
|
+
reagents=["LDA (for enolate formation)"],
|
|
859
|
+
solvents=["THF"],
|
|
860
|
+
temperature_range=(-78.0, 0.0),
|
|
861
|
+
typical_yield=(60.0, 85.0),
|
|
862
|
+
functional_group_required=["aldehyde", "ketone"],
|
|
863
|
+
functional_group_produced=["alcohol", "ketone"],
|
|
864
|
+
functional_group_incompatible=[],
|
|
865
|
+
mechanism="Base generates an enolate from one carbonyl; the enolate attacks a second carbonyl to form a beta-hydroxy carbonyl (aldol product). Heating can drive dehydration to the enone.",
|
|
866
|
+
reverse_transform="Disconnect the C-C bond between the alpha and beta carbons of the beta-hydroxy carbonyl; both fragments are carbonyls.",
|
|
867
|
+
)
|
|
868
|
+
|
|
869
|
+
_t(
|
|
870
|
+
name="Claisen condensation",
|
|
871
|
+
named_reaction="Claisen condensation",
|
|
872
|
+
category=ReactionCategory.COUPLING,
|
|
873
|
+
reagents=["NaOEt"],
|
|
874
|
+
solvents=["EtOH"],
|
|
875
|
+
temperature_range=(25.0, 80.0),
|
|
876
|
+
typical_yield=(50.0, 75.0),
|
|
877
|
+
functional_group_required=["ester"],
|
|
878
|
+
functional_group_produced=["ester", "ketone"],
|
|
879
|
+
functional_group_incompatible=[],
|
|
880
|
+
mechanism="Ethoxide deprotonates the ester alpha-position; the resulting enolate attacks a second ester molecule. Loss of ethoxide gives a beta-keto ester.",
|
|
881
|
+
reverse_transform="Disconnect the C-C bond alpha to the ketone; both fragments become esters.",
|
|
882
|
+
)
|
|
883
|
+
|
|
884
|
+
_t(
|
|
885
|
+
name="Stille coupling",
|
|
886
|
+
named_reaction="Stille coupling",
|
|
887
|
+
category=ReactionCategory.COUPLING,
|
|
888
|
+
reagents=["R-SnBu3 (organostannane)", "aryl/vinyl halide"],
|
|
889
|
+
solvents=["DMF", "toluene", "THF"],
|
|
890
|
+
catalysts=["Pd(PPh3)4", "PdCl2(PPh3)2"],
|
|
891
|
+
temperature_range=(60.0, 110.0),
|
|
892
|
+
typical_yield=(60.0, 90.0),
|
|
893
|
+
functional_group_required=["alkyl_halide_br", "alkyl_halide_i"],
|
|
894
|
+
functional_group_produced=[],
|
|
895
|
+
functional_group_incompatible=[],
|
|
896
|
+
mechanism="Pd(0) oxidatively adds to the halide; transmetalation with the stannane transfers R; reductive elimination forms the new C-C bond.",
|
|
897
|
+
reverse_transform="Disconnect the newly formed C-C bond; one fragment gets halide, the other gets SnBu3.",
|
|
898
|
+
safety_notes="Organotin compounds are highly toxic (H301/H311/H331, H360, H372). Use with extreme care and proper waste disposal.",
|
|
899
|
+
)
|
|
900
|
+
|
|
901
|
+
_t(
|
|
902
|
+
name="Negishi coupling",
|
|
903
|
+
named_reaction="Negishi coupling",
|
|
904
|
+
category=ReactionCategory.COUPLING,
|
|
905
|
+
reagents=["RZnX (organozinc)", "aryl/vinyl halide"],
|
|
906
|
+
solvents=["THF"],
|
|
907
|
+
catalysts=["Pd(PPh3)4", "PdCl2(dppf)"],
|
|
908
|
+
temperature_range=(0.0, 60.0),
|
|
909
|
+
typical_yield=(65.0, 90.0),
|
|
910
|
+
functional_group_required=["alkyl_halide_br", "alkyl_halide_i"],
|
|
911
|
+
functional_group_produced=[],
|
|
912
|
+
functional_group_incompatible=[],
|
|
913
|
+
mechanism="Pd(0) oxidatively adds to the halide; transmetalation with the organozinc transfers R; reductive elimination forms the C-C bond. High functional group tolerance.",
|
|
914
|
+
reverse_transform="Disconnect the C-C bond; one fragment gets halide, the other gets ZnX.",
|
|
915
|
+
)
|
|
916
|
+
|
|
917
|
+
# -----------------------------------------------------------------
|
|
918
|
+
# CARBONYL CHEMISTRY (~10)
|
|
919
|
+
# -----------------------------------------------------------------
|
|
920
|
+
|
|
921
|
+
_t(
|
|
922
|
+
name="Fischer esterification",
|
|
923
|
+
named_reaction="Fischer esterification",
|
|
924
|
+
category=ReactionCategory.CARBONYL,
|
|
925
|
+
reagents=["alcohol", "H2SO4 (cat.)"],
|
|
926
|
+
solvents=["neat", "toluene (Dean-Stark)"],
|
|
927
|
+
temperature_range=(60.0, 120.0),
|
|
928
|
+
typical_yield=(50.0, 85.0),
|
|
929
|
+
functional_group_required=["carboxylic_acid", "alcohol"],
|
|
930
|
+
functional_group_produced=["ester"],
|
|
931
|
+
functional_group_incompatible=["primary_amine"],
|
|
932
|
+
mechanism="Acid-catalysed nucleophilic addition-elimination: protonation of C=O, attack by alcohol, loss of water. Equilibrium driven by excess alcohol or water removal.",
|
|
933
|
+
reverse_transform="Disconnect the ester bond; fragments are carboxylic acid + alcohol.",
|
|
934
|
+
)
|
|
935
|
+
|
|
936
|
+
_t(
|
|
937
|
+
name="Amide formation from acyl chloride and amine",
|
|
938
|
+
named_reaction="Schotten-Baumann acylation",
|
|
939
|
+
category=ReactionCategory.CARBONYL,
|
|
940
|
+
reagents=["RCOCl (acyl chloride)", "Et3N (base)"],
|
|
941
|
+
solvents=["DCM", "THF"],
|
|
942
|
+
temperature_range=(0.0, 25.0),
|
|
943
|
+
typical_yield=(75.0, 95.0),
|
|
944
|
+
functional_group_required=["primary_amine", "secondary_amine"],
|
|
945
|
+
functional_group_produced=["amide"],
|
|
946
|
+
functional_group_incompatible=["alcohol"],
|
|
947
|
+
mechanism="Nucleophilic amine attacks the acyl chloride; loss of HCl (scavenged by Et3N) gives the amide.",
|
|
948
|
+
reverse_transform="Disconnect the amide C-N bond; one fragment becomes acyl chloride, the other the amine.",
|
|
949
|
+
)
|
|
950
|
+
|
|
951
|
+
_t(
|
|
952
|
+
name="Claisen rearrangement",
|
|
953
|
+
named_reaction="Claisen rearrangement",
|
|
954
|
+
category=ReactionCategory.CARBONYL,
|
|
955
|
+
reagents=[],
|
|
956
|
+
solvents=["toluene", "decalin", "neat"],
|
|
957
|
+
temperature_range=(150.0, 250.0),
|
|
958
|
+
typical_yield=(60.0, 90.0),
|
|
959
|
+
functional_group_required=["ether", "alkene"],
|
|
960
|
+
functional_group_produced=["aldehyde", "ketone"],
|
|
961
|
+
functional_group_incompatible=[],
|
|
962
|
+
mechanism="Allyl vinyl ether undergoes a concerted [3,3]-sigmatropic rearrangement through a chair-like transition state to give a gamma,delta-unsaturated carbonyl.",
|
|
963
|
+
reverse_transform="Reconnect the sigma bond as the allyl vinyl ether.",
|
|
964
|
+
)
|
|
965
|
+
|
|
966
|
+
_t(
|
|
967
|
+
name="Diels-Alder reaction",
|
|
968
|
+
named_reaction="Diels-Alder",
|
|
969
|
+
category=ReactionCategory.CARBONYL,
|
|
970
|
+
reagents=["diene", "dienophile"],
|
|
971
|
+
solvents=["toluene", "DCM", "neat"],
|
|
972
|
+
temperature_range=(25.0, 200.0),
|
|
973
|
+
typical_yield=(60.0, 95.0),
|
|
974
|
+
functional_group_required=["alkene"],
|
|
975
|
+
functional_group_produced=["alkene"],
|
|
976
|
+
functional_group_incompatible=[],
|
|
977
|
+
mechanism="Concerted [4+2] cycloaddition between a conjugated diene (s-cis conformation) and a dienophile. Suprafacial on both components; endo rule favours kinetic product.",
|
|
978
|
+
reverse_transform="Retro-Diels-Alder: disconnect the cyclohexene ring into diene + dienophile.",
|
|
979
|
+
)
|
|
980
|
+
|
|
981
|
+
_t(
|
|
982
|
+
name="Beckmann rearrangement",
|
|
983
|
+
named_reaction="Beckmann rearrangement",
|
|
984
|
+
category=ReactionCategory.CARBONYL,
|
|
985
|
+
reagents=["hydroxylamine (to form oxime)", "H2SO4 (or PCl5, SOCl2)"],
|
|
986
|
+
solvents=["AcOH", "DCM"],
|
|
987
|
+
temperature_range=(25.0, 130.0),
|
|
988
|
+
typical_yield=(55.0, 85.0),
|
|
989
|
+
functional_group_required=["ketone"],
|
|
990
|
+
functional_group_produced=["amide"],
|
|
991
|
+
functional_group_incompatible=["primary_amine"],
|
|
992
|
+
mechanism="Ketoxime undergoes acid-catalysed 1,2-shift of the group anti to the departing hydroxyl; nitrilium ion is captured by water to give the amide (lactam for cyclic ketones).",
|
|
993
|
+
reverse_transform="Disconnect the amide C-N bond; recombine as ketone.",
|
|
994
|
+
)
|
|
995
|
+
|
|
996
|
+
_t(
|
|
997
|
+
name="Cannizzaro reaction",
|
|
998
|
+
named_reaction="Cannizzaro reaction",
|
|
999
|
+
category=ReactionCategory.CARBONYL,
|
|
1000
|
+
reagents=["NaOH (conc.)"],
|
|
1001
|
+
solvents=["water"],
|
|
1002
|
+
temperature_range=(25.0, 80.0),
|
|
1003
|
+
typical_yield=(40.0, 50.0),
|
|
1004
|
+
functional_group_required=["aldehyde"],
|
|
1005
|
+
functional_group_produced=["alcohol", "carboxylic_acid"],
|
|
1006
|
+
functional_group_incompatible=[],
|
|
1007
|
+
mechanism="In concentrated base, an aldehyde without alpha-hydrogens disproportionates: one molecule is oxidised to the carboxylate, the other is reduced to the alcohol.",
|
|
1008
|
+
reverse_transform="Combine a primary alcohol and a carboxylic acid derived from the same aldehyde.",
|
|
1009
|
+
)
|
|
1010
|
+
|
|
1011
|
+
_t(
|
|
1012
|
+
name="Tischenko reaction",
|
|
1013
|
+
named_reaction="Tischenko reaction",
|
|
1014
|
+
category=ReactionCategory.CARBONYL,
|
|
1015
|
+
reagents=["Al(OEt)3 (cat.)"],
|
|
1016
|
+
solvents=["neat", "toluene"],
|
|
1017
|
+
catalysts=["Al(OEt)3"],
|
|
1018
|
+
temperature_range=(0.0, 80.0),
|
|
1019
|
+
typical_yield=(60.0, 90.0),
|
|
1020
|
+
functional_group_required=["aldehyde"],
|
|
1021
|
+
functional_group_produced=["ester"],
|
|
1022
|
+
functional_group_incompatible=[],
|
|
1023
|
+
mechanism="Lewis acid-catalysed disproportionation of two aldehyde molecules: one is oxidised and one is reduced, joined as an ester. Related to Cannizzaro but gives the ester directly.",
|
|
1024
|
+
reverse_transform="Hydrolyse the ester; both fragments derive from the same aldehyde.",
|
|
1025
|
+
)
|
|
1026
|
+
|
|
1027
|
+
_t(
|
|
1028
|
+
name="Michael addition",
|
|
1029
|
+
named_reaction="Michael addition",
|
|
1030
|
+
category=ReactionCategory.CARBONYL,
|
|
1031
|
+
reagents=["NaOEt (or LDA)"],
|
|
1032
|
+
solvents=["EtOH", "THF"],
|
|
1033
|
+
temperature_range=(-78.0, 25.0),
|
|
1034
|
+
typical_yield=(60.0, 90.0),
|
|
1035
|
+
functional_group_required=["alkene", "ketone"],
|
|
1036
|
+
functional_group_produced=["ketone"],
|
|
1037
|
+
functional_group_incompatible=[],
|
|
1038
|
+
mechanism="A stabilised nucleophile (enolate, malonate, etc.) adds in a 1,4-fashion to an alpha,beta-unsaturated carbonyl (Michael acceptor).",
|
|
1039
|
+
reverse_transform="Disconnect the C-C bond beta to the carbonyl; one fragment is the enolate donor, the other the enone.",
|
|
1040
|
+
)
|
|
1041
|
+
|
|
1042
|
+
_t(
|
|
1043
|
+
name="Robinson annulation",
|
|
1044
|
+
named_reaction="Robinson annulation",
|
|
1045
|
+
category=ReactionCategory.CARBONYL,
|
|
1046
|
+
reagents=["NaOEt", "methyl vinyl ketone"],
|
|
1047
|
+
solvents=["EtOH", "THF"],
|
|
1048
|
+
temperature_range=(25.0, 80.0),
|
|
1049
|
+
typical_yield=(45.0, 75.0),
|
|
1050
|
+
functional_group_required=["ketone"],
|
|
1051
|
+
functional_group_produced=["ketone", "alkene"],
|
|
1052
|
+
functional_group_incompatible=[],
|
|
1053
|
+
mechanism="Michael addition of a ketone enolate to methyl vinyl ketone, followed by intramolecular aldol condensation and dehydration to form a cyclohexenone ring.",
|
|
1054
|
+
reverse_transform="Disconnect the cyclohexenone ring into a 1,5-diketone, then further into the ketone + MVK.",
|
|
1055
|
+
)
|
|
1056
|
+
|
|
1057
|
+
_t(
|
|
1058
|
+
name="Baeyer-Villiger oxidation (carbonyl section)",
|
|
1059
|
+
named_reaction="Baeyer-Villiger oxidation",
|
|
1060
|
+
category=ReactionCategory.CARBONYL,
|
|
1061
|
+
reagents=["mCPBA"],
|
|
1062
|
+
solvents=["DCM"],
|
|
1063
|
+
temperature_range=(0.0, 40.0),
|
|
1064
|
+
typical_yield=(60.0, 90.0),
|
|
1065
|
+
functional_group_required=["ketone"],
|
|
1066
|
+
functional_group_produced=["ester"],
|
|
1067
|
+
functional_group_incompatible=["primary_amine"],
|
|
1068
|
+
mechanism="Peracid attacks the ketone; Criegee intermediate undergoes 1,2-alkyl migration (migratory aptitude: tert > sec > aryl > pri > methyl) to insert oxygen.",
|
|
1069
|
+
reverse_transform="Disconnect the ester oxygen; recombine as ketone.",
|
|
1070
|
+
)
|
|
1071
|
+
|
|
1072
|
+
# -----------------------------------------------------------------
|
|
1073
|
+
# PROTECTION (~8)
|
|
1074
|
+
# -----------------------------------------------------------------
|
|
1075
|
+
|
|
1076
|
+
_t(
|
|
1077
|
+
name="Boc protection of amine",
|
|
1078
|
+
named_reaction="Boc protection",
|
|
1079
|
+
category=ReactionCategory.PROTECTION,
|
|
1080
|
+
reagents=["Boc2O", "Et3N (or NaOH)"],
|
|
1081
|
+
solvents=["DCM", "THF", "water/dioxane"],
|
|
1082
|
+
temperature_range=(0.0, 25.0),
|
|
1083
|
+
typical_yield=(85.0, 98.0),
|
|
1084
|
+
functional_group_required=["primary_amine", "secondary_amine"],
|
|
1085
|
+
functional_group_produced=["carbamate"],
|
|
1086
|
+
functional_group_incompatible=[],
|
|
1087
|
+
mechanism="Nucleophilic amine attacks the electrophilic carbonyl of Boc2O; loss of tert-butoxide/CO2 gives the Boc-carbamate.",
|
|
1088
|
+
reverse_transform="Remove Boc with TFA or HCl in dioxane.",
|
|
1089
|
+
)
|
|
1090
|
+
|
|
1091
|
+
_t(
|
|
1092
|
+
name="Boc deprotection",
|
|
1093
|
+
named_reaction="Boc deprotection",
|
|
1094
|
+
category=ReactionCategory.DEPROTECTION,
|
|
1095
|
+
reagents=["TFA (or HCl in dioxane)"],
|
|
1096
|
+
solvents=["DCM"],
|
|
1097
|
+
temperature_range=(0.0, 25.0),
|
|
1098
|
+
typical_yield=(90.0, 99.0),
|
|
1099
|
+
functional_group_required=["carbamate"],
|
|
1100
|
+
functional_group_produced=["primary_amine", "secondary_amine"],
|
|
1101
|
+
functional_group_incompatible=[],
|
|
1102
|
+
mechanism="Acid protonates the carbamate oxygen; tert-butyl cation departs, generating CO2 and the free amine.",
|
|
1103
|
+
reverse_transform="Protect amine with Boc2O.",
|
|
1104
|
+
)
|
|
1105
|
+
|
|
1106
|
+
_t(
|
|
1107
|
+
name="Fmoc protection of amine",
|
|
1108
|
+
named_reaction="Fmoc protection",
|
|
1109
|
+
category=ReactionCategory.PROTECTION,
|
|
1110
|
+
reagents=["FmocCl (or Fmoc-OSu)", "Na2CO3 (or NaHCO3)"],
|
|
1111
|
+
solvents=["dioxane/water", "THF"],
|
|
1112
|
+
temperature_range=(0.0, 25.0),
|
|
1113
|
+
typical_yield=(80.0, 95.0),
|
|
1114
|
+
functional_group_required=["primary_amine", "secondary_amine"],
|
|
1115
|
+
functional_group_produced=["carbamate"],
|
|
1116
|
+
functional_group_incompatible=[],
|
|
1117
|
+
mechanism="Amine attacks FmocCl, displacing chloride; base scavenges HCl.",
|
|
1118
|
+
reverse_transform="Remove Fmoc with piperidine (20% in DMF).",
|
|
1119
|
+
)
|
|
1120
|
+
|
|
1121
|
+
_t(
|
|
1122
|
+
name="Fmoc deprotection",
|
|
1123
|
+
named_reaction="Fmoc deprotection",
|
|
1124
|
+
category=ReactionCategory.DEPROTECTION,
|
|
1125
|
+
reagents=["piperidine (20% in DMF)"],
|
|
1126
|
+
solvents=["DMF"],
|
|
1127
|
+
temperature_range=(20.0, 25.0),
|
|
1128
|
+
typical_yield=(90.0, 99.0),
|
|
1129
|
+
functional_group_required=["carbamate"],
|
|
1130
|
+
functional_group_produced=["primary_amine", "secondary_amine"],
|
|
1131
|
+
functional_group_incompatible=[],
|
|
1132
|
+
mechanism="Piperidine abstracts the acidic fluorenyl proton; beta-elimination releases dibenzofulvene and CO2, liberating the free amine. Piperidine scavenges the dibenzofulvene.",
|
|
1133
|
+
reverse_transform="Protect amine with FmocCl.",
|
|
1134
|
+
)
|
|
1135
|
+
|
|
1136
|
+
_t(
|
|
1137
|
+
name="TBS protection of alcohol",
|
|
1138
|
+
named_reaction="TBS silylation",
|
|
1139
|
+
category=ReactionCategory.PROTECTION,
|
|
1140
|
+
reagents=["TBSCl", "imidazole"],
|
|
1141
|
+
solvents=["DMF", "DCM"],
|
|
1142
|
+
temperature_range=(0.0, 25.0),
|
|
1143
|
+
typical_yield=(85.0, 98.0),
|
|
1144
|
+
functional_group_required=["alcohol"],
|
|
1145
|
+
functional_group_produced=["silyl_ether"],
|
|
1146
|
+
functional_group_incompatible=[],
|
|
1147
|
+
mechanism="Imidazole acts as nucleophilic catalyst, activating TBSCl; the alcohol then displaces imidazole to form the TBS ether.",
|
|
1148
|
+
reverse_transform="Remove TBS with TBAF in THF.",
|
|
1149
|
+
)
|
|
1150
|
+
|
|
1151
|
+
_t(
|
|
1152
|
+
name="TBS deprotection",
|
|
1153
|
+
named_reaction="TBS removal",
|
|
1154
|
+
category=ReactionCategory.DEPROTECTION,
|
|
1155
|
+
reagents=["TBAF"],
|
|
1156
|
+
solvents=["THF"],
|
|
1157
|
+
temperature_range=(0.0, 25.0),
|
|
1158
|
+
typical_yield=(90.0, 99.0),
|
|
1159
|
+
functional_group_required=["silyl_ether"],
|
|
1160
|
+
functional_group_produced=["alcohol"],
|
|
1161
|
+
functional_group_incompatible=[],
|
|
1162
|
+
mechanism="Fluoride ion attacks silicon (very strong Si-F bond, 140 kcal/mol), displacing the alkoxide which is protonated on workup.",
|
|
1163
|
+
reverse_transform="Protect alcohol with TBSCl/imidazole.",
|
|
1164
|
+
)
|
|
1165
|
+
|
|
1166
|
+
_t(
|
|
1167
|
+
name="Benzyl protection of alcohol",
|
|
1168
|
+
named_reaction="Benzyl protection",
|
|
1169
|
+
category=ReactionCategory.PROTECTION,
|
|
1170
|
+
reagents=["BnBr", "NaH"],
|
|
1171
|
+
solvents=["DMF", "THF"],
|
|
1172
|
+
temperature_range=(0.0, 25.0),
|
|
1173
|
+
typical_yield=(80.0, 95.0),
|
|
1174
|
+
functional_group_required=["alcohol"],
|
|
1175
|
+
functional_group_produced=["ether"],
|
|
1176
|
+
functional_group_incompatible=["alkyl_halide"],
|
|
1177
|
+
mechanism="NaH deprotonates the alcohol; the alkoxide displaces bromide from BnBr in an SN2 reaction.",
|
|
1178
|
+
reverse_transform="Remove Bn by hydrogenolysis (H2/Pd-C).",
|
|
1179
|
+
)
|
|
1180
|
+
|
|
1181
|
+
_t(
|
|
1182
|
+
name="Benzyl deprotection (hydrogenolysis)",
|
|
1183
|
+
named_reaction="Hydrogenolysis",
|
|
1184
|
+
category=ReactionCategory.DEPROTECTION,
|
|
1185
|
+
reagents=["H2", "Pd/C"],
|
|
1186
|
+
solvents=["EtOAc", "MeOH", "EtOH"],
|
|
1187
|
+
catalysts=["Pd/C"],
|
|
1188
|
+
temperature_range=(20.0, 40.0),
|
|
1189
|
+
typical_yield=(85.0, 99.0),
|
|
1190
|
+
functional_group_required=["ether"],
|
|
1191
|
+
functional_group_produced=["alcohol"],
|
|
1192
|
+
functional_group_incompatible=["alkene", "alkyne"],
|
|
1193
|
+
mechanism="Pd-catalysed hydrogenolysis cleaves the benzylic C-O bond. Toluene is released as byproduct.",
|
|
1194
|
+
reverse_transform="Protect alcohol with BnBr/NaH.",
|
|
1195
|
+
safety_notes="H2/Pd-C: flammable gas + pyrophoric catalyst. Filter Pd/C through Celite before discarding.",
|
|
1196
|
+
)
|
|
1197
|
+
|
|
1198
|
+
_t(
|
|
1199
|
+
name="Acetyl protection of alcohol",
|
|
1200
|
+
named_reaction="Acetylation",
|
|
1201
|
+
category=ReactionCategory.PROTECTION,
|
|
1202
|
+
reagents=["Ac2O", "Et3N (or pyridine)", "DMAP (cat.)"],
|
|
1203
|
+
solvents=["DCM"],
|
|
1204
|
+
catalysts=["DMAP"],
|
|
1205
|
+
temperature_range=(0.0, 25.0),
|
|
1206
|
+
typical_yield=(85.0, 98.0),
|
|
1207
|
+
functional_group_required=["alcohol"],
|
|
1208
|
+
functional_group_produced=["ester"],
|
|
1209
|
+
functional_group_incompatible=["primary_amine"],
|
|
1210
|
+
mechanism="DMAP-catalysed nucleophilic acyl substitution: DMAP activates acetic anhydride, the alcohol attacks, and acetic acid departs.",
|
|
1211
|
+
reverse_transform="Remove acetyl with K2CO3/MeOH or LiOH/THF-water.",
|
|
1212
|
+
)
|
|
1213
|
+
|
|
1214
|
+
_t(
|
|
1215
|
+
name="PMB protection of alcohol",
|
|
1216
|
+
named_reaction="PMB protection",
|
|
1217
|
+
category=ReactionCategory.PROTECTION,
|
|
1218
|
+
reagents=["PMBCl", "NaH"],
|
|
1219
|
+
solvents=["DMF", "THF"],
|
|
1220
|
+
temperature_range=(0.0, 25.0),
|
|
1221
|
+
typical_yield=(75.0, 90.0),
|
|
1222
|
+
functional_group_required=["alcohol"],
|
|
1223
|
+
functional_group_produced=["ether"],
|
|
1224
|
+
functional_group_incompatible=[],
|
|
1225
|
+
mechanism="NaH deprotonates alcohol; the alkoxide displaces chloride from PMBCl in an SN2 reaction.",
|
|
1226
|
+
reverse_transform="Remove PMB with DDQ (oxidative) or TFA/anisole (acidic).",
|
|
1227
|
+
)
|
|
1228
|
+
|
|
1229
|
+
_t(
|
|
1230
|
+
name="PMB deprotection with DDQ",
|
|
1231
|
+
named_reaction="PMB deprotection",
|
|
1232
|
+
category=ReactionCategory.DEPROTECTION,
|
|
1233
|
+
reagents=["DDQ"],
|
|
1234
|
+
solvents=["DCM/water", "DCM/pH 7 buffer"],
|
|
1235
|
+
temperature_range=(0.0, 25.0),
|
|
1236
|
+
typical_yield=(75.0, 95.0),
|
|
1237
|
+
functional_group_required=["ether"],
|
|
1238
|
+
functional_group_produced=["alcohol"],
|
|
1239
|
+
functional_group_incompatible=["alkene"],
|
|
1240
|
+
mechanism="DDQ oxidises the electron-rich PMB group to a quinone methide/oxocarbenium species; water (or buffer) traps it, releasing the free alcohol.",
|
|
1241
|
+
reverse_transform="Protect with PMBCl/NaH.",
|
|
1242
|
+
)
|
|
1243
|
+
|
|
1244
|
+
_t(
|
|
1245
|
+
name="Acetonide protection of 1,2-diol",
|
|
1246
|
+
named_reaction="Acetonide protection",
|
|
1247
|
+
category=ReactionCategory.PROTECTION,
|
|
1248
|
+
reagents=["2,2-dimethoxypropane", "p-TsOH (cat.)"],
|
|
1249
|
+
solvents=["acetone", "DMF"],
|
|
1250
|
+
catalysts=["p-TsOH"],
|
|
1251
|
+
temperature_range=(20.0, 50.0),
|
|
1252
|
+
typical_yield=(80.0, 95.0),
|
|
1253
|
+
functional_group_required=["diol"],
|
|
1254
|
+
functional_group_produced=["acetal"],
|
|
1255
|
+
functional_group_incompatible=[],
|
|
1256
|
+
mechanism="Acid-catalysed transacetalisation: the diol displaces methanol from 2,2-dimethoxypropane to form a cyclic acetonide.",
|
|
1257
|
+
reverse_transform="Remove acetonide with aqueous acid (pTsOH/MeOH or AcOH/water).",
|
|
1258
|
+
)
|
|
1259
|
+
|
|
1260
|
+
_t(
|
|
1261
|
+
name="THP protection of alcohol",
|
|
1262
|
+
named_reaction="THP protection",
|
|
1263
|
+
category=ReactionCategory.PROTECTION,
|
|
1264
|
+
reagents=["DHP (3,4-dihydro-2H-pyran)", "p-TsOH (cat.)"],
|
|
1265
|
+
solvents=["DCM"],
|
|
1266
|
+
catalysts=["p-TsOH"],
|
|
1267
|
+
temperature_range=(0.0, 25.0),
|
|
1268
|
+
typical_yield=(80.0, 95.0),
|
|
1269
|
+
functional_group_required=["alcohol"],
|
|
1270
|
+
functional_group_produced=["acetal"],
|
|
1271
|
+
functional_group_incompatible=[],
|
|
1272
|
+
mechanism="Acid-catalysed addition of the alcohol to the vinyl ether of DHP forms a mixed THP acetal. Note: creates a new stereocenter.",
|
|
1273
|
+
reverse_transform="Remove THP with p-TsOH in MeOH or PPTS in EtOH.",
|
|
1274
|
+
)
|
|
1275
|
+
|
|
1276
|
+
# -----------------------------------------------------------------
|
|
1277
|
+
# REARRANGEMENT (~6)
|
|
1278
|
+
# -----------------------------------------------------------------
|
|
1279
|
+
|
|
1280
|
+
_t(
|
|
1281
|
+
name="Cope rearrangement",
|
|
1282
|
+
named_reaction="Cope rearrangement",
|
|
1283
|
+
category=ReactionCategory.REARRANGEMENT,
|
|
1284
|
+
reagents=[],
|
|
1285
|
+
solvents=["toluene", "decalin"],
|
|
1286
|
+
temperature_range=(150.0, 300.0),
|
|
1287
|
+
typical_yield=(50.0, 85.0),
|
|
1288
|
+
functional_group_required=["alkene"],
|
|
1289
|
+
functional_group_produced=["alkene"],
|
|
1290
|
+
functional_group_incompatible=[],
|
|
1291
|
+
mechanism="[3,3]-Sigmatropic rearrangement of a 1,5-diene through a chair-like transition state. Oxy-Cope variant (3-hydroxy-1,5-diene) is driven by tautomerisation to a ketone.",
|
|
1292
|
+
reverse_transform="Reverse [3,3] shift.",
|
|
1293
|
+
)
|
|
1294
|
+
|
|
1295
|
+
_t(
|
|
1296
|
+
name="Pinacol rearrangement",
|
|
1297
|
+
named_reaction="Pinacol rearrangement",
|
|
1298
|
+
category=ReactionCategory.REARRANGEMENT,
|
|
1299
|
+
reagents=["H2SO4"],
|
|
1300
|
+
solvents=["water"],
|
|
1301
|
+
temperature_range=(25.0, 100.0),
|
|
1302
|
+
typical_yield=(55.0, 80.0),
|
|
1303
|
+
functional_group_required=["diol"],
|
|
1304
|
+
functional_group_produced=["ketone"],
|
|
1305
|
+
functional_group_incompatible=[],
|
|
1306
|
+
mechanism="Acid protonates one hydroxyl; water departs to give a carbocation; 1,2-alkyl shift to the cationic centre, followed by loss of a proton gives pinacolone (a ketone).",
|
|
1307
|
+
reverse_transform="Add two OH groups to the ketone alpha-carbon.",
|
|
1308
|
+
)
|
|
1309
|
+
|
|
1310
|
+
_t(
|
|
1311
|
+
name="Curtius rearrangement",
|
|
1312
|
+
named_reaction="Curtius rearrangement",
|
|
1313
|
+
category=ReactionCategory.REARRANGEMENT,
|
|
1314
|
+
reagents=["DPPA (diphenylphosphoryl azide)", "Et3N"],
|
|
1315
|
+
solvents=["toluene", "THF"],
|
|
1316
|
+
temperature_range=(60.0, 110.0),
|
|
1317
|
+
typical_yield=(60.0, 85.0),
|
|
1318
|
+
functional_group_required=["carboxylic_acid"],
|
|
1319
|
+
functional_group_produced=["primary_amine", "carbamate"],
|
|
1320
|
+
functional_group_incompatible=[],
|
|
1321
|
+
mechanism="Carboxylic acid is converted to the acyl azide; thermolysis induces 1,2-shift with loss of N2 to give an isocyanate. Trapping with water gives the amine (one fewer carbon); trapping with alcohol gives a carbamate.",
|
|
1322
|
+
reverse_transform="Amine + CO2 -> carboxylic acid (formal).",
|
|
1323
|
+
safety_notes="Acyl azides are potentially explosive. DPPA generates HN3 (toxic).",
|
|
1324
|
+
)
|
|
1325
|
+
|
|
1326
|
+
_t(
|
|
1327
|
+
name="Hofmann rearrangement",
|
|
1328
|
+
named_reaction="Hofmann rearrangement",
|
|
1329
|
+
category=ReactionCategory.REARRANGEMENT,
|
|
1330
|
+
reagents=["NaOH", "Br2"],
|
|
1331
|
+
solvents=["water"],
|
|
1332
|
+
temperature_range=(0.0, 70.0),
|
|
1333
|
+
typical_yield=(55.0, 80.0),
|
|
1334
|
+
functional_group_required=["amide"],
|
|
1335
|
+
functional_group_produced=["primary_amine"],
|
|
1336
|
+
functional_group_incompatible=[],
|
|
1337
|
+
mechanism="Bromination of the amide nitrogen, base-induced 1,2-shift with loss of bromide gives an isocyanate, which is hydrolysed to the amine (one fewer carbon).",
|
|
1338
|
+
reverse_transform="Amine + CO -> amide (formal).",
|
|
1339
|
+
)
|
|
1340
|
+
|
|
1341
|
+
|
|
1342
|
+
# -----------------------------------------------------------------
|
|
1343
|
+
# MISCELLANEOUS (~4)
|
|
1344
|
+
# -----------------------------------------------------------------
|
|
1345
|
+
|
|
1346
|
+
_t(
|
|
1347
|
+
name="Appel reaction (alcohol to alkyl halide)",
|
|
1348
|
+
named_reaction="Appel reaction",
|
|
1349
|
+
category=ReactionCategory.MISC,
|
|
1350
|
+
reagents=["PPh3", "CCl4 (or CBr4, or I2)"],
|
|
1351
|
+
solvents=["DCM"],
|
|
1352
|
+
temperature_range=(0.0, 25.0),
|
|
1353
|
+
typical_yield=(70.0, 95.0),
|
|
1354
|
+
functional_group_required=["alcohol"],
|
|
1355
|
+
functional_group_produced=["alkyl_halide"],
|
|
1356
|
+
functional_group_incompatible=["carboxylic_acid"],
|
|
1357
|
+
mechanism=(
|
|
1358
|
+
"PPh3 reacts with CCl4 to form a phosphonium salt; the alcohol oxygen "
|
|
1359
|
+
"attacks phosphorus, forming an oxyphosphonium intermediate. Chloride "
|
|
1360
|
+
"displaces the activated oxygen via SN2 with inversion."
|
|
1361
|
+
),
|
|
1362
|
+
reverse_transform="Disconnect C-X; replace halide with hydroxyl.",
|
|
1363
|
+
safety_notes="CCl4 is toxic and an ozone depleter. CBr4 is preferred where possible.",
|
|
1364
|
+
)
|
|
1365
|
+
|
|
1366
|
+
_t(
|
|
1367
|
+
name="Staudinger reduction (azide to amine)",
|
|
1368
|
+
named_reaction="Staudinger reduction",
|
|
1369
|
+
category=ReactionCategory.MISC,
|
|
1370
|
+
reagents=["PPh3", "H2O"],
|
|
1371
|
+
solvents=["THF", "THF/water"],
|
|
1372
|
+
temperature_range=(20.0, 60.0),
|
|
1373
|
+
typical_yield=(75.0, 95.0),
|
|
1374
|
+
functional_group_required=["azide"],
|
|
1375
|
+
functional_group_produced=["primary_amine"],
|
|
1376
|
+
functional_group_incompatible=[],
|
|
1377
|
+
mechanism=(
|
|
1378
|
+
"PPh3 attacks the terminal nitrogen of the azide, releasing N2 and "
|
|
1379
|
+
"forming an iminophosphorane (aza-ylide). Hydrolysis gives the "
|
|
1380
|
+
"primary amine and Ph3P=O."
|
|
1381
|
+
),
|
|
1382
|
+
reverse_transform="Convert amine back to azide via diazotransfer.",
|
|
1383
|
+
safety_notes="Organic azides can be shock-sensitive. Ph3P=O byproduct.",
|
|
1384
|
+
)
|
|
1385
|
+
|
|
1386
|
+
_t(
|
|
1387
|
+
name="Corey-Chaykovsky epoxidation / cyclopropanation",
|
|
1388
|
+
named_reaction="Corey-Chaykovsky reaction",
|
|
1389
|
+
category=ReactionCategory.MISC,
|
|
1390
|
+
reagents=["trimethylsulfonium iodide (or trimethylsulfoxonium iodide)", "NaH"],
|
|
1391
|
+
solvents=["DMSO", "THF"],
|
|
1392
|
+
temperature_range=(0.0, 25.0),
|
|
1393
|
+
typical_yield=(55.0, 80.0),
|
|
1394
|
+
functional_group_required=["aldehyde", "ketone"],
|
|
1395
|
+
functional_group_produced=["epoxide", "cyclopropane"],
|
|
1396
|
+
functional_group_incompatible=[],
|
|
1397
|
+
mechanism=(
|
|
1398
|
+
"Deprotonation of the sulfonium salt gives the sulfur ylide, which "
|
|
1399
|
+
"attacks the carbonyl. With the sulfonium ylide, the betaine closes "
|
|
1400
|
+
"to an epoxide; with the sulfoxonium ylide, cyclopropanation of enones "
|
|
1401
|
+
"occurs via conjugate addition then ring closure."
|
|
1402
|
+
),
|
|
1403
|
+
reverse_transform="Open the epoxide to retrieve the carbonyl; or open the cyclopropane.",
|
|
1404
|
+
safety_notes="NaH is pyrophoric. Handle under inert atmosphere.",
|
|
1405
|
+
)
|
|
1406
|
+
|
|
1407
|
+
_t(
|
|
1408
|
+
name="Olefin metathesis (ring-closing)",
|
|
1409
|
+
named_reaction="Ring-closing metathesis (RCM)",
|
|
1410
|
+
category=ReactionCategory.MISC,
|
|
1411
|
+
reagents=["Grubbs 2nd generation catalyst"],
|
|
1412
|
+
solvents=["DCM", "toluene"],
|
|
1413
|
+
catalysts=["Grubbs 2nd generation"],
|
|
1414
|
+
temperature_range=(25.0, 40.0),
|
|
1415
|
+
typical_yield=(60.0, 90.0),
|
|
1416
|
+
functional_group_required=["alkene"],
|
|
1417
|
+
functional_group_produced=["alkene"],
|
|
1418
|
+
functional_group_incompatible=["thiol", "primary_amine"],
|
|
1419
|
+
mechanism=(
|
|
1420
|
+
"Ruthenium carbene catalyst initiates by [2+2] cycloaddition with one "
|
|
1421
|
+
"terminal alkene; metallacyclobutane fragmentation releases ethylene. "
|
|
1422
|
+
"Intramolecular [2+2] with the second alkene closes the ring."
|
|
1423
|
+
),
|
|
1424
|
+
reverse_transform="Open the ring by cross-metathesis; restore two terminal alkenes.",
|
|
1425
|
+
safety_notes="Grubbs catalysts are air-sensitive. Ethylene gas is evolved.",
|
|
1426
|
+
)
|
|
1427
|
+
|
|
1428
|
+
# -----------------------------------------------------------------
|
|
1429
|
+
# METATHESIS / C-H ACTIVATION / ASYMMETRIC (~5)
|
|
1430
|
+
# -----------------------------------------------------------------
|
|
1431
|
+
|
|
1432
|
+
_t(
|
|
1433
|
+
name="Cross-metathesis (Grubbs catalyst)",
|
|
1434
|
+
named_reaction="Cross-metathesis",
|
|
1435
|
+
category=ReactionCategory.MISC,
|
|
1436
|
+
reagents=["Grubbs 2nd generation catalyst", "terminal alkene partner"],
|
|
1437
|
+
solvents=["DCM", "toluene"],
|
|
1438
|
+
catalysts=["Grubbs 2nd generation"],
|
|
1439
|
+
temperature_range=(25.0, 45.0),
|
|
1440
|
+
typical_yield=(40.0, 80.0),
|
|
1441
|
+
functional_group_required=["alkene"],
|
|
1442
|
+
functional_group_produced=["alkene"],
|
|
1443
|
+
functional_group_incompatible=["thiol", "primary_amine"],
|
|
1444
|
+
mechanism=(
|
|
1445
|
+
"Ruthenium carbene initiates by [2+2] cycloaddition with one "
|
|
1446
|
+
"terminal olefin; metallacyclobutane fragmentation and re-entry "
|
|
1447
|
+
"with the cross-partner olefin produces the hetero-disubstituted "
|
|
1448
|
+
"alkene. Statistical mixtures are minimised by choosing partners "
|
|
1449
|
+
"of different reactivity types (Type I / Type II / Type III)."
|
|
1450
|
+
),
|
|
1451
|
+
reverse_transform=(
|
|
1452
|
+
"Disconnect the internal alkene; each fragment becomes a "
|
|
1453
|
+
"terminal olefin."
|
|
1454
|
+
),
|
|
1455
|
+
scale_notes=(
|
|
1456
|
+
"Catalyst loading typically 1-5 mol%. Ethylene removal by "
|
|
1457
|
+
"sparging or reduced pressure shifts equilibrium toward product."
|
|
1458
|
+
),
|
|
1459
|
+
safety_notes=(
|
|
1460
|
+
"Grubbs catalysts are air-sensitive. Ethylene gas is evolved; "
|
|
1461
|
+
"ensure adequate ventilation."
|
|
1462
|
+
),
|
|
1463
|
+
)
|
|
1464
|
+
|
|
1465
|
+
_t(
|
|
1466
|
+
name="Pd-catalysed C-H activation (arene functionalisation)",
|
|
1467
|
+
named_reaction="Pd-catalysed C-H activation",
|
|
1468
|
+
category=ReactionCategory.COUPLING,
|
|
1469
|
+
reagents=["aryl halide (or oxidant)", "PivOH (or AcOH)"],
|
|
1470
|
+
solvents=["DMA", "toluene", "DMF"],
|
|
1471
|
+
catalysts=["Pd(OAc)2"],
|
|
1472
|
+
temperature_range=(80.0, 140.0),
|
|
1473
|
+
typical_yield=(30.0, 75.0),
|
|
1474
|
+
functional_group_required=["aromatic_ring"],
|
|
1475
|
+
functional_group_produced=["aromatic_ring"],
|
|
1476
|
+
functional_group_incompatible=["thiol"],
|
|
1477
|
+
mechanism=(
|
|
1478
|
+
"Pd(II) coordinates to the arene and undergoes concerted "
|
|
1479
|
+
"metalation-deprotonation (CMD) at the least hindered C-H bond, "
|
|
1480
|
+
"assisted by carboxylate base. The resulting aryl-Pd species "
|
|
1481
|
+
"either undergoes oxidative Heck-type coupling or is oxidised "
|
|
1482
|
+
"to Pd(IV) before reductive elimination to form the new C-C bond."
|
|
1483
|
+
),
|
|
1484
|
+
reverse_transform=(
|
|
1485
|
+
"Disconnect the newly formed aryl-aryl or aryl-R bond; "
|
|
1486
|
+
"one fragment keeps H, the other gets a halide or equivalent."
|
|
1487
|
+
),
|
|
1488
|
+
scale_notes=(
|
|
1489
|
+
"Regioselectivity is substrate-dependent; directing groups "
|
|
1490
|
+
"(pyridine, amide, oxazoline) greatly improve selectivity. "
|
|
1491
|
+
"Typical Pd loading 5-10 mol%."
|
|
1492
|
+
),
|
|
1493
|
+
safety_notes=(
|
|
1494
|
+
"Pd(OAc)2 is a skin sensitiser. DMA is a reproductive toxin "
|
|
1495
|
+
"(H360). High temperatures require pressure-rated equipment."
|
|
1496
|
+
),
|
|
1497
|
+
)
|
|
1498
|
+
|
|
1499
|
+
_t(
|
|
1500
|
+
name="Asymmetric hydrogenation (Rh or Ru catalysed)",
|
|
1501
|
+
named_reaction="Asymmetric hydrogenation",
|
|
1502
|
+
category=ReactionCategory.REDUCTION,
|
|
1503
|
+
reagents=["H2"],
|
|
1504
|
+
solvents=["MeOH", "iPrOH", "DCM"],
|
|
1505
|
+
catalysts=["Rh(cod)2BF4 / chiral bisphosphine", "Ru(OAc)2(BINAP)"],
|
|
1506
|
+
temperature_range=(20.0, 50.0),
|
|
1507
|
+
typical_yield=(85.0, 99.0),
|
|
1508
|
+
functional_group_required=["alkene"],
|
|
1509
|
+
functional_group_produced=["alkane"],
|
|
1510
|
+
functional_group_incompatible=["thiol"],
|
|
1511
|
+
mechanism=(
|
|
1512
|
+
"Chiral transition-metal complex (Rh or Ru with enantiomerically "
|
|
1513
|
+
"pure bisphosphine ligand) coordinates the prochiral olefin. "
|
|
1514
|
+
"Oxidative addition of H2 followed by migratory insertion and "
|
|
1515
|
+
"reductive elimination delivers H2 across the double bond with "
|
|
1516
|
+
"enantioselectivities typically >95% ee."
|
|
1517
|
+
),
|
|
1518
|
+
reverse_transform=(
|
|
1519
|
+
"Disconnect two C-H bonds on adjacent carbons; restore the "
|
|
1520
|
+
"alkene with defined geometry."
|
|
1521
|
+
),
|
|
1522
|
+
scale_notes=(
|
|
1523
|
+
"Highly scalable; used industrially for L-DOPA, menthol, etc. "
|
|
1524
|
+
"Catalyst loadings as low as 0.01 mol% on scale. H2 pressures "
|
|
1525
|
+
"of 1-50 atm are common."
|
|
1526
|
+
),
|
|
1527
|
+
safety_notes=(
|
|
1528
|
+
"H2 is extremely flammable (H220). Pressure equipment must "
|
|
1529
|
+
"be rated. Chiral ligands are expensive."
|
|
1530
|
+
),
|
|
1531
|
+
)
|
|
1532
|
+
|
|
1533
|
+
_t(
|
|
1534
|
+
name="Ring-opening metathesis polymerisation (ROMP)",
|
|
1535
|
+
named_reaction="ROMP",
|
|
1536
|
+
category=ReactionCategory.POLYMERIZATION,
|
|
1537
|
+
reagents=["Grubbs 3rd generation catalyst (or Grubbs 2nd gen)"],
|
|
1538
|
+
solvents=["DCM", "THF", "toluene"],
|
|
1539
|
+
catalysts=["Grubbs 3rd generation"],
|
|
1540
|
+
temperature_range=(20.0, 40.0),
|
|
1541
|
+
typical_yield=(80.0, 99.0),
|
|
1542
|
+
functional_group_required=["alkene"],
|
|
1543
|
+
functional_group_produced=["alkene"],
|
|
1544
|
+
functional_group_incompatible=["thiol", "primary_amine"],
|
|
1545
|
+
mechanism=(
|
|
1546
|
+
"Ruthenium alkylidene initiates by [2+2] cycloaddition with the "
|
|
1547
|
+
"strained cyclic olefin (norbornene, cyclooctene, etc.); "
|
|
1548
|
+
"metallacyclobutane retro-[2+2] opens the ring and regenerates "
|
|
1549
|
+
"the active alkylidene. Repetitive ring-opening of strained "
|
|
1550
|
+
"monomers produces a linear polymer with backbone unsaturation. "
|
|
1551
|
+
"Thermodynamic driving force is the release of ring strain."
|
|
1552
|
+
),
|
|
1553
|
+
reverse_transform=(
|
|
1554
|
+
"Depolymerise the unsaturated polymer back to cyclic monomer "
|
|
1555
|
+
"under dilute conditions (ring-closing metathesis)."
|
|
1556
|
+
),
|
|
1557
|
+
scale_notes=(
|
|
1558
|
+
"Living polymerisation: PDI close to 1.0. Control molecular "
|
|
1559
|
+
"weight via monomer-to-initiator ratio. Quench with ethyl "
|
|
1560
|
+
"vinyl ether."
|
|
1561
|
+
),
|
|
1562
|
+
safety_notes=(
|
|
1563
|
+
"Strained monomers (e.g. dicyclopentadiene) are flammable and "
|
|
1564
|
+
"may self-polymerise. Ru catalysts are air-sensitive."
|
|
1565
|
+
),
|
|
1566
|
+
)
|
|
1567
|
+
|
|
1568
|
+
_t(
|
|
1569
|
+
name="Olefin cross-metathesis (selective, with acrylate partner)",
|
|
1570
|
+
named_reaction="Olefin cross-metathesis",
|
|
1571
|
+
category=ReactionCategory.MISC,
|
|
1572
|
+
reagents=["Hoveyda-Grubbs 2nd generation catalyst", "methyl acrylate"],
|
|
1573
|
+
solvents=["DCM", "toluene"],
|
|
1574
|
+
catalysts=["Hoveyda-Grubbs 2nd generation"],
|
|
1575
|
+
temperature_range=(25.0, 50.0),
|
|
1576
|
+
typical_yield=(50.0, 85.0),
|
|
1577
|
+
functional_group_required=["alkene"],
|
|
1578
|
+
functional_group_produced=["alkene", "ester"],
|
|
1579
|
+
functional_group_incompatible=["thiol", "primary_amine"],
|
|
1580
|
+
mechanism=(
|
|
1581
|
+
"Hoveyda-Grubbs catalyst releases the chelating isopropoxy "
|
|
1582
|
+
"styrenyl ligand to generate the active 14-electron Ru "
|
|
1583
|
+
"alkylidene. [2+2] cycloaddition with the Type I olefin "
|
|
1584
|
+
"(terminal alkene) followed by cycloreversion, then a second "
|
|
1585
|
+
"[2+2]/retro-[2+2] cycle with the Type II partner (acrylate) "
|
|
1586
|
+
"gives the E-cross product selectively. Ethylene by-product "
|
|
1587
|
+
"is removed under reduced pressure."
|
|
1588
|
+
),
|
|
1589
|
+
reverse_transform=(
|
|
1590
|
+
"Disconnect the internal alkene adjacent to the ester; "
|
|
1591
|
+
"one fragment is a terminal olefin, the other is the acrylate."
|
|
1592
|
+
),
|
|
1593
|
+
scale_notes=(
|
|
1594
|
+
"Hoveyda-Grubbs catalyst is more robust than Grubbs 2nd gen "
|
|
1595
|
+
"for electron-poor partners. Typical loading 2-5 mol%."
|
|
1596
|
+
),
|
|
1597
|
+
safety_notes=(
|
|
1598
|
+
"Methyl acrylate is a skin sensitiser and respiratory irritant "
|
|
1599
|
+
"(H312/H332). Ru catalysts are air-sensitive."
|
|
1600
|
+
),
|
|
1601
|
+
)
|
|
1602
|
+
|
|
1603
|
+
|
|
1604
|
+
# =====================================================================
|
|
1605
|
+
# Lookup helpers
|
|
1606
|
+
# =====================================================================
|
|
1607
|
+
|
|
1608
|
+
def lookup_by_category(cat: ReactionCategory) -> list[ReactionTemplate]:
|
|
1609
|
+
"""Return all templates belonging to *cat*.
|
|
1610
|
+
|
|
1611
|
+
Parameters
|
|
1612
|
+
----------
|
|
1613
|
+
cat : ReactionCategory
|
|
1614
|
+
The reaction category to filter on.
|
|
1615
|
+
|
|
1616
|
+
Returns
|
|
1617
|
+
-------
|
|
1618
|
+
list[ReactionTemplate]
|
|
1619
|
+
All templates whose ``category`` matches *cat*.
|
|
1620
|
+
"""
|
|
1621
|
+
return [r for r in REACTION_TEMPLATES if r.category == cat]
|
|
1622
|
+
|
|
1623
|
+
|
|
1624
|
+
def lookup_by_name(name: str) -> list[ReactionTemplate]:
|
|
1625
|
+
"""Case-insensitive substring search on template name or named_reaction.
|
|
1626
|
+
|
|
1627
|
+
Parameters
|
|
1628
|
+
----------
|
|
1629
|
+
name : str
|
|
1630
|
+
Search substring (case-insensitive).
|
|
1631
|
+
|
|
1632
|
+
Returns
|
|
1633
|
+
-------
|
|
1634
|
+
list[ReactionTemplate]
|
|
1635
|
+
Templates whose ``name`` or ``named_reaction`` contains *name*.
|
|
1636
|
+
"""
|
|
1637
|
+
q = name.lower()
|
|
1638
|
+
return [r for r in REACTION_TEMPLATES
|
|
1639
|
+
if q in r.name.lower()
|
|
1640
|
+
or (r.named_reaction and q in r.named_reaction.lower())]
|
|
1641
|
+
|
|
1642
|
+
|
|
1643
|
+
def lookup_by_functional_group(fg: str) -> list[ReactionTemplate]:
|
|
1644
|
+
"""Find reactions that require a given functional group on the substrate.
|
|
1645
|
+
|
|
1646
|
+
Parameters
|
|
1647
|
+
----------
|
|
1648
|
+
fg : str
|
|
1649
|
+
Functional-group label (case-insensitive), e.g. ``"alcohol"``,
|
|
1650
|
+
``"alkene"``, ``"ketone"``.
|
|
1651
|
+
|
|
1652
|
+
Returns
|
|
1653
|
+
-------
|
|
1654
|
+
list[ReactionTemplate]
|
|
1655
|
+
Templates whose ``functional_group_required`` list contains *fg*.
|
|
1656
|
+
"""
|
|
1657
|
+
q = fg.lower()
|
|
1658
|
+
return [r for r in REACTION_TEMPLATES
|
|
1659
|
+
if q in [f.lower() for f in r.functional_group_required]]
|
|
1660
|
+
|
|
1661
|
+
|
|
1662
|
+
def lookup_by_reagent(reagent: str) -> list[ReactionTemplate]:
|
|
1663
|
+
"""Find reactions that use a given reagent.
|
|
1664
|
+
|
|
1665
|
+
Performs a case-insensitive substring search across each template's
|
|
1666
|
+
``reagents`` list.
|
|
1667
|
+
|
|
1668
|
+
Parameters
|
|
1669
|
+
----------
|
|
1670
|
+
reagent : str
|
|
1671
|
+
Reagent name or fragment (case-insensitive), e.g. ``"NaBH4"``,
|
|
1672
|
+
``"Pd"``, ``"mCPBA"``.
|
|
1673
|
+
|
|
1674
|
+
Returns
|
|
1675
|
+
-------
|
|
1676
|
+
list[ReactionTemplate]
|
|
1677
|
+
Templates that reference *reagent* in their reagent list.
|
|
1678
|
+
"""
|
|
1679
|
+
q = reagent.lower()
|
|
1680
|
+
return [r for r in REACTION_TEMPLATES
|
|
1681
|
+
if any(q in rgt.lower() for rgt in r.reagents)]
|
|
1682
|
+
|
|
1683
|
+
|
|
1684
|
+
# ------------------------------------------------------------------
|
|
1685
|
+
# Legacy aliases (backwards compatibility)
|
|
1686
|
+
# ------------------------------------------------------------------
|
|
1687
|
+
|
|
1688
|
+
def find_reactions_for_fg(fg_name: str) -> list[ReactionTemplate]:
|
|
1689
|
+
"""Find reactions that can transform a given functional group.
|
|
1690
|
+
|
|
1691
|
+
.. deprecated:: Use :func:`lookup_by_functional_group` instead.
|
|
1692
|
+
"""
|
|
1693
|
+
return lookup_by_functional_group(fg_name)
|
|
1694
|
+
|
|
1695
|
+
|
|
1696
|
+
def find_reactions_producing(fg_name: str) -> list[ReactionTemplate]:
|
|
1697
|
+
"""Find reactions that produce a given functional group."""
|
|
1698
|
+
q = fg_name.lower()
|
|
1699
|
+
return [r for r in REACTION_TEMPLATES
|
|
1700
|
+
if q in [f.lower() for f in r.functional_group_produced]]
|
|
1701
|
+
|
|
1702
|
+
|
|
1703
|
+
def find_reactions_by_category(category: ReactionCategory) -> list[ReactionTemplate]:
|
|
1704
|
+
"""Return all templates that belong to *category*.
|
|
1705
|
+
|
|
1706
|
+
.. deprecated:: Use :func:`lookup_by_category` instead.
|
|
1707
|
+
"""
|
|
1708
|
+
return lookup_by_category(category)
|
|
1709
|
+
|
|
1710
|
+
|
|
1711
|
+
def find_reactions_by_name(query: str) -> list[ReactionTemplate]:
|
|
1712
|
+
"""Search templates by name or named-reaction string.
|
|
1713
|
+
|
|
1714
|
+
.. deprecated:: Use :func:`lookup_by_name` instead.
|
|
1715
|
+
"""
|
|
1716
|
+
return lookup_by_name(query)
|