pi-skill-search 0.1.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/CHANGELOG.md +20 -0
- package/LICENSE +21 -0
- package/README.md +97 -0
- package/index.ts +163 -0
- package/package.json +48 -0
- package/skills/adaptyv/SKILL.md +92 -0
- package/skills/add-community-extension/SKILL.md +85 -0
- package/skills/aeon/SKILL.md +111 -0
- package/skills/ai-slop-cleaner/SKILL.md +118 -0
- package/skills/anndata/SKILL.md +83 -0
- package/skills/arboreto/SKILL.md +107 -0
- package/skills/ask/SKILL.md +55 -0
- package/skills/astropy/SKILL.md +30 -0
- package/skills/async-worker-recovery/SKILL.md +44 -0
- package/skills/autopilot/SKILL.md +63 -0
- package/skills/autoresearch/SKILL.md +64 -0
- package/skills/autoskill/SKILL.md +116 -0
- package/skills/babysit/SKILL.md +43 -0
- package/skills/benchling-integration/SKILL.md +106 -0
- package/skills/bgpt-paper-search/SKILL.md +67 -0
- package/skills/biopython/SKILL.md +29 -0
- package/skills/bioservices/SKILL.md +96 -0
- package/skills/brainstorming/SKILL.md +104 -0
- package/skills/cancel/SKILL.md +85 -0
- package/skills/ccg/SKILL.md +87 -0
- package/skills/celery-pipeline/SKILL.md +30 -0
- package/skills/cellxgene-census/SKILL.md +104 -0
- package/skills/child-pi-spawning/SKILL.md +85 -0
- package/skills/cirq/SKILL.md +113 -0
- package/skills/citation-management/SKILL.md +91 -0
- package/skills/clinical-decision-support/SKILL.md +117 -0
- package/skills/clinical-reports/SKILL.md +118 -0
- package/skills/clinical-trial/SKILL.md +28 -0
- package/skills/cobrapy/SKILL.md +116 -0
- package/skills/configure-notifications/SKILL.md +85 -0
- package/skills/consciousness-council/SKILL.md +120 -0
- package/skills/context-artifact-hygiene/SKILL.md +85 -0
- package/skills/context-mode-ops/SKILL.md +87 -0
- package/skills/dask/SKILL.md +85 -0
- package/skills/database-lookup/SKILL.md +118 -0
- package/skills/datamol/SKILL.md +108 -0
- package/skills/debug/SKILL.md +32 -0
- package/skills/deep-dive/SKILL.md +114 -0
- package/skills/deep-interview/SKILL.md +90 -0
- package/skills/deepchem/SKILL.md +117 -0
- package/skills/deepinit/SKILL.md +100 -0
- package/skills/deeptools/SKILL.md +118 -0
- package/skills/delegation-patterns/SKILL.md +56 -0
- package/skills/depmap/SKILL.md +94 -0
- package/skills/dhdna-profiler/SKILL.md +86 -0
- package/skills/diffdock/SKILL.md +101 -0
- package/skills/dispatching-parallel-agents/SKILL.md +119 -0
- package/skills/dnanexus-integration/SKILL.md +118 -0
- package/skills/do/SKILL.md +48 -0
- package/skills/docker-sandbox/SKILL.md +29 -0
- package/skills/docx/SKILL.md +119 -0
- package/skills/esm/SKILL.md +116 -0
- package/skills/etetoolkit/SKILL.md +103 -0
- package/skills/event-log-tracing/SKILL.md +85 -0
- package/skills/exa-search/SKILL.md +72 -0
- package/skills/executing-plans/SKILL.md +69 -0
- package/skills/exploratory-data-analysis/SKILL.md +118 -0
- package/skills/external-context/SKILL.md +80 -0
- package/skills/fastapi/SKILL.md +30 -0
- package/skills/finishing-a-development-branch/SKILL.md +106 -0
- package/skills/flowio/SKILL.md +114 -0
- package/skills/fluidsim/SKILL.md +108 -0
- package/skills/generate-image/SKILL.md +108 -0
- package/skills/geniml/SKILL.md +117 -0
- package/skills/geomaster/SKILL.md +109 -0
- package/skills/geopandas/SKILL.md +114 -0
- package/skills/get-available-resources/SKILL.md +100 -0
- package/skills/gget/SKILL.md +111 -0
- package/skills/ginkgo-cloud-lab/SKILL.md +52 -0
- package/skills/git-master/SKILL.md +85 -0
- package/skills/glycoengineering/SKILL.md +104 -0
- package/skills/gtars/SKILL.md +104 -0
- package/skills/hackernews-frontpage/SKILL.md +46 -0
- package/skills/histolab/SKILL.md +98 -0
- package/skills/how-it-works/SKILL.md +25 -0
- package/skills/hud/SKILL.md +86 -0
- package/skills/hugging-science/SKILL.md +93 -0
- package/skills/huggingface/SKILL.md +30 -0
- package/skills/hypogenic/SKILL.md +107 -0
- package/skills/hypothesis-generation/SKILL.md +118 -0
- package/skills/imaging-data-commons/SKILL.md +119 -0
- package/skills/infographics/SKILL.md +102 -0
- package/skills/iso-13485-certification/SKILL.md +114 -0
- package/skills/knowledge-agent/SKILL.md +83 -0
- package/skills/labarchive-integration/SKILL.md +98 -0
- package/skills/lamindb/SKILL.md +119 -0
- package/skills/landsat/SKILL.md +29 -0
- package/skills/latchbio-integration/SKILL.md +118 -0
- package/skills/latex-posters/SKILL.md +112 -0
- package/skills/learn-codebase/SKILL.md +24 -0
- package/skills/learner/SKILL.md +118 -0
- package/skills/literature-review/SKILL.md +118 -0
- package/skills/live-agent-lifecycle/SKILL.md +85 -0
- package/skills/mailbox-interactive/SKILL.md +85 -0
- package/skills/make-plan/SKILL.md +59 -0
- package/skills/markdown-mermaid-writing/SKILL.md +118 -0
- package/skills/market-research-reports/SKILL.md +119 -0
- package/skills/markitdown/SKILL.md +111 -0
- package/skills/markitdown-docs/SKILL.md +28 -0
- package/skills/matchms/SKILL.md +91 -0
- package/skills/matlab/SKILL.md +118 -0
- package/skills/matplotlib/SKILL.md +30 -0
- package/skills/mcp-setup/SKILL.md +84 -0
- package/skills/medchem/SKILL.md +109 -0
- package/skills/mem-search/SKILL.md +96 -0
- package/skills/modal/SKILL.md +104 -0
- package/skills/model-routing-context/SKILL.md +85 -0
- package/skills/molecular-dynamics/SKILL.md +116 -0
- package/skills/molfeat/SKILL.md +110 -0
- package/skills/multi-perspective-review/SKILL.md +85 -0
- package/skills/networkx/SKILL.md +111 -0
- package/skills/neurokit2/SKILL.md +114 -0
- package/skills/neuropixels-analysis/SKILL.md +112 -0
- package/skills/nilearn/SKILL.md +29 -0
- package/skills/observability-reliability/SKILL.md +43 -0
- package/skills/omc-doctor/SKILL.md +86 -0
- package/skills/omc-reference/SKILL.md +119 -0
- package/skills/omc-setup/SKILL.md +82 -0
- package/skills/omc-teams/SKILL.md +81 -0
- package/skills/omero-integration/SKILL.md +111 -0
- package/skills/open-notebook/SKILL.md +100 -0
- package/skills/openephys/SKILL.md +28 -0
- package/skills/opentrons-integration/SKILL.md +110 -0
- package/skills/optimize-for-gpu/SKILL.md +119 -0
- package/skills/orchestration/SKILL.md +85 -0
- package/skills/ownership-session-security/SKILL.md +43 -0
- package/skills/paper-lookup/SKILL.md +119 -0
- package/skills/paperzilla/SKILL.md +114 -0
- package/skills/parallel-web/SKILL.md +64 -0
- package/skills/pathfinder/SKILL.md +114 -0
- package/skills/pathml/SKILL.md +98 -0
- package/skills/pdf/SKILL.md +113 -0
- package/skills/peer-review/SKILL.md +119 -0
- package/skills/pennylane/SKILL.md +119 -0
- package/skills/phylogenetics/SKILL.md +102 -0
- package/skills/pi-extension-lifecycle/SKILL.md +41 -0
- package/skills/plan/SKILL.md +66 -0
- package/skills/polars/SKILL.md +114 -0
- package/skills/polars-bio/SKILL.md +84 -0
- package/skills/pptx/SKILL.md +118 -0
- package/skills/pptx-posters/SKILL.md +112 -0
- package/skills/primekg/SKILL.md +97 -0
- package/skills/project-session-manager/SKILL.md +85 -0
- package/skills/protocolsio-integration/SKILL.md +119 -0
- package/skills/pubmed-search/SKILL.md +29 -0
- package/skills/pufferlib/SKILL.md +103 -0
- package/skills/pydeseq2/SKILL.md +106 -0
- package/skills/pydicom/SKILL.md +115 -0
- package/skills/pyhealth/SKILL.md +117 -0
- package/skills/pylabrobot/SKILL.md +100 -0
- package/skills/pymatgen/SKILL.md +28 -0
- package/skills/pymc/SKILL.md +108 -0
- package/skills/pymoo/SKILL.md +90 -0
- package/skills/pyopenms/SKILL.md +119 -0
- package/skills/pysam/SKILL.md +118 -0
- package/skills/pyspark/SKILL.md +30 -0
- package/skills/pytdc/SKILL.md +102 -0
- package/skills/pytorch/SKILL.md +31 -0
- package/skills/pytorch-lightning/SKILL.md +119 -0
- package/skills/pyzotero/SKILL.md +104 -0
- package/skills/qiskit/SKILL.md +119 -0
- package/skills/qutip/SKILL.md +111 -0
- package/skills/ralph/SKILL.md +23 -0
- package/skills/ralplan/SKILL.md +105 -0
- package/skills/rdflib/SKILL.md +29 -0
- package/skills/rdkit/SKILL.md +30 -0
- package/skills/read-only-explorer/SKILL.md +85 -0
- package/skills/receiving-code-review/SKILL.md +103 -0
- package/skills/release/SKILL.md +117 -0
- package/skills/remember/SKILL.md +39 -0
- package/skills/requesting-code-review/SKILL.md +85 -0
- package/skills/requirements-to-task-packet/SKILL.md +65 -0
- package/skills/research-grants/SKILL.md +118 -0
- package/skills/research-lookup/SKILL.md +117 -0
- package/skills/research-reproducibility/SKILL.md +28 -0
- package/skills/resource-discovery-config/SKILL.md +43 -0
- package/skills/rowan/SKILL.md +100 -0
- package/skills/runtime-state-reader/SKILL.md +46 -0
- package/skills/safe-bash/SKILL.md +85 -0
- package/skills/scanpy/SKILL.md +32 -0
- package/skills/scholar-evaluation/SKILL.md +115 -0
- package/skills/scientific-brainstorming/SKILL.md +118 -0
- package/skills/scientific-critical-thinking/SKILL.md +119 -0
- package/skills/scientific-schematics/SKILL.md +116 -0
- package/skills/scientific-slides/SKILL.md +117 -0
- package/skills/scientific-visualization/SKILL.md +109 -0
- package/skills/scientific-writing/SKILL.md +119 -0
- package/skills/scikit-bio/SKILL.md +92 -0
- package/skills/scikit-learn/SKILL.md +99 -0
- package/skills/scikit-survival/SKILL.md +110 -0
- package/skills/sciomc/SKILL.md +86 -0
- package/skills/scvelo/SKILL.md +106 -0
- package/skills/scvi-tools/SKILL.md +114 -0
- package/skills/seaborn/SKILL.md +97 -0
- package/skills/secure-agent-orchestration-review/SKILL.md +47 -0
- package/skills/self-improve/SKILL.md +119 -0
- package/skills/semantic-compression/SKILL.md +62 -0
- package/skills/setup/SKILL.md +42 -0
- package/skills/shap/SKILL.md +103 -0
- package/skills/simpy/SKILL.md +116 -0
- package/skills/skill/SKILL.md +117 -0
- package/skills/skill-search/SKILL.md +67 -0
- package/skills/skillify/SKILL.md +46 -0
- package/skills/smart-explore/SKILL.md +94 -0
- package/skills/sqlite-pandas/SKILL.md +30 -0
- package/skills/stable-baselines3/SKILL.md +86 -0
- package/skills/state-mutation-locking/SKILL.md +44 -0
- package/skills/statistical-analysis/SKILL.md +108 -0
- package/skills/statsmodels/SKILL.md +29 -0
- package/skills/subagent-driven-development/SKILL.md +89 -0
- package/skills/sympy/SKILL.md +115 -0
- package/skills/system-prompts/SKILL.md +116 -0
- package/skills/systematic-debugging/SKILL.md +119 -0
- package/skills/team/SKILL.md +85 -0
- package/skills/test-driven-development/SKILL.md +84 -0
- package/skills/tiledbvcf/SKILL.md +119 -0
- package/skills/timeline-report/SKILL.md +85 -0
- package/skills/timesfm-forecasting/SKILL.md +112 -0
- package/skills/torch-geometric/SKILL.md +118 -0
- package/skills/torchdrug/SKILL.md +118 -0
- package/skills/trace/SKILL.md +118 -0
- package/skills/transformers/SKILL.md +110 -0
- package/skills/treatment-plans/SKILL.md +119 -0
- package/skills/ui-render-performance/SKILL.md +41 -0
- package/skills/ultragoal/SKILL.md +63 -0
- package/skills/ultraqa/SKILL.md +85 -0
- package/skills/ultrawork/SKILL.md +20 -0
- package/skills/umap-learn/SKILL.md +119 -0
- package/skills/usfiscaldata/SKILL.md +118 -0
- package/skills/using-git-worktrees/SKILL.md +112 -0
- package/skills/using-superpowers/SKILL.md +85 -0
- package/skills/using-vetc/SKILL.md +92 -0
- package/skills/vaex/SKILL.md +111 -0
- package/skills/venue-templates/SKILL.md +113 -0
- package/skills/verification-before-completion/SKILL.md +88 -0
- package/skills/verification-before-done/SKILL.md +68 -0
- package/skills/verify/SKILL.md +33 -0
- package/skills/version-bump/SKILL.md +54 -0
- package/skills/vetc-analyze-ba/SKILL.md +117 -0
- package/skills/vetc-analyze-codebase/SKILL.md +118 -0
- package/skills/vetc-api-design/SKILL.md +103 -0
- package/skills/vetc-brainstorming/SKILL.md +116 -0
- package/skills/vetc-change-proposal/SKILL.md +111 -0
- package/skills/vetc-cicd/SKILL.md +113 -0
- package/skills/vetc-continuous-learning/SKILL.md +115 -0
- package/skills/vetc-deep-interview/SKILL.md +103 -0
- package/skills/vetc-docgen/SKILL.md +108 -0
- package/skills/vetc-frontend-patterns/SKILL.md +99 -0
- package/skills/vetc-iterative-retrieval/SKILL.md +110 -0
- package/skills/vetc-java-patterns/SKILL.md +113 -0
- package/skills/vetc-meta-skill-creator/SKILL.md +99 -0
- package/skills/vetc-oracle-patterns/SKILL.md +109 -0
- package/skills/vetc-performance-testing/SKILL.md +104 -0
- package/skills/vetc-pr-response/SKILL.md +106 -0
- package/skills/vetc-ralph/SKILL.md +108 -0
- package/skills/vetc-ralplan/SKILL.md +116 -0
- package/skills/vetc-receiving-review/SKILL.md +106 -0
- package/skills/vetc-reconcile-patterns/SKILL.md +117 -0
- package/skills/vetc-refactoring/SKILL.md +96 -0
- package/skills/vetc-runbook/SKILL.md +118 -0
- package/skills/vetc-sast/SKILL.md +118 -0
- package/skills/vetc-sdlc/SKILL.md +97 -0
- package/skills/vetc-security/SKILL.md +117 -0
- package/skills/vetc-spec-driven/SKILL.md +111 -0
- package/skills/vetc-spec-quality/SKILL.md +117 -0
- package/skills/vetc-systematic-debugging/SKILL.md +74 -0
- package/skills/vetc-tdd/SKILL.md +96 -0
- package/skills/vetc-thinking-pm/SKILL.md +110 -0
- package/skills/vetc-ui-visual-qa/SKILL.md +117 -0
- package/skills/vetc-verify/SKILL.md +101 -0
- package/skills/visual-verdict/SKILL.md +59 -0
- package/skills/what-if-oracle/SKILL.md +87 -0
- package/skills/widget-rendering/SKILL.md +85 -0
- package/skills/wiki/SKILL.md +69 -0
- package/skills/workspace-isolation/SKILL.md +85 -0
- package/skills/worktree-isolation/SKILL.md +85 -0
- package/skills/wowerpoint/SKILL.md +101 -0
- package/skills/writer-memory/SKILL.md +82 -0
- package/skills/writing-plans/SKILL.md +115 -0
- package/skills/writing-skills/SKILL.md +115 -0
- package/skills/xgboost/SKILL.md +29 -0
- package/skills/xgboost-ts/SKILL.md +28 -0
- package/skills/xlsx/SKILL.md +111 -0
- package/skills/zarr-python/SKILL.md +101 -0
- package/src/categories.ts +383 -0
- package/src/format.ts +104 -0
- package/src/indexer.ts +101 -0
- package/src/proactive.ts +51 -0
- package/src/scanner.ts +85 -0
- package/src/search.ts +89 -0
- package/src/strip.ts +29 -0
- package/src/synonyms.ts +83 -0
- package/src/text.ts +118 -0
- package/src/types.ts +64 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: market-research-reports
|
|
3
|
+
description: Generate comprehensive market research reports (50+ pages) in the style of top consulting firms (McKinsey, BCG, Gartner). Features professional LaTeX formatting, extensive visual generation with scientific-schematics and generate-image, deep integration with research-lookup for data gathering, and multi-framework strategic analysis including Porter Five Forces, PESTLE, SWOT, TAM/SAM/SOM, and BCG Matrix.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Market Research Reports
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Market research reports are comprehensive strategic documents that analyze industries, markets, and competitive landscapes to inform business decisions, investment strategies, and strategic planning. This skill generates **professional-grade reports of 50+ pages** with extensive visual content, modeled after deliverables from top consulting firms like McKinsey, BCG, Bain, Gartner, and Forrester.
|
|
11
|
+
|
|
12
|
+
**Key Features:**
|
|
13
|
+
- **Comprehensive length**: Reports are designed to be 50+ pages with no token constraints
|
|
14
|
+
- **Visual-rich content**: 5-6 key diagrams generated at start (more added as needed during writing)
|
|
15
|
+
- **Data-driven analysis**: Deep integration with research-lookup for market data
|
|
16
|
+
- **Multi-framework approach**: Porter's Five Forces, PESTLE, SWOT, BCG Matrix, TAM/SAM/SOM
|
|
17
|
+
- **Professional formatting**: Consulting-firm quality typography, colors, and layout
|
|
18
|
+
- **Actionable recommendations**: Strategic focus with implementation roadmaps
|
|
19
|
+
|
|
20
|
+
**Output Format:** LaTeX with professional styling, compiled to PDF. Uses the `market_research.sty` style package for consistent, professional formatting.
|
|
21
|
+
|
|
22
|
+
## When to Use This Skill
|
|
23
|
+
|
|
24
|
+
This skill should be used when:
|
|
25
|
+
- Creating comprehensive market analysis for investment decisions
|
|
26
|
+
- Developing industry reports for strategic planning
|
|
27
|
+
- Analyzing competitive landscapes and market dynamics
|
|
28
|
+
- Conducting market sizing exercises (TAM/SAM/SOM)
|
|
29
|
+
- Evaluating market entry opportunities
|
|
30
|
+
- Preparing due diligence materials for M&A activities
|
|
31
|
+
- Creating thought leadership content for industry positioning
|
|
32
|
+
- Developing go-to-market strategy documentation
|
|
33
|
+
- Analyzing regulatory and policy impacts on markets
|
|
34
|
+
- Building business cases for new product launches
|
|
35
|
+
|
|
36
|
+
## Visual Enhancement Requirements
|
|
37
|
+
|
|
38
|
+
**CRITICAL: Market research reports should include key visual content.**
|
|
39
|
+
|
|
40
|
+
Every report should generate **6 essential visuals** at the start, with additional visuals added as needed during writing. Start with the most critical visualizations to establish the report framework.
|
|
41
|
+
|
|
42
|
+
### Visual Generation Tools
|
|
43
|
+
|
|
44
|
+
**Use `scientific-schematics` for:**
|
|
45
|
+
- Market growth trajectory charts
|
|
46
|
+
- TAM/SAM/SOM breakdown diagrams (concentric circles)
|
|
47
|
+
- Porter's Five Forces diagrams
|
|
48
|
+
- Competitive positioning matrices
|
|
49
|
+
- Market segmentation charts
|
|
50
|
+
- Value chain diagrams
|
|
51
|
+
- Technology roadmaps
|
|
52
|
+
- Risk heatmaps
|
|
53
|
+
- Strategic prioritization matrices
|
|
54
|
+
- Implementation timelines/Gantt charts
|
|
55
|
+
- SWOT analysis diagrams
|
|
56
|
+
- BCG Growth-Share matrices
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# Example: Generate a TAM/SAM/SOM diagram
|
|
60
|
+
python skills/scientific-schematics/scripts/generate_schematic.py \
|
|
61
|
+
"TAM SAM SOM concentric circle diagram showing Total Addressable Market $50B outer circle, Serviceable Addressable Market $15B middle circle, Serviceable Obtainable Market $3B inner circle, with labels and arrows pointing to each segment" \
|
|
62
|
+
-o figures/tam_sam_som.png --doc-type report
|
|
63
|
+
|
|
64
|
+
# Example: Generate Porter's Five Forces
|
|
65
|
+
python skills/scientific-schematics/scripts/generate_schematic.py \
|
|
66
|
+
"Porter's Five Forces diagram with center box 'Competitive Rivalry' connected to four surrounding boxes: 'Threat of New Entrants' (top), 'Bargaining Power of Suppliers' (left), 'Bargaining Power of Buyers' (right), 'Threat of Substitutes' (bottom). Each box should show High/Medium/Low rating" \
|
|
67
|
+
-o figures/porters_five_forces.png --doc-type report
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**Use `generate-image` for:**
|
|
71
|
+
- Executive summary hero infographics
|
|
72
|
+
- Industry/sector conceptual illustrations
|
|
73
|
+
- Abstract technology visualizations
|
|
74
|
+
- Cover page imagery
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
# Example: Generate executive summary infographic
|
|
78
|
+
python skills/generate-image/scripts/generate_image.py \
|
|
79
|
+
"Professional executive summary infographic for market research report, showing key metrics in modern data visualization style, blue and green color scheme, clean minimalist design with icons representing market size, growth rate, and competitive landscape" \
|
|
80
|
+
--output figures/executive_summary.png
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Recommended Visuals by Section (Generate as Needed)
|
|
84
|
+
|
|
85
|
+
| Section | Priority Visuals | Optional Visuals |
|
|
86
|
+
|---------|-----------------|------------------|
|
|
87
|
+
| Executive Summary | Executive infographic (START) | - |
|
|
88
|
+
| Market Size & Growth | Growth trajectory (START), TAM/SAM/SOM (START) | Regional breakdown, segment growth |
|
|
89
|
+
| Competitive Landscape | Porter's Five Forces (START), Positioning matrix (START) | Market share chart, strategic groups |
|
|
90
|
+
| Risk Analysis | Risk heatmap (START) | Mitigation matrix |
|
|
91
|
+
| Strategic Recommendations | Opportunity matrix | Priority framework |
|
|
92
|
+
| Implementation Roadmap | Timeline/Gantt | Milestone tracker |
|
|
93
|
+
| Investment Thesis | Financial projections | Scenario analysis |
|
|
94
|
+
|
|
95
|
+
**Start with 6 priority visuals** (marked as START above), then generate additional visuals as specific sections are written and require visual support.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Report Structure (50+ Pages)
|
|
100
|
+
|
|
101
|
+
### Front Matter (~5 pages)
|
|
102
|
+
|
|
103
|
+
#### Cover Page (1 page)
|
|
104
|
+
- Report title and subtitle
|
|
105
|
+
- Hero visualization (generated)
|
|
106
|
+
- Date and classification
|
|
107
|
+
- Prepared for / Prepared by
|
|
108
|
+
|
|
109
|
+
#### Table of Contents (1-2 pages)
|
|
110
|
+
- Automated from LaTeX
|
|
111
|
+
- List of Figures
|
|
112
|
+
- List of Tables
|
|
113
|
+
|
|
114
|
+
#### Executive Summary (2-3 pages)
|
|
115
|
+
- **Market Snapshot Box**: Key metrics at a glance
|
|
116
|
+
|
|
117
|
+
### Core Analysis (~35 pages)
|
|
118
|
+
|
|
119
|
+
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: markitdown
|
|
3
|
+
description: Convert files and office documents to Markdown. Supports PDF, DOCX, PPTX, XLSX, images (with OCR), audio (with transcription), HTML, CSV, JSON, XML, ZIP, YouTube URLs, EPubs and more.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# MarkItDown - File to Markdown Conversion
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
MarkItDown is a Python tool developed by Microsoft for converting various file formats to Markdown. It's particularly useful for converting documents into LLM-friendly text format, as Markdown is token-efficient and well-understood by modern language models.
|
|
11
|
+
|
|
12
|
+
**Key Benefits**:
|
|
13
|
+
- Convert documents to clean, structured Markdown
|
|
14
|
+
- Token-efficient format for LLM processing
|
|
15
|
+
- Supports 15+ file formats
|
|
16
|
+
- Optional AI-enhanced image descriptions
|
|
17
|
+
- OCR for images and scanned documents
|
|
18
|
+
- Speech transcription for audio files
|
|
19
|
+
|
|
20
|
+
## Visual Enhancement with Scientific Schematics
|
|
21
|
+
|
|
22
|
+
**When creating documents with this skill, always consider adding scientific diagrams and schematics to enhance visual communication.**
|
|
23
|
+
|
|
24
|
+
If your document does not already contain schematics or diagrams:
|
|
25
|
+
- Use the **scientific-schematics** skill to generate AI-powered publication-quality diagrams
|
|
26
|
+
- Simply describe your desired diagram in natural language
|
|
27
|
+
- Nano Banana Pro will automatically generate, review, and refine the schematic
|
|
28
|
+
|
|
29
|
+
**For new documents:** Scientific schematics should be generated by default to visually represent key concepts, workflows, architectures, or relationships described in the text.
|
|
30
|
+
|
|
31
|
+
**How to generate schematics:**
|
|
32
|
+
```bash
|
|
33
|
+
python scripts/generate_schematic.py "your diagram description" -o figures/output.png
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Quick Start
|
|
37
|
+
|
|
38
|
+
# Or from source
|
|
39
|
+
git clone https://github.com/microsoft/markitdown.git
|
|
40
|
+
cd markitdown
|
|
41
|
+
pip install -e 'packages/markitdown[all]'
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Command-Line Usage
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# Basic conversion
|
|
48
|
+
markitdown document.pdf > output.md
|
|
49
|
+
|
|
50
|
+
# Specify output file
|
|
51
|
+
markitdown document.pdf -o output.md
|
|
52
|
+
|
|
53
|
+
# Pipe content
|
|
54
|
+
cat document.pdf | markitdown > output.md
|
|
55
|
+
|
|
56
|
+
# Enable plugins
|
|
57
|
+
markitdown --list-plugins # List available plugins
|
|
58
|
+
markitdown --use-plugins document.pdf -o output.md
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Python API
|
|
62
|
+
|
|
63
|
+
```python
|
|
64
|
+
from markitdown import MarkItDown
|
|
65
|
+
|
|
66
|
+
# Basic usage
|
|
67
|
+
md = MarkItDown()
|
|
68
|
+
result = md.convert("document.pdf")
|
|
69
|
+
print(result.text_content)
|
|
70
|
+
|
|
71
|
+
# Convert from stream
|
|
72
|
+
with open("document.pdf", "rb") as f:
|
|
73
|
+
result = md.convert_stream(f, file_extension=".pdf")
|
|
74
|
+
print(result.text_content)
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Advanced Features
|
|
78
|
+
|
|
79
|
+
### 1. AI-Enhanced Image Descriptions
|
|
80
|
+
|
|
81
|
+
Use LLMs via OpenRouter to generate detailed image descriptions (for PPTX and image files):
|
|
82
|
+
|
|
83
|
+
```python
|
|
84
|
+
from markitdown import MarkItDown
|
|
85
|
+
from openai import OpenAI
|
|
86
|
+
|
|
87
|
+
# Initialize OpenRouter client (OpenAI-compatible API)
|
|
88
|
+
client = OpenAI(
|
|
89
|
+
api_key="your-openrouter-api-key",
|
|
90
|
+
base_url="https://openrouter.ai/api/v1"
|
|
91
|
+
)
|
|
92
|
+
|
|
93
|
+
md = MarkItDown(
|
|
94
|
+
llm_client=client,
|
|
95
|
+
llm_model="anthropic/claude-opus-4.5", # recommended for scientific vision
|
|
96
|
+
llm_prompt="Describe this image in detail for scientific documentation"
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
result = md.convert("presentation.pptx")
|
|
100
|
+
print(result.text_content)
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### 2. Azure Document Intelligence
|
|
104
|
+
|
|
105
|
+
For enhanced PDF conversion with Microsoft Document Intelligence:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
# Command line
|
|
109
|
+
markitdown document.pdf -o output.md -d -e "<document_intelligence_endpoint>"
|
|
110
|
+
|
|
111
|
+
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: markitdown-docs
|
|
3
|
+
description: Document conversion and format transformation. Use when converting between document formats (PDF, Word, HTML, Markdown), extracting text from binary formats, or processing structured documents. Trigger on imports of markitdown, pdfplumber, python-docx, or mentions of convert, PDF, document, format, extract text.
|
|
4
|
+
---
|
|
5
|
+
# markitdown-docs
|
|
6
|
+
|
|
7
|
+
Use this skill for document format conversion and text extraction.
|
|
8
|
+
|
|
9
|
+
## Core patterns
|
|
10
|
+
|
|
11
|
+
- **PDF text**: `markitdown.convert('file.pdf')` for markdown output.
|
|
12
|
+
- **Word**: `python-docx.Document('file.docx')` for structured access.
|
|
13
|
+
- **HTML**: `BeautifulSoup(html, 'html.parser')` for web content extraction.
|
|
14
|
+
- **Batch**: Loop directory with glob pattern for bulk conversion.
|
|
15
|
+
|
|
16
|
+
## Rules
|
|
17
|
+
|
|
18
|
+
- Always try `markitdown` first — it handles most formats automatically.
|
|
19
|
+
- For scanned PDFs, use OCR (`pytesseract`) after converting to images.
|
|
20
|
+
- Validate extracted text length — empty output may indicate encoding issues.
|
|
21
|
+
|
|
22
|
+
## Anti-patterns
|
|
23
|
+
|
|
24
|
+
- Don't assume PDF text extraction is 100% accurate — verify critical content.
|
|
25
|
+
- Don't process large document collections sequentially — use parallel workers.
|
|
26
|
+
- Don't ignore file encoding — always specify `encoding='utf-8'` when writing.
|
|
27
|
+
|
|
28
|
+
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: matchms
|
|
3
|
+
description: Spectral similarity and compound identification for metabolomics. Use for comparing mass spectra, computing similarity scores (cosine, modified cosine), and identifying unknown compounds from spectral libraries. Best for metabolite identification, spectral matching, library searching. For full LC-MS/MS proteomics pipelines use pyopenms.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Matchms
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Matchms is an open-source Python library for mass spectrometry data processing and analysis. Import spectra from various formats, standardize metadata, filter peaks, calculate spectral similarities, and build reproducible analytical workflows.
|
|
11
|
+
|
|
12
|
+
## Core Capabilities
|
|
13
|
+
|
|
14
|
+
### 1. Importing and Exporting Mass Spectrometry Data
|
|
15
|
+
|
|
16
|
+
Load spectra from multiple file formats and export processed data:
|
|
17
|
+
|
|
18
|
+
```python
|
|
19
|
+
from matchms.importing import load_from_mgf, load_from_mzml, load_from_msp, load_from_json
|
|
20
|
+
from matchms.exporting import save_as_mgf, save_as_msp, save_as_json
|
|
21
|
+
|
|
22
|
+
# Import spectra
|
|
23
|
+
spectra = list(load_from_mgf("spectra.mgf"))
|
|
24
|
+
spectra = list(load_from_mzml("data.mzML"))
|
|
25
|
+
spectra = list(load_from_msp("library.msp"))
|
|
26
|
+
|
|
27
|
+
# Export processed spectra
|
|
28
|
+
save_as_mgf(spectra, "output.mgf")
|
|
29
|
+
save_as_json(spectra, "output.json")
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Supported formats:**
|
|
33
|
+
- mzML and mzXML (raw mass spectrometry formats)
|
|
34
|
+
- MGF (Mascot Generic Format)
|
|
35
|
+
- MSP (spectral library format)
|
|
36
|
+
- JSON (GNPS-compatible)
|
|
37
|
+
- metabolomics-USI references
|
|
38
|
+
- Pickle (Python serialization)
|
|
39
|
+
|
|
40
|
+
For detailed importing/exporting documentation, consult `(see docs)`.
|
|
41
|
+
|
|
42
|
+
### 2. Spectrum Filtering and Processing
|
|
43
|
+
|
|
44
|
+
Apply comprehensive filters to standardize metadata and refine peak data:
|
|
45
|
+
|
|
46
|
+
```python
|
|
47
|
+
from matchms.filtering import default_filters, normalize_intensities
|
|
48
|
+
from matchms.filtering import select_by_relative_intensity, require_minimum_number_of_peaks
|
|
49
|
+
|
|
50
|
+
# Apply default metadata harmonization filters
|
|
51
|
+
spectrum = default_filters(spectrum)
|
|
52
|
+
|
|
53
|
+
# Normalize peak intensities
|
|
54
|
+
spectrum = normalize_intensities(spectrum)
|
|
55
|
+
|
|
56
|
+
# Filter peaks by relative intensity
|
|
57
|
+
spectrum = select_by_relative_intensity(spectrum, intensity_from=0.01, intensity_to=1.0)
|
|
58
|
+
|
|
59
|
+
# Require minimum peaks
|
|
60
|
+
spectrum = require_minimum_number_of_peaks(spectrum, n_required=5)
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**Filter categories:**
|
|
64
|
+
- **Metadata processing**: Harmonize compound names, derive chemical structures, standardize adducts, correct charges
|
|
65
|
+
- **Peak filtering**: Normalize intensities, select by m/z or intensity, remove precursor peaks
|
|
66
|
+
- **Quality control**: Require minimum peaks, validate precursor m/z, ensure metadata completeness
|
|
67
|
+
- **Chemical annotation**: Add fingerprints, derive InChI/SMILES, repair structural mismatches
|
|
68
|
+
|
|
69
|
+
Matchms provides 40+ filters. For the complete filter reference, consult `(see docs)`.
|
|
70
|
+
|
|
71
|
+
### 3. Calculating Spectral Similarities
|
|
72
|
+
|
|
73
|
+
Compare spectra using various similarity metrics:
|
|
74
|
+
|
|
75
|
+
```python
|
|
76
|
+
from matchms import calculate_scores
|
|
77
|
+
from matchms.similarity import CosineGreedy, ModifiedCosine, CosineHungarian
|
|
78
|
+
|
|
79
|
+
# Calculate cosine similarity (fast, greedy algorithm)
|
|
80
|
+
scores = calculate_scores(references=library_spectra,
|
|
81
|
+
queries=query_spectra,
|
|
82
|
+
similarity_function=CosineGreedy())
|
|
83
|
+
|
|
84
|
+
# Calculate modified cosine (accounts for precursor m/z differences)
|
|
85
|
+
scores = calculate_scores(references=library_spectra,
|
|
86
|
+
queries=query_spectra,
|
|
87
|
+
similarity_function=ModifiedCosine(tolerance=0.1))
|
|
88
|
+
|
|
89
|
+
# Get best matches
|
|
90
|
+
best_matches = scores.scores_by_query(query_spectra[0], sort=True)[:10]
|
|
91
|
+
```
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: matlab
|
|
3
|
+
description: MATLAB and GNU Octave numerical computing for matrix operations, data analysis, visualization, and scientific computing. Use when writing MATLAB/Octave scripts for linear algebra, signal processing, image processing, differential equations, optimization, statistics, or creating scientific visualizations. Also use when the user needs help with MATLAB syntax, functions, or wants to convert between MATLAB and Python code. Scripts can be executed with MATLAB or the open-source GNU Octave interpreter.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# MATLAB/Octave Scientific Computing
|
|
7
|
+
|
|
8
|
+
MATLAB is a numerical computing environment optimized for matrix operations and scientific computing. GNU Octave is a free, open-source alternative with high MATLAB compatibility.
|
|
9
|
+
|
|
10
|
+
## Quick Start
|
|
11
|
+
|
|
12
|
+
**Running MATLAB scripts:**
|
|
13
|
+
```bash
|
|
14
|
+
# MATLAB (commercial)
|
|
15
|
+
matlab -nodisplay -nosplash -r "run('script.m'); exit;"
|
|
16
|
+
|
|
17
|
+
# GNU Octave (free, open-source)
|
|
18
|
+
octave script.m
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**Install GNU Octave:**
|
|
22
|
+
```bash
|
|
23
|
+
# macOS
|
|
24
|
+
brew install octave
|
|
25
|
+
|
|
26
|
+
# Ubuntu/Debian
|
|
27
|
+
sudo apt install octave
|
|
28
|
+
|
|
29
|
+
# Windows - download from https://octave.org/download
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Core Capabilities
|
|
33
|
+
|
|
34
|
+
### 1. Matrix Operations
|
|
35
|
+
|
|
36
|
+
MATLAB operates fundamentally on matrices and arrays:
|
|
37
|
+
|
|
38
|
+
```matlab
|
|
39
|
+
% Create matrices
|
|
40
|
+
A = [1 2 3; 4 5 6; 7 8 9]; % 3x3 matrix
|
|
41
|
+
v = 1:10; % Row vector 1 to 10
|
|
42
|
+
v = linspace(0, 1, 100); % 100 points from 0 to 1
|
|
43
|
+
|
|
44
|
+
% Special matrices
|
|
45
|
+
I = eye(3); % Identity matrix
|
|
46
|
+
Z = zeros(3, 4); % 3x4 zero matrix
|
|
47
|
+
O = ones(2, 3); % 2x3 ones matrix
|
|
48
|
+
R = rand(3, 3); % Random uniform
|
|
49
|
+
|
|
50
|
+
### 2. Linear Algebra
|
|
51
|
+
|
|
52
|
+
```matlab
|
|
53
|
+
% Eigenvalues and eigenvectors
|
|
54
|
+
[V, D] = eig(A); % V: eigenvectors, D: diagonal eigenvalues
|
|
55
|
+
|
|
56
|
+
% Singular value decomposition
|
|
57
|
+
[U, S, V] = svd(A);
|
|
58
|
+
|
|
59
|
+
% Matrix decompositions
|
|
60
|
+
[L, U] = lu(A); % LU decomposition
|
|
61
|
+
[Q, R] = qr(A); % QR decomposition
|
|
62
|
+
R = chol(A); % Cholesky (symmetric positive definite)
|
|
63
|
+
|
|
64
|
+
% Solve linear systems
|
|
65
|
+
|
|
66
|
+
### 3. Plotting and Visualization
|
|
67
|
+
|
|
68
|
+
```matlab
|
|
69
|
+
% 2D Plots
|
|
70
|
+
x = 0:0.1:2*pi;
|
|
71
|
+
y = sin(x);
|
|
72
|
+
plot(x, y, 'b-', 'LineWidth', 2);
|
|
73
|
+
xlabel('x'); ylabel('sin(x)');
|
|
74
|
+
title('Sine Wave');
|
|
75
|
+
grid on;
|
|
76
|
+
|
|
77
|
+
% Multiple plots
|
|
78
|
+
hold on;
|
|
79
|
+
plot(x, cos(x), 'r--');
|
|
80
|
+
legend('sin', 'cos');
|
|
81
|
+
|
|
82
|
+
### 4. Data Import/Export
|
|
83
|
+
|
|
84
|
+
```matlab
|
|
85
|
+
% Read tabular data
|
|
86
|
+
T = readtable('data.csv');
|
|
87
|
+
M = readmatrix('data.csv');
|
|
88
|
+
|
|
89
|
+
% Write data
|
|
90
|
+
writetable(T, 'output.csv');
|
|
91
|
+
writematrix(M, 'output.csv');
|
|
92
|
+
|
|
93
|
+
% MAT files (MATLAB native)
|
|
94
|
+
save('data.mat', 'A', 'B', 'C'); % Save variables
|
|
95
|
+
load('data.mat'); % Load all
|
|
96
|
+
S = load('data.mat', 'A'); % Load specific
|
|
97
|
+
|
|
98
|
+
### 5. Control Flow and Functions
|
|
99
|
+
|
|
100
|
+
```matlab
|
|
101
|
+
% Conditionals
|
|
102
|
+
if x > 0
|
|
103
|
+
disp('positive');
|
|
104
|
+
elseif x < 0
|
|
105
|
+
disp('negative');
|
|
106
|
+
else
|
|
107
|
+
disp('zero');
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
% Loops
|
|
111
|
+
for i = 1:10
|
|
112
|
+
disp(i);
|
|
113
|
+
|
|
114
|
+
### 6. Statistics and Data Analysis
|
|
115
|
+
|
|
116
|
+
```matlab
|
|
117
|
+
|
|
118
|
+
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: matplotlib
|
|
3
|
+
description: Publication-quality data visualization and plotting. Use when creating figures, charts, plots, heatmaps, scatter plots, bar charts, subplots, or customizing axes, legends, colormaps. Trigger on imports of matplotlib, pyplot, plt, or mentions of plotting, visualization, figure, chart, graph rendering.
|
|
4
|
+
---
|
|
5
|
+
# matplotlib
|
|
6
|
+
|
|
7
|
+
Use this skill for creating publication-quality scientific plots.
|
|
8
|
+
|
|
9
|
+
## Core patterns
|
|
10
|
+
|
|
11
|
+
- **Figure + Axes**: `fig, ax = plt.subplots(nrows, ncols, figsize=(8, 6))`.
|
|
12
|
+
- **Plot types**: `ax.plot()`, `ax.scatter()`, `ax.bar()`, `ax.hist()`, `ax.imshow()`.
|
|
13
|
+
- **Labels**: `ax.set_xlabel()`, `ax.set_ylabel()`, `ax.set_title()`.
|
|
14
|
+
- **Legend**: `ax.legend(loc='best')` after label= in plot calls.
|
|
15
|
+
- **Save**: `fig.savefig('out.png', dpi=300, bbox_inches='tight')`.
|
|
16
|
+
|
|
17
|
+
## Rules
|
|
18
|
+
|
|
19
|
+
- Always use OO interface (`fig, ax`) — never `plt.plot()` for complex figures.
|
|
20
|
+
- Close figures: `plt.close(fig)` to prevent memory leaks in loops.
|
|
21
|
+
- Set `dpi=300` for publications; `dpi=72` for screen/web.
|
|
22
|
+
- Use `tight_layout()` or `constrained_layout=True` to avoid label clipping.
|
|
23
|
+
|
|
24
|
+
## Anti-patterns
|
|
25
|
+
|
|
26
|
+
- Don't call `plt.show()` in scripts — use `savefig()` instead.
|
|
27
|
+
- Don't create hundreds of figures without closing — memory leak.
|
|
28
|
+
- Don't hardcode colors for categories — use colormaps (`viridis`, `tab10`).
|
|
29
|
+
|
|
30
|
+
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mcp-setup
|
|
3
|
+
description: Configure popular MCP servers for enhanced agent capabilities
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
# MCP Setup
|
|
8
|
+
|
|
9
|
+
Configure Model Context Protocol (MCP) servers to extend Claude Code's capabilities with external tools like web search, file system access, and GitHub integration.
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
MCP servers provide additional tools that Claude Code agents can use. This skill helps you configure popular MCP servers using the `claude mcp add` command-line interface.
|
|
14
|
+
|
|
15
|
+
## Step 1: Choose a Setup Path
|
|
16
|
+
|
|
17
|
+
Use **AskUserQuestion** with **one question at a time** and **no more than 3 options per question**. Recent Claude Code builds reject larger option payloads as invalid tool parameters, so keep the MCP selection flow staged.
|
|
18
|
+
|
|
19
|
+
### Step 1.1: First menu
|
|
20
|
+
|
|
21
|
+
**Question:** "What kind of MCP setup would you like?"
|
|
22
|
+
|
|
23
|
+
**Options:**
|
|
24
|
+
1. **Recommended starter setup** - Fast path for the most common OMC MCP additions
|
|
25
|
+
2. **Individual popular server** - Pick one built-in server from a short follow-up menu
|
|
26
|
+
3. **Custom server** - Add your own stdio or HTTP MCP server
|
|
27
|
+
|
|
28
|
+
### Step 1.2: If the user chooses "Recommended starter setup"
|
|
29
|
+
|
|
30
|
+
Ask a follow-up **AskUserQuestion**:
|
|
31
|
+
|
|
32
|
+
**Question:** "Which recommended MCP bundle should I configure?"
|
|
33
|
+
|
|
34
|
+
**Options:**
|
|
35
|
+
1. **Context7 only (Recommended)** - Zero-config docs/context server
|
|
36
|
+
2. **Context7 + Exa** - Docs/context plus enhanced web search
|
|
37
|
+
3. **Full recommended bundle** - Context7, Exa, Filesystem, and GitHub
|
|
38
|
+
|
|
39
|
+
Map that choice to the server list you will configure.
|
|
40
|
+
|
|
41
|
+
### Step 1.3: If the user chooses "Individual popular server"
|
|
42
|
+
|
|
43
|
+
Ask a follow-up **AskUserQuestion**:
|
|
44
|
+
|
|
45
|
+
**Question:** "Which server should I configure first?"
|
|
46
|
+
|
|
47
|
+
**Options:**
|
|
48
|
+
1. **Context7 (Recommended)** - Documentation and code context from popular libraries
|
|
49
|
+
2. **Exa Web Search** - Enhanced web search (replaces built-in websearch)
|
|
50
|
+
3. **More server choices** - Filesystem, GitHub, or the full recommended bundle
|
|
51
|
+
|
|
52
|
+
If the user chooses **More server choices**, ask one more **AskUserQuestion**:
|
|
53
|
+
|
|
54
|
+
**Question:** "Which additional MCP option do you want?"
|
|
55
|
+
|
|
56
|
+
**Options:**
|
|
57
|
+
1. **Filesystem (Recommended)** - Extended file system access with additional capabilities
|
|
58
|
+
2. **GitHub** - GitHub API integration for issues, PRs, and repository management
|
|
59
|
+
3. **Full recommended bundle** - Configure Context7, Exa, Filesystem, and GitHub together
|
|
60
|
+
|
|
61
|
+
### Step 1.4: If the user chooses "Custom server"
|
|
62
|
+
|
|
63
|
+
Skip directly to the **Custom MCP Server** section below.
|
|
64
|
+
|
|
65
|
+
## Step 2: Gather Required Information
|
|
66
|
+
|
|
67
|
+
### For Context7:
|
|
68
|
+
No API key required. Ready to use immediately.
|
|
69
|
+
|
|
70
|
+
### For Exa Web Search:
|
|
71
|
+
Ask for API key:
|
|
72
|
+
```
|
|
73
|
+
Do you have an Exa API key?
|
|
74
|
+
- Get one at: https://exa.ai
|
|
75
|
+
- Enter your API key, or type 'skip' to configure later
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### For Filesystem:
|
|
79
|
+
Ask for allowed directories:
|
|
80
|
+
```
|
|
81
|
+
Which directories should the filesystem MCP have access to?
|
|
82
|
+
Default: Current working directory
|
|
83
|
+
Enter comma-separated paths, or press Enter for default
|
|
84
|
+
```
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: medchem
|
|
3
|
+
description: Medicinal chemistry filters. Apply drug-likeness rules (Lipinski, Veber), PAINS filters, structural alerts, complexity metrics, for compound prioritization and library filtering.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Medchem
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Medchem is a Python library for molecular filtering and prioritization in drug discovery workflows. Apply hundreds of well-established and novel molecular filters, structural alerts, and medicinal chemistry rules to efficiently triage and prioritize compound libraries at scale. Rules and filters are context-specific—use as guidelines combined with domain expertise.
|
|
11
|
+
|
|
12
|
+
## When to Use This Skill
|
|
13
|
+
|
|
14
|
+
This skill should be used when:
|
|
15
|
+
- Applying drug-likeness rules (Lipinski, Veber, etc.) to compound libraries
|
|
16
|
+
- Filtering molecules by structural alerts or PAINS patterns
|
|
17
|
+
- Prioritizing compounds for lead optimization
|
|
18
|
+
- Assessing compound quality and medicinal chemistry properties
|
|
19
|
+
- Detecting reactive or problematic functional groups
|
|
20
|
+
- Calculating molecular complexity metrics
|
|
21
|
+
|
|
22
|
+
## Core Capabilities
|
|
23
|
+
|
|
24
|
+
### 1. Medicinal Chemistry Rules
|
|
25
|
+
|
|
26
|
+
Apply established drug-likeness rules to molecules using the `medchem.rules` module.
|
|
27
|
+
|
|
28
|
+
**Available Rules:**
|
|
29
|
+
- Rule of Five (Lipinski)
|
|
30
|
+
- Rule of Oprea
|
|
31
|
+
- Rule of CNS
|
|
32
|
+
- Rule of leadlike (soft and strict)
|
|
33
|
+
- Rule of three
|
|
34
|
+
- Rule of Reos
|
|
35
|
+
- Rule of drug
|
|
36
|
+
- Rule of Veber
|
|
37
|
+
- Golden triangle
|
|
38
|
+
- PAINS filters
|
|
39
|
+
|
|
40
|
+
# Apply Rule of Five to a SMILES string
|
|
41
|
+
smiles = "CC(=O)OC1=CC=CC=C1C(=O)O" # Aspirin
|
|
42
|
+
passes = mc.rules.basic_rules.rule_of_five(smiles)
|
|
43
|
+
# Returns: True
|
|
44
|
+
|
|
45
|
+
# Check specific rules
|
|
46
|
+
passes_oprea = mc.rules.basic_rules.rule_of_oprea(smiles)
|
|
47
|
+
passes_cns = mc.rules.basic_rules.rule_of_cns(smiles)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Multiple Rules with RuleFilters:**
|
|
51
|
+
|
|
52
|
+
```python
|
|
53
|
+
import datamol as dm
|
|
54
|
+
import medchem as mc
|
|
55
|
+
|
|
56
|
+
# Load molecules
|
|
57
|
+
mols = [dm.to_mol(smiles) for smiles in smiles_list]
|
|
58
|
+
|
|
59
|
+
# Create filter with multiple rules
|
|
60
|
+
rfilter = mc.rules.RuleFilters(
|
|
61
|
+
rule_list=[
|
|
62
|
+
"rule_of_five",
|
|
63
|
+
"rule_of_oprea",
|
|
64
|
+
"rule_of_cns",
|
|
65
|
+
"rule_of_leadlike_soft"
|
|
66
|
+
]
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
# Apply filters with parallelization
|
|
70
|
+
results = rfilter(
|
|
71
|
+
mols=mols,
|
|
72
|
+
n_jobs=-1, # Use all CPU cores
|
|
73
|
+
progress=True
|
|
74
|
+
)
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**Result Format:**
|
|
78
|
+
Results are returned as dictionaries with pass/fail status and detailed information for each rule.
|
|
79
|
+
|
|
80
|
+
### 2. Structural Alert Filters
|
|
81
|
+
|
|
82
|
+
Detect potentially problematic structural patterns using the `medchem.structural` module.
|
|
83
|
+
|
|
84
|
+
**Available Filters:**
|
|
85
|
+
|
|
86
|
+
1. **Common Alerts** - General structural alerts derived from ChEMBL curation and literature
|
|
87
|
+
2. **NIBR Filters** - Novartis Institutes for BioMedical Research filter set
|
|
88
|
+
3. **Lilly Demerits** - Eli Lilly's demerit-based system (275 rules, molecules rejected at >100 demerits)
|
|
89
|
+
|
|
90
|
+
**Common Alerts:**
|
|
91
|
+
|
|
92
|
+
```python
|
|
93
|
+
import medchem as mc
|
|
94
|
+
|
|
95
|
+
# Create filter
|
|
96
|
+
alert_filter = mc.structural.CommonAlertsFilters()
|
|
97
|
+
|
|
98
|
+
# Check single molecule
|
|
99
|
+
mol = dm.to_mol("c1ccccc1")
|
|
100
|
+
has_alerts, details = alert_filter.check_mol(mol)
|
|
101
|
+
|
|
102
|
+
# Batch filtering with parallelization
|
|
103
|
+
results = alert_filter(
|
|
104
|
+
mols=mol_list,
|
|
105
|
+
n_jobs=-1,
|
|
106
|
+
progress=True
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
|