@wentorai/research-plugins 1.0.0 → 1.2.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/README.md +22 -22
- package/curated/analysis/README.md +82 -56
- package/curated/domains/README.md +225 -69
- package/curated/literature/README.md +115 -46
- package/curated/research/README.md +106 -58
- package/curated/tools/README.md +107 -87
- package/curated/writing/README.md +92 -45
- package/mcp-configs/academic-db/alphafold-mcp.json +20 -0
- package/mcp-configs/academic-db/brightspace-mcp.json +21 -0
- package/mcp-configs/academic-db/climatiq-mcp.json +20 -0
- package/mcp-configs/academic-db/gibs-mcp.json +20 -0
- package/mcp-configs/academic-db/gis-mcp-server.json +22 -0
- package/mcp-configs/academic-db/google-earth-engine-mcp.json +21 -0
- package/mcp-configs/academic-db/m4-clinical-mcp.json +21 -0
- package/mcp-configs/academic-db/medical-mcp.json +21 -0
- package/mcp-configs/academic-db/nexonco-mcp.json +20 -0
- package/mcp-configs/academic-db/omop-mcp.json +20 -0
- package/mcp-configs/academic-db/onekgpd-mcp.json +20 -0
- package/mcp-configs/academic-db/openedu-mcp.json +20 -0
- package/mcp-configs/academic-db/opengenes-mcp.json +20 -0
- package/mcp-configs/academic-db/openstax-mcp.json +21 -0
- package/mcp-configs/academic-db/openstreetmap-mcp.json +21 -0
- package/mcp-configs/academic-db/opentargets-mcp.json +21 -0
- package/mcp-configs/academic-db/pdb-mcp.json +21 -0
- package/mcp-configs/academic-db/smithsonian-mcp.json +20 -0
- package/mcp-configs/ai-platform/magi-researchers.json +21 -0
- package/mcp-configs/ai-platform/mcp-academic-researcher.json +22 -0
- package/mcp-configs/ai-platform/open-paper-machine.json +21 -0
- package/mcp-configs/ai-platform/paper-intelligence.json +21 -0
- package/mcp-configs/ai-platform/paper-reader.json +21 -0
- package/mcp-configs/ai-platform/paperdebugger.json +21 -0
- package/mcp-configs/browser/exa-mcp.json +20 -0
- package/mcp-configs/browser/mcp-searxng.json +21 -0
- package/mcp-configs/browser/mcp-webresearch.json +20 -0
- package/mcp-configs/cloud-docs/confluence-mcp.json +37 -0
- package/mcp-configs/cloud-docs/google-drive-mcp.json +35 -0
- package/mcp-configs/cloud-docs/notion-mcp.json +29 -0
- package/mcp-configs/communication/discord-mcp.json +29 -0
- package/mcp-configs/communication/discourse-mcp.json +21 -0
- package/mcp-configs/communication/slack-mcp.json +29 -0
- package/mcp-configs/communication/telegram-mcp.json +28 -0
- package/mcp-configs/data-platform/automl-stat-mcp.json +21 -0
- package/mcp-configs/data-platform/jefferson-stats-mcp.json +22 -0
- package/mcp-configs/data-platform/mcp-excel-server.json +21 -0
- package/mcp-configs/data-platform/mcp-stata.json +21 -0
- package/mcp-configs/data-platform/mcpstack-jupyter.json +21 -0
- package/mcp-configs/data-platform/ml-mcp.json +21 -0
- package/mcp-configs/data-platform/nasdaq-data-link-mcp.json +20 -0
- package/mcp-configs/data-platform/numpy-mcp.json +21 -0
- package/mcp-configs/database/neo4j-mcp.json +37 -0
- package/mcp-configs/database/postgres-mcp.json +28 -0
- package/mcp-configs/database/sqlite-mcp.json +29 -0
- package/mcp-configs/dev-platform/geogebra-mcp.json +21 -0
- package/mcp-configs/dev-platform/github-mcp.json +31 -0
- package/mcp-configs/dev-platform/gitlab-mcp.json +34 -0
- package/mcp-configs/dev-platform/latex-mcp-server.json +21 -0
- package/mcp-configs/dev-platform/manim-mcp.json +20 -0
- package/mcp-configs/dev-platform/mcp-echarts.json +20 -0
- package/mcp-configs/dev-platform/panel-viz-mcp.json +20 -0
- package/mcp-configs/dev-platform/paperbanana.json +20 -0
- package/mcp-configs/dev-platform/texflow-mcp.json +20 -0
- package/mcp-configs/dev-platform/texmcp.json +20 -0
- package/mcp-configs/dev-platform/typst-mcp.json +21 -0
- package/mcp-configs/dev-platform/vizro-mcp.json +20 -0
- package/mcp-configs/email/email-mcp.json +40 -0
- package/mcp-configs/email/gmail-mcp.json +37 -0
- package/mcp-configs/note-knowledge/local-faiss-mcp.json +21 -0
- package/mcp-configs/note-knowledge/mcp-memory-service.json +21 -0
- package/mcp-configs/note-knowledge/mcp-obsidian.json +23 -0
- package/mcp-configs/note-knowledge/mcp-ragdocs.json +20 -0
- package/mcp-configs/note-knowledge/mcp-summarizer.json +21 -0
- package/mcp-configs/note-knowledge/mediawiki-mcp.json +21 -0
- package/mcp-configs/note-knowledge/openzim-mcp.json +20 -0
- package/mcp-configs/note-knowledge/zettelkasten-mcp.json +21 -0
- package/mcp-configs/reference-mgr/academic-paper-mcp-http.json +20 -0
- package/mcp-configs/reference-mgr/academix.json +20 -0
- package/mcp-configs/reference-mgr/arxiv-research-mcp.json +21 -0
- package/mcp-configs/reference-mgr/google-scholar-abstract-mcp.json +19 -0
- package/mcp-configs/reference-mgr/google-scholar-mcp.json +20 -0
- package/mcp-configs/reference-mgr/mcp-paperswithcode.json +21 -0
- package/mcp-configs/reference-mgr/mcp-scholarly.json +20 -0
- package/mcp-configs/reference-mgr/mcp-simple-arxiv.json +20 -0
- package/mcp-configs/reference-mgr/mcp-simple-pubmed.json +20 -0
- package/mcp-configs/reference-mgr/mcp-zotero.json +21 -0
- package/mcp-configs/reference-mgr/mendeley-mcp.json +20 -0
- package/mcp-configs/reference-mgr/ncbi-mcp-server.json +22 -0
- package/mcp-configs/reference-mgr/onecite.json +21 -0
- package/mcp-configs/reference-mgr/paper-search-mcp.json +21 -0
- package/mcp-configs/reference-mgr/pubmed-search-mcp.json +21 -0
- package/mcp-configs/reference-mgr/scholar-mcp.json +21 -0
- package/mcp-configs/reference-mgr/scholar-multi-mcp.json +21 -0
- package/mcp-configs/reference-mgr/seerai.json +21 -0
- package/mcp-configs/reference-mgr/semantic-scholar-fastmcp.json +21 -0
- package/mcp-configs/reference-mgr/sourcelibrary.json +20 -0
- package/mcp-configs/registry.json +178 -149
- package/mcp-configs/repository/dataverse-mcp.json +33 -0
- package/mcp-configs/repository/huggingface-mcp.json +29 -0
- package/openclaw.plugin.json +2 -2
- package/package.json +2 -2
- package/skills/analysis/dataviz/algorithm-visualizer-guide/SKILL.md +259 -0
- package/skills/analysis/dataviz/bokeh-visualization-guide/SKILL.md +270 -0
- package/skills/analysis/dataviz/chart-image-generator/SKILL.md +229 -0
- package/skills/analysis/dataviz/citation-map-guide/SKILL.md +184 -0
- package/skills/analysis/dataviz/d3-visualization-guide/SKILL.md +281 -0
- package/skills/analysis/dataviz/data-visualization-principles/SKILL.md +171 -0
- package/skills/analysis/dataviz/echarts-visualization-guide/SKILL.md +250 -0
- package/skills/analysis/dataviz/metabase-analytics-guide/SKILL.md +242 -0
- package/skills/analysis/dataviz/plotly-interactive-guide/SKILL.md +266 -0
- package/skills/analysis/dataviz/redash-analytics-guide/SKILL.md +284 -0
- package/skills/analysis/econometrics/econml-causal-guide/SKILL.md +163 -0
- package/skills/analysis/econometrics/empirical-paper-analysis/SKILL.md +192 -0
- package/skills/analysis/econometrics/mostly-harmless-guide/SKILL.md +139 -0
- package/skills/analysis/econometrics/panel-data-analyst/SKILL.md +259 -0
- package/skills/analysis/econometrics/panel-data-regression-workflow/SKILL.md +267 -0
- package/skills/analysis/econometrics/python-causality-guide/SKILL.md +134 -0
- package/skills/analysis/econometrics/stata-accounting-guide/SKILL.md +269 -0
- package/skills/analysis/econometrics/stata-analyst-guide/SKILL.md +245 -0
- package/skills/analysis/econometrics/stata-reference-guide/SKILL.md +293 -0
- package/skills/analysis/statistics/data-anomaly-detection/SKILL.md +157 -0
- package/skills/analysis/statistics/general-statistics-guide/SKILL.md +226 -0
- package/skills/analysis/statistics/infiagent-benchmark-guide/SKILL.md +106 -0
- package/skills/analysis/statistics/ml-experiment-tracker/SKILL.md +212 -0
- package/skills/analysis/statistics/pywayne-statistics-guide/SKILL.md +192 -0
- package/skills/analysis/statistics/quantitative-methods-guide/SKILL.md +193 -0
- package/skills/analysis/statistics/senior-data-scientist-guide/SKILL.md +223 -0
- package/skills/analysis/wrangling/claude-data-analysis-guide/SKILL.md +100 -0
- package/skills/analysis/wrangling/csv-data-analyzer/SKILL.md +170 -0
- package/skills/analysis/wrangling/data-cleaning-pipeline/SKILL.md +266 -0
- package/skills/analysis/wrangling/data-cog-guide/SKILL.md +178 -0
- package/skills/analysis/wrangling/open-data-scientist-guide/SKILL.md +197 -0
- package/skills/analysis/wrangling/stata-data-cleaning/SKILL.md +276 -0
- package/skills/analysis/wrangling/streamline-analyst-guide/SKILL.md +119 -0
- package/skills/analysis/wrangling/survey-data-processing/SKILL.md +298 -0
- package/skills/domains/ai-ml/ai-agent-papers-guide/SKILL.md +146 -0
- package/skills/domains/ai-ml/ai-model-benchmarking/SKILL.md +209 -0
- package/skills/domains/ai-ml/annotated-dl-papers-guide/SKILL.md +159 -0
- package/skills/domains/ai-ml/anomaly-detection-papers-guide/SKILL.md +167 -0
- package/skills/domains/ai-ml/autonomous-agents-papers-guide/SKILL.md +178 -0
- package/skills/domains/ai-ml/dl-transformer-finetune/SKILL.md +239 -0
- package/skills/domains/ai-ml/domain-adaptation-papers-guide/SKILL.md +173 -0
- package/skills/domains/ai-ml/generative-ai-guide/SKILL.md +146 -0
- package/skills/domains/ai-ml/graph-learning-papers-guide/SKILL.md +125 -0
- package/skills/domains/ai-ml/huggingface-inference-guide/SKILL.md +196 -0
- package/skills/domains/ai-ml/keras-deep-learning/SKILL.md +210 -0
- package/skills/domains/ai-ml/kolmogorov-arnold-networks-guide/SKILL.md +185 -0
- package/skills/domains/ai-ml/llm-from-scratch-guide/SKILL.md +124 -0
- package/skills/domains/ai-ml/ml-pipeline-guide/SKILL.md +295 -0
- package/skills/domains/ai-ml/nlp-toolkit-guide/SKILL.md +247 -0
- package/skills/domains/ai-ml/npcpy-research-guide/SKILL.md +137 -0
- package/skills/domains/ai-ml/pytorch-guide/SKILL.md +281 -0
- package/skills/domains/ai-ml/pytorch-lightning-guide/SKILL.md +244 -0
- package/skills/domains/ai-ml/responsible-ai-guide/SKILL.md +126 -0
- package/skills/domains/ai-ml/tensorflow-guide/SKILL.md +241 -0
- package/skills/domains/ai-ml/vmas-simulator-guide/SKILL.md +129 -0
- package/skills/domains/biomedical/bioagents-guide/SKILL.md +308 -0
- package/skills/domains/biomedical/clawbio-guide/SKILL.md +167 -0
- package/skills/domains/biomedical/clinical-dialogue-agents-guide/SKILL.md +145 -0
- package/skills/domains/biomedical/ena-sequence-api/SKILL.md +175 -0
- package/skills/domains/biomedical/genomas-guide/SKILL.md +126 -0
- package/skills/domains/biomedical/genotex-benchmark-guide/SKILL.md +125 -0
- package/skills/domains/biomedical/med-researcher-guide/SKILL.md +161 -0
- package/skills/domains/biomedical/med-researcher-r1-guide/SKILL.md +146 -0
- package/skills/domains/biomedical/medgeclaw-guide/SKILL.md +345 -0
- package/skills/domains/biomedical/medical-imaging-guide/SKILL.md +305 -0
- package/skills/domains/biomedical/ncbi-blast-api/SKILL.md +195 -0
- package/skills/domains/biomedical/ncbi-datasets-api/SKILL.md +220 -0
- package/skills/domains/biomedical/quickgo-api/SKILL.md +181 -0
- package/skills/domains/business/architecture-design-guide/SKILL.md +279 -0
- package/skills/domains/business/innovation-management-guide/SKILL.md +257 -0
- package/skills/domains/business/operations-research-guide/SKILL.md +258 -0
- package/skills/domains/business/xpert-bi-guide/SKILL.md +84 -0
- package/skills/domains/chemistry/cactus-cheminformatics-guide/SKILL.md +89 -0
- package/skills/domains/chemistry/chemeagle-guide/SKILL.md +147 -0
- package/skills/domains/chemistry/chemgraph-agent-guide/SKILL.md +120 -0
- package/skills/domains/chemistry/molecular-dynamics-guide/SKILL.md +237 -0
- package/skills/domains/chemistry/pubchem-api-guide/SKILL.md +180 -0
- package/skills/domains/chemistry/spectroscopy-analysis-guide/SKILL.md +290 -0
- package/skills/domains/cs/ai-security-papers-guide/SKILL.md +103 -0
- package/skills/domains/cs/code-llm-papers-guide/SKILL.md +131 -0
- package/skills/domains/cs/distributed-systems-guide/SKILL.md +268 -0
- package/skills/domains/cs/formal-verification-guide/SKILL.md +298 -0
- package/skills/domains/cs/gaussian-splatting-papers-guide/SKILL.md +158 -0
- package/skills/domains/cs/llm-aiops-guide/SKILL.md +70 -0
- package/skills/domains/cs/software-heritage-api/SKILL.md +200 -0
- package/skills/domains/ecology/species-distribution-guide/SKILL.md +343 -0
- package/skills/domains/economics/imf-data-api-guide/SKILL.md +174 -0
- package/skills/domains/economics/nber-working-papers-api/SKILL.md +177 -0
- package/skills/domains/economics/post-labor-economics/SKILL.md +254 -0
- package/skills/domains/economics/pricing-psychology-guide/SKILL.md +273 -0
- package/skills/domains/economics/repec-economics-api/SKILL.md +188 -0
- package/skills/domains/economics/world-bank-data-guide/SKILL.md +179 -0
- package/skills/domains/education/academic-study-methods/SKILL.md +228 -0
- package/skills/domains/education/assessment-design-guide/SKILL.md +213 -0
- package/skills/domains/education/educational-research-methods/SKILL.md +179 -0
- package/skills/domains/education/edumcp-guide/SKILL.md +74 -0
- package/skills/domains/education/mooc-analytics-guide/SKILL.md +206 -0
- package/skills/domains/education/open-syllabus-api/SKILL.md +171 -0
- package/skills/domains/finance/akshare-finance-data/SKILL.md +207 -0
- package/skills/domains/finance/finsight-research-guide/SKILL.md +113 -0
- package/skills/domains/finance/options-analytics-agent-guide/SKILL.md +117 -0
- package/skills/domains/finance/portfolio-optimization-guide/SKILL.md +279 -0
- package/skills/domains/finance/risk-modeling-guide/SKILL.md +260 -0
- package/skills/domains/finance/stata-accounting-research/SKILL.md +372 -0
- package/skills/domains/geoscience/climate-modeling-guide/SKILL.md +215 -0
- package/skills/domains/geoscience/pangaea-data-api/SKILL.md +197 -0
- package/skills/domains/geoscience/satellite-remote-sensing/SKILL.md +193 -0
- package/skills/domains/geoscience/seismology-data-guide/SKILL.md +208 -0
- package/skills/domains/humanities/digital-humanities-methods/SKILL.md +232 -0
- package/skills/domains/humanities/ethical-philosophy-guide/SKILL.md +244 -0
- package/skills/domains/humanities/history-research-guide/SKILL.md +260 -0
- package/skills/domains/humanities/political-history-guide/SKILL.md +241 -0
- package/skills/domains/law/caselaw-access-api/SKILL.md +149 -0
- package/skills/domains/law/legal-agent-skills-guide/SKILL.md +132 -0
- package/skills/domains/law/legal-nlp-guide/SKILL.md +236 -0
- package/skills/domains/law/legal-research-methods/SKILL.md +190 -0
- package/skills/domains/law/opencontracts-guide/SKILL.md +168 -0
- package/skills/domains/law/patent-analysis-guide/SKILL.md +257 -0
- package/skills/domains/law/regulatory-compliance-guide/SKILL.md +267 -0
- package/skills/domains/math/lean-theorem-proving-guide/SKILL.md +140 -0
- package/skills/domains/math/symbolic-computation-guide/SKILL.md +263 -0
- package/skills/domains/math/topology-data-analysis/SKILL.md +305 -0
- package/skills/domains/pharma/clinical-trial-design-guide/SKILL.md +271 -0
- package/skills/domains/pharma/drug-target-interaction/SKILL.md +242 -0
- package/skills/domains/pharma/madd-drug-discovery-guide/SKILL.md +153 -0
- package/skills/domains/pharma/pharmacovigilance-guide/SKILL.md +216 -0
- package/skills/domains/physics/astrophysics-data-guide/SKILL.md +305 -0
- package/skills/domains/physics/particle-physics-guide/SKILL.md +287 -0
- package/skills/domains/social-science/ipums-microdata-api/SKILL.md +211 -0
- package/skills/domains/social-science/network-analysis-guide/SKILL.md +310 -0
- package/skills/domains/social-science/psychology-research-guide/SKILL.md +270 -0
- package/skills/domains/social-science/sociology-research-guide/SKILL.md +238 -0
- package/skills/domains/social-science/sociology-research-methods/SKILL.md +181 -0
- package/skills/literature/discovery/arxiv-paper-monitoring/SKILL.md +233 -0
- package/skills/literature/discovery/paper-recommendation-guide/SKILL.md +120 -0
- package/skills/literature/discovery/papers-we-love-guide/SKILL.md +169 -0
- package/skills/literature/discovery/semantic-paper-radar/SKILL.md +144 -0
- package/skills/literature/discovery/zotero-arxiv-daily-guide/SKILL.md +94 -0
- package/skills/literature/fulltext/bioc-pmc-api/SKILL.md +146 -0
- package/skills/literature/fulltext/core-api-guide/SKILL.md +144 -0
- package/skills/literature/fulltext/dataverse-api/SKILL.md +215 -0
- package/skills/literature/fulltext/hal-archive-api/SKILL.md +218 -0
- package/skills/literature/fulltext/institutional-repository-guide/SKILL.md +212 -0
- package/skills/literature/fulltext/open-access-mining-guide/SKILL.md +341 -0
- package/skills/literature/fulltext/osf-api/SKILL.md +212 -0
- package/skills/literature/fulltext/pmc-ftp-bulk-download/SKILL.md +182 -0
- package/skills/literature/fulltext/zotero-ai-butler-guide/SKILL.md +166 -0
- package/skills/literature/fulltext/zotero-scihub-guide/SKILL.md +168 -0
- package/skills/literature/metadata/academic-paper-summarizer/SKILL.md +101 -0
- package/skills/literature/metadata/bibliometrix-guide/SKILL.md +164 -0
- package/skills/literature/metadata/crossref-event-data-api/SKILL.md +183 -0
- package/skills/literature/metadata/doi-content-negotiation/SKILL.md +202 -0
- package/skills/literature/metadata/orkg-api/SKILL.md +153 -0
- package/skills/literature/metadata/plumx-metrics-api/SKILL.md +188 -0
- package/skills/literature/metadata/ror-organization-api/SKILL.md +208 -0
- package/skills/literature/metadata/sophosia-reference-guide/SKILL.md +110 -0
- package/skills/literature/metadata/viaf-authority-api/SKILL.md +209 -0
- package/skills/literature/metadata/wikidata-api-guide/SKILL.md +156 -0
- package/skills/literature/metadata/zoplicate-dedup-guide/SKILL.md +147 -0
- package/skills/literature/metadata/zotero-actions-tags-guide/SKILL.md +212 -0
- package/skills/literature/metadata/zotmoov-guide/SKILL.md +120 -0
- package/skills/literature/metadata/zutilo-guide/SKILL.md +140 -0
- package/skills/literature/search/arxiv-batch-reporting/SKILL.md +133 -0
- package/skills/literature/search/arxiv-cli-tools/SKILL.md +172 -0
- package/skills/literature/search/arxiv-osiris/SKILL.md +199 -0
- package/skills/literature/search/arxiv-paper-processor/SKILL.md +141 -0
- package/skills/literature/search/baidu-scholar-guide/SKILL.md +110 -0
- package/skills/literature/search/base-academic-search/SKILL.md +196 -0
- package/skills/literature/search/chatpaper-guide/SKILL.md +122 -0
- package/skills/literature/search/citeseerx-api/SKILL.md +183 -0
- package/skills/literature/search/deep-literature-search/SKILL.md +149 -0
- package/skills/literature/search/deepgit-search-guide/SKILL.md +147 -0
- package/skills/literature/search/eric-education-api/SKILL.md +199 -0
- package/skills/literature/search/findpapers-guide/SKILL.md +177 -0
- package/skills/literature/search/ieee-xplore-api/SKILL.md +177 -0
- package/skills/literature/search/lens-scholarly-api/SKILL.md +211 -0
- package/skills/literature/search/multi-database-literature-search/SKILL.md +198 -0
- package/skills/literature/search/open-library-api/SKILL.md +196 -0
- package/skills/literature/search/open-semantic-search-guide/SKILL.md +190 -0
- package/skills/literature/search/openaire-api/SKILL.md +141 -0
- package/skills/literature/search/paper-search-mcp-guide/SKILL.md +107 -0
- package/skills/literature/search/papers-chat-guide/SKILL.md +194 -0
- package/skills/literature/search/pasa-paper-search-guide/SKILL.md +138 -0
- package/skills/literature/search/plos-open-access-api/SKILL.md +203 -0
- package/skills/literature/search/scielo-api/SKILL.md +182 -0
- package/skills/literature/search/share-research-api/SKILL.md +129 -0
- package/skills/literature/search/worldcat-search-api/SKILL.md +224 -0
- package/skills/research/automation/ai-scientist-v2-guide/SKILL.md +284 -0
- package/skills/research/automation/aim-experiment-guide/SKILL.md +234 -0
- package/skills/research/automation/claude-academic-workflow-guide/SKILL.md +202 -0
- package/skills/research/automation/coexist-ai-guide/SKILL.md +149 -0
- package/skills/research/automation/datagen-research-guide/SKILL.md +131 -0
- package/skills/research/automation/foam-agent-guide/SKILL.md +203 -0
- package/skills/research/automation/kedro-pipeline-guide/SKILL.md +216 -0
- package/skills/research/automation/mle-agent-guide/SKILL.md +139 -0
- package/skills/research/automation/paper-to-agent-guide/SKILL.md +116 -0
- package/skills/research/automation/rd-agent-guide/SKILL.md +246 -0
- package/skills/research/automation/research-paper-orchestrator/SKILL.md +254 -0
- package/skills/research/deep-research/academic-deep-research/SKILL.md +190 -0
- package/skills/research/deep-research/auto-deep-research-guide/SKILL.md +141 -0
- package/skills/research/deep-research/cognitive-kernel-guide/SKILL.md +200 -0
- package/skills/research/deep-research/corvus-research-guide/SKILL.md +132 -0
- package/skills/research/deep-research/deep-research-pro/SKILL.md +213 -0
- package/skills/research/deep-research/deep-research-work/SKILL.md +204 -0
- package/skills/research/deep-research/deep-searcher-guide/SKILL.md +253 -0
- package/skills/research/deep-research/gpt-researcher-guide/SKILL.md +191 -0
- package/skills/research/deep-research/in-depth-research-guide/SKILL.md +205 -0
- package/skills/research/deep-research/khoj-research-guide/SKILL.md +200 -0
- package/skills/research/deep-research/kosmos-scientist-guide/SKILL.md +185 -0
- package/skills/research/deep-research/llm-scientific-discovery-guide/SKILL.md +178 -0
- package/skills/research/deep-research/local-deep-research-guide/SKILL.md +253 -0
- package/skills/research/deep-research/open-researcher-guide/SKILL.md +138 -0
- package/skills/research/deep-research/tongyi-deep-research-guide/SKILL.md +217 -0
- package/skills/research/funding/eu-horizon-guide/SKILL.md +244 -0
- package/skills/research/funding/grant-budget-guide/SKILL.md +284 -0
- package/skills/research/funding/nih-reporter-api-guide/SKILL.md +166 -0
- package/skills/research/funding/nsf-award-api-guide/SKILL.md +133 -0
- package/skills/research/methodology/academic-mentor-guide/SKILL.md +169 -0
- package/skills/research/methodology/claude-scientific-guide/SKILL.md +122 -0
- package/skills/research/methodology/deep-innovator-guide/SKILL.md +242 -0
- package/skills/research/methodology/osf-api-guide/SKILL.md +165 -0
- package/skills/research/methodology/parsifal-slr-guide/SKILL.md +154 -0
- package/skills/research/methodology/research-paper-kb/SKILL.md +263 -0
- package/skills/research/methodology/research-pipeline-units-guide/SKILL.md +169 -0
- package/skills/research/methodology/research-town-guide/SKILL.md +263 -0
- package/skills/research/methodology/slr-automation-guide/SKILL.md +235 -0
- package/skills/research/paper-review/automated-review-guide/SKILL.md +281 -0
- package/skills/research/paper-review/latte-review-guide/SKILL.md +175 -0
- package/skills/research/paper-review/paper-compare-guide/SKILL.md +238 -0
- package/skills/research/paper-review/paper-critique-framework/SKILL.md +181 -0
- package/skills/research/paper-review/paper-digest-guide/SKILL.md +240 -0
- package/skills/research/paper-review/paper-research-assistant/SKILL.md +231 -0
- package/skills/research/paper-review/research-quality-filter/SKILL.md +261 -0
- package/skills/research/paper-review/review-response-guide/SKILL.md +275 -0
- package/skills/tools/code-exec/contextplus-mcp-guide/SKILL.md +110 -0
- package/skills/tools/code-exec/google-colab-guide/SKILL.md +276 -0
- package/skills/tools/code-exec/kaggle-api-guide/SKILL.md +216 -0
- package/skills/tools/code-exec/overleaf-cli-guide/SKILL.md +279 -0
- package/skills/tools/diagram/clawphd-guide/SKILL.md +149 -0
- package/skills/tools/diagram/code-flow-visualizer/SKILL.md +197 -0
- package/skills/tools/diagram/excalidraw-diagram-guide/SKILL.md +170 -0
- package/skills/tools/diagram/json-data-visualizer/SKILL.md +270 -0
- package/skills/tools/diagram/kroki-diagram-api/SKILL.md +198 -0
- package/skills/tools/diagram/mermaid-architect-guide/SKILL.md +219 -0
- package/skills/tools/diagram/scientific-graphical-abstract/SKILL.md +201 -0
- package/skills/tools/diagram/tldraw-whiteboard-guide/SKILL.md +397 -0
- package/skills/tools/document/docsgpt-guide/SKILL.md +130 -0
- package/skills/tools/document/large-document-reader/SKILL.md +202 -0
- package/skills/tools/document/md2pdf-xelatex/SKILL.md +212 -0
- package/skills/tools/document/openpaper-guide/SKILL.md +232 -0
- package/skills/tools/document/paper-parse-guide/SKILL.md +243 -0
- package/skills/tools/document/weknora-guide/SKILL.md +216 -0
- package/skills/tools/document/zotero-addon-market-guide/SKILL.md +108 -0
- package/skills/tools/document/zotero-night-theme-guide/SKILL.md +142 -0
- package/skills/tools/document/zotero-style-guide/SKILL.md +217 -0
- package/skills/tools/knowledge-graph/citation-network-builder/SKILL.md +244 -0
- package/skills/tools/knowledge-graph/concept-map-generator/SKILL.md +284 -0
- package/skills/tools/knowledge-graph/graphiti-guide/SKILL.md +219 -0
- package/skills/tools/knowledge-graph/mimir-memory-guide/SKILL.md +135 -0
- package/skills/tools/knowledge-graph/notero-zotero-notion-guide/SKILL.md +187 -0
- package/skills/tools/knowledge-graph/open-webui-tools-guide/SKILL.md +156 -0
- package/skills/tools/knowledge-graph/openspg-guide/SKILL.md +210 -0
- package/skills/tools/knowledge-graph/paperpile-notion-guide/SKILL.md +84 -0
- package/skills/tools/knowledge-graph/zotero-markdb-connect-guide/SKILL.md +162 -0
- package/skills/tools/ocr-translate/latex-translation-guide/SKILL.md +176 -0
- package/skills/tools/ocr-translate/math-equation-renderer/SKILL.md +198 -0
- package/skills/tools/ocr-translate/pdf-math-translate-guide/SKILL.md +141 -0
- package/skills/tools/ocr-translate/zotero-pdf-translate-guide/SKILL.md +95 -0
- package/skills/tools/ocr-translate/zotero-pdf2zh-guide/SKILL.md +143 -0
- package/skills/tools/scraping/dataset-finder-guide/SKILL.md +253 -0
- package/skills/tools/scraping/easy-spider-guide/SKILL.md +250 -0
- package/skills/tools/scraping/google-scholar-scraper/SKILL.md +255 -0
- package/skills/tools/scraping/repository-harvesting-guide/SKILL.md +310 -0
- package/skills/writing/citation/academic-citation-manager/SKILL.md +314 -0
- package/skills/writing/citation/academic-citation-manager-guide/SKILL.md +182 -0
- package/skills/writing/citation/citation-assistant-skill/SKILL.md +192 -0
- package/skills/writing/citation/jabref-reference-guide/SKILL.md +127 -0
- package/skills/writing/citation/jasminum-zotero-guide/SKILL.md +103 -0
- package/skills/writing/citation/mendeley-api/SKILL.md +231 -0
- package/skills/writing/citation/obsidian-citation-guide/SKILL.md +164 -0
- package/skills/writing/citation/obsidian-zotero-guide/SKILL.md +137 -0
- package/skills/writing/citation/onecite-reference-guide/SKILL.md +168 -0
- package/skills/writing/citation/papersgpt-zotero-guide/SKILL.md +132 -0
- package/skills/writing/citation/papis-cli-guide/SKILL.md +213 -0
- package/skills/writing/citation/zotero-better-bibtex-guide/SKILL.md +107 -0
- package/skills/writing/citation/zotero-better-notes-guide/SKILL.md +121 -0
- package/skills/writing/citation/zotero-gpt-guide/SKILL.md +111 -0
- package/skills/writing/citation/zotero-mcp-guide/SKILL.md +164 -0
- package/skills/writing/citation/zotero-mdnotes-guide/SKILL.md +162 -0
- package/skills/writing/citation/zotero-reference-guide/SKILL.md +139 -0
- package/skills/writing/citation/zotero-scholar-guide/SKILL.md +294 -0
- package/skills/writing/citation/zotfile-attachment-guide/SKILL.md +140 -0
- package/skills/writing/composition/ml-paper-writing/SKILL.md +163 -0
- package/skills/writing/composition/opendraft-thesis-guide/SKILL.md +200 -0
- package/skills/writing/composition/paper-debugger-guide/SKILL.md +143 -0
- package/skills/writing/composition/paperforge-guide/SKILL.md +205 -0
- package/skills/writing/composition/research-paper-writer/SKILL.md +226 -0
- package/skills/writing/composition/scientific-writing-resources/SKILL.md +151 -0
- package/skills/writing/composition/scientific-writing-wrapper/SKILL.md +153 -0
- package/skills/writing/latex/academic-writing-latex/SKILL.md +285 -0
- package/skills/writing/latex/latex-drawing-collection/SKILL.md +154 -0
- package/skills/writing/latex/latex-templates-collection/SKILL.md +159 -0
- package/skills/writing/latex/md-to-pdf-academic/SKILL.md +230 -0
- package/skills/writing/latex/tex-render-guide/SKILL.md +243 -0
- package/skills/writing/polish/academic-tone-guide/SKILL.md +209 -0
- package/skills/writing/polish/chinese-text-humanizer/SKILL.md +140 -0
- package/skills/writing/polish/conciseness-editing-guide/SKILL.md +225 -0
- package/skills/writing/polish/paper-polish-guide/SKILL.md +160 -0
- package/skills/writing/templates/arxiv-preprint-template/SKILL.md +184 -0
- package/skills/writing/templates/elegant-paper-template/SKILL.md +141 -0
- package/skills/writing/templates/graphical-abstract-guide/SKILL.md +183 -0
- package/skills/writing/templates/novathesis-guide/SKILL.md +152 -0
- package/skills/writing/templates/scientific-article-pdf/SKILL.md +261 -0
- package/skills/writing/templates/sjtuthesis-guide/SKILL.md +197 -0
- package/skills/writing/templates/thuthesis-guide/SKILL.md +181 -0
- package/skills/literature/fulltext/repository-harvesting-guide/SKILL.md +0 -207
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: chemeagle-guide
|
|
3
|
+
description: "Multi-agent system for chemical literature information extraction"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "🦅"
|
|
7
|
+
category: "domains"
|
|
8
|
+
subcategory: "chemistry"
|
|
9
|
+
keywords: ["ChemEagle", "chemical extraction", "literature mining", "reaction extraction", "chemistry NLP", "multi-agent"]
|
|
10
|
+
source: "https://github.com/CYF2000127/ChemEagle"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# ChemEagle Guide
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
ChemEagle is a multi-agent system for extracting structured chemical information from scientific literature. It uses specialized agents for recognizing chemical entities, extracting reaction conditions, identifying product yields, and building structured databases from unstructured chemistry papers. Particularly useful for building reaction databases and automating systematic reviews in chemistry.
|
|
18
|
+
|
|
19
|
+
## Agent Pipeline
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
Chemistry Paper (PDF/text)
|
|
23
|
+
↓
|
|
24
|
+
Document Parser Agent (section identification)
|
|
25
|
+
↓
|
|
26
|
+
Chemical NER Agent
|
|
27
|
+
├── Compound names → SMILES/InChI
|
|
28
|
+
├── Reagents and catalysts
|
|
29
|
+
├── Solvents and conditions
|
|
30
|
+
└── Product identification
|
|
31
|
+
↓
|
|
32
|
+
Reaction Extraction Agent
|
|
33
|
+
├── Reactants → Products mapping
|
|
34
|
+
├── Reaction conditions (T, P, time)
|
|
35
|
+
├── Yields and selectivity
|
|
36
|
+
└── Procedure steps
|
|
37
|
+
↓
|
|
38
|
+
Validation Agent (cross-check extracted data)
|
|
39
|
+
↓
|
|
40
|
+
Structured Output (JSON, CSV, database)
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Usage
|
|
44
|
+
|
|
45
|
+
```python
|
|
46
|
+
from chemeagle import ChemEagle
|
|
47
|
+
|
|
48
|
+
eagle = ChemEagle(llm_provider="anthropic")
|
|
49
|
+
|
|
50
|
+
# Extract from a chemistry paper
|
|
51
|
+
result = eagle.extract("paper.pdf")
|
|
52
|
+
|
|
53
|
+
# Extracted reactions
|
|
54
|
+
for rxn in result.reactions:
|
|
55
|
+
print(f"\nReaction {rxn.id}:")
|
|
56
|
+
print(f" Reactants: {rxn.reactants}")
|
|
57
|
+
print(f" Products: {rxn.products}")
|
|
58
|
+
print(f" Catalyst: {rxn.catalyst}")
|
|
59
|
+
print(f" Solvent: {rxn.solvent}")
|
|
60
|
+
print(f" Temperature: {rxn.temperature}")
|
|
61
|
+
print(f" Time: {rxn.time}")
|
|
62
|
+
print(f" Yield: {rxn.yield_percent}%")
|
|
63
|
+
print(f" SMILES: {rxn.product_smiles}")
|
|
64
|
+
|
|
65
|
+
# Extracted compounds
|
|
66
|
+
for compound in result.compounds:
|
|
67
|
+
print(f"{compound.name}: {compound.smiles}")
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Batch Processing
|
|
71
|
+
|
|
72
|
+
```python
|
|
73
|
+
# Process multiple papers
|
|
74
|
+
results = eagle.extract_batch(
|
|
75
|
+
input_dir="chemistry_papers/",
|
|
76
|
+
output_format="csv",
|
|
77
|
+
output_file="reactions_database.csv",
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
print(f"Papers processed: {results.papers_processed}")
|
|
81
|
+
print(f"Reactions extracted: {results.total_reactions}")
|
|
82
|
+
print(f"Unique compounds: {results.unique_compounds}")
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Chemical Entity Recognition
|
|
86
|
+
|
|
87
|
+
```python
|
|
88
|
+
# Standalone NER
|
|
89
|
+
entities = eagle.recognize_entities(
|
|
90
|
+
"The Suzuki coupling of 4-bromoanisole with phenylboronic "
|
|
91
|
+
"acid using Pd(PPh3)4 catalyst in THF/water at 80°C "
|
|
92
|
+
"gave 4-methoxybiphenyl in 95% yield."
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
for entity in entities:
|
|
96
|
+
print(f" [{entity.type}] {entity.text}")
|
|
97
|
+
if entity.smiles:
|
|
98
|
+
print(f" SMILES: {entity.smiles}")
|
|
99
|
+
|
|
100
|
+
# Output:
|
|
101
|
+
# [REACTANT] 4-bromoanisole — SMILES: COc1ccc(Br)cc1
|
|
102
|
+
# [REACTANT] phenylboronic acid — SMILES: OB(O)c1ccccc1
|
|
103
|
+
# [CATALYST] Pd(PPh3)4
|
|
104
|
+
# [SOLVENT] THF/water
|
|
105
|
+
# [CONDITION] 80°C
|
|
106
|
+
# [PRODUCT] 4-methoxybiphenyl — SMILES: COc1ccc(-c2ccccc2)cc1
|
|
107
|
+
# [YIELD] 95%
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Database Building
|
|
111
|
+
|
|
112
|
+
```python
|
|
113
|
+
# Build a searchable reaction database
|
|
114
|
+
from chemeagle import ReactionDatabase
|
|
115
|
+
|
|
116
|
+
db = ReactionDatabase("reactions.db")
|
|
117
|
+
|
|
118
|
+
# Add extracted reactions
|
|
119
|
+
db.add_from_extraction(result)
|
|
120
|
+
|
|
121
|
+
# Search by substrate
|
|
122
|
+
hits = db.search(reactant="bromoanisole", reaction_type="coupling")
|
|
123
|
+
for hit in hits:
|
|
124
|
+
print(f"{hit.reactants} → {hit.products} ({hit.yield_percent}%)")
|
|
125
|
+
print(f" Source: {hit.paper_doi}")
|
|
126
|
+
|
|
127
|
+
# Search by conditions
|
|
128
|
+
hits = db.search(catalyst="palladium", temperature_max=100)
|
|
129
|
+
|
|
130
|
+
# Export
|
|
131
|
+
db.export_csv("all_reactions.csv")
|
|
132
|
+
db.export_json("all_reactions.json")
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## Use Cases
|
|
136
|
+
|
|
137
|
+
1. **Reaction mining**: Extract reactions from chemistry literature
|
|
138
|
+
2. **Database building**: Automated reaction database construction
|
|
139
|
+
3. **Systematic reviews**: Structured data from chemistry papers
|
|
140
|
+
4. **Synthesis planning**: Search conditions for target reactions
|
|
141
|
+
5. **Trend analysis**: Track reaction methodology evolution
|
|
142
|
+
|
|
143
|
+
## References
|
|
144
|
+
|
|
145
|
+
- [ChemEagle GitHub](https://github.com/CYF2000127/ChemEagle)
|
|
146
|
+
- [RDKit](https://www.rdkit.org/) — Chemistry toolkit
|
|
147
|
+
- [PubChem](https://pubchem.ncbi.nlm.nih.gov/) — Chemical database
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: chemgraph-agent-guide
|
|
3
|
+
description: "Automate molecular simulations with the ChemGraph agentic framework"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "⚗️"
|
|
7
|
+
category: "domains"
|
|
8
|
+
subcategory: "chemistry"
|
|
9
|
+
keywords: ["ChemGraph", "molecular simulation", "computational chemistry", "DFT", "LangGraph", "ASE"]
|
|
10
|
+
source: "https://github.com/argonne-lcf/ChemGraph"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# ChemGraph Agent Guide
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
ChemGraph is an agentic framework from Argonne National Lab that automates molecular simulation workflows using LLMs. Built on LangGraph and ASE (Atomic Simulation Environment), it enables natural language control of computational chemistry tasks — structure generation, geometry optimization, thermochemistry, and more. Supports DFT (NWChem, ORCA), semi-empirical (xTB), and ML potentials (MACE).
|
|
18
|
+
|
|
19
|
+
## Installation
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
pip install chemgraph
|
|
23
|
+
|
|
24
|
+
# Or via Docker
|
|
25
|
+
docker pull ghcr.io/argonne-lcf/chemgraph:latest
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Core Capabilities
|
|
29
|
+
|
|
30
|
+
### Natural Language Chemistry
|
|
31
|
+
|
|
32
|
+
```python
|
|
33
|
+
from chemgraph import ChemGraphAgent
|
|
34
|
+
|
|
35
|
+
agent = ChemGraphAgent(
|
|
36
|
+
llm_provider="anthropic",
|
|
37
|
+
calculator="xtb", # fast semi-empirical
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
# Natural language molecular tasks
|
|
41
|
+
result = agent.run("Optimize the geometry of caffeine and calculate its vibrational frequencies")
|
|
42
|
+
print(result.energy)
|
|
43
|
+
print(result.frequencies)
|
|
44
|
+
|
|
45
|
+
# Thermochemistry
|
|
46
|
+
result = agent.run("Calculate the enthalpy of formation of ethanol at 298K")
|
|
47
|
+
print(f"ΔHf = {result.enthalpy:.2f} kJ/mol")
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Supported Calculators
|
|
51
|
+
|
|
52
|
+
| Calculator | Type | Speed | Accuracy |
|
|
53
|
+
|-----------|------|-------|----------|
|
|
54
|
+
| xTB (TBLite) | Semi-empirical | Fast | Moderate |
|
|
55
|
+
| MACE | ML potential | Fast | Good |
|
|
56
|
+
| NWChem | Ab initio DFT | Slow | High |
|
|
57
|
+
| ORCA | Ab initio/DFT | Slow | High |
|
|
58
|
+
| UMA | Universal ML | Fast | Good |
|
|
59
|
+
|
|
60
|
+
### Workflow Automation
|
|
61
|
+
|
|
62
|
+
```python
|
|
63
|
+
# Multi-step workflow
|
|
64
|
+
workflow = agent.create_workflow([
|
|
65
|
+
"Generate 3D structure of aspirin from SMILES",
|
|
66
|
+
"Optimize geometry with DFT/B3LYP/6-31G*",
|
|
67
|
+
"Calculate IR spectrum",
|
|
68
|
+
"Identify key functional group vibrations",
|
|
69
|
+
])
|
|
70
|
+
results = workflow.execute()
|
|
71
|
+
|
|
72
|
+
# Reaction pathway
|
|
73
|
+
pathway = agent.run(
|
|
74
|
+
"Find the transition state for the Diels-Alder reaction "
|
|
75
|
+
"between butadiene and ethylene"
|
|
76
|
+
)
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Integration with ASE
|
|
80
|
+
|
|
81
|
+
```python
|
|
82
|
+
from ase.io import read
|
|
83
|
+
from chemgraph.calculators import get_calculator
|
|
84
|
+
|
|
85
|
+
# Use ChemGraph's calculator with ASE directly
|
|
86
|
+
atoms = read("molecule.xyz")
|
|
87
|
+
calc = get_calculator("xtb")
|
|
88
|
+
atoms.calc = calc
|
|
89
|
+
|
|
90
|
+
energy = atoms.get_potential_energy()
|
|
91
|
+
forces = atoms.get_forces()
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Agent Architecture
|
|
95
|
+
|
|
96
|
+
ChemGraph uses LangGraph's state machine to orchestrate:
|
|
97
|
+
|
|
98
|
+
1. **Parser Agent** — Interprets natural language into chemistry tasks
|
|
99
|
+
2. **Structure Agent** — Generates/retrieves molecular structures (SMILES, PDB, CIF)
|
|
100
|
+
3. **Calculator Agent** — Selects and runs appropriate simulation backend
|
|
101
|
+
4. **Analysis Agent** — Processes results and generates reports
|
|
102
|
+
|
|
103
|
+
## Use Cases
|
|
104
|
+
|
|
105
|
+
1. **High-throughput screening**: Automated property calculation for molecular libraries
|
|
106
|
+
2. **Reaction discovery**: Transition state finding and reaction pathway analysis
|
|
107
|
+
3. **Materials design**: Optimize structures for target properties
|
|
108
|
+
4. **Education**: Natural language interface for learning computational chemistry
|
|
109
|
+
|
|
110
|
+
## Requirements
|
|
111
|
+
|
|
112
|
+
- Python 3.10+
|
|
113
|
+
- At least one calculator backend (xTB recommended for getting started)
|
|
114
|
+
- LLM API key (Anthropic, OpenAI, or local)
|
|
115
|
+
|
|
116
|
+
## References
|
|
117
|
+
|
|
118
|
+
- [ChemGraph GitHub](https://github.com/argonne-lcf/ChemGraph)
|
|
119
|
+
- [ASE Documentation](https://wiki.fysik.dtu.dk/ase/)
|
|
120
|
+
- [LangGraph](https://github.com/langchain-ai/langgraph)
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: molecular-dynamics-guide
|
|
3
|
+
description: "Molecular dynamics simulation setup, execution, and trajectory analysis"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "atom-symbol"
|
|
7
|
+
category: "domains"
|
|
8
|
+
subcategory: "chemistry"
|
|
9
|
+
keywords: ["molecular-dynamics", "simulation", "gromacs", "openmm", "force-field", "trajectory"]
|
|
10
|
+
source: "wentor"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Molecular Dynamics Guide
|
|
14
|
+
|
|
15
|
+
A skill for setting up, running, and analyzing molecular dynamics (MD) simulations. Covers force field selection, system preparation, simulation protocols, trajectory analysis, and free energy calculations using GROMACS, OpenMM, and MDAnalysis.
|
|
16
|
+
|
|
17
|
+
## System Preparation
|
|
18
|
+
|
|
19
|
+
### Building a Simulation System
|
|
20
|
+
|
|
21
|
+
The standard workflow for preparing an MD simulation:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
1. Obtain structure (PDB, homology model, or docking pose)
|
|
25
|
+
2. Clean structure (add missing atoms, fix protonation states)
|
|
26
|
+
3. Assign force field parameters
|
|
27
|
+
4. Solvate in explicit water box
|
|
28
|
+
5. Add counterions to neutralize charge
|
|
29
|
+
6. Energy minimize
|
|
30
|
+
7. Equilibrate (NVT then NPT)
|
|
31
|
+
8. Production run
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### GROMACS System Setup
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
# 1. Generate topology from PDB
|
|
38
|
+
gmx pdb2gmx -f protein.pdb -o processed.gro -water tip3p -ff amber99sb-ildn
|
|
39
|
+
|
|
40
|
+
# 2. Define simulation box (dodecahedron, 1.0 nm buffer)
|
|
41
|
+
gmx editconf -f processed.gro -o boxed.gro -c -d 1.0 -bt dodecahedron
|
|
42
|
+
|
|
43
|
+
# 3. Solvate
|
|
44
|
+
gmx solvate -cp boxed.gro -cs spc216.gro -o solvated.gro -p topol.top
|
|
45
|
+
|
|
46
|
+
# 4. Add ions to neutralize and set ionic strength (0.15 M NaCl)
|
|
47
|
+
gmx grompp -f ions.mdp -c solvated.gro -p topol.top -o ions.tpr
|
|
48
|
+
gmx genion -s ions.tpr -o ionized.gro -p topol.top -pname NA -nname CL -neutral -conc 0.15
|
|
49
|
+
|
|
50
|
+
# 5. Energy minimization
|
|
51
|
+
gmx grompp -f minim.mdp -c ionized.gro -p topol.top -o em.tpr
|
|
52
|
+
gmx mdrun -deffnm em
|
|
53
|
+
|
|
54
|
+
# 6. NVT equilibration (100 ps, 300 K)
|
|
55
|
+
gmx grompp -f nvt.mdp -c em.gro -r em.gro -p topol.top -o nvt.tpr
|
|
56
|
+
gmx mdrun -deffnm nvt
|
|
57
|
+
|
|
58
|
+
# 7. NPT equilibration (100 ps, 300 K, 1 bar)
|
|
59
|
+
gmx grompp -f npt.mdp -c nvt.gro -r nvt.gro -t nvt.cpt -p topol.top -o npt.tpr
|
|
60
|
+
gmx mdrun -deffnm npt
|
|
61
|
+
|
|
62
|
+
# 8. Production MD (100 ns)
|
|
63
|
+
gmx grompp -f md.mdp -c npt.gro -t npt.cpt -p topol.top -o md.tpr
|
|
64
|
+
gmx mdrun -deffnm md
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Force Field Selection
|
|
68
|
+
|
|
69
|
+
### Common Force Fields
|
|
70
|
+
|
|
71
|
+
| Force Field | Strengths | Typical Use |
|
|
72
|
+
|-------------|-----------|------------|
|
|
73
|
+
| AMBER ff14SB | Protein structure, dynamics | Protein simulations |
|
|
74
|
+
| AMBER ff19SB | Improved backbone dihedrals | Latest protein simulations |
|
|
75
|
+
| CHARMM36m | Proteins, lipids, carbohydrates | Membrane systems |
|
|
76
|
+
| OPLS-AA/M | Small molecules, organic liquids | Drug-like molecules |
|
|
77
|
+
| GAFF2 | General small molecules | Ligand parameterization |
|
|
78
|
+
| CGenFF | CHARMM-compatible small molecules | Ligands in CHARMM systems |
|
|
79
|
+
|
|
80
|
+
### OpenMM System Setup
|
|
81
|
+
|
|
82
|
+
```python
|
|
83
|
+
from openmm.app import PDBFile, ForceField, Modeller, Simulation
|
|
84
|
+
from openmm.app import PME, HBonds, NoCutoff
|
|
85
|
+
from openmm import LangevinMiddleIntegrator, MonteCarloBarostat
|
|
86
|
+
from openmm.unit import kelvin, atmospheres, nanometers, picoseconds
|
|
87
|
+
|
|
88
|
+
def setup_openmm_simulation(pdb_path: str,
|
|
89
|
+
temperature: float = 300,
|
|
90
|
+
pressure: float = 1.0,
|
|
91
|
+
timestep: float = 0.002) -> Simulation:
|
|
92
|
+
"""
|
|
93
|
+
Set up an OpenMM molecular dynamics simulation.
|
|
94
|
+
pdb_path: path to prepared PDB file
|
|
95
|
+
temperature: simulation temperature in Kelvin
|
|
96
|
+
pressure: pressure in atmospheres
|
|
97
|
+
timestep: integration timestep in picoseconds
|
|
98
|
+
"""
|
|
99
|
+
pdb = PDBFile(pdb_path)
|
|
100
|
+
forcefield = ForceField("amber14-all.xml", "amber14/tip3pfb.xml")
|
|
101
|
+
|
|
102
|
+
modeller = Modeller(pdb.topology, pdb.positions)
|
|
103
|
+
modeller.addSolvent(forcefield, padding=1.0 * nanometers,
|
|
104
|
+
ionicStrength=0.15)
|
|
105
|
+
|
|
106
|
+
system = forcefield.createSystem(
|
|
107
|
+
modeller.topology,
|
|
108
|
+
nonbondedMethod=PME,
|
|
109
|
+
nonbondedCutoff=1.0 * nanometers,
|
|
110
|
+
constraints=HBonds,
|
|
111
|
+
)
|
|
112
|
+
|
|
113
|
+
# Barostat for NPT ensemble
|
|
114
|
+
system.addForce(
|
|
115
|
+
MonteCarloBarostat(pressure * atmospheres, temperature * kelvin)
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
integrator = LangevinMiddleIntegrator(
|
|
119
|
+
temperature * kelvin,
|
|
120
|
+
1.0 / picoseconds,
|
|
121
|
+
timestep * picoseconds,
|
|
122
|
+
)
|
|
123
|
+
|
|
124
|
+
simulation = Simulation(modeller.topology, system, integrator)
|
|
125
|
+
simulation.context.setPositions(modeller.positions)
|
|
126
|
+
|
|
127
|
+
# Energy minimization
|
|
128
|
+
simulation.minimizeEnergy()
|
|
129
|
+
|
|
130
|
+
return simulation
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Trajectory Analysis
|
|
134
|
+
|
|
135
|
+
### Structural Analysis with MDAnalysis
|
|
136
|
+
|
|
137
|
+
```python
|
|
138
|
+
import MDAnalysis as mda
|
|
139
|
+
from MDAnalysis.analysis import rms, align, diffusionmap
|
|
140
|
+
import numpy as np
|
|
141
|
+
|
|
142
|
+
def analyze_trajectory(topology: str, trajectory: str) -> dict:
|
|
143
|
+
"""
|
|
144
|
+
Comprehensive trajectory analysis: RMSD, RMSF, radius of gyration.
|
|
145
|
+
topology: topology file (GRO, PDB, PSF)
|
|
146
|
+
trajectory: trajectory file (XTC, TRR, DCD)
|
|
147
|
+
"""
|
|
148
|
+
u = mda.Universe(topology, trajectory)
|
|
149
|
+
protein = u.select_atoms("protein and name CA")
|
|
150
|
+
|
|
151
|
+
# RMSD over time (C-alpha atoms)
|
|
152
|
+
ref = mda.Universe(topology)
|
|
153
|
+
rmsd_analysis = rms.RMSD(u, ref, select="protein and name CA")
|
|
154
|
+
rmsd_analysis.run()
|
|
155
|
+
rmsd_data = rmsd_analysis.results.rmsd # shape: (n_frames, 3)
|
|
156
|
+
|
|
157
|
+
# RMSF per residue
|
|
158
|
+
align.AlignTraj(u, ref, select="protein and name CA", in_memory=True).run()
|
|
159
|
+
rmsf = rms.RMSF(protein).run()
|
|
160
|
+
|
|
161
|
+
# Radius of gyration
|
|
162
|
+
rg_values = []
|
|
163
|
+
for ts in u.trajectory:
|
|
164
|
+
rg_values.append(protein.radius_of_gyration())
|
|
165
|
+
|
|
166
|
+
return {
|
|
167
|
+
"n_frames": len(u.trajectory),
|
|
168
|
+
"rmsd_mean_nm": np.mean(rmsd_data[:, 2]) / 10, # A to nm
|
|
169
|
+
"rmsd_final_nm": rmsd_data[-1, 2] / 10,
|
|
170
|
+
"rmsf_mean_nm": np.mean(rmsf.results.rmsf) / 10,
|
|
171
|
+
"rg_mean_nm": np.mean(rg_values) / 10,
|
|
172
|
+
"rg_std_nm": np.std(rg_values) / 10,
|
|
173
|
+
"simulation_time_ns": u.trajectory[-1].time / 1000,
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Hydrogen Bond Analysis
|
|
178
|
+
|
|
179
|
+
```python
|
|
180
|
+
from MDAnalysis.analysis.hydrogenbonds import HydrogenBondAnalysis
|
|
181
|
+
|
|
182
|
+
def analyze_hbonds(universe: mda.Universe,
|
|
183
|
+
donor_sel: str = "protein",
|
|
184
|
+
acceptor_sel: str = "protein") -> dict:
|
|
185
|
+
"""Analyze hydrogen bonds over the trajectory."""
|
|
186
|
+
hbonds = HydrogenBondAnalysis(
|
|
187
|
+
universe,
|
|
188
|
+
donors_sel=f"({donor_sel}) and (name N* or name O*)",
|
|
189
|
+
acceptors_sel=f"({acceptor_sel}) and (name O* or name N*)",
|
|
190
|
+
d_a_cutoff=3.5,
|
|
191
|
+
d_h_a_angle_cutoff=150,
|
|
192
|
+
)
|
|
193
|
+
hbonds.run()
|
|
194
|
+
|
|
195
|
+
return {
|
|
196
|
+
"total_hbonds_detected": len(hbonds.results.hbonds),
|
|
197
|
+
"mean_per_frame": len(hbonds.results.hbonds) / hbonds.n_frames,
|
|
198
|
+
"unique_pairs": len(set(
|
|
199
|
+
(int(r[1]), int(r[3])) for r in hbonds.results.hbonds
|
|
200
|
+
)),
|
|
201
|
+
}
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
## Free Energy Methods
|
|
205
|
+
|
|
206
|
+
### Umbrella Sampling
|
|
207
|
+
|
|
208
|
+
Umbrella sampling computes the potential of mean force (PMF) along a reaction coordinate:
|
|
209
|
+
|
|
210
|
+
1. Generate windows along the reaction coordinate (e.g., distance between two groups)
|
|
211
|
+
2. Run restrained simulations at each window with a harmonic bias
|
|
212
|
+
3. Combine windows using WHAM (Weighted Histogram Analysis Method)
|
|
213
|
+
4. Report the free energy profile (PMF)
|
|
214
|
+
|
|
215
|
+
### Alchemical Free Energy Perturbation
|
|
216
|
+
|
|
217
|
+
Used for computing binding free energies and solvation free energies:
|
|
218
|
+
|
|
219
|
+
```
|
|
220
|
+
Lambda schedule: 0.0, 0.1, 0.2, ..., 0.9, 1.0
|
|
221
|
+
At lambda=0: full interaction (bound state)
|
|
222
|
+
At lambda=1: no interaction (unbound state)
|
|
223
|
+
|
|
224
|
+
Each lambda window: independent MD simulation
|
|
225
|
+
Analysis: MBAR or TI to combine lambda windows
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
## Tools and Software
|
|
229
|
+
|
|
230
|
+
- **GROMACS**: High-performance MD engine (free, GPU-accelerated)
|
|
231
|
+
- **OpenMM**: Python-native MD with GPU support
|
|
232
|
+
- **AMBER**: Comprehensive MD package (academic license)
|
|
233
|
+
- **NAMD**: Scalable MD for large biomolecular systems
|
|
234
|
+
- **MDAnalysis**: Python trajectory analysis library
|
|
235
|
+
- **MDTraj**: Lightweight trajectory analysis
|
|
236
|
+
- **PyMOL / VMD**: Molecular visualization and movie generation
|
|
237
|
+
- **PLUMED**: Free energy and enhanced sampling methods plugin
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pubchem-api-guide
|
|
3
|
+
description: "Search PubChem for chemical compounds, structures, and bioassay data"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "⚗️"
|
|
7
|
+
category: "domains"
|
|
8
|
+
subcategory: "chemistry"
|
|
9
|
+
keywords: ["pubchem", "chemistry", "compounds", "structures", "bioassay", "pharmacology"]
|
|
10
|
+
source: "https://pubchem.ncbi.nlm.nih.gov/docs/pug-rest"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# PubChem PUG REST API Guide
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
PubChem is the world's largest free chemistry database, maintained by the National Center for Biotechnology Information (NCBI) at the U.S. National Library of Medicine. It contains information on over 115 million chemical compounds, 300 million substances from hundreds of data sources, and over 1.5 million bioassay experiments. PubChem is a critical resource for researchers in chemistry, pharmacology, drug discovery, toxicology, and related life sciences.
|
|
18
|
+
|
|
19
|
+
The PUG REST (Power User Gateway RESTful) API provides programmatic access to PubChem's three primary databases: Compound (standardized chemical structures), Substance (depositor-provided records), and BioAssay (biological screening results). The API supports searches by name, molecular formula, structure similarity, substructure, and various identifiers including CID, SID, InChI, and SMILES.
|
|
20
|
+
|
|
21
|
+
PUG REST is entirely free, requires no authentication, and returns data in JSON, XML, CSV, SDF, and other formats. It is designed for both simple lookups and complex cheminformatics workflows.
|
|
22
|
+
|
|
23
|
+
## Authentication
|
|
24
|
+
|
|
25
|
+
No authentication is required. PubChem PUG REST is a free public service.
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
# No API key needed
|
|
29
|
+
curl "https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/name/aspirin/JSON"
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Core Endpoints
|
|
33
|
+
|
|
34
|
+
### Get Compound by Name
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
GET https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/name/{name}/JSON
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
curl -s "https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/name/caffeine/JSON" \
|
|
42
|
+
| python3 -m json.tool
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Get Compound Properties
|
|
46
|
+
|
|
47
|
+
Retrieve specific properties for a compound by CID.
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
GET https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/cid/{cid}/property/{properties}/JSON
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Available properties:** MolecularFormula, MolecularWeight, CanonicalSMILES, InChI, InChIKey, IUPACName, XLogP, ExactMass, HBondDonorCount, HBondAcceptorCount, RotatableBondCount, TPSA
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
curl -s "https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/name/ibuprofen/property/MolecularFormula,MolecularWeight,CanonicalSMILES,IUPACName,XLogP/JSON" \
|
|
57
|
+
| python3 -m json.tool
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Search by Molecular Formula
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
curl -s "https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/fastformula/C8H10N4O2/property/IUPACName,MolecularWeight,CanonicalSMILES/JSON" \
|
|
64
|
+
| python3 -m json.tool
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Similarity Search
|
|
68
|
+
|
|
69
|
+
Find compounds structurally similar to a given compound (Tanimoto threshold).
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
curl -s "https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/fastsimilarity_2d/cid/2244/property/IUPACName,MolecularWeight,CanonicalSMILES/JSON?Threshold=90" \
|
|
73
|
+
| python3 -m json.tool
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Get BioAssay Data
|
|
77
|
+
|
|
78
|
+
Retrieve biological activity data for a compound.
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
curl -s "https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/cid/2244/assaysummary/JSON" \
|
|
82
|
+
| python3 -m json.tool
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Python Example: Drug-Likeness Screening
|
|
86
|
+
|
|
87
|
+
```python
|
|
88
|
+
import requests
|
|
89
|
+
import time
|
|
90
|
+
|
|
91
|
+
PUG_REST = "https://pubchem.ncbi.nlm.nih.gov/rest/pug"
|
|
92
|
+
|
|
93
|
+
def get_compound_properties(name):
|
|
94
|
+
"""Fetch key drug-likeness properties for a named compound."""
|
|
95
|
+
props = "MolecularWeight,XLogP,HBondDonorCount,HBondAcceptorCount,TPSA,RotatableBondCount,IUPACName"
|
|
96
|
+
url = f"{PUG_REST}/compound/name/{name}/property/{props}/JSON"
|
|
97
|
+
resp = requests.get(url)
|
|
98
|
+
resp.raise_for_status()
|
|
99
|
+
data = resp.json()
|
|
100
|
+
return data.get("PropertyTable", {}).get("Properties", [{}])[0]
|
|
101
|
+
|
|
102
|
+
def check_lipinski(props):
|
|
103
|
+
"""Check Lipinski's Rule of Five for oral drug-likeness."""
|
|
104
|
+
violations = 0
|
|
105
|
+
mw = props.get("MolecularWeight", 0)
|
|
106
|
+
logp = props.get("XLogP", 0)
|
|
107
|
+
hbd = props.get("HBondDonorCount", 0)
|
|
108
|
+
hba = props.get("HBondAcceptorCount", 0)
|
|
109
|
+
|
|
110
|
+
if mw > 500: violations += 1
|
|
111
|
+
if logp > 5: violations += 1
|
|
112
|
+
if hbd > 5: violations += 1
|
|
113
|
+
if hba > 10: violations += 1
|
|
114
|
+
return violations
|
|
115
|
+
|
|
116
|
+
drug_candidates = ["metformin", "atorvastatin", "lisinopril", "omeprazole"]
|
|
117
|
+
print(f"{'Compound':<20} {'MW':>8} {'LogP':>6} {'HBD':>4} {'HBA':>4} {'Violations':>10}")
|
|
118
|
+
print("-" * 60)
|
|
119
|
+
|
|
120
|
+
for drug in drug_candidates:
|
|
121
|
+
props = get_compound_properties(drug)
|
|
122
|
+
violations = check_lipinski(props)
|
|
123
|
+
print(f"{drug:<20} {props.get('MolecularWeight', 0):>8.1f} "
|
|
124
|
+
f"{props.get('XLogP', 0):>6.1f} "
|
|
125
|
+
f"{props.get('HBondDonorCount', 0):>4} "
|
|
126
|
+
f"{props.get('HBondAcceptorCount', 0):>4} "
|
|
127
|
+
f"{violations:>10}")
|
|
128
|
+
time.sleep(0.3)
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Python Example: Compound Comparison
|
|
132
|
+
|
|
133
|
+
```python
|
|
134
|
+
import requests
|
|
135
|
+
|
|
136
|
+
def compare_compounds(cid_list):
|
|
137
|
+
"""Compare properties of multiple compounds by CID."""
|
|
138
|
+
cids = ",".join(str(c) for c in cid_list)
|
|
139
|
+
props = "IUPACName,MolecularFormula,MolecularWeight,CanonicalSMILES,XLogP"
|
|
140
|
+
url = f"{PUG_REST}/compound/cid/{cids}/property/{props}/JSON"
|
|
141
|
+
resp = requests.get(url)
|
|
142
|
+
resp.raise_for_status()
|
|
143
|
+
return resp.json().get("PropertyTable", {}).get("Properties", [])
|
|
144
|
+
|
|
145
|
+
# Compare aspirin (2244), ibuprofen (3672), acetaminophen (1983)
|
|
146
|
+
results = compare_compounds([2244, 3672, 1983])
|
|
147
|
+
for compound in results:
|
|
148
|
+
print(f"\n{compound.get('IUPACName', 'Unknown')}")
|
|
149
|
+
print(f" Formula: {compound.get('MolecularFormula')}")
|
|
150
|
+
print(f" MW: {compound.get('MolecularWeight')}")
|
|
151
|
+
print(f" SMILES: {compound.get('CanonicalSMILES')}")
|
|
152
|
+
print(f" LogP: {compound.get('XLogP')}")
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Common Research Patterns
|
|
156
|
+
|
|
157
|
+
**Structure-Activity Relationship (SAR) Analysis:** Use similarity searches to find structural analogs of lead compounds, then retrieve bioassay data to compare biological activity across the series.
|
|
158
|
+
|
|
159
|
+
**Virtual Screening:** Screen large compound libraries against drug-likeness filters (Lipinski's rules, Veber's rules) using property endpoints to prioritize candidates for experimental testing.
|
|
160
|
+
|
|
161
|
+
**Chemical Identifier Resolution:** Translate between compound names, CIDs, InChI, InChIKey, and SMILES notations. Essential for data integration across heterogeneous chemistry databases.
|
|
162
|
+
|
|
163
|
+
**Toxicology Research:** Access bioassay results and safety data for compounds to support toxicity profiling and risk assessment in environmental health research.
|
|
164
|
+
|
|
165
|
+
## Rate Limits and Best Practices
|
|
166
|
+
|
|
167
|
+
- **Rate limit:** Maximum 5 requests per second; add 200ms delays between requests
|
|
168
|
+
- **No more than 400 requests per minute** from a single IP
|
|
169
|
+
- **Batch requests:** Use comma-separated CIDs (up to 200) in a single request to minimize API calls
|
|
170
|
+
- **Async operations:** For large similarity/substructure searches, use the async workflow with list keys
|
|
171
|
+
- **Response formats:** Use JSON for programmatic access, SDF for structure files, CSV for tabular data
|
|
172
|
+
- **Caching:** Compound data is relatively static; cache property lookups aggressively
|
|
173
|
+
- **Error handling:** HTTP 404 means compound not found; 503 means server busy (retry with backoff)
|
|
174
|
+
|
|
175
|
+
## References
|
|
176
|
+
|
|
177
|
+
- PubChem PUG REST Documentation: https://pubchem.ncbi.nlm.nih.gov/docs/pug-rest
|
|
178
|
+
- PubChem PUG REST Tutorial: https://pubchem.ncbi.nlm.nih.gov/docs/pug-rest-tutorial
|
|
179
|
+
- PubChem Compound Database: https://pubchem.ncbi.nlm.nih.gov/
|
|
180
|
+
- PubChem Power User Gateway: https://pubchem.ncbi.nlm.nih.gov/docs/power-user-gateway
|