@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.
Files changed (415) hide show
  1. package/README.md +22 -22
  2. package/curated/analysis/README.md +82 -56
  3. package/curated/domains/README.md +225 -69
  4. package/curated/literature/README.md +115 -46
  5. package/curated/research/README.md +106 -58
  6. package/curated/tools/README.md +107 -87
  7. package/curated/writing/README.md +92 -45
  8. package/mcp-configs/academic-db/alphafold-mcp.json +20 -0
  9. package/mcp-configs/academic-db/brightspace-mcp.json +21 -0
  10. package/mcp-configs/academic-db/climatiq-mcp.json +20 -0
  11. package/mcp-configs/academic-db/gibs-mcp.json +20 -0
  12. package/mcp-configs/academic-db/gis-mcp-server.json +22 -0
  13. package/mcp-configs/academic-db/google-earth-engine-mcp.json +21 -0
  14. package/mcp-configs/academic-db/m4-clinical-mcp.json +21 -0
  15. package/mcp-configs/academic-db/medical-mcp.json +21 -0
  16. package/mcp-configs/academic-db/nexonco-mcp.json +20 -0
  17. package/mcp-configs/academic-db/omop-mcp.json +20 -0
  18. package/mcp-configs/academic-db/onekgpd-mcp.json +20 -0
  19. package/mcp-configs/academic-db/openedu-mcp.json +20 -0
  20. package/mcp-configs/academic-db/opengenes-mcp.json +20 -0
  21. package/mcp-configs/academic-db/openstax-mcp.json +21 -0
  22. package/mcp-configs/academic-db/openstreetmap-mcp.json +21 -0
  23. package/mcp-configs/academic-db/opentargets-mcp.json +21 -0
  24. package/mcp-configs/academic-db/pdb-mcp.json +21 -0
  25. package/mcp-configs/academic-db/smithsonian-mcp.json +20 -0
  26. package/mcp-configs/ai-platform/magi-researchers.json +21 -0
  27. package/mcp-configs/ai-platform/mcp-academic-researcher.json +22 -0
  28. package/mcp-configs/ai-platform/open-paper-machine.json +21 -0
  29. package/mcp-configs/ai-platform/paper-intelligence.json +21 -0
  30. package/mcp-configs/ai-platform/paper-reader.json +21 -0
  31. package/mcp-configs/ai-platform/paperdebugger.json +21 -0
  32. package/mcp-configs/browser/exa-mcp.json +20 -0
  33. package/mcp-configs/browser/mcp-searxng.json +21 -0
  34. package/mcp-configs/browser/mcp-webresearch.json +20 -0
  35. package/mcp-configs/cloud-docs/confluence-mcp.json +37 -0
  36. package/mcp-configs/cloud-docs/google-drive-mcp.json +35 -0
  37. package/mcp-configs/cloud-docs/notion-mcp.json +29 -0
  38. package/mcp-configs/communication/discord-mcp.json +29 -0
  39. package/mcp-configs/communication/discourse-mcp.json +21 -0
  40. package/mcp-configs/communication/slack-mcp.json +29 -0
  41. package/mcp-configs/communication/telegram-mcp.json +28 -0
  42. package/mcp-configs/data-platform/automl-stat-mcp.json +21 -0
  43. package/mcp-configs/data-platform/jefferson-stats-mcp.json +22 -0
  44. package/mcp-configs/data-platform/mcp-excel-server.json +21 -0
  45. package/mcp-configs/data-platform/mcp-stata.json +21 -0
  46. package/mcp-configs/data-platform/mcpstack-jupyter.json +21 -0
  47. package/mcp-configs/data-platform/ml-mcp.json +21 -0
  48. package/mcp-configs/data-platform/nasdaq-data-link-mcp.json +20 -0
  49. package/mcp-configs/data-platform/numpy-mcp.json +21 -0
  50. package/mcp-configs/database/neo4j-mcp.json +37 -0
  51. package/mcp-configs/database/postgres-mcp.json +28 -0
  52. package/mcp-configs/database/sqlite-mcp.json +29 -0
  53. package/mcp-configs/dev-platform/geogebra-mcp.json +21 -0
  54. package/mcp-configs/dev-platform/github-mcp.json +31 -0
  55. package/mcp-configs/dev-platform/gitlab-mcp.json +34 -0
  56. package/mcp-configs/dev-platform/latex-mcp-server.json +21 -0
  57. package/mcp-configs/dev-platform/manim-mcp.json +20 -0
  58. package/mcp-configs/dev-platform/mcp-echarts.json +20 -0
  59. package/mcp-configs/dev-platform/panel-viz-mcp.json +20 -0
  60. package/mcp-configs/dev-platform/paperbanana.json +20 -0
  61. package/mcp-configs/dev-platform/texflow-mcp.json +20 -0
  62. package/mcp-configs/dev-platform/texmcp.json +20 -0
  63. package/mcp-configs/dev-platform/typst-mcp.json +21 -0
  64. package/mcp-configs/dev-platform/vizro-mcp.json +20 -0
  65. package/mcp-configs/email/email-mcp.json +40 -0
  66. package/mcp-configs/email/gmail-mcp.json +37 -0
  67. package/mcp-configs/note-knowledge/local-faiss-mcp.json +21 -0
  68. package/mcp-configs/note-knowledge/mcp-memory-service.json +21 -0
  69. package/mcp-configs/note-knowledge/mcp-obsidian.json +23 -0
  70. package/mcp-configs/note-knowledge/mcp-ragdocs.json +20 -0
  71. package/mcp-configs/note-knowledge/mcp-summarizer.json +21 -0
  72. package/mcp-configs/note-knowledge/mediawiki-mcp.json +21 -0
  73. package/mcp-configs/note-knowledge/openzim-mcp.json +20 -0
  74. package/mcp-configs/note-knowledge/zettelkasten-mcp.json +21 -0
  75. package/mcp-configs/reference-mgr/academic-paper-mcp-http.json +20 -0
  76. package/mcp-configs/reference-mgr/academix.json +20 -0
  77. package/mcp-configs/reference-mgr/arxiv-research-mcp.json +21 -0
  78. package/mcp-configs/reference-mgr/google-scholar-abstract-mcp.json +19 -0
  79. package/mcp-configs/reference-mgr/google-scholar-mcp.json +20 -0
  80. package/mcp-configs/reference-mgr/mcp-paperswithcode.json +21 -0
  81. package/mcp-configs/reference-mgr/mcp-scholarly.json +20 -0
  82. package/mcp-configs/reference-mgr/mcp-simple-arxiv.json +20 -0
  83. package/mcp-configs/reference-mgr/mcp-simple-pubmed.json +20 -0
  84. package/mcp-configs/reference-mgr/mcp-zotero.json +21 -0
  85. package/mcp-configs/reference-mgr/mendeley-mcp.json +20 -0
  86. package/mcp-configs/reference-mgr/ncbi-mcp-server.json +22 -0
  87. package/mcp-configs/reference-mgr/onecite.json +21 -0
  88. package/mcp-configs/reference-mgr/paper-search-mcp.json +21 -0
  89. package/mcp-configs/reference-mgr/pubmed-search-mcp.json +21 -0
  90. package/mcp-configs/reference-mgr/scholar-mcp.json +21 -0
  91. package/mcp-configs/reference-mgr/scholar-multi-mcp.json +21 -0
  92. package/mcp-configs/reference-mgr/seerai.json +21 -0
  93. package/mcp-configs/reference-mgr/semantic-scholar-fastmcp.json +21 -0
  94. package/mcp-configs/reference-mgr/sourcelibrary.json +20 -0
  95. package/mcp-configs/registry.json +178 -149
  96. package/mcp-configs/repository/dataverse-mcp.json +33 -0
  97. package/mcp-configs/repository/huggingface-mcp.json +29 -0
  98. package/openclaw.plugin.json +2 -2
  99. package/package.json +2 -2
  100. package/skills/analysis/dataviz/algorithm-visualizer-guide/SKILL.md +259 -0
  101. package/skills/analysis/dataviz/bokeh-visualization-guide/SKILL.md +270 -0
  102. package/skills/analysis/dataviz/chart-image-generator/SKILL.md +229 -0
  103. package/skills/analysis/dataviz/citation-map-guide/SKILL.md +184 -0
  104. package/skills/analysis/dataviz/d3-visualization-guide/SKILL.md +281 -0
  105. package/skills/analysis/dataviz/data-visualization-principles/SKILL.md +171 -0
  106. package/skills/analysis/dataviz/echarts-visualization-guide/SKILL.md +250 -0
  107. package/skills/analysis/dataviz/metabase-analytics-guide/SKILL.md +242 -0
  108. package/skills/analysis/dataviz/plotly-interactive-guide/SKILL.md +266 -0
  109. package/skills/analysis/dataviz/redash-analytics-guide/SKILL.md +284 -0
  110. package/skills/analysis/econometrics/econml-causal-guide/SKILL.md +163 -0
  111. package/skills/analysis/econometrics/empirical-paper-analysis/SKILL.md +192 -0
  112. package/skills/analysis/econometrics/mostly-harmless-guide/SKILL.md +139 -0
  113. package/skills/analysis/econometrics/panel-data-analyst/SKILL.md +259 -0
  114. package/skills/analysis/econometrics/panel-data-regression-workflow/SKILL.md +267 -0
  115. package/skills/analysis/econometrics/python-causality-guide/SKILL.md +134 -0
  116. package/skills/analysis/econometrics/stata-accounting-guide/SKILL.md +269 -0
  117. package/skills/analysis/econometrics/stata-analyst-guide/SKILL.md +245 -0
  118. package/skills/analysis/econometrics/stata-reference-guide/SKILL.md +293 -0
  119. package/skills/analysis/statistics/data-anomaly-detection/SKILL.md +157 -0
  120. package/skills/analysis/statistics/general-statistics-guide/SKILL.md +226 -0
  121. package/skills/analysis/statistics/infiagent-benchmark-guide/SKILL.md +106 -0
  122. package/skills/analysis/statistics/ml-experiment-tracker/SKILL.md +212 -0
  123. package/skills/analysis/statistics/pywayne-statistics-guide/SKILL.md +192 -0
  124. package/skills/analysis/statistics/quantitative-methods-guide/SKILL.md +193 -0
  125. package/skills/analysis/statistics/senior-data-scientist-guide/SKILL.md +223 -0
  126. package/skills/analysis/wrangling/claude-data-analysis-guide/SKILL.md +100 -0
  127. package/skills/analysis/wrangling/csv-data-analyzer/SKILL.md +170 -0
  128. package/skills/analysis/wrangling/data-cleaning-pipeline/SKILL.md +266 -0
  129. package/skills/analysis/wrangling/data-cog-guide/SKILL.md +178 -0
  130. package/skills/analysis/wrangling/open-data-scientist-guide/SKILL.md +197 -0
  131. package/skills/analysis/wrangling/stata-data-cleaning/SKILL.md +276 -0
  132. package/skills/analysis/wrangling/streamline-analyst-guide/SKILL.md +119 -0
  133. package/skills/analysis/wrangling/survey-data-processing/SKILL.md +298 -0
  134. package/skills/domains/ai-ml/ai-agent-papers-guide/SKILL.md +146 -0
  135. package/skills/domains/ai-ml/ai-model-benchmarking/SKILL.md +209 -0
  136. package/skills/domains/ai-ml/annotated-dl-papers-guide/SKILL.md +159 -0
  137. package/skills/domains/ai-ml/anomaly-detection-papers-guide/SKILL.md +167 -0
  138. package/skills/domains/ai-ml/autonomous-agents-papers-guide/SKILL.md +178 -0
  139. package/skills/domains/ai-ml/dl-transformer-finetune/SKILL.md +239 -0
  140. package/skills/domains/ai-ml/domain-adaptation-papers-guide/SKILL.md +173 -0
  141. package/skills/domains/ai-ml/generative-ai-guide/SKILL.md +146 -0
  142. package/skills/domains/ai-ml/graph-learning-papers-guide/SKILL.md +125 -0
  143. package/skills/domains/ai-ml/huggingface-inference-guide/SKILL.md +196 -0
  144. package/skills/domains/ai-ml/keras-deep-learning/SKILL.md +210 -0
  145. package/skills/domains/ai-ml/kolmogorov-arnold-networks-guide/SKILL.md +185 -0
  146. package/skills/domains/ai-ml/llm-from-scratch-guide/SKILL.md +124 -0
  147. package/skills/domains/ai-ml/ml-pipeline-guide/SKILL.md +295 -0
  148. package/skills/domains/ai-ml/nlp-toolkit-guide/SKILL.md +247 -0
  149. package/skills/domains/ai-ml/npcpy-research-guide/SKILL.md +137 -0
  150. package/skills/domains/ai-ml/pytorch-guide/SKILL.md +281 -0
  151. package/skills/domains/ai-ml/pytorch-lightning-guide/SKILL.md +244 -0
  152. package/skills/domains/ai-ml/responsible-ai-guide/SKILL.md +126 -0
  153. package/skills/domains/ai-ml/tensorflow-guide/SKILL.md +241 -0
  154. package/skills/domains/ai-ml/vmas-simulator-guide/SKILL.md +129 -0
  155. package/skills/domains/biomedical/bioagents-guide/SKILL.md +308 -0
  156. package/skills/domains/biomedical/clawbio-guide/SKILL.md +167 -0
  157. package/skills/domains/biomedical/clinical-dialogue-agents-guide/SKILL.md +145 -0
  158. package/skills/domains/biomedical/ena-sequence-api/SKILL.md +175 -0
  159. package/skills/domains/biomedical/genomas-guide/SKILL.md +126 -0
  160. package/skills/domains/biomedical/genotex-benchmark-guide/SKILL.md +125 -0
  161. package/skills/domains/biomedical/med-researcher-guide/SKILL.md +161 -0
  162. package/skills/domains/biomedical/med-researcher-r1-guide/SKILL.md +146 -0
  163. package/skills/domains/biomedical/medgeclaw-guide/SKILL.md +345 -0
  164. package/skills/domains/biomedical/medical-imaging-guide/SKILL.md +305 -0
  165. package/skills/domains/biomedical/ncbi-blast-api/SKILL.md +195 -0
  166. package/skills/domains/biomedical/ncbi-datasets-api/SKILL.md +220 -0
  167. package/skills/domains/biomedical/quickgo-api/SKILL.md +181 -0
  168. package/skills/domains/business/architecture-design-guide/SKILL.md +279 -0
  169. package/skills/domains/business/innovation-management-guide/SKILL.md +257 -0
  170. package/skills/domains/business/operations-research-guide/SKILL.md +258 -0
  171. package/skills/domains/business/xpert-bi-guide/SKILL.md +84 -0
  172. package/skills/domains/chemistry/cactus-cheminformatics-guide/SKILL.md +89 -0
  173. package/skills/domains/chemistry/chemeagle-guide/SKILL.md +147 -0
  174. package/skills/domains/chemistry/chemgraph-agent-guide/SKILL.md +120 -0
  175. package/skills/domains/chemistry/molecular-dynamics-guide/SKILL.md +237 -0
  176. package/skills/domains/chemistry/pubchem-api-guide/SKILL.md +180 -0
  177. package/skills/domains/chemistry/spectroscopy-analysis-guide/SKILL.md +290 -0
  178. package/skills/domains/cs/ai-security-papers-guide/SKILL.md +103 -0
  179. package/skills/domains/cs/code-llm-papers-guide/SKILL.md +131 -0
  180. package/skills/domains/cs/distributed-systems-guide/SKILL.md +268 -0
  181. package/skills/domains/cs/formal-verification-guide/SKILL.md +298 -0
  182. package/skills/domains/cs/gaussian-splatting-papers-guide/SKILL.md +158 -0
  183. package/skills/domains/cs/llm-aiops-guide/SKILL.md +70 -0
  184. package/skills/domains/cs/software-heritage-api/SKILL.md +200 -0
  185. package/skills/domains/ecology/species-distribution-guide/SKILL.md +343 -0
  186. package/skills/domains/economics/imf-data-api-guide/SKILL.md +174 -0
  187. package/skills/domains/economics/nber-working-papers-api/SKILL.md +177 -0
  188. package/skills/domains/economics/post-labor-economics/SKILL.md +254 -0
  189. package/skills/domains/economics/pricing-psychology-guide/SKILL.md +273 -0
  190. package/skills/domains/economics/repec-economics-api/SKILL.md +188 -0
  191. package/skills/domains/economics/world-bank-data-guide/SKILL.md +179 -0
  192. package/skills/domains/education/academic-study-methods/SKILL.md +228 -0
  193. package/skills/domains/education/assessment-design-guide/SKILL.md +213 -0
  194. package/skills/domains/education/educational-research-methods/SKILL.md +179 -0
  195. package/skills/domains/education/edumcp-guide/SKILL.md +74 -0
  196. package/skills/domains/education/mooc-analytics-guide/SKILL.md +206 -0
  197. package/skills/domains/education/open-syllabus-api/SKILL.md +171 -0
  198. package/skills/domains/finance/akshare-finance-data/SKILL.md +207 -0
  199. package/skills/domains/finance/finsight-research-guide/SKILL.md +113 -0
  200. package/skills/domains/finance/options-analytics-agent-guide/SKILL.md +117 -0
  201. package/skills/domains/finance/portfolio-optimization-guide/SKILL.md +279 -0
  202. package/skills/domains/finance/risk-modeling-guide/SKILL.md +260 -0
  203. package/skills/domains/finance/stata-accounting-research/SKILL.md +372 -0
  204. package/skills/domains/geoscience/climate-modeling-guide/SKILL.md +215 -0
  205. package/skills/domains/geoscience/pangaea-data-api/SKILL.md +197 -0
  206. package/skills/domains/geoscience/satellite-remote-sensing/SKILL.md +193 -0
  207. package/skills/domains/geoscience/seismology-data-guide/SKILL.md +208 -0
  208. package/skills/domains/humanities/digital-humanities-methods/SKILL.md +232 -0
  209. package/skills/domains/humanities/ethical-philosophy-guide/SKILL.md +244 -0
  210. package/skills/domains/humanities/history-research-guide/SKILL.md +260 -0
  211. package/skills/domains/humanities/political-history-guide/SKILL.md +241 -0
  212. package/skills/domains/law/caselaw-access-api/SKILL.md +149 -0
  213. package/skills/domains/law/legal-agent-skills-guide/SKILL.md +132 -0
  214. package/skills/domains/law/legal-nlp-guide/SKILL.md +236 -0
  215. package/skills/domains/law/legal-research-methods/SKILL.md +190 -0
  216. package/skills/domains/law/opencontracts-guide/SKILL.md +168 -0
  217. package/skills/domains/law/patent-analysis-guide/SKILL.md +257 -0
  218. package/skills/domains/law/regulatory-compliance-guide/SKILL.md +267 -0
  219. package/skills/domains/math/lean-theorem-proving-guide/SKILL.md +140 -0
  220. package/skills/domains/math/symbolic-computation-guide/SKILL.md +263 -0
  221. package/skills/domains/math/topology-data-analysis/SKILL.md +305 -0
  222. package/skills/domains/pharma/clinical-trial-design-guide/SKILL.md +271 -0
  223. package/skills/domains/pharma/drug-target-interaction/SKILL.md +242 -0
  224. package/skills/domains/pharma/madd-drug-discovery-guide/SKILL.md +153 -0
  225. package/skills/domains/pharma/pharmacovigilance-guide/SKILL.md +216 -0
  226. package/skills/domains/physics/astrophysics-data-guide/SKILL.md +305 -0
  227. package/skills/domains/physics/particle-physics-guide/SKILL.md +287 -0
  228. package/skills/domains/social-science/ipums-microdata-api/SKILL.md +211 -0
  229. package/skills/domains/social-science/network-analysis-guide/SKILL.md +310 -0
  230. package/skills/domains/social-science/psychology-research-guide/SKILL.md +270 -0
  231. package/skills/domains/social-science/sociology-research-guide/SKILL.md +238 -0
  232. package/skills/domains/social-science/sociology-research-methods/SKILL.md +181 -0
  233. package/skills/literature/discovery/arxiv-paper-monitoring/SKILL.md +233 -0
  234. package/skills/literature/discovery/paper-recommendation-guide/SKILL.md +120 -0
  235. package/skills/literature/discovery/papers-we-love-guide/SKILL.md +169 -0
  236. package/skills/literature/discovery/semantic-paper-radar/SKILL.md +144 -0
  237. package/skills/literature/discovery/zotero-arxiv-daily-guide/SKILL.md +94 -0
  238. package/skills/literature/fulltext/bioc-pmc-api/SKILL.md +146 -0
  239. package/skills/literature/fulltext/core-api-guide/SKILL.md +144 -0
  240. package/skills/literature/fulltext/dataverse-api/SKILL.md +215 -0
  241. package/skills/literature/fulltext/hal-archive-api/SKILL.md +218 -0
  242. package/skills/literature/fulltext/institutional-repository-guide/SKILL.md +212 -0
  243. package/skills/literature/fulltext/open-access-mining-guide/SKILL.md +341 -0
  244. package/skills/literature/fulltext/osf-api/SKILL.md +212 -0
  245. package/skills/literature/fulltext/pmc-ftp-bulk-download/SKILL.md +182 -0
  246. package/skills/literature/fulltext/zotero-ai-butler-guide/SKILL.md +166 -0
  247. package/skills/literature/fulltext/zotero-scihub-guide/SKILL.md +168 -0
  248. package/skills/literature/metadata/academic-paper-summarizer/SKILL.md +101 -0
  249. package/skills/literature/metadata/bibliometrix-guide/SKILL.md +164 -0
  250. package/skills/literature/metadata/crossref-event-data-api/SKILL.md +183 -0
  251. package/skills/literature/metadata/doi-content-negotiation/SKILL.md +202 -0
  252. package/skills/literature/metadata/orkg-api/SKILL.md +153 -0
  253. package/skills/literature/metadata/plumx-metrics-api/SKILL.md +188 -0
  254. package/skills/literature/metadata/ror-organization-api/SKILL.md +208 -0
  255. package/skills/literature/metadata/sophosia-reference-guide/SKILL.md +110 -0
  256. package/skills/literature/metadata/viaf-authority-api/SKILL.md +209 -0
  257. package/skills/literature/metadata/wikidata-api-guide/SKILL.md +156 -0
  258. package/skills/literature/metadata/zoplicate-dedup-guide/SKILL.md +147 -0
  259. package/skills/literature/metadata/zotero-actions-tags-guide/SKILL.md +212 -0
  260. package/skills/literature/metadata/zotmoov-guide/SKILL.md +120 -0
  261. package/skills/literature/metadata/zutilo-guide/SKILL.md +140 -0
  262. package/skills/literature/search/arxiv-batch-reporting/SKILL.md +133 -0
  263. package/skills/literature/search/arxiv-cli-tools/SKILL.md +172 -0
  264. package/skills/literature/search/arxiv-osiris/SKILL.md +199 -0
  265. package/skills/literature/search/arxiv-paper-processor/SKILL.md +141 -0
  266. package/skills/literature/search/baidu-scholar-guide/SKILL.md +110 -0
  267. package/skills/literature/search/base-academic-search/SKILL.md +196 -0
  268. package/skills/literature/search/chatpaper-guide/SKILL.md +122 -0
  269. package/skills/literature/search/citeseerx-api/SKILL.md +183 -0
  270. package/skills/literature/search/deep-literature-search/SKILL.md +149 -0
  271. package/skills/literature/search/deepgit-search-guide/SKILL.md +147 -0
  272. package/skills/literature/search/eric-education-api/SKILL.md +199 -0
  273. package/skills/literature/search/findpapers-guide/SKILL.md +177 -0
  274. package/skills/literature/search/ieee-xplore-api/SKILL.md +177 -0
  275. package/skills/literature/search/lens-scholarly-api/SKILL.md +211 -0
  276. package/skills/literature/search/multi-database-literature-search/SKILL.md +198 -0
  277. package/skills/literature/search/open-library-api/SKILL.md +196 -0
  278. package/skills/literature/search/open-semantic-search-guide/SKILL.md +190 -0
  279. package/skills/literature/search/openaire-api/SKILL.md +141 -0
  280. package/skills/literature/search/paper-search-mcp-guide/SKILL.md +107 -0
  281. package/skills/literature/search/papers-chat-guide/SKILL.md +194 -0
  282. package/skills/literature/search/pasa-paper-search-guide/SKILL.md +138 -0
  283. package/skills/literature/search/plos-open-access-api/SKILL.md +203 -0
  284. package/skills/literature/search/scielo-api/SKILL.md +182 -0
  285. package/skills/literature/search/share-research-api/SKILL.md +129 -0
  286. package/skills/literature/search/worldcat-search-api/SKILL.md +224 -0
  287. package/skills/research/automation/ai-scientist-v2-guide/SKILL.md +284 -0
  288. package/skills/research/automation/aim-experiment-guide/SKILL.md +234 -0
  289. package/skills/research/automation/claude-academic-workflow-guide/SKILL.md +202 -0
  290. package/skills/research/automation/coexist-ai-guide/SKILL.md +149 -0
  291. package/skills/research/automation/datagen-research-guide/SKILL.md +131 -0
  292. package/skills/research/automation/foam-agent-guide/SKILL.md +203 -0
  293. package/skills/research/automation/kedro-pipeline-guide/SKILL.md +216 -0
  294. package/skills/research/automation/mle-agent-guide/SKILL.md +139 -0
  295. package/skills/research/automation/paper-to-agent-guide/SKILL.md +116 -0
  296. package/skills/research/automation/rd-agent-guide/SKILL.md +246 -0
  297. package/skills/research/automation/research-paper-orchestrator/SKILL.md +254 -0
  298. package/skills/research/deep-research/academic-deep-research/SKILL.md +190 -0
  299. package/skills/research/deep-research/auto-deep-research-guide/SKILL.md +141 -0
  300. package/skills/research/deep-research/cognitive-kernel-guide/SKILL.md +200 -0
  301. package/skills/research/deep-research/corvus-research-guide/SKILL.md +132 -0
  302. package/skills/research/deep-research/deep-research-pro/SKILL.md +213 -0
  303. package/skills/research/deep-research/deep-research-work/SKILL.md +204 -0
  304. package/skills/research/deep-research/deep-searcher-guide/SKILL.md +253 -0
  305. package/skills/research/deep-research/gpt-researcher-guide/SKILL.md +191 -0
  306. package/skills/research/deep-research/in-depth-research-guide/SKILL.md +205 -0
  307. package/skills/research/deep-research/khoj-research-guide/SKILL.md +200 -0
  308. package/skills/research/deep-research/kosmos-scientist-guide/SKILL.md +185 -0
  309. package/skills/research/deep-research/llm-scientific-discovery-guide/SKILL.md +178 -0
  310. package/skills/research/deep-research/local-deep-research-guide/SKILL.md +253 -0
  311. package/skills/research/deep-research/open-researcher-guide/SKILL.md +138 -0
  312. package/skills/research/deep-research/tongyi-deep-research-guide/SKILL.md +217 -0
  313. package/skills/research/funding/eu-horizon-guide/SKILL.md +244 -0
  314. package/skills/research/funding/grant-budget-guide/SKILL.md +284 -0
  315. package/skills/research/funding/nih-reporter-api-guide/SKILL.md +166 -0
  316. package/skills/research/funding/nsf-award-api-guide/SKILL.md +133 -0
  317. package/skills/research/methodology/academic-mentor-guide/SKILL.md +169 -0
  318. package/skills/research/methodology/claude-scientific-guide/SKILL.md +122 -0
  319. package/skills/research/methodology/deep-innovator-guide/SKILL.md +242 -0
  320. package/skills/research/methodology/osf-api-guide/SKILL.md +165 -0
  321. package/skills/research/methodology/parsifal-slr-guide/SKILL.md +154 -0
  322. package/skills/research/methodology/research-paper-kb/SKILL.md +263 -0
  323. package/skills/research/methodology/research-pipeline-units-guide/SKILL.md +169 -0
  324. package/skills/research/methodology/research-town-guide/SKILL.md +263 -0
  325. package/skills/research/methodology/slr-automation-guide/SKILL.md +235 -0
  326. package/skills/research/paper-review/automated-review-guide/SKILL.md +281 -0
  327. package/skills/research/paper-review/latte-review-guide/SKILL.md +175 -0
  328. package/skills/research/paper-review/paper-compare-guide/SKILL.md +238 -0
  329. package/skills/research/paper-review/paper-critique-framework/SKILL.md +181 -0
  330. package/skills/research/paper-review/paper-digest-guide/SKILL.md +240 -0
  331. package/skills/research/paper-review/paper-research-assistant/SKILL.md +231 -0
  332. package/skills/research/paper-review/research-quality-filter/SKILL.md +261 -0
  333. package/skills/research/paper-review/review-response-guide/SKILL.md +275 -0
  334. package/skills/tools/code-exec/contextplus-mcp-guide/SKILL.md +110 -0
  335. package/skills/tools/code-exec/google-colab-guide/SKILL.md +276 -0
  336. package/skills/tools/code-exec/kaggle-api-guide/SKILL.md +216 -0
  337. package/skills/tools/code-exec/overleaf-cli-guide/SKILL.md +279 -0
  338. package/skills/tools/diagram/clawphd-guide/SKILL.md +149 -0
  339. package/skills/tools/diagram/code-flow-visualizer/SKILL.md +197 -0
  340. package/skills/tools/diagram/excalidraw-diagram-guide/SKILL.md +170 -0
  341. package/skills/tools/diagram/json-data-visualizer/SKILL.md +270 -0
  342. package/skills/tools/diagram/kroki-diagram-api/SKILL.md +198 -0
  343. package/skills/tools/diagram/mermaid-architect-guide/SKILL.md +219 -0
  344. package/skills/tools/diagram/scientific-graphical-abstract/SKILL.md +201 -0
  345. package/skills/tools/diagram/tldraw-whiteboard-guide/SKILL.md +397 -0
  346. package/skills/tools/document/docsgpt-guide/SKILL.md +130 -0
  347. package/skills/tools/document/large-document-reader/SKILL.md +202 -0
  348. package/skills/tools/document/md2pdf-xelatex/SKILL.md +212 -0
  349. package/skills/tools/document/openpaper-guide/SKILL.md +232 -0
  350. package/skills/tools/document/paper-parse-guide/SKILL.md +243 -0
  351. package/skills/tools/document/weknora-guide/SKILL.md +216 -0
  352. package/skills/tools/document/zotero-addon-market-guide/SKILL.md +108 -0
  353. package/skills/tools/document/zotero-night-theme-guide/SKILL.md +142 -0
  354. package/skills/tools/document/zotero-style-guide/SKILL.md +217 -0
  355. package/skills/tools/knowledge-graph/citation-network-builder/SKILL.md +244 -0
  356. package/skills/tools/knowledge-graph/concept-map-generator/SKILL.md +284 -0
  357. package/skills/tools/knowledge-graph/graphiti-guide/SKILL.md +219 -0
  358. package/skills/tools/knowledge-graph/mimir-memory-guide/SKILL.md +135 -0
  359. package/skills/tools/knowledge-graph/notero-zotero-notion-guide/SKILL.md +187 -0
  360. package/skills/tools/knowledge-graph/open-webui-tools-guide/SKILL.md +156 -0
  361. package/skills/tools/knowledge-graph/openspg-guide/SKILL.md +210 -0
  362. package/skills/tools/knowledge-graph/paperpile-notion-guide/SKILL.md +84 -0
  363. package/skills/tools/knowledge-graph/zotero-markdb-connect-guide/SKILL.md +162 -0
  364. package/skills/tools/ocr-translate/latex-translation-guide/SKILL.md +176 -0
  365. package/skills/tools/ocr-translate/math-equation-renderer/SKILL.md +198 -0
  366. package/skills/tools/ocr-translate/pdf-math-translate-guide/SKILL.md +141 -0
  367. package/skills/tools/ocr-translate/zotero-pdf-translate-guide/SKILL.md +95 -0
  368. package/skills/tools/ocr-translate/zotero-pdf2zh-guide/SKILL.md +143 -0
  369. package/skills/tools/scraping/dataset-finder-guide/SKILL.md +253 -0
  370. package/skills/tools/scraping/easy-spider-guide/SKILL.md +250 -0
  371. package/skills/tools/scraping/google-scholar-scraper/SKILL.md +255 -0
  372. package/skills/tools/scraping/repository-harvesting-guide/SKILL.md +310 -0
  373. package/skills/writing/citation/academic-citation-manager/SKILL.md +314 -0
  374. package/skills/writing/citation/academic-citation-manager-guide/SKILL.md +182 -0
  375. package/skills/writing/citation/citation-assistant-skill/SKILL.md +192 -0
  376. package/skills/writing/citation/jabref-reference-guide/SKILL.md +127 -0
  377. package/skills/writing/citation/jasminum-zotero-guide/SKILL.md +103 -0
  378. package/skills/writing/citation/mendeley-api/SKILL.md +231 -0
  379. package/skills/writing/citation/obsidian-citation-guide/SKILL.md +164 -0
  380. package/skills/writing/citation/obsidian-zotero-guide/SKILL.md +137 -0
  381. package/skills/writing/citation/onecite-reference-guide/SKILL.md +168 -0
  382. package/skills/writing/citation/papersgpt-zotero-guide/SKILL.md +132 -0
  383. package/skills/writing/citation/papis-cli-guide/SKILL.md +213 -0
  384. package/skills/writing/citation/zotero-better-bibtex-guide/SKILL.md +107 -0
  385. package/skills/writing/citation/zotero-better-notes-guide/SKILL.md +121 -0
  386. package/skills/writing/citation/zotero-gpt-guide/SKILL.md +111 -0
  387. package/skills/writing/citation/zotero-mcp-guide/SKILL.md +164 -0
  388. package/skills/writing/citation/zotero-mdnotes-guide/SKILL.md +162 -0
  389. package/skills/writing/citation/zotero-reference-guide/SKILL.md +139 -0
  390. package/skills/writing/citation/zotero-scholar-guide/SKILL.md +294 -0
  391. package/skills/writing/citation/zotfile-attachment-guide/SKILL.md +140 -0
  392. package/skills/writing/composition/ml-paper-writing/SKILL.md +163 -0
  393. package/skills/writing/composition/opendraft-thesis-guide/SKILL.md +200 -0
  394. package/skills/writing/composition/paper-debugger-guide/SKILL.md +143 -0
  395. package/skills/writing/composition/paperforge-guide/SKILL.md +205 -0
  396. package/skills/writing/composition/research-paper-writer/SKILL.md +226 -0
  397. package/skills/writing/composition/scientific-writing-resources/SKILL.md +151 -0
  398. package/skills/writing/composition/scientific-writing-wrapper/SKILL.md +153 -0
  399. package/skills/writing/latex/academic-writing-latex/SKILL.md +285 -0
  400. package/skills/writing/latex/latex-drawing-collection/SKILL.md +154 -0
  401. package/skills/writing/latex/latex-templates-collection/SKILL.md +159 -0
  402. package/skills/writing/latex/md-to-pdf-academic/SKILL.md +230 -0
  403. package/skills/writing/latex/tex-render-guide/SKILL.md +243 -0
  404. package/skills/writing/polish/academic-tone-guide/SKILL.md +209 -0
  405. package/skills/writing/polish/chinese-text-humanizer/SKILL.md +140 -0
  406. package/skills/writing/polish/conciseness-editing-guide/SKILL.md +225 -0
  407. package/skills/writing/polish/paper-polish-guide/SKILL.md +160 -0
  408. package/skills/writing/templates/arxiv-preprint-template/SKILL.md +184 -0
  409. package/skills/writing/templates/elegant-paper-template/SKILL.md +141 -0
  410. package/skills/writing/templates/graphical-abstract-guide/SKILL.md +183 -0
  411. package/skills/writing/templates/novathesis-guide/SKILL.md +152 -0
  412. package/skills/writing/templates/scientific-article-pdf/SKILL.md +261 -0
  413. package/skills/writing/templates/sjtuthesis-guide/SKILL.md +197 -0
  414. package/skills/writing/templates/thuthesis-guide/SKILL.md +181 -0
  415. package/skills/literature/fulltext/repository-harvesting-guide/SKILL.md +0 -207
@@ -0,0 +1,171 @@
1
+ ---
2
+ name: data-visualization-principles
3
+ description: "Design principles for creating effective and honest data visualizations"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "📊"
7
+ category: "analysis"
8
+ subcategory: "dataviz"
9
+ keywords: ["data visualization", "chart design", "visual encoding", "chart selection", "color theory", "publication figures"]
10
+ source: "https://clawhub.ai/data-visualization"
11
+ ---
12
+
13
+ # Data Visualization Design Principles
14
+
15
+ ## Overview
16
+
17
+ Effective data visualization reveals patterns, communicates findings, and supports evidence-based arguments. Poor visualization obscures or misleads. This guide covers the fundamental principles of visual encoding, chart type selection, color usage, and common pitfalls — applicable to any plotting tool (matplotlib, ggplot2, Stata, Excel, D3.js).
18
+
19
+ ## Visual Encoding Hierarchy
20
+
21
+ Not all visual channels are created equal. Humans perceive some encodings more accurately than others:
22
+
23
+ ```
24
+ Most accurate (use for primary comparisons):
25
+ 1. Position on a common scale (bar chart, dot plot)
26
+ 2. Position on non-aligned scales (small multiples)
27
+ 3. Length (bar chart)
28
+ 4. Angle / Slope (line chart trends)
29
+
30
+ Moderately accurate:
31
+ 5. Area (bubble chart — but easily misjudged)
32
+ 6. Volume (3D — almost always misleading, avoid)
33
+ 7. Color saturation / luminance (heatmap)
34
+
35
+ Least accurate (use for categorical grouping only):
36
+ 8. Color hue (distinguishing categories, not quantities)
37
+ 9. Shape (point markers — circle vs. triangle)
38
+ 10. Texture / Pattern (rarely useful)
39
+ ```
40
+
41
+ **Implication**: Encode your most important comparison as position, not as color or area.
42
+
43
+ ## Chart Selection Guide
44
+
45
+ | Data Relationship | Best Chart | Avoid |
46
+ |-------------------|-----------|-------|
47
+ | **Compare values** across categories | Bar chart (horizontal for many categories) | Pie chart (hard to compare slices) |
48
+ | **Show distribution** of one variable | Histogram, density plot, box plot | Bar chart of means (hides distribution) |
49
+ | **Compare distributions** across groups | Violin plot, ridgeline plot, strip plot | Multiple overlapping histograms |
50
+ | **Show trend** over time | Line chart | Bar chart (for continuous time) |
51
+ | **Show relationship** between 2 variables | Scatter plot | Line chart (implies ordering) |
52
+ | **Show composition** (parts of whole) | Stacked bar (absolute) or 100% bar (relative) | Pie chart, 3D pie chart |
53
+ | **Show correlation matrix** | Heatmap with numbers | Scatter matrix (too many panels) |
54
+ | **Compare many metrics** per item | Radar chart (sparingly), parallel coordinates | Multiple bar charts |
55
+ | **Show geographic patterns** | Choropleth map, dot map | 3D terrain maps |
56
+ | **Show network structure** | Node-edge graph, adjacency matrix | Overly dense hairball graphs |
57
+
58
+ ## Design Rules
59
+
60
+ ### Rule 1: Maximize Data-Ink Ratio
61
+
62
+ Remove everything that doesn't communicate data:
63
+
64
+ ```
65
+ Remove:
66
+ ✗ Background grid (or make very light gray)
67
+ ✗ 3D effects on 2D data
68
+ ✗ Decorative elements (clipart, unnecessary icons)
69
+ ✗ Redundant legends (if only one series)
70
+ ✗ Box around the plot (chart junk)
71
+
72
+ Keep:
73
+ ✓ Data points / bars / lines
74
+ ✓ Axis labels with units
75
+ ✓ Title that states the finding (not just "Figure 1")
76
+ ✓ Direct labels on data (instead of legend when possible)
77
+ ```
78
+
79
+ ### Rule 2: Start Y-Axis at Zero (for Bar Charts)
80
+
81
+ ```
82
+ Bar chart: ALWAYS start at 0 (bars encode length)
83
+ Line chart: Starting at 0 is optional (lines encode slope/trend)
84
+ Exception: If all values are close (e.g., 98-102), show the relevant range
85
+ but clearly mark the broken axis
86
+ ```
87
+
88
+ ### Rule 3: Use Informative Titles
89
+
90
+ ```
91
+ Bad: "Figure 3: Results"
92
+ Bad: "Figure 3: Accuracy by Method"
93
+ Good: "Figure 3: Our method improves accuracy by 12% over the best baseline"
94
+ Best: "Our method (BERT-RAG) achieves 89.2% accuracy, outperforming
95
+ all baselines on the SQuAD benchmark"
96
+ ```
97
+
98
+ ### Rule 4: Color Usage
99
+
100
+ ```python
101
+ # Qualitative palette (categorical data — 2-8 categories)
102
+ # Use colorblind-friendly palettes
103
+ CATEGORICAL = ['#4477AA', '#EE6677', '#228833', '#CCBB44',
104
+ '#66CCEE', '#AA3377', '#BBBBBB']
105
+
106
+ # Sequential palette (ordered data — low to high)
107
+ # Single hue, varying lightness
108
+ # Use: matplotlib "viridis", "plasma", "cividis"
109
+
110
+ # Diverging palette (data with meaningful center point)
111
+ # Two hues diverging from neutral center
112
+ # Use: "RdBu" (red-blue), "BrBG" (brown-teal)
113
+
114
+ # Rules:
115
+ # - Maximum 7 colors for categorical data
116
+ # - Never use rainbow (perceptually non-uniform)
117
+ # - Test in grayscale: can you still distinguish?
118
+ # - Red-green colorblindness affects ~8% of men
119
+ ```
120
+
121
+ ## Publication-Ready Formatting
122
+
123
+ ```python
124
+ import matplotlib.pyplot as plt
125
+
126
+ # Publication-quality defaults
127
+ plt.rcParams.update({
128
+ 'font.family': 'sans-serif',
129
+ 'font.sans-serif': ['Arial', 'Helvetica'],
130
+ 'font.size': 10,
131
+ 'axes.labelsize': 11,
132
+ 'axes.titlesize': 12,
133
+ 'xtick.labelsize': 9,
134
+ 'ytick.labelsize': 9,
135
+ 'legend.fontsize': 9,
136
+ 'figure.dpi': 300,
137
+ 'savefig.dpi': 300,
138
+ 'savefig.bbox': 'tight',
139
+ 'axes.spines.top': False, # Remove top spine
140
+ 'axes.spines.right': False, # Remove right spine
141
+ 'lines.linewidth': 1.5,
142
+ 'axes.linewidth': 0.8,
143
+ })
144
+
145
+ # Single column figure (journal standard: 85mm ≈ 3.35in)
146
+ fig, ax = plt.subplots(figsize=(3.35, 2.5))
147
+
148
+ # Double column figure (170mm ≈ 6.7in)
149
+ fig, axes = plt.subplots(1, 2, figsize=(6.7, 2.5))
150
+ ```
151
+
152
+ ## Common Mistakes
153
+
154
+ | Mistake | Why It's Wrong | Fix |
155
+ |---------|---------------|-----|
156
+ | Pie chart for comparison | Humans are bad at comparing angles | Use bar chart |
157
+ | 3D bar chart | 3D perspective distorts bar heights | Use 2D bars |
158
+ | Dual y-axes | Misleading — scale choice changes the story | Two separate panels |
159
+ | Truncated y-axis on bar chart | Exaggerates differences | Start at 0 |
160
+ | Too many colors | Cognitive overload | Max 7 categories; group the rest as "Other" |
161
+ | Low resolution figures | Blurry in print | Export at 300 DPI minimum |
162
+ | Missing units | "What does the y-axis mean?" | Always label with units |
163
+ | Legend far from data | Reader must scan back and forth | Direct label the data |
164
+
165
+ ## References
166
+
167
+ - Tufte, E. R. (2001). *The Visual Display of Quantitative Information*. Graphics Press.
168
+ - Wilke, C. O. (2019). *Fundamentals of Data Visualization*. O'Reilly.
169
+ - Rougier, N. P., et al. (2014). "Ten Simple Rules for Better Figures." *PLOS Computational Biology*, 10(9).
170
+ - [ColorBrewer 2.0](https://colorbrewer2.org/)
171
+ - [Datawrapper Blog](https://blog.datawrapper.de/) — Excellent chart design advice
@@ -0,0 +1,250 @@
1
+ ---
2
+ name: echarts-visualization-guide
3
+ description: "Guide to Apache ECharts for interactive research data dashboards"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "📈"
7
+ category: "analysis"
8
+ subcategory: "dataviz"
9
+ keywords: ["ECharts", "interactive charts", "data dashboard", "Apache ECharts", "scientific charts", "research visualization"]
10
+ source: "https://github.com/apache/echarts"
11
+ ---
12
+
13
+ # Apache ECharts Visualization Guide
14
+
15
+ ## Overview
16
+
17
+ Apache ECharts is a powerful, free, and open-source interactive charting and data visualization library with over 66K stars on GitHub. Originally developed by Baidu and now an Apache Software Foundation top-level project, ECharts provides a declarative configuration-based approach to building rich, interactive visualizations that run smoothly in any modern browser.
18
+
19
+ For academic researchers, ECharts offers an excellent balance between ease of use and customization depth. Its declarative option-based API means researchers can produce complex multi-series charts, geographic visualizations, and animated transitions without writing low-level rendering code. This is particularly useful when building research dashboards or interactive supplementary materials for publications.
20
+
21
+ ECharts supports over 20 chart types out of the box, including line, bar, scatter, pie, radar, candlestick, heatmap, treemap, sunburst, parallel coordinates, sankey diagrams, and geographic maps. Its built-in support for large datasets (via progressive rendering and data sampling) makes it suitable for visualizing experimental results with hundreds of thousands of data points.
22
+
23
+ ## Basic Configuration and Chart Types
24
+
25
+ ECharts uses a declarative JSON configuration object to define charts. This approach makes it straightforward to build visualizations programmatically from research data.
26
+
27
+ ### Setting Up ECharts
28
+
29
+ ```html
30
+ <div id="chart" style="width: 800px; height: 500px;"></div>
31
+ <script src="https://cdn.jsdelivr.net/npm/echarts@5/dist/echarts.min.js"></script>
32
+ <script>
33
+ const chart = echarts.init(document.getElementById('chart'));
34
+ </script>
35
+ ```
36
+
37
+ ### Multi-Series Line Chart for Time-Series Data
38
+
39
+ ```javascript
40
+ const option = {
41
+ title: {
42
+ text: 'Gene Expression Over Time',
43
+ left: 'center',
44
+ textStyle: { fontSize: 16, fontWeight: 'bold' }
45
+ },
46
+ tooltip: {
47
+ trigger: 'axis',
48
+ formatter: params => {
49
+ let html = `<strong>Hour ${params[0].axisValue}</strong><br/>`;
50
+ params.forEach(p => {
51
+ html += `${p.marker} ${p.seriesName}: ${p.value.toFixed(3)}<br/>`;
52
+ });
53
+ return html;
54
+ }
55
+ },
56
+ legend: { data: ['Gene A', 'Gene B', 'Gene C'], bottom: 10 },
57
+ xAxis: {
58
+ type: 'category',
59
+ name: 'Time (hours)',
60
+ data: [0, 2, 4, 8, 12, 24, 48, 72]
61
+ },
62
+ yAxis: {
63
+ type: 'value',
64
+ name: 'Relative Expression',
65
+ nameLocation: 'middle',
66
+ nameGap: 50
67
+ },
68
+ series: [
69
+ {
70
+ name: 'Gene A',
71
+ type: 'line',
72
+ data: [1.0, 1.2, 2.4, 5.1, 8.3, 12.1, 10.5, 9.2],
73
+ smooth: true,
74
+ lineStyle: { width: 2 }
75
+ },
76
+ {
77
+ name: 'Gene B',
78
+ type: 'line',
79
+ data: [1.0, 0.9, 0.7, 0.5, 0.3, 0.2, 0.15, 0.1],
80
+ smooth: true,
81
+ lineStyle: { width: 2 }
82
+ },
83
+ {
84
+ name: 'Gene C',
85
+ type: 'line',
86
+ data: [1.0, 1.1, 1.3, 1.8, 3.2, 6.7, 8.9, 11.4],
87
+ smooth: true,
88
+ lineStyle: { width: 2 }
89
+ }
90
+ ]
91
+ };
92
+
93
+ chart.setOption(option);
94
+ ```
95
+
96
+ ### Scatter Plot with Error Regions
97
+
98
+ ```javascript
99
+ const scatterOption = {
100
+ title: { text: 'Treatment Response vs Dosage', left: 'center' },
101
+ xAxis: { type: 'value', name: 'Dosage (mg/kg)' },
102
+ yAxis: { type: 'value', name: 'Response Score' },
103
+ tooltip: {
104
+ formatter: p => `Dosage: ${p.value[0]}<br/>Response: ${p.value[1]}`
105
+ },
106
+ visualMap: {
107
+ min: 0, max: 100,
108
+ dimension: 2,
109
+ inRange: { color: ['#3B82F6', '#EF4444'] },
110
+ text: ['High', 'Low'],
111
+ calculable: true
112
+ },
113
+ series: [{
114
+ type: 'scatter',
115
+ symbolSize: d => Math.sqrt(d[2]) * 2,
116
+ data: experimentalData.map(d => [d.dosage, d.response, d.confidence])
117
+ }]
118
+ };
119
+ ```
120
+
121
+ ## Advanced Research Visualizations
122
+
123
+ ### Heatmap for Gene Expression Matrices
124
+
125
+ ```javascript
126
+ const heatmapOption = {
127
+ title: { text: 'Sample Correlation Matrix', left: 'center' },
128
+ tooltip: {
129
+ position: 'top',
130
+ formatter: p => {
131
+ return `${sampleNames[p.value[0]]} vs ${sampleNames[p.value[1]]}<br/>` +
132
+ `Correlation: ${p.value[2].toFixed(4)}`;
133
+ }
134
+ },
135
+ grid: { left: 120, top: 60, right: 80, bottom: 100 },
136
+ xAxis: {
137
+ type: 'category',
138
+ data: sampleNames,
139
+ axisLabel: { rotate: 45 }
140
+ },
141
+ yAxis: {
142
+ type: 'category',
143
+ data: sampleNames
144
+ },
145
+ visualMap: {
146
+ min: -1, max: 1,
147
+ calculable: true,
148
+ orient: 'vertical',
149
+ right: 10,
150
+ top: 'center',
151
+ inRange: {
152
+ color: ['#2166AC', '#F7F7F7', '#B2182B']
153
+ }
154
+ },
155
+ series: [{
156
+ type: 'heatmap',
157
+ data: correlationData,
158
+ label: { show: true, formatter: p => p.value[2].toFixed(2), fontSize: 9 },
159
+ emphasis: {
160
+ itemStyle: { shadowBlur: 10, shadowColor: 'rgba(0,0,0,0.5)' }
161
+ }
162
+ }]
163
+ };
164
+ ```
165
+
166
+ ### Radar Chart for Multi-Dimensional Comparison
167
+
168
+ ```javascript
169
+ const radarOption = {
170
+ title: { text: 'Model Performance Comparison', left: 'center' },
171
+ legend: { data: ['Model A', 'Model B', 'Baseline'], bottom: 10 },
172
+ radar: {
173
+ indicator: [
174
+ { name: 'Accuracy', max: 1.0 },
175
+ { name: 'Precision', max: 1.0 },
176
+ { name: 'Recall', max: 1.0 },
177
+ { name: 'F1 Score', max: 1.0 },
178
+ { name: 'AUC-ROC', max: 1.0 },
179
+ { name: 'Speed (norm)', max: 1.0 }
180
+ ]
181
+ },
182
+ series: [{
183
+ type: 'radar',
184
+ data: [
185
+ { value: [0.94, 0.91, 0.89, 0.90, 0.96, 0.72], name: 'Model A' },
186
+ { value: [0.92, 0.95, 0.85, 0.90, 0.94, 0.88], name: 'Model B' },
187
+ { value: [0.85, 0.82, 0.80, 0.81, 0.87, 0.95], name: 'Baseline' }
188
+ ]
189
+ }]
190
+ };
191
+ ```
192
+
193
+ ## Responsive Design and Theming
194
+
195
+ ECharts supports custom themes and responsive resizing, which is important when embedding visualizations in research web applications.
196
+
197
+ ```javascript
198
+ // Register a custom academic theme
199
+ echarts.registerTheme('academic', {
200
+ color: ['#3B82F6', '#EF4444', '#10B981', '#F59E0B', '#8B5CF6', '#EC4899'],
201
+ backgroundColor: '#FFFFFF',
202
+ textStyle: { fontFamily: 'Inter, sans-serif' },
203
+ title: { textStyle: { color: '#1F2937', fontSize: 16 } },
204
+ line: { smooth: false, symbolSize: 6 }
205
+ });
206
+
207
+ // Initialize chart with the academic theme
208
+ const chart = echarts.init(document.getElementById('chart'), 'academic');
209
+
210
+ // Handle responsive resizing
211
+ window.addEventListener('resize', () => chart.resize());
212
+ ```
213
+
214
+ ## Data Loading and Integration
215
+
216
+ ```javascript
217
+ // Load CSV data and convert to ECharts format
218
+ async function loadExperimentData(csvUrl) {
219
+ const response = await fetch(csvUrl);
220
+ const text = await response.text();
221
+ const rows = text.split('\n').slice(1);
222
+
223
+ const data = rows.map(row => {
224
+ const [sample, condition, value, error] = row.split(',');
225
+ return { sample, condition, value: parseFloat(value), error: parseFloat(error) };
226
+ });
227
+
228
+ return data;
229
+ }
230
+
231
+ // Export chart as PNG for publications
232
+ function downloadChart(chartInstance, filename) {
233
+ const url = chartInstance.getDataURL({
234
+ type: 'png',
235
+ pixelRatio: 3,
236
+ backgroundColor: '#fff'
237
+ });
238
+ const link = document.createElement('a');
239
+ link.href = url;
240
+ link.download = filename || 'chart.png';
241
+ link.click();
242
+ }
243
+ ```
244
+
245
+ ## References
246
+
247
+ - Apache ECharts official site: https://echarts.apache.org
248
+ - ECharts GitHub repository: https://github.com/apache/echarts
249
+ - ECharts examples gallery: https://echarts.apache.org/examples
250
+ - ECharts configuration handbook: https://echarts.apache.org/en/option.html
@@ -0,0 +1,242 @@
1
+ ---
2
+ name: metabase-analytics-guide
3
+ description: "Guide to Metabase for open-source research data analytics and dashboards"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "📋"
7
+ category: "analysis"
8
+ subcategory: "dataviz"
9
+ keywords: ["Metabase", "business intelligence", "SQL analytics", "data dashboard", "research analytics", "self-hosted BI"]
10
+ source: "https://github.com/metabase/metabase"
11
+ ---
12
+
13
+ # Metabase Analytics Guide
14
+
15
+ ## Overview
16
+
17
+ Metabase is a powerful open-source business intelligence and analytics tool with over 46K stars on GitHub. It allows researchers and data analysts to explore data, create visualizations, and build dashboards without writing SQL, though it fully supports custom SQL queries for advanced users. Metabase connects to a wide variety of databases and provides a browser-based interface that makes data exploration accessible to team members regardless of their technical background.
18
+
19
+ For academic research groups and labs, Metabase serves as an excellent self-hosted platform for tracking experimental data, monitoring research progress, and creating shared dashboards for collaborative projects. Its ability to connect directly to PostgreSQL, MySQL, SQLite, and many other databases means it can be pointed at existing research data stores without data migration. Researchers can set up automated reports, scheduled email digests, and shared dashboards that keep the entire team informed.
20
+
21
+ Metabase's no-code query builder is particularly valuable in interdisciplinary research teams where not all members are comfortable with SQL. Principal investigators, graduate students, and collaborators can all explore the same datasets through an intuitive visual interface while power users retain full SQL access for complex analyses.
22
+
23
+ ## Installation and Setup
24
+
25
+ ### Docker Deployment (Recommended)
26
+
27
+ ```bash
28
+ # Quick start with Docker
29
+ docker run -d -p 3000:3000 \
30
+ --name metabase \
31
+ -v metabase-data:/metabase-data \
32
+ -e MB_DB_TYPE=postgres \
33
+ -e MB_DB_DBNAME=metabase_app \
34
+ -e MB_DB_PORT=5432 \
35
+ -e MB_DB_USER=$METABASE_DB_USER \
36
+ -e MB_DB_PASS=$METABASE_DB_PASS \
37
+ -e MB_DB_HOST=db-host \
38
+ metabase/metabase
39
+
40
+ # Access at http://localhost:3000
41
+ ```
42
+
43
+ ### Docker Compose for Research Lab Setup
44
+
45
+ ```yaml
46
+ version: "3.9"
47
+ services:
48
+ metabase:
49
+ image: metabase/metabase:latest
50
+ container_name: research-metabase
51
+ ports:
52
+ - "3000:3000"
53
+ environment:
54
+ MB_DB_TYPE: postgres
55
+ MB_DB_DBNAME: metabase_app
56
+ MB_DB_PORT: 5432
57
+ MB_DB_USER: ${METABASE_DB_USER}
58
+ MB_DB_PASS: ${METABASE_DB_PASS}
59
+ MB_DB_HOST: postgres
60
+ MB_SITE_NAME: "Research Lab Analytics"
61
+ depends_on:
62
+ - postgres
63
+ volumes:
64
+ - metabase-data:/metabase-data
65
+
66
+ postgres:
67
+ image: postgres:16
68
+ environment:
69
+ POSTGRES_DB: metabase_app
70
+ POSTGRES_USER: ${POSTGRES_USER}
71
+ POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
72
+ volumes:
73
+ - pg-data:/var/lib/postgresql/data
74
+
75
+ volumes:
76
+ metabase-data:
77
+ pg-data:
78
+ ```
79
+
80
+ ## Connecting Research Databases
81
+
82
+ Metabase supports connecting to many database types commonly used in research environments.
83
+
84
+ ### Supported Data Sources for Research
85
+
86
+ - **PostgreSQL** - Primary research databases, experimental records
87
+ - **MySQL/MariaDB** - Legacy lab information management systems
88
+ - **SQLite** - Local experiment databases, embedded analytics
89
+ - **BigQuery** - Large-scale genomic or observational datasets
90
+ - **MongoDB** - Semi-structured research data, document stores
91
+ - **CSV uploads** - Quick ad-hoc analysis of exported data
92
+
93
+ ### Database Connection Configuration
94
+
95
+ Navigate to Admin > Databases > Add Database in the Metabase UI. For a typical research PostgreSQL database:
96
+
97
+ ```
98
+ Display name: Lab Experiment Database
99
+ Host: research-db.lab.university.edu
100
+ Port: 5432
101
+ Database name: experiments
102
+ Username: (use environment variable $DB_USER)
103
+ Password: (use environment variable $DB_PASS)
104
+ ```
105
+
106
+ Enable "Auto-run queries" and set "Scan frequency" to daily for research databases that update regularly.
107
+
108
+ ## Building Research Dashboards
109
+
110
+ ### Experiment Tracking Dashboard
111
+
112
+ A common research use case is tracking experiment progress and results. Here is an example SQL query for monitoring experiment completion rates:
113
+
114
+ ```sql
115
+ -- Experiment completion overview
116
+ SELECT
117
+ e.project_name,
118
+ COUNT(*) AS total_experiments,
119
+ COUNT(CASE WHEN e.status = 'completed' THEN 1 END) AS completed,
120
+ COUNT(CASE WHEN e.status = 'in_progress' THEN 1 END) AS in_progress,
121
+ COUNT(CASE WHEN e.status = 'failed' THEN 1 END) AS failed,
122
+ ROUND(
123
+ COUNT(CASE WHEN e.status = 'completed' THEN 1 END)::NUMERIC /
124
+ NULLIF(COUNT(*), 0) * 100, 1
125
+ ) AS completion_rate
126
+ FROM experiments e
127
+ WHERE e.created_at >= CURRENT_DATE - INTERVAL '90 days'
128
+ GROUP BY e.project_name
129
+ ORDER BY completion_rate DESC;
130
+ ```
131
+
132
+ ### Sample Analysis Summary
133
+
134
+ ```sql
135
+ -- Sample processing metrics
136
+ SELECT
137
+ DATE_TRUNC('week', s.processed_at) AS week,
138
+ s.sample_type,
139
+ COUNT(*) AS samples_processed,
140
+ AVG(s.quality_score) AS avg_quality,
141
+ PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY s.processing_time)
142
+ AS median_processing_hours
143
+ FROM samples s
144
+ WHERE s.processed_at >= CURRENT_DATE - INTERVAL '6 months'
145
+ GROUP BY DATE_TRUNC('week', s.processed_at), s.sample_type
146
+ ORDER BY week DESC, sample_type;
147
+ ```
148
+
149
+ ### Publication Pipeline Tracker
150
+
151
+ ```sql
152
+ -- Track manuscript progress across the lab
153
+ SELECT
154
+ p.title,
155
+ p.lead_author,
156
+ p.status,
157
+ p.target_journal,
158
+ p.submission_date,
159
+ CASE
160
+ WHEN p.status = 'draft' THEN 1
161
+ WHEN p.status = 'internal_review' THEN 2
162
+ WHEN p.status = 'submitted' THEN 3
163
+ WHEN p.status = 'revision' THEN 4
164
+ WHEN p.status = 'accepted' THEN 5
165
+ WHEN p.status = 'published' THEN 6
166
+ END AS stage_number,
167
+ CURRENT_DATE - p.last_updated AS days_since_update
168
+ FROM publications p
169
+ WHERE p.year >= EXTRACT(YEAR FROM CURRENT_DATE) - 1
170
+ ORDER BY stage_number, p.last_updated;
171
+ ```
172
+
173
+ ## Automated Reporting and Alerts
174
+
175
+ Metabase supports scheduled reports and conditional alerts, which are useful for research operations.
176
+
177
+ ### Setting Up Scheduled Reports
178
+
179
+ 1. Create a dashboard with key metrics (experiment counts, quality scores, etc.)
180
+ 2. Click the sharing icon and select "Subscriptions"
181
+ 3. Configure email delivery schedule (e.g., weekly Monday 9 AM)
182
+ 4. Add recipients from the research team
183
+
184
+ ### Alert Configuration
185
+
186
+ ```
187
+ Question: "Failed experiments in last 7 days"
188
+ Alert when: Results are above threshold (e.g., > 5 failures)
189
+ Check frequency: Daily
190
+ Notify: Lab manager email, Slack channel
191
+ ```
192
+
193
+ This allows labs to automatically detect quality issues in experimental workflows.
194
+
195
+ ## Embedding Metabase in Research Applications
196
+
197
+ Metabase supports embedding dashboards into other web applications via iframes or its embedding SDK.
198
+
199
+ ```html
200
+ <!-- Embed a dashboard in a lab portal -->
201
+ <iframe
202
+ src="http://metabase.lab.internal/public/dashboard/abc123-def456"
203
+ frameborder="0"
204
+ width="100%"
205
+ height="800"
206
+ allowtransparency
207
+ ></iframe>
208
+ ```
209
+
210
+ For authenticated embedding, use signed JWTs to control access:
211
+
212
+ ```python
213
+ import jwt
214
+ import time
215
+
216
+ embedding_secret = os.environ["METABASE_EMBEDDING_SECRET"]
217
+
218
+ payload = {
219
+ "resource": {"dashboard": 42},
220
+ "params": {"project_id": 7},
221
+ "exp": int(time.time()) + 600 # 10-minute expiry
222
+ }
223
+
224
+ signed = jwt.encode(payload, embedding_secret, algorithm="HS256")
225
+ embed_url = f"http://metabase.lab.internal/embed/dashboard/{signed}"
226
+ ```
227
+
228
+ ## Best Practices for Research Teams
229
+
230
+ - **Organize by project**: Create separate Metabase collections for each research project or grant
231
+ - **Use saved questions**: Standardize common analyses as saved questions that team members can reuse
232
+ - **Document queries**: Add descriptions to all saved questions explaining the methodology and assumptions
233
+ - **Access control**: Use Metabase groups to control which team members can view sensitive data
234
+ - **Regular backups**: Schedule database backups, especially for the Metabase application database
235
+ - **Version tracking**: Export dashboard definitions as JSON for version control alongside research code
236
+
237
+ ## References
238
+
239
+ - Metabase official documentation: https://www.metabase.com/docs
240
+ - Metabase GitHub repository: https://github.com/metabase/metabase
241
+ - Metabase embedding documentation: https://www.metabase.com/docs/latest/embedding
242
+ - Metabase API reference: https://www.metabase.com/docs/latest/api