@wentorai/research-plugins 1.0.0
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.
- package/LICENSE +21 -0
- package/README.md +204 -0
- package/curated/analysis/README.md +64 -0
- package/curated/domains/README.md +104 -0
- package/curated/literature/README.md +53 -0
- package/curated/research/README.md +62 -0
- package/curated/tools/README.md +87 -0
- package/curated/writing/README.md +61 -0
- package/index.ts +39 -0
- package/mcp-configs/academic-db/ChatSpatial.json +17 -0
- package/mcp-configs/academic-db/academia-mcp.json +17 -0
- package/mcp-configs/academic-db/academic-paper-explorer.json +17 -0
- package/mcp-configs/academic-db/academic-search-mcp-server.json +17 -0
- package/mcp-configs/academic-db/agentinterviews-mcp.json +17 -0
- package/mcp-configs/academic-db/all-in-mcp.json +17 -0
- package/mcp-configs/academic-db/apple-health-mcp.json +17 -0
- package/mcp-configs/academic-db/arxiv-latex-mcp.json +17 -0
- package/mcp-configs/academic-db/arxiv-mcp-server.json +17 -0
- package/mcp-configs/academic-db/bgpt-mcp.json +17 -0
- package/mcp-configs/academic-db/biomcp.json +17 -0
- package/mcp-configs/academic-db/biothings-mcp.json +17 -0
- package/mcp-configs/academic-db/catalysishub-mcp-server.json +17 -0
- package/mcp-configs/academic-db/clinicaltrialsgov-mcp-server.json +17 -0
- package/mcp-configs/academic-db/deep-research-mcp.json +17 -0
- package/mcp-configs/academic-db/dicom-mcp.json +17 -0
- package/mcp-configs/academic-db/enrichr-mcp-server.json +17 -0
- package/mcp-configs/academic-db/fec-mcp-server.json +17 -0
- package/mcp-configs/academic-db/fhir-mcp-server-themomentum.json +17 -0
- package/mcp-configs/academic-db/fhir-mcp.json +19 -0
- package/mcp-configs/academic-db/gget-mcp.json +17 -0
- package/mcp-configs/academic-db/google-researcher-mcp.json +17 -0
- package/mcp-configs/academic-db/idea-reality-mcp.json +17 -0
- package/mcp-configs/academic-db/legiscan-mcp.json +19 -0
- package/mcp-configs/academic-db/lex.json +17 -0
- package/mcp-configs/ai-platform/Adaptive-Graph-of-Thoughts-MCP-server.json +17 -0
- package/mcp-configs/ai-platform/ai-counsel.json +17 -0
- package/mcp-configs/ai-platform/atlas-mcp-server.json +17 -0
- package/mcp-configs/ai-platform/counsel-mcp.json +17 -0
- package/mcp-configs/ai-platform/cross-llm-mcp.json +17 -0
- package/mcp-configs/ai-platform/gptr-mcp.json +17 -0
- package/mcp-configs/browser/decipher-research-agent.json +17 -0
- package/mcp-configs/browser/deep-research.json +17 -0
- package/mcp-configs/browser/everything-claude-code.json +17 -0
- package/mcp-configs/browser/gpt-researcher.json +17 -0
- package/mcp-configs/browser/heurist-agent-framework.json +17 -0
- package/mcp-configs/data-platform/4everland-hosting-mcp.json +17 -0
- package/mcp-configs/data-platform/context-keeper.json +17 -0
- package/mcp-configs/data-platform/context7.json +19 -0
- package/mcp-configs/data-platform/contextstream-mcp.json +17 -0
- package/mcp-configs/data-platform/email-mcp.json +17 -0
- package/mcp-configs/note-knowledge/ApeRAG.json +17 -0
- package/mcp-configs/note-knowledge/In-Memoria.json +17 -0
- package/mcp-configs/note-knowledge/agent-memory.json +17 -0
- package/mcp-configs/note-knowledge/aimemo.json +17 -0
- package/mcp-configs/note-knowledge/biel-mcp.json +19 -0
- package/mcp-configs/note-knowledge/cognee.json +17 -0
- package/mcp-configs/note-knowledge/context-awesome.json +17 -0
- package/mcp-configs/note-knowledge/context-mcp.json +17 -0
- package/mcp-configs/note-knowledge/conversation-handoff-mcp.json +17 -0
- package/mcp-configs/note-knowledge/cortex.json +17 -0
- package/mcp-configs/note-knowledge/devrag.json +17 -0
- package/mcp-configs/note-knowledge/easy-obsidian-mcp.json +17 -0
- package/mcp-configs/note-knowledge/engram.json +17 -0
- package/mcp-configs/note-knowledge/gnosis-mcp.json +17 -0
- package/mcp-configs/note-knowledge/graphlit-mcp-server.json +19 -0
- package/mcp-configs/reference-mgr/arxiv-cli.json +17 -0
- package/mcp-configs/reference-mgr/arxiv-search-mcp.json +17 -0
- package/mcp-configs/reference-mgr/chiken.json +17 -0
- package/mcp-configs/reference-mgr/claude-scholar.json +17 -0
- package/mcp-configs/reference-mgr/devonthink-mcp.json +17 -0
- package/mcp-configs/registry.json +447 -0
- package/openclaw.plugin.json +21 -0
- package/package.json +61 -0
- package/skills/analysis/dataviz/color-accessibility-guide/SKILL.md +230 -0
- package/skills/analysis/dataviz/geospatial-viz-guide/SKILL.md +218 -0
- package/skills/analysis/dataviz/interactive-viz-guide/SKILL.md +287 -0
- package/skills/analysis/dataviz/network-visualization-guide/SKILL.md +195 -0
- package/skills/analysis/dataviz/publication-figures-guide/SKILL.md +238 -0
- package/skills/analysis/dataviz/python-dataviz-guide/SKILL.md +195 -0
- package/skills/analysis/econometrics/causal-inference-guide/SKILL.md +197 -0
- package/skills/analysis/econometrics/iv-regression-guide/SKILL.md +198 -0
- package/skills/analysis/econometrics/panel-data-guide/SKILL.md +274 -0
- package/skills/analysis/econometrics/robustness-checks/SKILL.md +250 -0
- package/skills/analysis/econometrics/stata-regression/SKILL.md +117 -0
- package/skills/analysis/econometrics/time-series-guide/SKILL.md +235 -0
- package/skills/analysis/statistics/bayesian-statistics-guide/SKILL.md +221 -0
- package/skills/analysis/statistics/hypothesis-testing-guide/SKILL.md +210 -0
- package/skills/analysis/statistics/meta-analysis-guide/SKILL.md +206 -0
- package/skills/analysis/statistics/nonparametric-tests-guide/SKILL.md +221 -0
- package/skills/analysis/statistics/power-analysis-guide/SKILL.md +240 -0
- package/skills/analysis/statistics/sem-guide/SKILL.md +231 -0
- package/skills/analysis/statistics/survival-analysis-guide/SKILL.md +195 -0
- package/skills/analysis/wrangling/missing-data-handling/SKILL.md +224 -0
- package/skills/analysis/wrangling/pandas-data-wrangling/SKILL.md +242 -0
- package/skills/analysis/wrangling/questionnaire-design-guide/SKILL.md +234 -0
- package/skills/analysis/wrangling/text-mining-guide/SKILL.md +225 -0
- package/skills/domains/ai-ml/computer-vision-guide/SKILL.md +213 -0
- package/skills/domains/ai-ml/deep-learning-papers-guide/SKILL.md +200 -0
- package/skills/domains/ai-ml/llm-evaluation-guide/SKILL.md +194 -0
- package/skills/domains/ai-ml/prompt-engineering-research/SKILL.md +233 -0
- package/skills/domains/ai-ml/reinforcement-learning-guide/SKILL.md +254 -0
- package/skills/domains/ai-ml/transformer-architecture-guide/SKILL.md +233 -0
- package/skills/domains/biomedical/clinical-research-guide/SKILL.md +232 -0
- package/skills/domains/biomedical/clinicaltrials-api/SKILL.md +177 -0
- package/skills/domains/biomedical/epidemiology-guide/SKILL.md +200 -0
- package/skills/domains/biomedical/genomics-analysis-guide/SKILL.md +270 -0
- package/skills/domains/business/market-analysis-guide/SKILL.md +112 -0
- package/skills/domains/business/strategic-management-guide/SKILL.md +154 -0
- package/skills/domains/chemistry/computational-chemistry-guide/SKILL.md +266 -0
- package/skills/domains/chemistry/retrosynthesis-guide/SKILL.md +215 -0
- package/skills/domains/cs/algorithms-complexity-guide/SKILL.md +194 -0
- package/skills/domains/cs/dblp-api/SKILL.md +129 -0
- package/skills/domains/cs/software-engineering-research/SKILL.md +218 -0
- package/skills/domains/ecology/biodiversity-data-guide/SKILL.md +296 -0
- package/skills/domains/ecology/conservation-biology-guide/SKILL.md +198 -0
- package/skills/domains/ecology/gbif-api/SKILL.md +158 -0
- package/skills/domains/ecology/inaturalist-api/SKILL.md +173 -0
- package/skills/domains/economics/behavioral-economics-guide/SKILL.md +239 -0
- package/skills/domains/economics/development-economics-guide/SKILL.md +181 -0
- package/skills/domains/economics/fred-api/SKILL.md +189 -0
- package/skills/domains/education/curriculum-design-guide/SKILL.md +144 -0
- package/skills/domains/education/learning-science-guide/SKILL.md +150 -0
- package/skills/domains/finance/financial-data-analysis/SKILL.md +152 -0
- package/skills/domains/finance/quantitative-finance-guide/SKILL.md +151 -0
- package/skills/domains/geoscience/climate-science-guide/SKILL.md +158 -0
- package/skills/domains/geoscience/gis-remote-sensing-guide/SKILL.md +129 -0
- package/skills/domains/humanities/digital-humanities-guide/SKILL.md +181 -0
- package/skills/domains/humanities/philosophy-research-guide/SKILL.md +148 -0
- package/skills/domains/law/courtlistener-api/SKILL.md +213 -0
- package/skills/domains/law/legal-research-guide/SKILL.md +250 -0
- package/skills/domains/math/linear-algebra-applications/SKILL.md +227 -0
- package/skills/domains/math/numerical-methods-guide/SKILL.md +236 -0
- package/skills/domains/math/oeis-api/SKILL.md +158 -0
- package/skills/domains/pharma/clinical-pharmacology-guide/SKILL.md +165 -0
- package/skills/domains/pharma/drug-development-guide/SKILL.md +177 -0
- package/skills/domains/physics/computational-physics-guide/SKILL.md +300 -0
- package/skills/domains/physics/nasa-ads-api/SKILL.md +150 -0
- package/skills/domains/physics/quantum-computing-guide/SKILL.md +234 -0
- package/skills/domains/social-science/social-research-methods/SKILL.md +194 -0
- package/skills/domains/social-science/survey-research-guide/SKILL.md +182 -0
- package/skills/literature/discovery/citation-alert-guide/SKILL.md +154 -0
- package/skills/literature/discovery/conference-proceedings-guide/SKILL.md +142 -0
- package/skills/literature/discovery/literature-mapping-guide/SKILL.md +175 -0
- package/skills/literature/discovery/paper-tracking-guide/SKILL.md +211 -0
- package/skills/literature/discovery/rss-paper-feeds/SKILL.md +214 -0
- package/skills/literature/discovery/semantic-scholar-recs-guide/SKILL.md +164 -0
- package/skills/literature/fulltext/doaj-api/SKILL.md +120 -0
- package/skills/literature/fulltext/interlibrary-loan-guide/SKILL.md +163 -0
- package/skills/literature/fulltext/open-access-guide/SKILL.md +183 -0
- package/skills/literature/fulltext/pmc-oai-api/SKILL.md +184 -0
- package/skills/literature/fulltext/preprint-servers-guide/SKILL.md +128 -0
- package/skills/literature/fulltext/repository-harvesting-guide/SKILL.md +207 -0
- package/skills/literature/fulltext/unpaywall-api/SKILL.md +113 -0
- package/skills/literature/metadata/altmetrics-guide/SKILL.md +132 -0
- package/skills/literature/metadata/citation-network-guide/SKILL.md +236 -0
- package/skills/literature/metadata/crossref-api/SKILL.md +133 -0
- package/skills/literature/metadata/datacite-api/SKILL.md +126 -0
- package/skills/literature/metadata/doi-resolution-guide/SKILL.md +168 -0
- package/skills/literature/metadata/h-index-guide/SKILL.md +183 -0
- package/skills/literature/metadata/journal-metrics-guide/SKILL.md +188 -0
- package/skills/literature/metadata/opencitations-api/SKILL.md +128 -0
- package/skills/literature/metadata/orcid-api/SKILL.md +136 -0
- package/skills/literature/metadata/orcid-integration-guide/SKILL.md +178 -0
- package/skills/literature/search/arxiv-api/SKILL.md +95 -0
- package/skills/literature/search/biorxiv-api/SKILL.md +123 -0
- package/skills/literature/search/boolean-search-guide/SKILL.md +199 -0
- package/skills/literature/search/citation-chaining-guide/SKILL.md +148 -0
- package/skills/literature/search/database-comparison-guide/SKILL.md +100 -0
- package/skills/literature/search/europe-pmc-api/SKILL.md +120 -0
- package/skills/literature/search/google-scholar-guide/SKILL.md +182 -0
- package/skills/literature/search/mesh-terms-guide/SKILL.md +164 -0
- package/skills/literature/search/openalex-api/SKILL.md +134 -0
- package/skills/literature/search/pubmed-api/SKILL.md +130 -0
- package/skills/literature/search/scientify-literature-survey/SKILL.md +203 -0
- package/skills/literature/search/semantic-scholar-api/SKILL.md +134 -0
- package/skills/literature/search/systematic-search-strategy/SKILL.md +214 -0
- package/skills/research/automation/ai-scientist-guide/SKILL.md +228 -0
- package/skills/research/automation/data-collection-automation/SKILL.md +248 -0
- package/skills/research/automation/research-workflow-automation/SKILL.md +266 -0
- package/skills/research/deep-research/meta-synthesis-guide/SKILL.md +174 -0
- package/skills/research/deep-research/research-cog/SKILL.md +153 -0
- package/skills/research/deep-research/scoping-review-guide/SKILL.md +217 -0
- package/skills/research/deep-research/systematic-review-guide/SKILL.md +250 -0
- package/skills/research/funding/figshare-api/SKILL.md +163 -0
- package/skills/research/funding/grant-writing-guide/SKILL.md +233 -0
- package/skills/research/funding/nsf-grant-guide/SKILL.md +206 -0
- package/skills/research/funding/open-science-guide/SKILL.md +255 -0
- package/skills/research/funding/zenodo-api/SKILL.md +174 -0
- package/skills/research/methodology/action-research-guide/SKILL.md +201 -0
- package/skills/research/methodology/experimental-design-guide/SKILL.md +236 -0
- package/skills/research/methodology/grad-school-guide/SKILL.md +182 -0
- package/skills/research/methodology/grounded-theory-guide/SKILL.md +171 -0
- package/skills/research/methodology/mixed-methods-guide/SKILL.md +208 -0
- package/skills/research/methodology/qualitative-research-guide/SKILL.md +234 -0
- package/skills/research/methodology/scientify-idea-generation/SKILL.md +222 -0
- package/skills/research/paper-review/paper-reading-assistant/SKILL.md +266 -0
- package/skills/research/paper-review/peer-review-guide/SKILL.md +227 -0
- package/skills/research/paper-review/rebuttal-writing-guide/SKILL.md +185 -0
- package/skills/research/paper-review/scientify-write-review-paper/SKILL.md +209 -0
- package/skills/tools/code-exec/jupyter-notebook-guide/SKILL.md +178 -0
- package/skills/tools/code-exec/python-reproducibility-guide/SKILL.md +341 -0
- package/skills/tools/code-exec/r-reproducibility-guide/SKILL.md +236 -0
- package/skills/tools/code-exec/sandbox-execution-guide/SKILL.md +221 -0
- package/skills/tools/diagram/mermaid-diagram-guide/SKILL.md +269 -0
- package/skills/tools/diagram/plantuml-guide/SKILL.md +397 -0
- package/skills/tools/diagram/scientific-illustration-guide/SKILL.md +225 -0
- package/skills/tools/document/anystyle-api/SKILL.md +199 -0
- package/skills/tools/document/grobid-pdf-parsing/SKILL.md +294 -0
- package/skills/tools/document/markdown-academic-guide/SKILL.md +217 -0
- package/skills/tools/document/pdf-extraction-guide/SKILL.md +321 -0
- package/skills/tools/knowledge-graph/knowledge-graph-construction/SKILL.md +306 -0
- package/skills/tools/knowledge-graph/ontology-design-guide/SKILL.md +214 -0
- package/skills/tools/knowledge-graph/rag-methodology-guide/SKILL.md +325 -0
- package/skills/tools/ocr-translate/formula-recognition-guide/SKILL.md +367 -0
- package/skills/tools/ocr-translate/handwriting-recognition-guide/SKILL.md +211 -0
- package/skills/tools/ocr-translate/latex-ocr-guide/SKILL.md +204 -0
- package/skills/tools/ocr-translate/multilingual-research-guide/SKILL.md +234 -0
- package/skills/tools/scraping/academic-web-scraping/SKILL.md +326 -0
- package/skills/tools/scraping/api-data-collection-guide/SKILL.md +301 -0
- package/skills/tools/scraping/web-scraping-ethics-guide/SKILL.md +250 -0
- package/skills/writing/citation/bibtex-management-guide/SKILL.md +246 -0
- package/skills/writing/citation/citation-style-guide/SKILL.md +248 -0
- package/skills/writing/citation/reference-manager-comparison/SKILL.md +208 -0
- package/skills/writing/citation/zotero-api/SKILL.md +188 -0
- package/skills/writing/composition/abstract-writing-guide/SKILL.md +188 -0
- package/skills/writing/composition/discussion-writing-guide/SKILL.md +194 -0
- package/skills/writing/composition/introduction-writing-guide/SKILL.md +194 -0
- package/skills/writing/composition/literature-review-writing/SKILL.md +196 -0
- package/skills/writing/composition/methods-section-guide/SKILL.md +185 -0
- package/skills/writing/composition/response-to-reviewers/SKILL.md +215 -0
- package/skills/writing/composition/scientific-writing-guide/SKILL.md +152 -0
- package/skills/writing/latex/bibliography-management-guide/SKILL.md +206 -0
- package/skills/writing/latex/latex-drawing-guide/SKILL.md +234 -0
- package/skills/writing/latex/latex-ecosystem-guide/SKILL.md +240 -0
- package/skills/writing/latex/math-typesetting-guide/SKILL.md +231 -0
- package/skills/writing/latex/overleaf-collaboration-guide/SKILL.md +211 -0
- package/skills/writing/latex/tikz-diagrams-guide/SKILL.md +211 -0
- package/skills/writing/polish/academic-translation-guide/SKILL.md +175 -0
- package/skills/writing/polish/academic-writing-refiner/SKILL.md +143 -0
- package/skills/writing/polish/ai-writing-humanizer/SKILL.md +178 -0
- package/skills/writing/polish/grammar-checker-guide/SKILL.md +184 -0
- package/skills/writing/polish/plagiarism-detection-guide/SKILL.md +167 -0
- package/skills/writing/templates/beamer-presentation-guide/SKILL.md +263 -0
- package/skills/writing/templates/conference-paper-template/SKILL.md +219 -0
- package/skills/writing/templates/thesis-template-guide/SKILL.md +200 -0
- package/skills/writing/templates/thesis-writing-guide/SKILL.md +220 -0
- package/src/tools/arxiv.ts +131 -0
- package/src/tools/crossref.ts +112 -0
- package/src/tools/openalex.ts +174 -0
- package/src/tools/pubmed.ts +166 -0
- package/src/tools/semantic-scholar.ts +108 -0
- package/src/tools/unpaywall.ts +58 -0
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: strategic-management-guide
|
|
3
|
+
description: "Frameworks for strategic planning, resource allocation, and organizational an..."
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "chess_pawn"
|
|
7
|
+
category: "domains"
|
|
8
|
+
subcategory: "business"
|
|
9
|
+
keywords: ["strategic management", "operations management", "market analysis", "organizational strategy", "resource allocation"]
|
|
10
|
+
source: "wentor"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Strategic Management Guide
|
|
14
|
+
|
|
15
|
+
A research-oriented skill for applying strategic management theories and frameworks to academic case studies, organizational analysis, and business research. Covers classical and contemporary strategy frameworks with rigorous analytical methods.
|
|
16
|
+
|
|
17
|
+
## Core Strategic Frameworks
|
|
18
|
+
|
|
19
|
+
### Resource-Based View (RBV)
|
|
20
|
+
|
|
21
|
+
The RBV framework (Barney, 1991) evaluates competitive advantage through internal resources and capabilities. Apply the VRIO test:
|
|
22
|
+
|
|
23
|
+
| Criterion | Question | If "No" |
|
|
24
|
+
|-----------|----------|---------|
|
|
25
|
+
| Valuable | Does it exploit opportunity or neutralize threat? | Competitive disadvantage |
|
|
26
|
+
| Rare | Is it controlled by few firms? | Competitive parity |
|
|
27
|
+
| Inimitable | Is it costly to imitate? | Temporary advantage |
|
|
28
|
+
| Organized | Is the firm organized to capture value? | Unrealized advantage |
|
|
29
|
+
|
|
30
|
+
All four "Yes" answers indicate a **sustained competitive advantage**.
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
# VRIO analysis scoring framework
|
|
34
|
+
def vrio_analysis(resources: list[dict]) -> dict:
|
|
35
|
+
results = {}
|
|
36
|
+
for r in resources:
|
|
37
|
+
name = r['name']
|
|
38
|
+
v, r_score, i, o = r['valuable'], r['rare'], r['inimitable'], r['organized']
|
|
39
|
+
if not v:
|
|
40
|
+
results[name] = 'competitive_disadvantage'
|
|
41
|
+
elif not r_score:
|
|
42
|
+
results[name] = 'competitive_parity'
|
|
43
|
+
elif not i:
|
|
44
|
+
results[name] = 'temporary_advantage'
|
|
45
|
+
elif not o:
|
|
46
|
+
results[name] = 'unrealized_advantage'
|
|
47
|
+
else:
|
|
48
|
+
results[name] = 'sustained_advantage'
|
|
49
|
+
return results
|
|
50
|
+
|
|
51
|
+
# Example usage
|
|
52
|
+
resources = [
|
|
53
|
+
{'name': 'proprietary_algorithm', 'valuable': True, 'rare': True, 'inimitable': True, 'organized': True},
|
|
54
|
+
{'name': 'office_space', 'valuable': True, 'rare': False, 'inimitable': False, 'organized': True},
|
|
55
|
+
]
|
|
56
|
+
print(vrio_analysis(resources))
|
|
57
|
+
# {'proprietary_algorithm': 'sustained_advantage', 'office_space': 'competitive_parity'}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Strategic Planning Process
|
|
61
|
+
|
|
62
|
+
A structured approach to strategy formulation for research purposes:
|
|
63
|
+
|
|
64
|
+
### Phase 1: Environmental Scanning
|
|
65
|
+
|
|
66
|
+
- **External analysis**: PESTEL (Political, Economic, Social, Technological, Environmental, Legal)
|
|
67
|
+
- **Industry analysis**: Porter's Five Forces with quantified metrics
|
|
68
|
+
- **Stakeholder mapping**: Power-interest matrix to prioritize engagement
|
|
69
|
+
|
|
70
|
+
### Phase 2: Strategy Formulation
|
|
71
|
+
|
|
72
|
+
Apply Ansoff's Growth Matrix to map strategic options:
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
Existing Products New Products
|
|
76
|
+
Existing Markets Market Penetration Product Development
|
|
77
|
+
New Markets Market Development Diversification
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
For academic research, operationalize each quadrant with measurable indicators: market share growth rate, R&D investment ratio, geographic expansion metrics, and portfolio diversification index.
|
|
81
|
+
|
|
82
|
+
### Phase 3: Strategy Evaluation
|
|
83
|
+
|
|
84
|
+
Use the SAFe criteria (Johnson, Whittington & Scholes):
|
|
85
|
+
|
|
86
|
+
1. **Suitability** -- Does the strategy address key strategic issues?
|
|
87
|
+
2. **Acceptability** -- Risk, return, and stakeholder reactions
|
|
88
|
+
3. **Feasibility** -- Resources, capabilities, and timeline
|
|
89
|
+
|
|
90
|
+
## Balanced Scorecard Implementation
|
|
91
|
+
|
|
92
|
+
Translate strategy into measurable objectives across four perspectives:
|
|
93
|
+
|
|
94
|
+
```yaml
|
|
95
|
+
financial:
|
|
96
|
+
objectives:
|
|
97
|
+
- "Increase revenue by 15% YoY"
|
|
98
|
+
- "Reduce cost-to-serve by 10%"
|
|
99
|
+
kpis: ["revenue_growth_rate", "operating_margin"]
|
|
100
|
+
|
|
101
|
+
customer:
|
|
102
|
+
objectives:
|
|
103
|
+
- "Achieve NPS > 50"
|
|
104
|
+
- "Reduce churn below 5%"
|
|
105
|
+
kpis: ["net_promoter_score", "monthly_churn_rate"]
|
|
106
|
+
|
|
107
|
+
internal_process:
|
|
108
|
+
objectives:
|
|
109
|
+
- "Reduce cycle time by 20%"
|
|
110
|
+
- "Achieve 99.9% uptime"
|
|
111
|
+
kpis: ["avg_cycle_time_days", "system_uptime_pct"]
|
|
112
|
+
|
|
113
|
+
learning_growth:
|
|
114
|
+
objectives:
|
|
115
|
+
- "Increase training hours per employee"
|
|
116
|
+
- "Launch 3 new capabilities per quarter"
|
|
117
|
+
kpis: ["training_hours_per_fte", "new_capabilities_shipped"]
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Quantitative Strategy Tools
|
|
121
|
+
|
|
122
|
+
### Game Theory Applications
|
|
123
|
+
|
|
124
|
+
Model competitive interactions using payoff matrices:
|
|
125
|
+
|
|
126
|
+
```python
|
|
127
|
+
import numpy as np
|
|
128
|
+
|
|
129
|
+
# Prisoner's Dilemma payoff matrix
|
|
130
|
+
# (Row player payoff, Column player payoff)
|
|
131
|
+
# Strategies: Cooperate (0), Defect (1)
|
|
132
|
+
payoffs_row = np.array([[3, 0],
|
|
133
|
+
[5, 1]])
|
|
134
|
+
payoffs_col = np.array([[3, 5],
|
|
135
|
+
[0, 1]])
|
|
136
|
+
|
|
137
|
+
# Find Nash equilibria
|
|
138
|
+
for i in range(2):
|
|
139
|
+
for j in range(2):
|
|
140
|
+
row_best = payoffs_row[i, j] >= max(payoffs_row[:, j])
|
|
141
|
+
col_best = payoffs_col[i, j] >= max(payoffs_col[i, :])
|
|
142
|
+
if row_best and col_best:
|
|
143
|
+
print(f"Nash Equilibrium at ({i}, {j})")
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Scenario Planning
|
|
147
|
+
|
|
148
|
+
Structure scenario analysis with two critical uncertainties on perpendicular axes. Develop four internally consistent narratives, assign probability weights, and compute expected values for key decision variables. This approach enables robust strategy under deep uncertainty.
|
|
149
|
+
|
|
150
|
+
## References
|
|
151
|
+
|
|
152
|
+
- Barney, J. (1991). Firm Resources and Sustained Competitive Advantage. *Journal of Management*, 17(1), 99-120.
|
|
153
|
+
- Porter, M. E. (1980). *Competitive Strategy*. Free Press.
|
|
154
|
+
- Kaplan, R. S., & Norton, D. P. (1996). *The Balanced Scorecard*. Harvard Business Press.
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: computational-chemistry-guide
|
|
3
|
+
description: "DFT, molecular simulation, and reaction prediction tools for chemists"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "⚗"
|
|
7
|
+
category: "domains"
|
|
8
|
+
subcategory: "chemistry"
|
|
9
|
+
keywords: ["computational chemistry", "DFT", "quantum chemistry", "reaction prediction"]
|
|
10
|
+
source: "N/A"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Computational Chemistry Guide
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
Computational chemistry bridges quantum mechanics and practical chemistry, enabling researchers to predict molecular properties, reaction mechanisms, and material behaviors without stepping into a wet lab. From drug design to catalyst optimization, computational methods accelerate discovery by screening thousands of candidates before committing to synthesis.
|
|
18
|
+
|
|
19
|
+
This guide covers the major computational chemistry paradigms: Density Functional Theory (DFT) for electronic structure calculations, molecular dynamics (MD) for simulating atomic motion, machine learning potentials for scaling up simulations, and reaction prediction tools for retrosynthesis and mechanism elucidation. Each section includes tool recommendations, typical workflows, and code examples.
|
|
20
|
+
|
|
21
|
+
Whether you are a chemistry PhD student running your first Gaussian calculations, a materials scientist exploring new alloys with VASP, or a medicinal chemist using ML-based property prediction, this skill provides the conceptual framework and practical recipes to get productive quickly.
|
|
22
|
+
|
|
23
|
+
## Density Functional Theory (DFT)
|
|
24
|
+
|
|
25
|
+
### When to Use DFT
|
|
26
|
+
|
|
27
|
+
DFT is the workhorse of quantum chemistry. It provides a good balance of accuracy and computational cost for systems of up to a few hundred atoms.
|
|
28
|
+
|
|
29
|
+
| Property | DFT Suitability | Typical Error |
|
|
30
|
+
|----------|----------------|---------------|
|
|
31
|
+
| Molecular geometry | Excellent | < 0.02 Angstrom |
|
|
32
|
+
| Vibrational frequencies | Good | 3-5% |
|
|
33
|
+
| Reaction barriers | Good with correction | 2-5 kcal/mol |
|
|
34
|
+
| Band gaps | Fair (tends to underestimate) | 0.5-1.0 eV |
|
|
35
|
+
| Van der Waals interactions | Requires dispersion correction | Varies |
|
|
36
|
+
| Excited states | Fair (TD-DFT) | 0.2-0.5 eV |
|
|
37
|
+
|
|
38
|
+
### Software Comparison
|
|
39
|
+
|
|
40
|
+
| Software | License | Strengths | Basis Sets |
|
|
41
|
+
|----------|---------|-----------|-----------|
|
|
42
|
+
| Gaussian | Commercial | Broad functionality, well-documented | Gaussian-type |
|
|
43
|
+
| ORCA | Free (academic) | DFT + wavefunction methods, excellent support | Gaussian-type |
|
|
44
|
+
| VASP | Commercial | Periodic systems, materials science | Plane-wave |
|
|
45
|
+
| Quantum ESPRESSO | Open source | Periodic DFT, phonons | Plane-wave |
|
|
46
|
+
| Psi4 | Open source | Reference implementations, Python API | Gaussian-type |
|
|
47
|
+
| CP2K | Open source | Mixed Gaussian/plane-wave, large systems | Mixed |
|
|
48
|
+
|
|
49
|
+
### ORCA DFT Workflow Example
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
# geometry_optimization.inp
|
|
53
|
+
! B3LYP def2-TZVP D3BJ OPT FREQ
|
|
54
|
+
# B3LYP functional, triple-zeta basis, D3 dispersion, optimize + frequencies
|
|
55
|
+
|
|
56
|
+
%pal
|
|
57
|
+
nprocs 8
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
%maxcore 4000
|
|
61
|
+
|
|
62
|
+
* xyz 0 1
|
|
63
|
+
C 0.000 0.000 0.000
|
|
64
|
+
O 1.200 0.000 0.000
|
|
65
|
+
H -0.500 0.866 0.000
|
|
66
|
+
H -0.500 -0.866 0.000
|
|
67
|
+
*
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Run with:
|
|
71
|
+
```bash
|
|
72
|
+
orca geometry_optimization.inp > geometry_optimization.out
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Analyzing DFT Results with Python
|
|
76
|
+
|
|
77
|
+
```python
|
|
78
|
+
from ase.io import read
|
|
79
|
+
from ase.visualize import view
|
|
80
|
+
|
|
81
|
+
# Read optimized geometry from ORCA output
|
|
82
|
+
atoms = read('geometry_optimization.xyz')
|
|
83
|
+
|
|
84
|
+
# Extract energies from output file
|
|
85
|
+
import re
|
|
86
|
+
|
|
87
|
+
with open('geometry_optimization.out') as f:
|
|
88
|
+
text = f.read()
|
|
89
|
+
|
|
90
|
+
# Total energy
|
|
91
|
+
energy = float(re.search(r'FINAL SINGLE POINT ENERGY\s+([-\d.]+)', text).group(1))
|
|
92
|
+
print(f"Total energy: {energy:.6f} Hartree")
|
|
93
|
+
print(f"Total energy: {energy * 627.509:.2f} kcal/mol")
|
|
94
|
+
|
|
95
|
+
# Thermochemistry
|
|
96
|
+
gibbs_match = re.search(r'Final Gibbs free energy\s+\.\.\.\s+([-\d.]+)', text)
|
|
97
|
+
if gibbs_match:
|
|
98
|
+
gibbs = float(gibbs_match.group(1))
|
|
99
|
+
print(f"Gibbs free energy: {gibbs:.6f} Hartree")
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Molecular Dynamics Simulations
|
|
103
|
+
|
|
104
|
+
### MD Pipeline
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
Initial Structure (.pdb/.mol2)
|
|
108
|
+
|
|
|
109
|
+
v
|
|
110
|
+
[Parameterization] --> Force field assignment (AMBER, CHARMM, OPLS)
|
|
111
|
+
|
|
|
112
|
+
v
|
|
113
|
+
[Solvation] --> Add solvent box, ions
|
|
114
|
+
|
|
|
115
|
+
v
|
|
116
|
+
[Minimization] --> Energy minimization (steepest descent)
|
|
117
|
+
|
|
|
118
|
+
v
|
|
119
|
+
[Equilibration] --> NVT then NPT ensemble (100 ps - 1 ns)
|
|
120
|
+
|
|
|
121
|
+
v
|
|
122
|
+
[Production] --> NPT ensemble (10 ns - microseconds)
|
|
123
|
+
|
|
|
124
|
+
v
|
|
125
|
+
[Analysis] --> RMSD, RMSF, hydrogen bonds, free energy
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### OpenMM Quick Start
|
|
129
|
+
|
|
130
|
+
```python
|
|
131
|
+
from openmm.app import *
|
|
132
|
+
from openmm import *
|
|
133
|
+
from openmm.unit import *
|
|
134
|
+
|
|
135
|
+
# Load structure
|
|
136
|
+
pdb = PDBFile('protein.pdb')
|
|
137
|
+
forcefield = ForceField('amber14-all.xml', 'amber14/tip3pfb.xml')
|
|
138
|
+
|
|
139
|
+
# Create system
|
|
140
|
+
modeller = Modeller(pdb.topology, pdb.positions)
|
|
141
|
+
modeller.addSolvent(forcefield, model='tip3p', padding=1.0*nanometers)
|
|
142
|
+
|
|
143
|
+
system = forcefield.createSystem(
|
|
144
|
+
modeller.topology,
|
|
145
|
+
nonbondedMethod=PME,
|
|
146
|
+
nonbondedCutoff=1.0*nanometers,
|
|
147
|
+
constraints=HBonds
|
|
148
|
+
)
|
|
149
|
+
|
|
150
|
+
# Set up simulation
|
|
151
|
+
integrator = LangevinMiddleIntegrator(300*kelvin, 1/picosecond, 0.004*picoseconds)
|
|
152
|
+
simulation = Simulation(modeller.topology, system, integrator)
|
|
153
|
+
simulation.context.setPositions(modeller.positions)
|
|
154
|
+
|
|
155
|
+
# Minimize
|
|
156
|
+
simulation.minimizeEnergy()
|
|
157
|
+
|
|
158
|
+
# Run production (10 ns)
|
|
159
|
+
simulation.reporters.append(DCDReporter('trajectory.dcd', 1000))
|
|
160
|
+
simulation.reporters.append(
|
|
161
|
+
StateDataReporter('log.csv', 1000, step=True,
|
|
162
|
+
potentialEnergy=True, temperature=True)
|
|
163
|
+
)
|
|
164
|
+
simulation.step(2500000) # 10 ns at 4 fs timestep
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
## Machine Learning in Computational Chemistry
|
|
168
|
+
|
|
169
|
+
### ML Potential Energy Surfaces
|
|
170
|
+
|
|
171
|
+
Machine learning potentials achieve near-DFT accuracy at a fraction of the cost:
|
|
172
|
+
|
|
173
|
+
| Method | Speed vs DFT | Accuracy | Training Data |
|
|
174
|
+
|--------|-------------|----------|---------------|
|
|
175
|
+
| ANI | 1000x faster | ~1 kcal/mol | Pre-trained |
|
|
176
|
+
| SchNet | 100-1000x | ~1 kcal/mol | 1K-100K configs |
|
|
177
|
+
| MACE | 100-1000x | < 1 kcal/mol | 1K-100K configs |
|
|
178
|
+
| GemNet | 100-1000x | < 1 kcal/mol | 1K-100K configs |
|
|
179
|
+
|
|
180
|
+
### Property Prediction with RDKit
|
|
181
|
+
|
|
182
|
+
```python
|
|
183
|
+
from rdkit import Chem
|
|
184
|
+
from rdkit.Chem import Descriptors, AllChem
|
|
185
|
+
import numpy as np
|
|
186
|
+
|
|
187
|
+
def compute_molecular_features(smiles):
|
|
188
|
+
"""Compute molecular descriptors from SMILES string."""
|
|
189
|
+
mol = Chem.MolFromSmiles(smiles)
|
|
190
|
+
if mol is None:
|
|
191
|
+
return None
|
|
192
|
+
|
|
193
|
+
features = {
|
|
194
|
+
'molecular_weight': Descriptors.MolWt(mol),
|
|
195
|
+
'logp': Descriptors.MolLogP(mol),
|
|
196
|
+
'hbd': Descriptors.NumHDonors(mol),
|
|
197
|
+
'hba': Descriptors.NumHAcceptors(mol),
|
|
198
|
+
'tpsa': Descriptors.TPSA(mol),
|
|
199
|
+
'rotatable_bonds': Descriptors.NumRotatableBonds(mol),
|
|
200
|
+
'aromatic_rings': Descriptors.NumAromaticRings(mol),
|
|
201
|
+
'heavy_atoms': mol.GetNumHeavyAtoms(),
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
# Morgan fingerprint (ECFP4)
|
|
205
|
+
fp = AllChem.GetMorganFingerprintAsBitVect(mol, 2, nBits=2048)
|
|
206
|
+
features['fingerprint'] = np.array(fp)
|
|
207
|
+
|
|
208
|
+
return features
|
|
209
|
+
|
|
210
|
+
# Lipinski's Rule of Five check
|
|
211
|
+
def check_druglikeness(smiles):
|
|
212
|
+
feats = compute_molecular_features(smiles)
|
|
213
|
+
if feats is None:
|
|
214
|
+
return False
|
|
215
|
+
return (feats['molecular_weight'] <= 500 and
|
|
216
|
+
feats['logp'] <= 5 and
|
|
217
|
+
feats['hbd'] <= 5 and
|
|
218
|
+
feats['hba'] <= 10)
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
## Reaction Prediction
|
|
222
|
+
|
|
223
|
+
### Retrosynthesis Tools
|
|
224
|
+
|
|
225
|
+
| Tool | Approach | Access |
|
|
226
|
+
|------|----------|--------|
|
|
227
|
+
| ASKCOS | Template-based + ML | MIT, web interface |
|
|
228
|
+
| IBM RXN | Transformer-based | Free API |
|
|
229
|
+
| Syntheseus | Multi-model framework | Open source |
|
|
230
|
+
| RetroTRAE | Transformer | Open source |
|
|
231
|
+
|
|
232
|
+
### Using RDKit for Reaction Processing
|
|
233
|
+
|
|
234
|
+
```python
|
|
235
|
+
from rdkit.Chem import AllChem, Draw
|
|
236
|
+
|
|
237
|
+
# Define a reaction (Suzuki coupling)
|
|
238
|
+
rxn_smarts = '[c:1][B](O)O.[c:2][Cl]>>[c:1][c:2]'
|
|
239
|
+
rxn = AllChem.ReactionFromSmarts(rxn_smarts)
|
|
240
|
+
|
|
241
|
+
# Apply reaction
|
|
242
|
+
reactant1 = Chem.MolFromSmiles('c1ccc(B(O)O)cc1') # Phenylboronic acid
|
|
243
|
+
reactant2 = Chem.MolFromSmiles('c1ccc(Cl)cc1') # Chlorobenzene
|
|
244
|
+
|
|
245
|
+
products = rxn.RunReactants((reactant1, reactant2))
|
|
246
|
+
for product_set in products:
|
|
247
|
+
for product in product_set:
|
|
248
|
+
print(Chem.MolToSmiles(product)) # Biphenyl
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
## Best Practices
|
|
252
|
+
|
|
253
|
+
- **Benchmark your method.** Always validate your computational protocol against known experimental data before applying it to new systems.
|
|
254
|
+
- **Use appropriate levels of theory.** Do not use MP2 when B3LYP suffices, and do not use B3LYP when you need CCSD(T) accuracy.
|
|
255
|
+
- **Include dispersion corrections.** D3BJ or D4 corrections are essential for non-covalent interactions.
|
|
256
|
+
- **Check convergence.** Verify that geometry optimizations, SCF calculations, and MD simulations have properly converged.
|
|
257
|
+
- **Report computational details completely.** Functional, basis set, dispersion correction, solvent model, and software version should all be stated.
|
|
258
|
+
- **Archive your input/output files.** Computational chemistry is reproducible only if all parameters are preserved.
|
|
259
|
+
|
|
260
|
+
## References
|
|
261
|
+
|
|
262
|
+
- [ORCA Documentation](https://www.faccts.de/docs/orca/6.0/manual/) -- Free quantum chemistry software
|
|
263
|
+
- [OpenMM Documentation](http://docs.openmm.org/) -- GPU-accelerated molecular dynamics
|
|
264
|
+
- [RDKit Documentation](https://www.rdkit.org/docs/) -- Cheminformatics toolkit
|
|
265
|
+
- [Psi4 Documentation](https://psicode.org/) -- Open-source quantum chemistry
|
|
266
|
+
- [A Hitchhiker's Guide to DFT](https://onlinelibrary.wiley.com/doi/book/10.1002/3527600043) -- Koch and Holthausen
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: retrosynthesis-guide
|
|
3
|
+
description: "Retrosynthetic analysis and computational reaction prediction"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "flask"
|
|
7
|
+
category: "domains"
|
|
8
|
+
subcategory: "chemistry"
|
|
9
|
+
keywords: ["retrosynthesis", "reaction prediction", "organic chemistry", "computational chemistry"]
|
|
10
|
+
source: "wentor-research-plugins"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Retrosynthesis Guide
|
|
14
|
+
|
|
15
|
+
Plan synthetic routes for target molecules using retrosynthetic analysis principles and computational tools, from Corey's logic to modern AI-driven approaches.
|
|
16
|
+
|
|
17
|
+
## What Is Retrosynthesis?
|
|
18
|
+
|
|
19
|
+
Retrosynthesis works backward from a target molecule to identify simpler, commercially available precursors:
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
Target Molecule (TM)
|
|
23
|
+
|
|
|
24
|
+
[Disconnection 1] ← Apply transform (reverse of a known reaction)
|
|
25
|
+
|
|
|
26
|
+
Synthon A + Synthon B
|
|
27
|
+
| |
|
|
28
|
+
[Available] [Disconnection 2]
|
|
29
|
+
|
|
|
30
|
+
Synthon C + Synthon D
|
|
31
|
+
| |
|
|
32
|
+
[Available] [Available]
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Key terminology:
|
|
36
|
+
- **Target Molecule (TM)**: The molecule you want to synthesize
|
|
37
|
+
- **Synthon**: Idealized reactive fragment from a disconnection
|
|
38
|
+
- **Synthetic Equivalent**: Real reagent corresponding to a synthon
|
|
39
|
+
- **Transform**: Reverse of a chemical reaction (retro-reaction)
|
|
40
|
+
- **FGI (Functional Group Interconversion)**: Convert one functional group to another to enable a disconnection
|
|
41
|
+
|
|
42
|
+
## Corey's Retrosynthetic Strategies
|
|
43
|
+
|
|
44
|
+
### Strategic Bond Disconnections
|
|
45
|
+
|
|
46
|
+
| Strategy | Description | When to Use |
|
|
47
|
+
|----------|-------------|------------|
|
|
48
|
+
| **FGI** | Convert functional groups to enable disconnections | When direct disconnection is not possible |
|
|
49
|
+
| **C-C Bond disconnection** | Break carbon-carbon bonds | Building the carbon skeleton |
|
|
50
|
+
| **C-X Bond disconnection** | Break carbon-heteroatom bonds | Functional group installation |
|
|
51
|
+
| **Ring disconnection** | Open rings to identify acyclic precursors | Cyclic target molecules |
|
|
52
|
+
| **Symmetry exploitation** | Use molecular symmetry to simplify analysis | Symmetric molecules |
|
|
53
|
+
| **Convergent synthesis** | Combine two complex fragments late | Minimize linear step count |
|
|
54
|
+
|
|
55
|
+
### Common Disconnection Patterns
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
# Alcohol (C-OH) → Carbonyl reduction
|
|
59
|
+
R-CH(OH)-R' ⟹ R-CO-R' + NaBH4/LiAlH4
|
|
60
|
+
|
|
61
|
+
# Amine (C-N) → Reductive amination
|
|
62
|
+
R-CH2-NH-R' ⟹ R-CHO + R'-NH2
|
|
63
|
+
|
|
64
|
+
# C-C Bond (aldol) → Aldol retro
|
|
65
|
+
R-CH(OH)-CH2-CO-R' ⟹ R-CHO + CH3-CO-R'
|
|
66
|
+
|
|
67
|
+
# C-C Bond (Grignard) → Grignard retro
|
|
68
|
+
R-CH(OH)-R' ⟹ R-CHO + R'-MgBr
|
|
69
|
+
|
|
70
|
+
# Ester (C-O) → Fischer esterification retro
|
|
71
|
+
R-COO-R' ⟹ R-COOH + R'-OH
|
|
72
|
+
|
|
73
|
+
# Amide (C-N) → Amide coupling retro
|
|
74
|
+
R-CO-NH-R' ⟹ R-COOH + R'-NH2
|
|
75
|
+
|
|
76
|
+
# Diels-Alder → Retro Diels-Alder
|
|
77
|
+
Cyclohexene derivative ⟹ Diene + Dienophile
|
|
78
|
+
|
|
79
|
+
# Wittig → Retro Wittig
|
|
80
|
+
R-CH=CH-R' ⟹ R-CHO + R'-CH2-PPh3
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Computational Retrosynthesis Tools
|
|
84
|
+
|
|
85
|
+
### Tool Comparison
|
|
86
|
+
|
|
87
|
+
| Tool | Developer | Method | Access |
|
|
88
|
+
|------|-----------|--------|--------|
|
|
89
|
+
| ASKCOS | MIT | Template-based + neural | Free (askcos.mit.edu) |
|
|
90
|
+
| IBM RXN | IBM Research | Transformer seq2seq | Free (rxn.res.ibm.com) |
|
|
91
|
+
| Reaxys | Elsevier | Database-backed | Subscription |
|
|
92
|
+
| SciFinder-n | CAS | Database + AI | Subscription |
|
|
93
|
+
| Spaya | Iktos | Graph neural network | Commercial |
|
|
94
|
+
| AiZynthFinder | AstraZeneca | Monte Carlo tree search | Open source |
|
|
95
|
+
|
|
96
|
+
### Using ASKCOS
|
|
97
|
+
|
|
98
|
+
```python
|
|
99
|
+
import requests
|
|
100
|
+
|
|
101
|
+
# ASKCOS API for retrosynthetic planning
|
|
102
|
+
# (requires running ASKCOS locally or using the hosted version)
|
|
103
|
+
|
|
104
|
+
target_smiles = "CC(=O)Oc1ccccc1C(=O)O" # Aspirin
|
|
105
|
+
|
|
106
|
+
# One-step retrosynthesis
|
|
107
|
+
response = requests.post(
|
|
108
|
+
"https://askcos.mit.edu/api/retro/",
|
|
109
|
+
json={
|
|
110
|
+
"smiles": target_smiles,
|
|
111
|
+
"num_results": 10,
|
|
112
|
+
"max_depth": 5
|
|
113
|
+
}
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
results = response.json()
|
|
117
|
+
for i, result in enumerate(results.get("precursors", [])[:5]):
|
|
118
|
+
print(f"Route {i+1}:")
|
|
119
|
+
print(f" Precursors: {result['smiles']}")
|
|
120
|
+
print(f" Template: {result.get('template', 'N/A')}")
|
|
121
|
+
print(f" Score: {result.get('score', 'N/A')}")
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Using IBM RXN for Chemistry
|
|
125
|
+
|
|
126
|
+
```python
|
|
127
|
+
# IBM RXN API
|
|
128
|
+
from rxn4chemistry import RXN4ChemistryWrapper
|
|
129
|
+
|
|
130
|
+
api_key = os.environ["RXN4CHEM_API_KEY"]
|
|
131
|
+
rxn = RXN4ChemistryWrapper(api_key=api_key)
|
|
132
|
+
rxn.create_project("retrosynthesis_example")
|
|
133
|
+
|
|
134
|
+
# Predict retrosynthesis
|
|
135
|
+
response = rxn.predict_automatic_retrosynthesis(
|
|
136
|
+
product="CC(=O)Oc1ccccc1C(=O)O", # Aspirin
|
|
137
|
+
max_steps=3
|
|
138
|
+
)
|
|
139
|
+
|
|
140
|
+
# Get results
|
|
141
|
+
results = rxn.get_predict_automatic_retrosynthesis_results(response["prediction_id"])
|
|
142
|
+
for route in results.get("retrosynthetic_paths", []):
|
|
143
|
+
print(f"Route confidence: {route.get('confidence', 'N/A')}")
|
|
144
|
+
for step in route.get("steps", []):
|
|
145
|
+
print(f" Reaction: {step.get('reaction_smiles', 'N/A')}")
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Using AiZynthFinder (Open Source)
|
|
149
|
+
|
|
150
|
+
```python
|
|
151
|
+
from aizynthfinder.aizynthfinder import AiZynthFinder
|
|
152
|
+
|
|
153
|
+
# Configure the finder
|
|
154
|
+
finder = AiZynthFinder()
|
|
155
|
+
finder.stock.load("zinc_stock.hdf5") # Commercial building blocks
|
|
156
|
+
finder.expansion_policy.load("expansion_policy_model.onnx") # Retro model
|
|
157
|
+
|
|
158
|
+
# Set target
|
|
159
|
+
finder.target_smiles = "CC(=O)Oc1ccccc1C(=O)O" # Aspirin
|
|
160
|
+
|
|
161
|
+
# Run tree search
|
|
162
|
+
finder.config.search.time_limit = 120 # seconds
|
|
163
|
+
finder.config.search.iteration_limit = 500
|
|
164
|
+
finder.tree_search()
|
|
165
|
+
|
|
166
|
+
# Extract and analyze routes
|
|
167
|
+
finder.build_routes()
|
|
168
|
+
for i, route in enumerate(finder.routes):
|
|
169
|
+
print(f"Route {i+1} (score: {route.score:.3f}):")
|
|
170
|
+
print(f" Steps: {len(route.reactions)}")
|
|
171
|
+
for rxn in route.reactions:
|
|
172
|
+
print(f" {rxn}")
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## SMILES Notation for Chemistry
|
|
176
|
+
|
|
177
|
+
SMILES (Simplified Molecular Input Line Entry System) is the standard text representation:
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
# Common SMILES patterns
|
|
181
|
+
Water: O
|
|
182
|
+
Ethanol: CCO
|
|
183
|
+
Benzene: c1ccccc1
|
|
184
|
+
Aspirin: CC(=O)Oc1ccccc1C(=O)O
|
|
185
|
+
Caffeine: Cn1c(=O)c2c(ncn2C)n(C)c1=O
|
|
186
|
+
Ibuprofen: CC(C)Cc1ccc(cc1)C(C)C(=O)O
|
|
187
|
+
|
|
188
|
+
# SMILES rules
|
|
189
|
+
# Atoms: C, N, O, S, P, F, Cl, Br, I
|
|
190
|
+
# Bonds: - (single, implicit), = (double), # (triple)
|
|
191
|
+
# Branches: () for branching
|
|
192
|
+
# Rings: numbers for ring closure (c1ccccc1 = benzene)
|
|
193
|
+
# Aromatic: lowercase letters
|
|
194
|
+
# Stereochemistry: / \ for E/Z, @ @@ for R/S
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## Reaction Databases
|
|
198
|
+
|
|
199
|
+
| Database | Coverage | Features | Access |
|
|
200
|
+
|----------|----------|----------|--------|
|
|
201
|
+
| Reaxys | 130M+ reactions | Experimental conditions, yields | Subscription |
|
|
202
|
+
| SciFinder / CAS | 160M+ reactions | Commercial availability, safety data | Subscription |
|
|
203
|
+
| USPTO | 3.7M reactions | US patent reactions | Free (open data) |
|
|
204
|
+
| Open Reaction Database (ORD) | Growing | Structured reaction data, conditions | Free |
|
|
205
|
+
| RMG (Reaction Mechanism Generator) | Kinetics | Automated mechanism generation | Free (MIT) |
|
|
206
|
+
|
|
207
|
+
## Best Practices for Route Planning
|
|
208
|
+
|
|
209
|
+
1. **Start simple**: Begin with the most obvious disconnections before trying exotic transforms.
|
|
210
|
+
2. **Consider availability**: Check if precursors are commercially available (Sigma-Aldrich, TCI, Alfa Aesar).
|
|
211
|
+
3. **Minimize steps**: Convergent synthesis (combining two complex halves) is generally preferred over linear synthesis.
|
|
212
|
+
4. **Protect and deprotect wisely**: Minimize protecting group manipulations; each adds 2 steps (protection + deprotection).
|
|
213
|
+
5. **Check literature**: Search Reaxys or SciFinder for precedent before attempting novel transformations.
|
|
214
|
+
6. **Validate computationally**: Use forward reaction prediction to verify that proposed retrosynthetic steps are feasible.
|
|
215
|
+
7. **Consider scale**: Reactions that work at milligram scale may fail at gram scale. Check for scalability issues (exothermic reactions, heterogeneous mixing).
|