@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,229 @@
1
+ ---
2
+ name: chart-image-generator
3
+ description: "Generate publication-quality chart images from research data"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "📉"
7
+ category: "analysis"
8
+ subcategory: "dataviz"
9
+ keywords: ["chart generation", "data visualization", "matplotlib", "publication figures", "scientific plots", "graph export"]
10
+ source: "https://github.com/AcademicSkills/chart-image-generator"
11
+ ---
12
+
13
+ # Chart Image Generator
14
+
15
+ A skill for generating publication-quality chart images from research data using Python visualization libraries. Covers chart type selection, styling for academic journals, multi-panel layouts, color accessibility, and export at the correct resolution and format for submission.
16
+
17
+ ## Overview
18
+
19
+ Creating figures for academic publications requires more than just plotting data. Journals have specific requirements for resolution (typically 300-600 DPI), file format (TIFF, EPS, PDF, or high-resolution PNG), font sizes (often 8-12pt in the final printed figure), line weights, and color accessibility. This skill automates the production of figures that meet these standards, reducing the time researchers spend on manual formatting and ensuring consistency across all figures in a manuscript.
20
+
21
+ The skill supports common chart types used in academic research: scatter plots, bar charts, line plots, box plots, violin plots, heatmaps, forest plots, Kaplan-Meier curves, and multi-panel composite figures. All examples use matplotlib and seaborn with a custom academic styling configuration.
22
+
23
+ ## Academic Figure Styling
24
+
25
+ ### Journal-Ready Style Configuration
26
+
27
+ ```python
28
+ import matplotlib.pyplot as plt
29
+ import matplotlib as mpl
30
+
31
+ def set_academic_style():
32
+ """
33
+ Configure matplotlib for publication-quality figures.
34
+ Matches common requirements for Nature, Science, PLOS, IEEE journals.
35
+ """
36
+ plt.rcParams.update({
37
+ # Font settings
38
+ 'font.family': 'sans-serif',
39
+ 'font.sans-serif': ['Arial', 'Helvetica', 'DejaVu Sans'],
40
+ 'font.size': 8,
41
+ 'axes.titlesize': 9,
42
+ 'axes.labelsize': 8,
43
+ 'xtick.labelsize': 7,
44
+ 'ytick.labelsize': 7,
45
+ 'legend.fontsize': 7,
46
+
47
+ # Line and marker settings
48
+ 'lines.linewidth': 1.0,
49
+ 'lines.markersize': 4,
50
+ 'axes.linewidth': 0.5,
51
+ 'xtick.major.width': 0.5,
52
+ 'ytick.major.width': 0.5,
53
+
54
+ # Grid and background
55
+ 'axes.grid': False,
56
+ 'axes.facecolor': 'white',
57
+ 'figure.facecolor': 'white',
58
+
59
+ # Legend
60
+ 'legend.frameon': False,
61
+ 'legend.borderpad': 0.3,
62
+
63
+ # Save settings
64
+ 'savefig.dpi': 300,
65
+ 'savefig.bbox': 'tight',
66
+ 'savefig.pad_inches': 0.05,
67
+
68
+ # Use Type 1 fonts for EPS/PDF (required by many journals)
69
+ 'pdf.fonttype': 42,
70
+ 'ps.fonttype': 42,
71
+ })
72
+
73
+ # Common journal figure widths (in inches):
74
+ SINGLE_COLUMN = 3.5 # ~89mm (Nature, Science, PLOS)
75
+ DOUBLE_COLUMN = 7.0 # ~178mm
76
+ ONE_AND_HALF = 5.5 # ~140mm
77
+ ```
78
+
79
+ ### Accessible Color Palettes
80
+
81
+ ```python
82
+ # Colorblind-safe palettes for academic figures
83
+ PALETTES = {
84
+ 'categorical_8': [
85
+ '#332288', '#88CCEE', '#44AA99', '#117733',
86
+ '#999933', '#DDCC77', '#CC6677', '#882255'
87
+ ], # Tol's qualitative palette
88
+
89
+ 'sequential': 'viridis', # Perceptually uniform
90
+
91
+ 'diverging': 'RdBu_r', # Red-Blue diverging
92
+
93
+ 'binary': ['#0072B2', '#D55E00'], # Blue and vermilion
94
+ }
95
+ ```
96
+
97
+ ## Chart Type Selection Guide
98
+
99
+ | Data Pattern | Recommended Chart | When to Use |
100
+ |-------------|------------------|-------------|
101
+ | Distribution of one variable | Histogram, KDE, violin | Showing data spread |
102
+ | Comparing groups | Box plot, violin, bar + error bars | Group differences |
103
+ | Two continuous variables | Scatter plot | Correlation, regression |
104
+ | Trends over time | Line plot | Time series, longitudinal |
105
+ | Proportions | Stacked bar, pie (sparingly) | Composition |
106
+ | Correlation matrix | Heatmap | Many variable pairs |
107
+ | Effect sizes + CIs | Forest plot | Meta-analysis, multi-model |
108
+ | Survival data | Kaplan-Meier curve | Time-to-event |
109
+
110
+ ## Generating Common Academic Charts
111
+
112
+ ### Scatter Plot with Regression Line
113
+
114
+ ```python
115
+ import numpy as np
116
+ import seaborn as sns
117
+
118
+ def scatter_with_regression(x, y, xlabel, ylabel, title, output_path,
119
+ groups=None, group_label=None):
120
+ """
121
+ Create a scatter plot with regression line and confidence interval.
122
+ """
123
+ set_academic_style()
124
+ fig, ax = plt.subplots(figsize=(SINGLE_COLUMN, SINGLE_COLUMN * 0.8))
125
+
126
+ if groups is not None:
127
+ for group_val in sorted(set(groups)):
128
+ mask = groups == group_val
129
+ ax.scatter(x[mask], y[mask], s=15, alpha=0.7, label=group_val)
130
+ ax.legend(title=group_label)
131
+ else:
132
+ ax.scatter(x, y, s=15, alpha=0.7, color=PALETTES['binary'][0])
133
+
134
+ # Add regression line
135
+ from scipy import stats
136
+ slope, intercept, r, p, se = stats.linregress(x, y)
137
+ x_line = np.linspace(x.min(), x.max(), 100)
138
+ ax.plot(x_line, slope * x_line + intercept, color='#CC6677',
139
+ linewidth=1.0, linestyle='--')
140
+
141
+ # Annotate with statistics
142
+ ax.text(0.05, 0.95, f'r = {r:.3f}\np = {p:.3f}',
143
+ transform=ax.transAxes, verticalalignment='top', fontsize=7)
144
+
145
+ ax.set_xlabel(xlabel)
146
+ ax.set_ylabel(ylabel)
147
+ ax.set_title(title)
148
+
149
+ fig.savefig(output_path, dpi=300, bbox_inches='tight')
150
+ plt.close(fig)
151
+ return output_path
152
+ ```
153
+
154
+ ### Multi-Panel Composite Figure
155
+
156
+ ```python
157
+ def create_multipanel_figure(panels: list, ncols: int = 2,
158
+ output_path: str = 'figure.pdf'):
159
+ """
160
+ Create a multi-panel figure with automatic panel labels (A, B, C, ...).
161
+
162
+ Args:
163
+ panels: List of dicts with 'plot_func', 'args', 'title'
164
+ ncols: Number of columns
165
+ output_path: Output file path
166
+ """
167
+ set_academic_style()
168
+ nrows = int(np.ceil(len(panels) / ncols))
169
+ fig, axes = plt.subplots(nrows, ncols,
170
+ figsize=(DOUBLE_COLUMN, 3.0 * nrows))
171
+ axes = axes.flatten() if hasattr(axes, 'flatten') else [axes]
172
+
173
+ for i, (ax, panel) in enumerate(zip(axes, panels)):
174
+ panel['plot_func'](ax, **panel.get('args', {}))
175
+ # Add panel label (A, B, C, ...)
176
+ ax.text(-0.15, 1.08, chr(65 + i), transform=ax.transAxes,
177
+ fontsize=11, fontweight='bold', va='top')
178
+ if 'title' in panel:
179
+ ax.set_title(panel['title'])
180
+
181
+ # Hide unused panels
182
+ for ax in axes[len(panels):]:
183
+ ax.set_visible(False)
184
+
185
+ fig.tight_layout()
186
+ fig.savefig(output_path, dpi=300, bbox_inches='tight')
187
+ plt.close(fig)
188
+ return output_path
189
+ ```
190
+
191
+ ## Export Specifications by Journal
192
+
193
+ | Journal / Publisher | Format | DPI | Max Width | Color Mode |
194
+ |--------------------|--------|-----|-----------|------------|
195
+ | Nature | TIFF, EPS, PDF | 300 | 180mm | RGB |
196
+ | Science | EPS, PDF | 300 | 174mm | RGB |
197
+ | PLOS | TIFF, EPS | 300 | 174mm | RGB |
198
+ | IEEE | EPS, PDF, PNG | 300 | 3.5in (1-col) | RGB or CMYK |
199
+ | Elsevier | TIFF, EPS, PDF | 300-600 | 190mm | RGB or CMYK |
200
+ | Springer | TIFF, EPS, PDF | 300 | 174mm | RGB or CMYK |
201
+
202
+ ### Export Function
203
+
204
+ ```python
205
+ def export_figure(fig, basename: str, formats=('pdf', 'png', 'tiff'), dpi=300):
206
+ """Export a figure in multiple formats for journal submission."""
207
+ paths = []
208
+ for fmt in formats:
209
+ path = f"{basename}.{fmt}"
210
+ fig.savefig(path, format=fmt, dpi=dpi, bbox_inches='tight',
211
+ facecolor='white', edgecolor='none')
212
+ paths.append(path)
213
+ return paths
214
+ ```
215
+
216
+ ## Best Practices
217
+
218
+ - Always use vector formats (PDF, EPS) for line art and plots; raster (TIFF, PNG) only when required.
219
+ - Set figure dimensions to the exact column width of your target journal.
220
+ - Use the same font and size across all figures in a manuscript for consistency.
221
+ - Test figures in grayscale to ensure they remain readable without color.
222
+ - Include all figure generation code in your supplementary materials for reproducibility.
223
+ - Label axes with units (e.g., "Temperature (K)") and avoid abbreviations unless defined.
224
+
225
+ ## References
226
+
227
+ - Rougier, N. P., Droettboom, M., & Borne, P. E. (2014). Ten Simple Rules for Better Figures. *PLoS Computational Biology*, 10(9).
228
+ - Tufte, E. R. (2001). *The Visual Display of Quantitative Information* (2nd ed.). Graphics Press.
229
+ - Wong, B. (2011). Color Blindness. *Nature Methods*, 8(6), 441.
@@ -0,0 +1,184 @@
1
+ ---
2
+ name: citation-map-guide
3
+ description: "Generate citation world maps from Google Scholar profiles"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "🗺️"
7
+ category: "analysis"
8
+ subcategory: "dataviz"
9
+ keywords: ["citation map", "Google Scholar", "geospatial", "academic impact", "visualization", "world map"]
10
+ source: "https://github.com/ChenLiu-1996/CitationMap"
11
+ ---
12
+
13
+ # Citation Map Guide
14
+
15
+ ## Overview
16
+
17
+ CitationMap generates geographical world maps showing where your citations come from, based on Google Scholar data. It geocodes citing authors' affiliations and plots them on an interactive map, revealing the global reach and geographical distribution of your research impact. Useful for CV enhancement, grant applications, and understanding your research's international footprint.
18
+
19
+ ## Installation
20
+
21
+ ```bash
22
+ pip install citationmap
23
+
24
+ # Or from source
25
+ git clone https://github.com/ChenLiu-1996/CitationMap.git
26
+ cd CitationMap
27
+ pip install -e .
28
+ ```
29
+
30
+ ## Usage
31
+
32
+ ```python
33
+ from citationmap import CitationMap
34
+
35
+ # Generate map from Google Scholar ID
36
+ cmap = CitationMap(scholar_id="YOUR_SCHOLAR_ID")
37
+
38
+ # Fetch citation data
39
+ cmap.fetch_citations()
40
+
41
+ print(f"Total citations: {cmap.total_citations}")
42
+ print(f"Unique citing authors: {cmap.unique_authors}")
43
+ print(f"Countries represented: {cmap.unique_countries}")
44
+
45
+ # Generate interactive map
46
+ cmap.plot_map(
47
+ output="citation_map.html",
48
+ style="heatmap", # heatmap, markers, clusters
49
+ color_by="count", # count, year, paper
50
+ )
51
+ ```
52
+
53
+ ## Map Styles
54
+
55
+ ```python
56
+ # Marker map — individual pins per institution
57
+ cmap.plot_map(
58
+ output="markers.html",
59
+ style="markers",
60
+ show_labels=True,
61
+ popup_info=["author", "paper", "year"],
62
+ )
63
+
64
+ # Heatmap — density visualization
65
+ cmap.plot_map(
66
+ output="heatmap.html",
67
+ style="heatmap",
68
+ radius=30,
69
+ blur=20,
70
+ )
71
+
72
+ # Cluster map — grouped by proximity
73
+ cmap.plot_map(
74
+ output="clusters.html",
75
+ style="clusters",
76
+ max_cluster_radius=50,
77
+ )
78
+
79
+ # Static image (for publications/CVs)
80
+ cmap.plot_static(
81
+ output="citation_map.png",
82
+ dpi=300,
83
+ projection="robinson",
84
+ figsize=(14, 8),
85
+ )
86
+ ```
87
+
88
+ ## Analysis Features
89
+
90
+ ```python
91
+ # Geographic distribution stats
92
+ stats = cmap.get_stats()
93
+
94
+ print("\nTop countries:")
95
+ for country, count in stats.top_countries[:10]:
96
+ print(f" {country}: {count} citations")
97
+
98
+ print("\nTop institutions:")
99
+ for inst, count in stats.top_institutions[:10]:
100
+ print(f" {inst}: {count} citations")
101
+
102
+ print("\nContinental distribution:")
103
+ for continent, pct in stats.continental_distribution.items():
104
+ print(f" {continent}: {pct:.1f}%")
105
+ ```
106
+
107
+ ## Time Evolution
108
+
109
+ ```python
110
+ # Animate citation spread over time
111
+ cmap.plot_animated(
112
+ output="citation_evolution.html",
113
+ time_field="year",
114
+ interval=1000, # ms per year
115
+ cumulative=True,
116
+ )
117
+
118
+ # Year-by-year breakdown
119
+ for year in range(2020, 2026):
120
+ year_stats = cmap.filter_by_year(year)
121
+ print(f"{year}: {year_stats.count} citations, "
122
+ f"{year_stats.countries} countries")
123
+ ```
124
+
125
+ ## Paper-Specific Maps
126
+
127
+ ```python
128
+ # Map for a specific paper
129
+ cmap.plot_map(
130
+ paper_title="Your Specific Paper Title",
131
+ output="paper_citations.html",
132
+ style="markers",
133
+ )
134
+
135
+ # Compare papers
136
+ papers = cmap.get_papers()
137
+ for paper in papers[:5]:
138
+ print(f"\n{paper.title} ({paper.year})")
139
+ print(f" Citations: {paper.citation_count}")
140
+ print(f" Countries: {paper.country_count}")
141
+ ```
142
+
143
+ ## Export
144
+
145
+ ```python
146
+ # Export citation data
147
+ cmap.export_csv("citations.csv")
148
+ # Columns: citing_author, affiliation, country, lat, lon,
149
+ # citing_paper, cited_paper, year
150
+
151
+ # Export for GIS software
152
+ cmap.export_geojson("citations.geojson")
153
+
154
+ # Export summary statistics
155
+ cmap.export_report("citation_report.md")
156
+ ```
157
+
158
+ ## Configuration
159
+
160
+ ```python
161
+ cmap = CitationMap(
162
+ scholar_id="YOUR_ID",
163
+ config={
164
+ "geocoding_service": "nominatim", # or "google"
165
+ "cache_dir": ".citationmap_cache",
166
+ "rate_limit": 1.0, # seconds between API calls
167
+ "affiliation_parsing": "heuristic", # or "llm"
168
+ },
169
+ )
170
+ ```
171
+
172
+ ## Use Cases
173
+
174
+ 1. **CV enhancement**: Show global research impact visually
175
+ 2. **Grant applications**: Demonstrate international reach
176
+ 3. **Department reports**: Aggregate maps for research groups
177
+ 4. **Collaboration discovery**: Find active citing institutions
178
+ 5. **Impact assessment**: Geographic diversity of citations
179
+
180
+ ## References
181
+
182
+ - [CitationMap GitHub](https://github.com/ChenLiu-1996/CitationMap)
183
+ - [Google Scholar](https://scholar.google.com/)
184
+ - [Folium](https://python-visualization.github.io/folium/) — Map rendering
@@ -0,0 +1,281 @@
1
+ ---
2
+ name: d3-visualization-guide
3
+ description: "Guide to D3.js for building custom interactive data visualizations"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "📊"
7
+ category: "analysis"
8
+ subcategory: "dataviz"
9
+ keywords: ["data visualization", "D3.js", "interactive charts", "SVG", "web visualization", "scientific plots"]
10
+ source: "https://github.com/d3/d3"
11
+ ---
12
+
13
+ # D3.js Visualization Guide
14
+
15
+ ## Overview
16
+
17
+ D3.js (Data-Driven Documents) is the most powerful and flexible JavaScript library for producing dynamic, interactive data visualizations in web browsers. With over 112K stars on GitHub, D3 has become the de facto standard for custom data visualization on the web. It uses HTML, SVG, and CSS to bring data to life, giving researchers full control over the final visual output.
18
+
19
+ Unlike higher-level charting libraries, D3 operates at the level of individual SVG elements and data bindings, which means researchers can create entirely bespoke visualizations tailored to their specific datasets and publication requirements. This makes it particularly valuable for academic work where standard chart types may not adequately represent complex research findings.
20
+
21
+ D3 provides a comprehensive ecosystem of modules covering everything from scales and axes to geographic projections, force-directed layouts, and hierarchical data structures. The library follows a functional, composable design that allows researchers to combine modules as needed for their specific visualization tasks.
22
+
23
+ ## Core Concepts for Research Visualizations
24
+
25
+ D3 revolves around the concept of binding data to DOM elements and applying data-driven transformations. The key patterns every researcher should understand are selections, data joins, scales, and axes.
26
+
27
+ ### Data Binding and Selections
28
+
29
+ ```javascript
30
+ // Load research data from CSV
31
+ const data = await d3.csv("experiment_results.csv", d => ({
32
+ condition: d.condition,
33
+ measurement: +d.measurement,
34
+ error: +d.standard_error
35
+ }));
36
+
37
+ // Create an SVG container
38
+ const svg = d3.select("#chart")
39
+ .append("svg")
40
+ .attr("width", 800)
41
+ .attr("height", 500);
42
+
43
+ // Binddata to elements using the enter-update-exit pattern
44
+ svg.selectAll("circle")
45
+ .data(data)
46
+ .join("circle")
47
+ .attr("cx", d => xScale(d.condition))
48
+ .attr("cy", d => yScale(d.measurement))
49
+ .attr("r", 5)
50
+ .attr("fill", "#3B82F6");
51
+ ```
52
+
53
+ ### Scales and Axes
54
+
55
+ ```javascript
56
+ // Linear scale for continuous measurements
57
+ const yScale = d3.scaleLinear()
58
+ .domain([0, d3.max(data, d => d.measurement)])
59
+ .range([height - margin.bottom, margin.top]);
60
+
61
+ // Band scale for categorical conditions
62
+ const xScale = d3.scaleBand()
63
+ .domain(data.map(d => d.condition))
64
+ .range([margin.left, width - margin.right])
65
+ .padding(0.3);
66
+
67
+ // Add axes with proper formatting
68
+ svg.append("g")
69
+ .attr("transform", `translate(0,${height - margin.bottom})`)
70
+ .call(d3.axisBottom(xScale));
71
+
72
+ svg.append("g")
73
+ .attr("transform", `translate(${margin.left},0)`)
74
+ .call(d3.axisLeft(yScale).tickFormat(d3.format(".2f")));
75
+ ```
76
+
77
+ ## Publication-Quality Scientific Charts
78
+
79
+ ### Error Bar Plot for Experimental Results
80
+
81
+ ```javascript
82
+ function createErrorBarPlot(data, container) {
83
+ const margin = { top: 40, right: 30, bottom: 60, left: 70 };
84
+ const width = 700 - margin.left - margin.right;
85
+ const height = 450 - margin.top - margin.bottom;
86
+
87
+ const svg = d3.select(container)
88
+ .append("svg")
89
+ .attr("width", width + margin.left + margin.right)
90
+ .attr("height", height + margin.top + margin.bottom)
91
+ .append("g")
92
+ .attr("transform", `translate(${margin.left},${margin.top})`);
93
+
94
+ const x = d3.scaleBand()
95
+ .domain(data.map(d => d.group))
96
+ .range([0, width])
97
+ .padding(0.4);
98
+
99
+ const y = d3.scaleLinear()
100
+ .domain([0, d3.max(data, d => d.mean + d.sem) * 1.15])
101
+ .range([height, 0]);
102
+
103
+ // Draw bars
104
+ svg.selectAll(".bar")
105
+ .data(data)
106
+ .join("rect")
107
+ .attr("class", "bar")
108
+ .attr("x", d => x(d.group))
109
+ .attr("y", d => y(d.mean))
110
+ .attr("width", x.bandwidth())
111
+ .attr("height", d => height - y(d.mean))
112
+ .attr("fill", (d, i) => d3.schemeTableau10[i]);
113
+
114
+ // Draw error bars
115
+ svg.selectAll(".error-line")
116
+ .data(data)
117
+ .join("line")
118
+ .attr("x1", d => x(d.group) + x.bandwidth() / 2)
119
+ .attr("x2", d => x(d.group) + x.bandwidth() / 2)
120
+ .attr("y1", d => y(d.mean - d.sem))
121
+ .attr("y2", d => y(d.mean + d.sem))
122
+ .attr("stroke", "#333")
123
+ .attr("stroke-width", 1.5);
124
+
125
+ // Error bar caps
126
+ const capWidth = 10;
127
+ ["top", "bottom"].forEach(pos => {
128
+ svg.selectAll(`.cap-${pos}`)
129
+ .data(data)
130
+ .join("line")
131
+ .attr("x1", d => x(d.group) + x.bandwidth() / 2 - capWidth)
132
+ .attr("x2", d => x(d.group) + x.bandwidth() / 2 + capWidth)
133
+ .attr("y1", d => y(d.mean + (pos === "top" ? d.sem : -d.sem)))
134
+ .attr("y2", d => y(d.mean + (pos === "top" ? d.sem : -d.sem)))
135
+ .attr("stroke", "#333")
136
+ .attr("stroke-width", 1.5);
137
+ });
138
+
139
+ // Axes
140
+ svg.append("g")
141
+ .attr("transform", `translate(0,${height})`)
142
+ .call(d3.axisBottom(x))
143
+ .selectAll("text")
144
+ .style("font-size", "12px");
145
+
146
+ svg.append("g")
147
+ .call(d3.axisLeft(y))
148
+ .selectAll("text")
149
+ .style("font-size", "12px");
150
+ }
151
+ ```
152
+
153
+ ### Heatmap for Correlation Matrices
154
+
155
+ ```javascript
156
+ function createCorrelationHeatmap(matrix, labels, container) {
157
+ const size = 500;
158
+ const cellSize = size / labels.length;
159
+
160
+ const colorScale = d3.scaleSequential(d3.interpolateRdBu)
161
+ .domain([1, -1]);
162
+
163
+ const svg = d3.select(container)
164
+ .append("svg")
165
+ .attr("width", size + 120)
166
+ .attr("height", size + 120);
167
+
168
+ const g = svg.append("g")
169
+ .attr("transform", "translate(100, 20)");
170
+
171
+ // Draw cells
172
+ labels.forEach((rowLabel, i) => {
173
+ labels.forEach((colLabel, j) => {
174
+ g.append("rect")
175
+ .attr("x", j * cellSize)
176
+ .attr("y", i * cellSize)
177
+ .attr("width", cellSize - 1)
178
+ .attr("height", cellSize - 1)
179
+ .attr("fill", colorScale(matrix[i][j]))
180
+ .append("title")
181
+ .text(`${rowLabel} vs ${colLabel}: ${matrix[i][j].toFixed(3)}`);
182
+
183
+ g.append("text")
184
+ .attr("x", j * cellSize + cellSize / 2)
185
+ .attr("y", i * cellSize + cellSize / 2)
186
+ .attr("text-anchor", "middle")
187
+ .attr("dominant-baseline", "central")
188
+ .style("font-size", "10px")
189
+ .text(matrix[i][j].toFixed(2));
190
+ });
191
+ });
192
+
193
+ // Row and column labels
194
+ g.selectAll(".row-label")
195
+ .data(labels)
196
+ .join("text")
197
+ .attr("x", -8)
198
+ .attr("y", (d, i) => i * cellSize + cellSize / 2)
199
+ .attr("text-anchor", "end")
200
+ .attr("dominant-baseline", "central")
201
+ .style("font-size", "11px")
202
+ .text(d => d);
203
+ }
204
+ ```
205
+
206
+ ## Interactive Techniques for Research Presentations
207
+
208
+ D3 excels at adding interactivity to visualizations, which is valuable for research presentations, supplementary materials, and data exploration during analysis.
209
+
210
+ ### Tooltips and Hover Effects
211
+
212
+ ```javascript
213
+ // Create a tooltip div
214
+ const tooltip = d3.select("body").append("div")
215
+ .attr("class", "tooltip")
216
+ .style("position", "absolute")
217
+ .style("background", "rgba(0,0,0,0.8)")
218
+ .style("color", "#fff")
219
+ .style("padding", "8px 12px")
220
+ .style("border-radius", "4px")
221
+ .style("font-size", "12px")
222
+ .style("pointer-events", "none")
223
+ .style("opacity", 0);
224
+
225
+ // Attach to data points
226
+ svg.selectAll("circle")
227
+ .on("mouseover", (event, d) => {
228
+ tooltip.transition().duration(200).style("opacity", 1);
229
+ tooltip.html(
230
+ `<strong>${d.sample_id}</strong><br/>` +
231
+ `Value: ${d.measurement.toFixed(3)}<br/>` +
232
+ `p-value: ${d.pvalue.toExponential(2)}`
233
+ )
234
+ .style("left", (event.pageX + 12) + "px")
235
+ .style("top", (event.pageY - 28) + "px");
236
+ })
237
+ .on("mouseout", () => {
238
+ tooltip.transition().duration(300).style("opacity", 0);
239
+ });
240
+ ```
241
+
242
+ ### Zoom and Pan for Large Datasets
243
+
244
+ ```javascript
245
+ const zoom = d3.zoom()
246
+ .scaleExtent([1, 20])
247
+ .on("zoom", (event) => {
248
+ chartGroup.attr("transform", event.transform);
249
+ });
250
+
251
+ svg.call(zoom);
252
+ ```
253
+
254
+ ## Exporting for Publications
255
+
256
+ When preparing figures for journal submissions, D3 SVG output can be exported directly to vector formats.
257
+
258
+ ```javascript
259
+ // Extract SVG markup for saving
260
+ function exportSVG(svgElement) {
261
+ const serializer = new XMLSerializer();
262
+ const svgString = serializer.serializeToString(svgElement);
263
+ const blob = new Blob([svgString], { type: "image/svg+xml" });
264
+ const url = URL.createObjectURL(blob);
265
+
266
+ const link = document.createElement("a");
267
+ link.href = url;
268
+ link.download = "figure.svg";
269
+ link.click();
270
+ URL.revokeObjectURL(url);
271
+ }
272
+ ```
273
+
274
+ Researchers can then convert SVG to PDF or EPS using tools like Inkscape or cairosvg for submission to journals that require specific formats.
275
+
276
+ ## References
277
+
278
+ - D3.js official documentation: https://d3js.org
279
+ - D3 GitHub repository: https://github.com/d3/d3
280
+ - Observable D3 tutorials: https://observablehq.com/@d3
281
+ - D3 Graph Gallery (examples): https://d3-graph-gallery.com