@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,266 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plotly-interactive-guide
|
|
3
|
+
description: "Guide to Plotly.py for interactive scientific visualizations in Python"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "🔬"
|
|
7
|
+
category: "analysis"
|
|
8
|
+
subcategory: "dataviz"
|
|
9
|
+
keywords: ["Plotly", "interactive visualization", "Dash", "Python charts", "scientific plots", "research figures"]
|
|
10
|
+
source: "https://github.com/plotly/plotly.py"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Plotly Interactive Visualization Guide
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
Plotly.py is a high-level, interactive graphing library for Python with over 18K stars on GitHub. Built on top of plotly.js (which itself uses D3.js and WebGL), Plotly enables researchers to create publication-quality interactive figures directly from Python code. The library integrates seamlessly with pandas DataFrames, NumPy arrays, and the broader scientific Python ecosystem.
|
|
18
|
+
|
|
19
|
+
What sets Plotly apart for academic researchers is its Plotly Express module, which provides a concise, high-level API for creating complex visualizations in a single function call. Researchers can go from a pandas DataFrame to a fully interactive figure in one line of code, then customize it further as needed. Every Plotly figure is inherently interactive, supporting hover tooltips, zoom, pan, and selection out of the box.
|
|
20
|
+
|
|
21
|
+
Plotly also offers Dash, a framework for building analytical web applications entirely in Python. This allows researchers to create interactive dashboards for exploring experimental data, sharing results with collaborators, or building supplementary interactive materials for publications without needing front-end development skills.
|
|
22
|
+
|
|
23
|
+
## Plotly Express for Quick Research Figures
|
|
24
|
+
|
|
25
|
+
Plotly Express provides the fastest path from data to visualization. It works directly with pandas DataFrames and supports faceting, color mapping, animation, and trendlines.
|
|
26
|
+
|
|
27
|
+
### Scatter Plot with Regression
|
|
28
|
+
|
|
29
|
+
```python
|
|
30
|
+
import plotly.express as px
|
|
31
|
+
import pandas as pd
|
|
32
|
+
import numpy as np
|
|
33
|
+
|
|
34
|
+
# Simulated experimental data
|
|
35
|
+
np.random.seed(42)
|
|
36
|
+
df = pd.DataFrame({
|
|
37
|
+
'concentration': np.random.uniform(0.1, 10, 200),
|
|
38
|
+
'response': np.random.normal(0, 1, 200),
|
|
39
|
+
'treatment': np.random.choice(['Drug A', 'Drug B', 'Control'], 200),
|
|
40
|
+
'cell_line': np.random.choice(['HeLa', 'MCF7', 'A549'], 200)
|
|
41
|
+
})
|
|
42
|
+
df['response'] = df['concentration'] * 0.8 + df['response']
|
|
43
|
+
|
|
44
|
+
fig = px.scatter(
|
|
45
|
+
df,
|
|
46
|
+
x='concentration',
|
|
47
|
+
y='response',
|
|
48
|
+
color='treatment',
|
|
49
|
+
facet_col='cell_line',
|
|
50
|
+
trendline='ols',
|
|
51
|
+
title='Dose-Response Across Cell Lines',
|
|
52
|
+
labels={'concentration': 'Concentration (uM)', 'response': 'Normalized Response'},
|
|
53
|
+
template='plotly_white'
|
|
54
|
+
)
|
|
55
|
+
fig.update_layout(font=dict(family='Arial', size=12))
|
|
56
|
+
fig.show()
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Box Plot with Individual Data Points
|
|
60
|
+
|
|
61
|
+
```python
|
|
62
|
+
fig = px.box(
|
|
63
|
+
df,
|
|
64
|
+
x='treatment',
|
|
65
|
+
y='response',
|
|
66
|
+
color='treatment',
|
|
67
|
+
points='all',
|
|
68
|
+
title='Treatment Response Distribution',
|
|
69
|
+
template='plotly_white'
|
|
70
|
+
)
|
|
71
|
+
fig.update_traces(quartilemethod='linear')
|
|
72
|
+
fig.update_layout(showlegend=False)
|
|
73
|
+
fig.show()
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Violin Plot for Distribution Comparison
|
|
77
|
+
|
|
78
|
+
```python
|
|
79
|
+
fig = px.violin(
|
|
80
|
+
df,
|
|
81
|
+
x='treatment',
|
|
82
|
+
y='response',
|
|
83
|
+
color='treatment',
|
|
84
|
+
box=True,
|
|
85
|
+
points='outliers',
|
|
86
|
+
title='Response Distribution by Treatment Group',
|
|
87
|
+
template='plotly_white'
|
|
88
|
+
)
|
|
89
|
+
fig.show()
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Graph Objects for Fine-Grained Control
|
|
93
|
+
|
|
94
|
+
For more customized figures, Plotly's graph_objects module provides full control over every visual element.
|
|
95
|
+
|
|
96
|
+
### Error Bar Plot for Experimental Results
|
|
97
|
+
|
|
98
|
+
```python
|
|
99
|
+
import plotly.graph_objects as go
|
|
100
|
+
|
|
101
|
+
groups = ['Control', 'Low Dose', 'Medium Dose', 'High Dose']
|
|
102
|
+
means = [1.0, 1.8, 3.2, 4.5]
|
|
103
|
+
sems = [0.15, 0.22, 0.31, 0.28]
|
|
104
|
+
|
|
105
|
+
fig = go.Figure()
|
|
106
|
+
|
|
107
|
+
fig.add_trace(go.Bar(
|
|
108
|
+
x=groups,
|
|
109
|
+
y=means,
|
|
110
|
+
error_y=dict(type='data', array=sems, visible=True),
|
|
111
|
+
marker_color=['#6B7280', '#3B82F6', '#3B82F6', '#3B82F6'],
|
|
112
|
+
text=[f'{m:.2f}' for m in means],
|
|
113
|
+
textposition='outside'
|
|
114
|
+
))
|
|
115
|
+
|
|
116
|
+
fig.update_layout(
|
|
117
|
+
title='Treatment Effect on Biomarker Levels',
|
|
118
|
+
yaxis_title='Relative Expression',
|
|
119
|
+
xaxis_title='Treatment Group',
|
|
120
|
+
template='plotly_white',
|
|
121
|
+
font=dict(family='Arial', size=13),
|
|
122
|
+
bargap=0.3,
|
|
123
|
+
yaxis=dict(range=[0, max(means) * 1.3])
|
|
124
|
+
)
|
|
125
|
+
|
|
126
|
+
# Add significance brackets
|
|
127
|
+
fig.add_annotation(
|
|
128
|
+
x=0.5, y=max(means) * 1.15,
|
|
129
|
+
text='*** p < 0.001',
|
|
130
|
+
showarrow=False,
|
|
131
|
+
font=dict(size=12)
|
|
132
|
+
)
|
|
133
|
+
|
|
134
|
+
fig.show()
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Heatmap for Correlation Analysis
|
|
138
|
+
|
|
139
|
+
```python
|
|
140
|
+
import plotly.figure_factory as ff
|
|
141
|
+
|
|
142
|
+
# Compute correlation matrix
|
|
143
|
+
corr_matrix = df[['concentration', 'response']].corr()
|
|
144
|
+
variables = corr_matrix.columns.tolist()
|
|
145
|
+
|
|
146
|
+
fig = ff.create_annotated_heatmap(
|
|
147
|
+
z=corr_matrix.values,
|
|
148
|
+
x=variables,
|
|
149
|
+
y=variables,
|
|
150
|
+
colorscale='RdBu_r',
|
|
151
|
+
zmin=-1, zmax=1,
|
|
152
|
+
showscale=True
|
|
153
|
+
)
|
|
154
|
+
|
|
155
|
+
fig.update_layout(
|
|
156
|
+
title='Variable Correlation Matrix',
|
|
157
|
+
template='plotly_white',
|
|
158
|
+
width=600, height=500
|
|
159
|
+
)
|
|
160
|
+
fig.show()
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## 3D and Specialized Scientific Plots
|
|
164
|
+
|
|
165
|
+
### 3D Surface Plot for Response Surfaces
|
|
166
|
+
|
|
167
|
+
```python
|
|
168
|
+
import plotly.graph_objects as go
|
|
169
|
+
import numpy as np
|
|
170
|
+
|
|
171
|
+
x = np.linspace(-3, 3, 50)
|
|
172
|
+
y = np.linspace(-3, 3, 50)
|
|
173
|
+
X, Y = np.meshgrid(x, y)
|
|
174
|
+
Z = np.sin(np.sqrt(X**2 + Y**2)) * np.exp(-0.1 * (X**2 + Y**2))
|
|
175
|
+
|
|
176
|
+
fig = go.Figure(data=[go.Surface(
|
|
177
|
+
x=X, y=Y, z=Z,
|
|
178
|
+
colorscale='Viridis',
|
|
179
|
+
contours=dict(
|
|
180
|
+
z=dict(show=True, usecolormap=True, project_z=True)
|
|
181
|
+
)
|
|
182
|
+
)])
|
|
183
|
+
|
|
184
|
+
fig.update_layout(
|
|
185
|
+
title='Response Surface Analysis',
|
|
186
|
+
scene=dict(
|
|
187
|
+
xaxis_title='Factor A',
|
|
188
|
+
yaxis_title='Factor B',
|
|
189
|
+
zaxis_title='Response'
|
|
190
|
+
),
|
|
191
|
+
width=700, height=600
|
|
192
|
+
)
|
|
193
|
+
fig.show()
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Animated Time-Series for Temporal Data
|
|
197
|
+
|
|
198
|
+
```python
|
|
199
|
+
# Create animated scatter showing progression over experimental phases
|
|
200
|
+
fig = px.scatter(
|
|
201
|
+
temporal_df,
|
|
202
|
+
x='metric_a',
|
|
203
|
+
y='metric_b',
|
|
204
|
+
animation_frame='time_point',
|
|
205
|
+
animation_group='sample_id',
|
|
206
|
+
size='magnitude',
|
|
207
|
+
color='cluster',
|
|
208
|
+
hover_name='sample_id',
|
|
209
|
+
title='Sample Trajectories Over Time',
|
|
210
|
+
template='plotly_white',
|
|
211
|
+
range_x=[0, 10],
|
|
212
|
+
range_y=[0, 10]
|
|
213
|
+
)
|
|
214
|
+
fig.layout.updatemenus[0].buttons[0].args[1]['frame']['duration'] = 800
|
|
215
|
+
fig.show()
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
## Exporting for Publications
|
|
219
|
+
|
|
220
|
+
Plotly provides multiple export options for journal-ready figures.
|
|
221
|
+
|
|
222
|
+
```python
|
|
223
|
+
# Static export (requires kaleido)
|
|
224
|
+
fig.write_image('figure_1.pdf', width=800, height=500, scale=3)
|
|
225
|
+
fig.write_image('figure_1.svg', width=800, height=500)
|
|
226
|
+
fig.write_image('figure_1.png', width=800, height=500, scale=3)
|
|
227
|
+
|
|
228
|
+
# Interactive HTML for supplementary materials
|
|
229
|
+
fig.write_html('interactive_figure.html', include_plotlyjs='cdn')
|
|
230
|
+
|
|
231
|
+
# Save as JSON for reproducibility
|
|
232
|
+
fig.write_json('figure_data.json')
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
## Dash for Interactive Research Dashboards
|
|
236
|
+
|
|
237
|
+
```python
|
|
238
|
+
from dash import Dash, dcc, html, Input, Output
|
|
239
|
+
import plotly.express as px
|
|
240
|
+
|
|
241
|
+
app = Dash(__name__)
|
|
242
|
+
|
|
243
|
+
app.layout = html.Div([
|
|
244
|
+
html.H1('Experiment Data Explorer'),
|
|
245
|
+
dcc.Dropdown(
|
|
246
|
+
id='variable-select',
|
|
247
|
+
options=[{'label': v, 'value': v} for v in variables],
|
|
248
|
+
value=variables[0]
|
|
249
|
+
),
|
|
250
|
+
dcc.Graph(id='main-plot')
|
|
251
|
+
])
|
|
252
|
+
|
|
253
|
+
@app.callback(Output('main-plot', 'figure'), Input('variable-select', 'value'))
|
|
254
|
+
def update_plot(selected_var):
|
|
255
|
+
return px.histogram(df, x=selected_var, nbins=30, template='plotly_white')
|
|
256
|
+
|
|
257
|
+
if __name__ == '__main__':
|
|
258
|
+
app.run(debug=True, port=8050)
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
## References
|
|
262
|
+
|
|
263
|
+
- Plotly Python documentation: https://plotly.com/python/
|
|
264
|
+
- Plotly.py GitHub repository: https://github.com/plotly/plotly.py
|
|
265
|
+
- Dash documentation: https://dash.plotly.com
|
|
266
|
+
- Plotly Express reference: https://plotly.com/python/plotly-express/
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: redash-analytics-guide
|
|
3
|
+
description: "Guide to Redash for SQL-driven research data dashboards and sharing"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "📊"
|
|
7
|
+
category: "analysis"
|
|
8
|
+
subcategory: "dataviz"
|
|
9
|
+
keywords: ["Redash", "SQL dashboards", "data visualization", "query tool", "research analytics", "collaborative BI"]
|
|
10
|
+
source: "https://github.com/getredash/redash"
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Redash Analytics Guide
|
|
14
|
+
|
|
15
|
+
## Overview
|
|
16
|
+
|
|
17
|
+
Redash is an open-source data visualization and dashboarding tool with over 28K stars on GitHub. It is designed for analysts and researchers who prefer writing SQL to explore and visualize data. Redash connects to virtually any data source that supports SQL or has an API, and provides a browser-based query editor with autocomplete, visualization builder, and dashboard composer.
|
|
18
|
+
|
|
19
|
+
For academic research groups, Redash offers a lightweight, self-hosted alternative to commercial BI tools. Its SQL-first approach is natural for researchers who already work with databases, and its sharing features make it straightforward to create dashboards that the entire lab can access. Unlike Metabase which emphasizes no-code exploration, Redash is specifically designed for users who are comfortable writing queries and want direct control over their data retrieval logic.
|
|
20
|
+
|
|
21
|
+
Redash supports over 35 data source types, including PostgreSQL, MySQL, SQLite, BigQuery, Elasticsearch, MongoDB, Google Sheets, CSV files, and even custom Python scripts. This versatility means researchers can build unified dashboards that pull data from multiple sources: experiment databases, survey platforms, instrument logs, and cloud storage.
|
|
22
|
+
|
|
23
|
+
## Installation and Configuration
|
|
24
|
+
|
|
25
|
+
### Docker Compose Deployment
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
# Clone the Redash setup repository
|
|
29
|
+
git clone https://github.com/getredash/setup.git redash-setup
|
|
30
|
+
cd redash-setup
|
|
31
|
+
|
|
32
|
+
# Generate configuration
|
|
33
|
+
./setup.sh
|
|
34
|
+
|
|
35
|
+
# Or manually configure with Docker Compose
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Docker Compose Configuration for Research Labs
|
|
39
|
+
|
|
40
|
+
```yaml
|
|
41
|
+
version: "3"
|
|
42
|
+
services:
|
|
43
|
+
redash:
|
|
44
|
+
image: redash/redash:latest
|
|
45
|
+
command: server
|
|
46
|
+
ports:
|
|
47
|
+
- "5000:5000"
|
|
48
|
+
environment:
|
|
49
|
+
REDASH_DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres/redash
|
|
50
|
+
REDASH_REDIS_URL: redis://redis:6379/0
|
|
51
|
+
REDASH_SECRET_KEY: ${REDASH_SECRET_KEY}
|
|
52
|
+
REDASH_MAIL_SERVER: smtp.university.edu
|
|
53
|
+
REDASH_MAIL_PORT: 587
|
|
54
|
+
REDASH_MAIL_USERNAME: ${MAIL_USERNAME}
|
|
55
|
+
REDASH_MAIL_PASSWORD: ${MAIL_PASSWORD}
|
|
56
|
+
depends_on:
|
|
57
|
+
- postgres
|
|
58
|
+
- redis
|
|
59
|
+
|
|
60
|
+
worker:
|
|
61
|
+
image: redash/redash:latest
|
|
62
|
+
command: worker
|
|
63
|
+
environment:
|
|
64
|
+
REDASH_DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres/redash
|
|
65
|
+
REDASH_REDIS_URL: redis://redis:6379/0
|
|
66
|
+
depends_on:
|
|
67
|
+
- redash
|
|
68
|
+
|
|
69
|
+
scheduler:
|
|
70
|
+
image: redash/redash:latest
|
|
71
|
+
command: scheduler
|
|
72
|
+
environment:
|
|
73
|
+
REDASH_DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres/redash
|
|
74
|
+
REDASH_REDIS_URL: redis://redis:6379/0
|
|
75
|
+
depends_on:
|
|
76
|
+
- redash
|
|
77
|
+
|
|
78
|
+
postgres:
|
|
79
|
+
image: postgres:16
|
|
80
|
+
environment:
|
|
81
|
+
POSTGRES_DB: redash
|
|
82
|
+
POSTGRES_USER: ${POSTGRES_USER}
|
|
83
|
+
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
84
|
+
volumes:
|
|
85
|
+
- pg-data:/var/lib/postgresql/data
|
|
86
|
+
|
|
87
|
+
redis:
|
|
88
|
+
image: redis:7-alpine
|
|
89
|
+
volumes:
|
|
90
|
+
- redis-data:/data
|
|
91
|
+
|
|
92
|
+
volumes:
|
|
93
|
+
pg-data:
|
|
94
|
+
redis-data:
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Writing Research Queries
|
|
98
|
+
|
|
99
|
+
### Experiment Results Summary
|
|
100
|
+
|
|
101
|
+
```sql
|
|
102
|
+
-- Aggregate experiment results by condition and time period
|
|
103
|
+
SELECT
|
|
104
|
+
e.condition_name,
|
|
105
|
+
DATE_TRUNC('month', e.run_date) AS month,
|
|
106
|
+
COUNT(*) AS num_runs,
|
|
107
|
+
ROUND(AVG(e.primary_outcome)::NUMERIC, 4) AS mean_outcome,
|
|
108
|
+
ROUND(STDDEV(e.primary_outcome)::NUMERIC, 4) AS std_outcome,
|
|
109
|
+
ROUND(AVG(e.primary_outcome)::NUMERIC - 1.96 * STDDEV(e.primary_outcome)::NUMERIC / SQRT(COUNT(*)), 4) AS ci_lower,
|
|
110
|
+
ROUND(AVG(e.primary_outcome)::NUMERIC + 1.96 * STDDEV(e.primary_outcome)::NUMERIC / SQRT(COUNT(*)), 4) AS ci_upper
|
|
111
|
+
FROM experiments e
|
|
112
|
+
WHERE e.project_id = {{project_id}}
|
|
113
|
+
AND e.run_date >= {{start_date}}
|
|
114
|
+
GROUP BY e.condition_name, DATE_TRUNC('month', e.run_date)
|
|
115
|
+
ORDER BY month, condition_name;
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
The `{{project_id}}` and `{{start_date}}` syntax creates interactive parameter widgets that users can modify without editing the query.
|
|
119
|
+
|
|
120
|
+
### Literature Review Metrics
|
|
121
|
+
|
|
122
|
+
```sql
|
|
123
|
+
-- Track literature search and screening progress
|
|
124
|
+
SELECT
|
|
125
|
+
r.review_name,
|
|
126
|
+
r.search_database,
|
|
127
|
+
COUNT(DISTINCT a.article_id) AS total_found,
|
|
128
|
+
COUNT(DISTINCT CASE WHEN s.decision = 'include' THEN a.article_id END) AS included,
|
|
129
|
+
COUNT(DISTINCT CASE WHEN s.decision = 'exclude' THEN a.article_id END) AS excluded,
|
|
130
|
+
COUNT(DISTINCT CASE WHEN s.decision IS NULL THEN a.article_id END) AS pending,
|
|
131
|
+
ROUND(
|
|
132
|
+
COUNT(DISTINCT CASE WHEN s.decision IS NOT NULL THEN a.article_id END)::NUMERIC /
|
|
133
|
+
NULLIF(COUNT(DISTINCT a.article_id), 0) * 100, 1
|
|
134
|
+
) AS screening_progress_pct
|
|
135
|
+
FROM systematic_reviews r
|
|
136
|
+
JOIN articles a ON a.review_id = r.id
|
|
137
|
+
LEFT JOIN screening_decisions s ON s.article_id = a.article_id
|
|
138
|
+
WHERE r.review_name = {{review_name}}
|
|
139
|
+
GROUP BY r.review_name, r.search_database
|
|
140
|
+
ORDER BY total_found DESC;
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Grant Funding and Budget Tracking
|
|
144
|
+
|
|
145
|
+
```sql
|
|
146
|
+
-- Monitor research grant expenditures
|
|
147
|
+
SELECT
|
|
148
|
+
g.grant_name,
|
|
149
|
+
g.funding_agency,
|
|
150
|
+
g.total_budget,
|
|
151
|
+
SUM(t.amount) AS total_spent,
|
|
152
|
+
g.total_budget - SUM(t.amount) AS remaining,
|
|
153
|
+
ROUND(SUM(t.amount)::NUMERIC / g.total_budget * 100, 1) AS pct_spent,
|
|
154
|
+
g.end_date,
|
|
155
|
+
(g.end_date - CURRENT_DATE) AS days_remaining,
|
|
156
|
+
ROUND(
|
|
157
|
+
(g.total_budget - SUM(t.amount))::NUMERIC /
|
|
158
|
+
NULLIF((g.end_date - CURRENT_DATE), 0), 2
|
|
159
|
+
) AS daily_burn_budget
|
|
160
|
+
FROM grants g
|
|
161
|
+
JOIN transactions t ON t.grant_id = g.id
|
|
162
|
+
WHERE g.status = 'active'
|
|
163
|
+
GROUP BY g.grant_name, g.funding_agency, g.total_budget, g.end_date
|
|
164
|
+
ORDER BY pct_spent DESC;
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
## Visualization Types for Research
|
|
168
|
+
|
|
169
|
+
Redash supports multiple visualization types that can be attached to any query result.
|
|
170
|
+
|
|
171
|
+
### Available Chart Types
|
|
172
|
+
|
|
173
|
+
- **Line Chart** - Time-series data, experiment progression, longitudinal studies
|
|
174
|
+
- **Bar Chart** - Categorical comparisons, group means, frequency counts
|
|
175
|
+
- **Scatter Plot** - Correlation analysis, cluster visualization
|
|
176
|
+
- **Pie / Donut Chart** - Distribution breakdowns, category proportions
|
|
177
|
+
- **Area Chart** - Cumulative metrics, stacked comparisons
|
|
178
|
+
- **Heatmap** - Correlation matrices, temporal patterns
|
|
179
|
+
- **Box Plot** - Distribution comparison across groups
|
|
180
|
+
- **Map** - Geographic distribution of samples or collaborators
|
|
181
|
+
- **Pivot Table** - Cross-tabulation of experimental factors
|
|
182
|
+
- **Counter** - Single key metrics (total papers, h-index, sample count)
|
|
183
|
+
- **Word Cloud** - Keyword frequency from abstracts or text analysis
|
|
184
|
+
|
|
185
|
+
### Configuring a Visualization
|
|
186
|
+
|
|
187
|
+
After running a query, click "New Visualization" and configure:
|
|
188
|
+
|
|
189
|
+
1. Select the chart type appropriate for your data
|
|
190
|
+
2. Map columns to X axis, Y axis, group, and size dimensions
|
|
191
|
+
3. Configure axis labels, ranges, and formatting
|
|
192
|
+
4. Add annotations for significance levels or thresholds
|
|
193
|
+
5. Save and add to a dashboard
|
|
194
|
+
|
|
195
|
+
## Dashboard Design for Research Labs
|
|
196
|
+
|
|
197
|
+
### Creating an Effective Research Dashboard
|
|
198
|
+
|
|
199
|
+
A well-designed research lab dashboard typically includes the following widgets arranged in a logical layout:
|
|
200
|
+
|
|
201
|
+
1. **Header row**: Key counters (active projects, publications this year, pending reviews)
|
|
202
|
+
2. **Progress section**: Line charts showing experiment completion over time
|
|
203
|
+
3. **Results section**: Bar charts or box plots comparing treatment conditions
|
|
204
|
+
4. **Quality section**: Scatter plots of quality metrics and control charts
|
|
205
|
+
5. **Pipeline section**: Tables showing upcoming deadlines and task assignments
|
|
206
|
+
|
|
207
|
+
### Parameterized Dashboards
|
|
208
|
+
|
|
209
|
+
Redash dashboards support global parameters that filter all widgets simultaneously:
|
|
210
|
+
|
|
211
|
+
```
|
|
212
|
+
Dashboard Parameters:
|
|
213
|
+
- Project: dropdown linked to projects table
|
|
214
|
+
- Date Range: date range picker
|
|
215
|
+
- Researcher: dropdown linked to team members table
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
This allows a single dashboard template to serve multiple research projects.
|
|
219
|
+
|
|
220
|
+
## Scheduled Queries and Alerts
|
|
221
|
+
|
|
222
|
+
### Automatic Data Refresh
|
|
223
|
+
|
|
224
|
+
Configure queries to run on a schedule to keep dashboards current:
|
|
225
|
+
|
|
226
|
+
- **Every 5 minutes**: Instrument monitoring, live experiment tracking
|
|
227
|
+
- **Hourly**: Computing cluster job status, data pipeline health
|
|
228
|
+
- **Daily**: Experiment summaries, publication metrics
|
|
229
|
+
- **Weekly**: Lab progress reports, budget summaries
|
|
230
|
+
|
|
231
|
+
### Alert Configuration
|
|
232
|
+
|
|
233
|
+
```
|
|
234
|
+
Alert: "Low Sample Quality Detected"
|
|
235
|
+
Query: samples with quality_score < threshold in last 24h
|
|
236
|
+
Condition: When query returns results
|
|
237
|
+
Destination: Email to lab manager, Slack channel notification
|
|
238
|
+
Rearm after: 1 hour
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
## API Access for Automation
|
|
242
|
+
|
|
243
|
+
Redash provides a REST API that researchers can use to integrate dashboards into automated workflows.
|
|
244
|
+
|
|
245
|
+
```python
|
|
246
|
+
import requests
|
|
247
|
+
|
|
248
|
+
REDASH_URL = "http://redash.lab.internal"
|
|
249
|
+
redash_key = os.environ["REDASH_API_KEY"]
|
|
250
|
+
|
|
251
|
+
# Execute a query and get results
|
|
252
|
+
def run_query(query_id, parameters=None):
|
|
253
|
+
url = f"{REDASH_URL}/api/queries/{query_id}/results"
|
|
254
|
+
headers = {"Authorization": f"Key {redash_key}"}
|
|
255
|
+
payload = {"parameters": parameters or {}}
|
|
256
|
+
|
|
257
|
+
response = requests.post(url, json=payload, headers=headers)
|
|
258
|
+
job = response.json().get("job", {})
|
|
259
|
+
|
|
260
|
+
# Poll for results
|
|
261
|
+
while job.get("status") not in (3, 4):
|
|
262
|
+
result = requests.get(
|
|
263
|
+
f"{REDASH_URL}/api/jobs/{job['id']}",
|
|
264
|
+
headers=headers
|
|
265
|
+
)
|
|
266
|
+
job = result.json().get("job", {})
|
|
267
|
+
|
|
268
|
+
# Fetch final results
|
|
269
|
+
result = requests.get(
|
|
270
|
+
f"{REDASH_URL}/api/queries/{query_id}/results.json",
|
|
271
|
+
headers=headers
|
|
272
|
+
)
|
|
273
|
+
return result.json()
|
|
274
|
+
|
|
275
|
+
# Export dashboard data for reporting
|
|
276
|
+
results = run_query(42, {"project_id": 7})
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
## References
|
|
280
|
+
|
|
281
|
+
- Redash official documentation: https://redash.io/help
|
|
282
|
+
- Redash GitHub repository: https://github.com/getredash/redash
|
|
283
|
+
- Redash setup guide: https://redash.io/help/open-source/setup
|
|
284
|
+
- Redash API reference: https://redash.io/help/user-guide/integrations-and-api/api
|