Skip to main content

retrosynthesis-guide

Retrosynthetic analysis and computational reaction prediction

설치로 이동

소스 정보

저장소
brycewang-stanford/Auto-Empirical-Research-Skills
최근 소스 활동
2026년 4월 3일 02:07
감지된 SKILL.md 언어
영어
스타
3,709
포크
472

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
retrosynthesis-guide
description
Retrosynthetic analysis and computational reaction prediction
metadata
{"openclaw":{"emoji":"🧪","category":"domains","subcategory":"chemistry","keywords":["retrosynthesis","reaction prediction","organic chemistry","computational chemistry"],"source":"wentor-research-plugins"}}
# Retrosynthesis Guide Plan synthetic routes for target molecules using retrosynthetic analysis principles and computational tools, from Corey's logic to modern AI-driven approaches. ## What Is Retrosynthesis? Retrosynthesis works backward from a target molecule to identify simpler, commercially available precursors: ``` Target Molecule (TM) | [Disconnection 1] ← Apply transform (reverse of a known reaction) | Synthon A + Synthon B | | [Available] [Disconnection 2] | Synthon C + Synthon D | | [Available] [Available] ``` Key terminology: - **Target Molecule (TM)**: The molecule you want to synthesize - **Synthon**: Idealized reactive fragment from a disconnection - **Synthetic Equivalent**: Real reagent corresponding to a synthon - **Transform**: Reverse of a chemical reaction (retro-reaction) - **FGI (Functional Group Interconversion)**: Convert one functional group to another to enable a disconnection ## Corey's Retrosynthetic Strategies ### Strategic Bond Disconnections | Strategy | Description | When to Use | |----------|-------------|------------| | **FGI** | Convert functional groups to enable disconnections | When direct disconnection is not possible | | **C-C Bond disconnection** | Break carbon-carbon bonds | Building the carbon skeleton | | **C-X Bond disconnection** | Break carbon-heteroatom bonds | Functional group installation | | **Ring disconnection** | Open rings to identify acyclic precursors | Cyclic target molecules | | **Symmetry exploitation** | Use molecular symmetry to simplify analysis | Symmetric molecules | | **Convergent synthesis** | Combine two complex fragments late | Minimize linear step count | ### Common Disconnection Patterns ``` # Alcohol (C-OH) → Carbonyl reduction R-CH(OH)-R' ⟹ R-CO-R' + NaBH4/LiAlH4 # Amine (C-N) → Reductive amination R-CH2-NH-R' ⟹ R-CHO + R'-NH2 # C-C Bond (aldol) → Aldol retro R-CH(OH)-CH2-CO-R' ⟹ R-CHO + CH3-CO-R' # C-C Bond (Grignard) → Grignard retro R-CH(OH)-R' ⟹ R-CHO + R'-MgBr # Ester (C-O) → Fischer esterification retro R-COO-R' ⟹ R-COOH + R'-OH # Amide (C-N) → Amide coupling retro R-CO-NH-R' ⟹ R-COOH + R'-NH2 # Diels-Alder → Retro Diels-Alder Cyclohexene derivative ⟹ Diene + Dienophile # Wittig → Retro Wittig R-CH=CH-R' ⟹ R-CHO + R'-CH2-PPh3 ``` ## Computational Retrosynthesis Tools ### Tool Comparison | Tool | Developer | Method | Access | |------|-----------|--------|--------| | ASKCOS | MIT | Template-based + neural | Free (askcos.mit.edu) | | IBM RXN | IBM Research | Transformer seq2seq | Free (rxn.res.ibm.com) | | Reaxys | Elsevier | Database-backed | Subscription | | SciFinder-n | CAS | Database + AI | Subscription | | Spaya | Iktos | Graph neural network | Commercial | | AiZynthFinder | AstraZeneca | Monte Carlo tree search | Open source | ### Using ASKCOS ```python import requests # ASKCOS API for retrosynthetic planning # (requires running ASKCOS locally or using the hosted version) target_smiles = "CC(=O)Oc1ccccc1C(=O)O" # Aspirin # One-step retrosynthesis response = requests.post( "https://askcos.mit.edu/api/retro/", json={ "smiles": target_smiles, "num_results": 10, "max_depth": 5 } ) results = response.json() for i, result in enumerate(results.get("precursors", [])[:5]): print(f"Route {i+1}:") print(f" Precursors: {result['smiles']}") print(f" Template: {result.get('template', 'N/A')}") print(f" Score: {result.get('score', 'N/A')}") ``` ### Using IBM RXN for Chemistry ```python # IBM RXN API from rxn4chemistry import RXN4ChemistryWrapper api_key = os.environ["RXN4CHEM_API_KEY"] rxn = RXN4ChemistryWrapper(api_key=api_key) rxn.create_project("retrosynthesis_example") # Predict retrosynthesis response = rxn.predict_automatic_retrosynthesis( product="CC(=O)Oc1ccccc1C(=O)O", # Aspirin max_steps=3 ) # Get results results = rxn.get_predict_automatic_retrosynthesis_results(response["prediction_id"]) for route in results.get("retrosynthetic_paths", []): print(f"Route confidence: {route.get('confidence', 'N/A')}") for step in route.get("steps", []): print(f" Reaction: {step.get('reaction_smiles', 'N/A')}") ``` ### Using AiZynthFinder (Open Source) ```python from aizynthfinder.aizynthfinder import AiZynthFinder # Configure the finder finder = AiZynthFinder() finder.stock.load("zinc_stock.hdf5") # Commercial building blocks finder.expansion_policy.load("expansion_policy_model.onnx") # Retro model # Set target finder.target_smiles = "CC(=O)Oc1ccccc1C(=O)O" # Aspirin # Run tree search finder.config.search.time_limit = 120 # seconds finder.config.search.iteration_limit = 500 finder.tree_search() # Extract and analyze routes finder.build_routes() for i, route in enumerate(finder.routes): print(f"Route {i+1} (score: {route.score:.3f}):") print(f" Steps: {len(route.reactions)}") for rxn in route.reactions: print(f" {rxn}") ``` ## SMILES Notation for Chemistry SMILES (Simplified Molecular Input Line Entry System) is the standard text representation: ``` # Common SMILES patterns Water: O Ethanol: CCO Benzene: c1ccccc1 Aspirin: CC(=O)Oc1ccccc1C(=O)O Caffeine: Cn1c(=O)c2c(ncn2C)n(C)c1=O Ibuprofen: CC(C)Cc1ccc(cc1)C(C)C(=O)O # SMILES rules # Atoms: C, N, O, S, P, F, Cl, Br, I # Bonds: - (single, implicit), = (double), # (triple) # Branches: () for branching # Rings: numbers for ring closure (c1ccccc1 = benzene) # Aromatic: lowercase letters # Stereochemistry: / \ for E/Z, @ @@ for R/S ``` ## Reaction Databases | Database | Coverage | Features | Access | |----------|----------|----------|--------| | Reaxys | 130M+ reactions | Experimental conditions, yields | Subscription | | SciFinder / CAS | 160M+ reactions | Commercial availability, safety data | Subscription | | USPTO | 3.7M reactions | US patent reactions | Free (open data) | | Open Reaction Database (ORD) | Growing | Structured reaction data, conditions | Free | | RMG (Reaction Mechanism Generator) | Kinetics | Automated mechanism generation | Free (MIT) | ## Best Practices for Route Planning 1. **Start simple**: Begin with the most obvious disconnections before trying exotic transforms. 2. **Consider availability**: Check if precursors are commercially available (Sigma-Aldrich, TCI, Alfa Aesar). 3. **Minimize steps**: Convergent synthesis (combining two complex halves) is generally preferred over linear synthesis. 4. **Protect and deprotect wisely**: Minimize protecting group manipulations; each adds 2 steps (protection + deprotection). 5. **Check literature**: Search Reaxys or SciFinder for precedent before attempting novel transformations. 6. **Validate computationally**: Use forward reaction prediction to verify that proposed retrosynthetic steps are feasible. 7. **Consider scale**: Reactions that work at milligram scale may fail at gram scale. Check for scalability issues (exothermic reactions, heterogeneous mixing).
GitHub에서 보기