@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,305 @@
1
+ ---
2
+ name: medical-imaging-guide
3
+ description: "Medical image analysis with deep learning for research applications"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "microscope"
7
+ category: "domains"
8
+ subcategory: "biomedical"
9
+ keywords: ["medical imaging", "deep learning", "image segmentation", "radiology AI", "pathology", "convolutional neural networks"]
10
+ source: "wentor-research-plugins"
11
+ ---
12
+
13
+ # Medical Imaging Guide
14
+
15
+ A skill for applying deep learning to medical image analysis in research settings. Covers common imaging modalities, preprocessing pipelines, architecture selection for classification and segmentation tasks, handling small datasets with transfer learning and data augmentation, evaluation metrics specific to medical imaging, and regulatory and ethical considerations for clinical translation.
16
+
17
+ ## Imaging Modalities and Data Characteristics
18
+
19
+ ### Common Modalities in Research
20
+
21
+ ```
22
+ Modality Overview:
23
+
24
+ X-ray / Radiography:
25
+ - 2D grayscale images
26
+ - Resolution: typically 2000x2000 to 4000x4000 pixels
27
+ - Format: DICOM (.dcm)
28
+ - Common tasks: pneumonia detection, fracture detection,
29
+ cardiomegaly screening
30
+ - Dataset examples: CheXpert, MIMIC-CXR, NIH ChestX-ray14
31
+
32
+ CT (Computed Tomography):
33
+ - 3D volumetric data (stack of 2D slices)
34
+ - Resolution: 512x512 per slice, 50-500+ slices
35
+ - Format: DICOM series, NIfTI (.nii.gz)
36
+ - Common tasks: lung nodule detection, organ segmentation,
37
+ COVID-19 screening
38
+ - Dataset examples: LUNA16, DeepLesion, TotalSegmentator
39
+
40
+ MRI (Magnetic Resonance Imaging):
41
+ - 3D volumetric, multiple sequences (T1, T2, FLAIR, DWI)
42
+ - Resolution: 256x256 to 512x512 per slice
43
+ - Format: DICOM, NIfTI
44
+ - Common tasks: brain tumor segmentation, cardiac analysis,
45
+ knee injury classification
46
+ - Dataset examples: BraTS, ACDC, fastMRI
47
+
48
+ Histopathology:
49
+ - Whole slide images (WSI), extremely large
50
+ - Resolution: 100,000x100,000+ pixels at highest magnification
51
+ - Format: SVS, TIFF, NDPI (vendor-specific)
52
+ - Common tasks: cancer grading, mitosis detection,
53
+ tissue classification
54
+ - Dataset examples: Camelyon16/17, TCGA, PANDA
55
+
56
+ Retinal Imaging (Fundoscopy / OCT):
57
+ - 2D color fundus or 3D OCT volumes
58
+ - Common tasks: diabetic retinopathy grading, glaucoma detection
59
+ - Dataset examples: EyePACS, MESSIDOR, REFUGE
60
+ ```
61
+
62
+ ## Preprocessing Pipeline
63
+
64
+ ### Standard Preprocessing Steps
65
+
66
+ ```python
67
+ import numpy as np
68
+
69
+ def preprocess_medical_image(image, modality="xray"):
70
+ """
71
+ Standard preprocessing pipeline for medical images.
72
+
73
+ Steps vary by modality but typically include:
74
+ 1. Intensity normalization
75
+ 2. Resizing/resampling
76
+ 3. Windowing (for CT)
77
+ 4. Artifact removal
78
+ """
79
+ if modality == "ct":
80
+ # CT windowing: map Hounsfield Units to display range
81
+ # Lung window: center=-600, width=1500
82
+ # Soft tissue: center=40, width=400
83
+ window_center = -600
84
+ window_width = 1500
85
+ lower = window_center - window_width // 2
86
+ upper = window_center + window_width // 2
87
+ image = np.clip(image, lower, upper)
88
+ image = (image - lower) / (upper - lower)
89
+
90
+ elif modality == "xray":
91
+ # Normalize to [0, 1] range
92
+ image = image.astype(np.float32)
93
+ image = (image - image.min()) / (image.max() - image.min() + 1e-8)
94
+
95
+ elif modality == "mri":
96
+ # Z-score normalization (per-volume)
97
+ # Exclude background (zeros) from statistics
98
+ mask = image > 0
99
+ if mask.any():
100
+ mean_val = image[mask].mean()
101
+ std_val = image[mask].std()
102
+ image = (image - mean_val) / (std_val + 1e-8)
103
+
104
+ return image
105
+
106
+
107
+ def resize_with_spacing(image, original_spacing, target_spacing):
108
+ """
109
+ Resample 3D medical image to uniform voxel spacing.
110
+ Essential for CT/MRI where slice thickness varies.
111
+
112
+ Args:
113
+ image: 3D numpy array
114
+ original_spacing: (z, y, x) voxel sizes in mm
115
+ target_spacing: desired (z, y, x) voxel sizes in mm
116
+ """
117
+ from scipy.ndimage import zoom
118
+
119
+ resize_factor = [
120
+ orig / target
121
+ for orig, target in zip(original_spacing, target_spacing)
122
+ ]
123
+ resampled = zoom(image, resize_factor, order=1)
124
+ return resampled
125
+ ```
126
+
127
+ ## Model Architecture Selection
128
+
129
+ ### Task-Specific Architectures
130
+
131
+ ```
132
+ Architecture recommendations by task:
133
+
134
+ IMAGE CLASSIFICATION (diagnosis, grading):
135
+ - ResNet-50/101: reliable baseline, well-understood
136
+ - EfficientNet-B4/B5: better accuracy-efficiency tradeoff
137
+ - Vision Transformer (ViT): strong with large datasets
138
+ - DenseNet-121: popular for chest X-ray (CheXNet heritage)
139
+
140
+ Transfer learning approach:
141
+ 1. Start with ImageNet pretrained weights
142
+ 2. Replace final classifier layer
143
+ 3. Fine-tune with low learning rate (1e-4 to 1e-5)
144
+ 4. Use gradual unfreezing (train head, then all layers)
145
+
146
+ IMAGE SEGMENTATION (organ/lesion delineation):
147
+ - U-Net: gold standard for medical segmentation
148
+ - nnU-Net: self-configuring U-Net (state-of-the-art framework)
149
+ - Attention U-Net: U-Net with attention gates
150
+ - TransUNet: hybrid CNN-Transformer architecture
151
+ - MONAI: framework with pre-built medical imaging models
152
+
153
+ For 3D volumes:
154
+ - 3D U-Net: full volumetric processing
155
+ - V-Net: 3D with dice loss
156
+ - 2.5D approach: adjacent slices as multi-channel input
157
+
158
+ OBJECT DETECTION (lesion localization):
159
+ - YOLO variants: fast inference, suitable for screening
160
+ - Faster R-CNN: higher accuracy, slower
161
+ - RetinaNet: handles class imbalance (focal loss)
162
+ - DETR: transformer-based, no anchor boxes needed
163
+ ```
164
+
165
+ ## Handling Small Datasets
166
+
167
+ ### Data Augmentation for Medical Images
168
+
169
+ ```python
170
+ def get_medical_augmentation_pipeline():
171
+ """
172
+ Medical image augmentation strategy.
173
+
174
+ Key differences from natural image augmentation:
175
+ - Preserve anatomical plausibility
176
+ - Avoid color jitter (intensity has diagnostic meaning)
177
+ - Use elastic deformations (mimic anatomical variability)
178
+ - Apply carefully (aggressive augmentation can hurt)
179
+ """
180
+ import albumentations as A
181
+
182
+ transform = A.Compose([
183
+ # Spatial transforms (safe for medical images)
184
+ A.HorizontalFlip(p=0.5),
185
+ A.RandomRotate90(p=0.5),
186
+ A.ShiftScaleRotate(
187
+ shift_limit=0.1, scale_limit=0.1,
188
+ rotate_limit=15, p=0.5
189
+ ),
190
+ A.ElasticTransform(
191
+ alpha=120, sigma=120 * 0.05,
192
+ p=0.3
193
+ ),
194
+
195
+ # Intensity transforms (use cautiously)
196
+ A.RandomBrightnessContrast(
197
+ brightness_limit=0.1,
198
+ contrast_limit=0.1, p=0.3
199
+ ),
200
+ A.GaussNoise(var_limit=(10, 50), p=0.2),
201
+ A.GaussianBlur(blur_limit=(3, 5), p=0.2),
202
+ ])
203
+
204
+ return transform
205
+ ```
206
+
207
+ ### Transfer Learning Strategies
208
+
209
+ ```
210
+ Transfer learning approaches for small medical datasets:
211
+
212
+ Strategy 1 - ImageNet pretraining (most common):
213
+ - Works surprisingly well despite domain gap
214
+ - Low-level features (edges, textures) transfer well
215
+ - Fine-tune all layers with small learning rate
216
+ - Typical improvement: 5-15% over training from scratch
217
+
218
+ Strategy 2 - Medical domain pretraining:
219
+ - Pretrain on large medical dataset, fine-tune on target
220
+ - RadImageNet: 1.35M radiological images
221
+ - Models Genesis: self-supervised pretraining on CT/X-ray
222
+ - Better than ImageNet for most medical tasks
223
+
224
+ Strategy 3 - Self-supervised pretraining:
225
+ - Contrastive learning (SimCLR, MoCo, DINO)
226
+ - Masked image modeling (MAE)
227
+ - No labels needed for pretraining phase
228
+ - Effective when labeled data is very scarce (< 100 images)
229
+
230
+ Strategy 4 - Few-shot learning:
231
+ - Prototypical networks, MAML
232
+ - Useful for rare diseases with < 20 examples
233
+ - Active research area, not yet production-ready
234
+ ```
235
+
236
+ ## Evaluation Metrics
237
+
238
+ ### Medical Imaging Specific Metrics
239
+
240
+ ```
241
+ Classification metrics:
242
+ - AUROC (Area Under ROC Curve): discrimination ability
243
+ - Primary metric for most medical imaging papers
244
+ - Report with 95% confidence interval (bootstrap)
245
+ - AUPRC (Area Under Precision-Recall Curve):
246
+ - Better than AUROC for imbalanced datasets
247
+ - Common in lesion detection tasks
248
+ - Sensitivity at fixed specificity:
249
+ - e.g., "Sensitivity of 92% at 95% specificity"
250
+ - Clinically meaningful operating point
251
+ - Specificity at fixed sensitivity:
252
+ - e.g., "Specificity of 88% at 90% sensitivity"
253
+ - Ensures acceptable miss rate
254
+
255
+ Segmentation metrics:
256
+ - Dice Similarity Coefficient (DSC):
257
+ - DSC = 2|A intersection B| / (|A| + |B|)
258
+ - Range: 0 (no overlap) to 1 (perfect overlap)
259
+ - Most commonly reported segmentation metric
260
+ - Hausdorff Distance (HD95):
261
+ - Maximum surface distance between predictions and ground truth
262
+ - Use 95th percentile (HD95) to reduce sensitivity to outliers
263
+ - Reports boundary accuracy in millimeters
264
+ - Average Surface Distance (ASD):
265
+ - Mean distance between predicted and true surfaces
266
+
267
+ Reporting standards:
268
+ - Always report confidence intervals (95% CI)
269
+ - Use 5-fold cross-validation or held-out test set
270
+ - Report per-class metrics for multi-class problems
271
+ - Compare against at least one established baseline
272
+ - Report results on external validation set when possible
273
+ ```
274
+
275
+ ## Ethical and Regulatory Considerations
276
+
277
+ ```
278
+ Responsible AI in medical imaging research:
279
+
280
+ Data ethics:
281
+ - De-identify all DICOM headers (remove patient name, ID, dates)
282
+ - Use approved de-identification tools (e.g., DICOM Cleaner)
283
+ - Obtain IRB/ethics approval before starting
284
+ - Data use agreements for public datasets
285
+
286
+ Bias and fairness:
287
+ - Report demographic breakdown of training data
288
+ - Test performance across subgroups (age, sex, ethnicity)
289
+ - Acknowledge known demographic biases in training data
290
+ - CheXpert and MIMIC-CXR include demographic metadata for this
291
+
292
+ Reproducibility:
293
+ - Share code and trained model weights when possible
294
+ - Report all hyperparameters and random seeds
295
+ - Use standardized evaluation protocols
296
+ - Follow CLAIM (Checklist for AI in Medical Imaging) guidelines
297
+
298
+ Clinical translation (if applicable):
299
+ - FDA/CE marking required for clinical use (not research)
300
+ - Software as Medical Device (SaMD) classification
301
+ - Prospective clinical validation required
302
+ - Research prototypes are NOT approved for clinical decisions
303
+ ```
304
+
305
+ Medical imaging AI is advancing rapidly, but responsible research requires careful attention to data quality, evaluation rigor, and clinical relevance. The gap between a model that performs well on a benchmark and one that adds genuine clinical value remains significant, and bridging it requires interdisciplinary collaboration between computer scientists, radiologists, pathologists, and clinical researchers.
@@ -0,0 +1,195 @@
1
+ ---
2
+ name: ncbi-blast-api
3
+ description: "Run sequence similarity searches via the NCBI BLAST REST API"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "🧪"
7
+ category: "domains"
8
+ subcategory: "biomedical"
9
+ keywords: ["BLAST", "sequence alignment", "NCBI", "homology search", "protein similarity", "nucleotide search"]
10
+ source: "https://blast.ncbi.nlm.nih.gov/"
11
+ ---
12
+
13
+ # NCBI BLAST REST API
14
+
15
+ ## Overview
16
+
17
+ BLAST (Basic Local Alignment Search Tool) is the most widely used bioinformatics tool, comparing nucleotide or protein sequences against databases to find regions of similarity. The NCBI BLAST REST API enables programmatic submission of searches, status polling, and result retrieval. Free, no authentication required (but rate-limited).
18
+
19
+ ## API Workflow
20
+
21
+ BLAST searches are asynchronous: submit → poll → retrieve.
22
+
23
+ ### Step 1: Submit Search
24
+
25
+ ```bash
26
+ # Nucleotide BLAST (blastn)
27
+ curl -X POST "https://blast.ncbi.nlm.nih.gov/blast/Blast.cgi" \
28
+ -d "CMD=Put&PROGRAM=blastn&DATABASE=nt&QUERY=ATGCGATCGATCG..."
29
+
30
+ # Protein BLAST (blastp)
31
+ curl -X POST "https://blast.ncbi.nlm.nih.gov/blast/Blast.cgi" \
32
+ -d "CMD=Put&PROGRAM=blastp&DATABASE=nr&QUERY=MKTLLLTLVVVTIVCL..."
33
+
34
+ # BLAST with specific parameters
35
+ curl -X POST "https://blast.ncbi.nlm.nih.gov/blast/Blast.cgi" \
36
+ -d "CMD=Put&PROGRAM=blastn&DATABASE=nt&QUERY=SEQUENCE&\
37
+ EXPECT=0.001&WORD_SIZE=11&HITLIST_SIZE=50"
38
+ ```
39
+
40
+ ### Step 2: Check Status
41
+
42
+ ```bash
43
+ # Poll for completion (returns XML with Status field)
44
+ curl "https://blast.ncbi.nlm.nih.gov/blast/Blast.cgi?CMD=Get&FORMAT_OBJECT=SearchInfo&RID=YOUR_RID"
45
+ ```
46
+
47
+ ### Step 3: Retrieve Results
48
+
49
+ ```bash
50
+ # Get results in XML
51
+ curl "https://blast.ncbi.nlm.nih.gov/blast/Blast.cgi?CMD=Get&FORMAT_TYPE=XML&RID=YOUR_RID"
52
+
53
+ # Get results in JSON
54
+ curl "https://blast.ncbi.nlm.nih.gov/blast/Blast.cgi?CMD=Get&FORMAT_TYPE=JSON2_S&RID=YOUR_RID"
55
+
56
+ # Get results in tabular format
57
+ curl "https://blast.ncbi.nlm.nih.gov/blast/Blast.cgi?CMD=Get&FORMAT_TYPE=Tabular&RID=YOUR_RID"
58
+ ```
59
+
60
+ ### BLAST Programs
61
+
62
+ | Program | Query → Database | Use case |
63
+ |---------|-----------------|----------|
64
+ | `blastn` | Nucleotide → Nucleotide | DNA/RNA similarity |
65
+ | `blastp` | Protein → Protein | Protein homology |
66
+ | `blastx` | Translated nuc → Protein | Find protein homologs of DNA |
67
+ | `tblastn` | Protein → Translated nuc | Find DNA encoding similar protein |
68
+ | `tblastx` | Translated nuc → Translated nuc | Compare at protein level |
69
+
70
+ ### Common Databases
71
+
72
+ | Database | Content |
73
+ |----------|---------|
74
+ | `nt` | All GenBank nucleotide sequences |
75
+ | `nr` | Non-redundant protein sequences |
76
+ | `refseq_rna` | RefSeq RNA sequences |
77
+ | `refseq_protein` | RefSeq protein sequences |
78
+ | `swissprot` | UniProtKB/Swiss-Prot (curated) |
79
+ | `pdb` | Protein Data Bank sequences |
80
+
81
+ ### Key Parameters
82
+
83
+ | Parameter | Description | Default |
84
+ |-----------|-------------|---------|
85
+ | `PROGRAM` | BLAST program | Required |
86
+ | `DATABASE` | Target database | Required |
87
+ | `QUERY` | Sequence or accession | Required |
88
+ | `EXPECT` | E-value threshold | `10` |
89
+ | `WORD_SIZE` | Word size | `11` (blastn), `6` (blastp) |
90
+ | `HITLIST_SIZE` | Max results | `100` |
91
+ | `MATRIX` | Scoring matrix (protein) | `BLOSUM62` |
92
+ | `FILTER` | Low complexity filter | `L` |
93
+ | `ENTREZ_QUERY` | Restrict to organism | `Homo sapiens[ORGN]` |
94
+
95
+ ## Python Usage
96
+
97
+ ```python
98
+ import time
99
+ import requests
100
+ from xml.etree import ElementTree
101
+
102
+ BLAST_URL = "https://blast.ncbi.nlm.nih.gov/blast/Blast.cgi"
103
+
104
+
105
+ def submit_blast(sequence: str, program: str = "blastn",
106
+ database: str = "nt",
107
+ evalue: float = 0.001) -> str:
108
+ """Submit a BLAST search, return Request ID."""
109
+ resp = requests.post(BLAST_URL, data={
110
+ "CMD": "Put",
111
+ "PROGRAM": program,
112
+ "DATABASE": database,
113
+ "QUERY": sequence,
114
+ "EXPECT": evalue,
115
+ "HITLIST_SIZE": 50,
116
+ })
117
+ resp.raise_for_status()
118
+
119
+ for line in resp.text.split("\n"):
120
+ if "RID = " in line:
121
+ return line.split("=")[1].strip()
122
+ raise ValueError("No RID in response")
123
+
124
+
125
+ def wait_for_results(rid: str, poll_interval: int = 15,
126
+ max_wait: int = 300) -> bool:
127
+ """Poll until BLAST search completes."""
128
+ elapsed = 0
129
+ while elapsed < max_wait:
130
+ resp = requests.get(BLAST_URL, params={
131
+ "CMD": "Get",
132
+ "FORMAT_OBJECT": "SearchInfo",
133
+ "RID": rid,
134
+ })
135
+ if "Status=READY" in resp.text:
136
+ return True
137
+ if "Status=FAILED" in resp.text:
138
+ raise RuntimeError("BLAST search failed")
139
+ time.sleep(poll_interval)
140
+ elapsed += poll_interval
141
+ raise TimeoutError(f"BLAST timed out after {max_wait}s")
142
+
143
+
144
+ def get_results(rid: str) -> list:
145
+ """Retrieve BLAST results as parsed hits."""
146
+ resp = requests.get(BLAST_URL, params={
147
+ "CMD": "Get",
148
+ "FORMAT_TYPE": "XML",
149
+ "RID": rid,
150
+ })
151
+ resp.raise_for_status()
152
+
153
+ root = ElementTree.fromstring(resp.text)
154
+ ns = ""
155
+ hits = []
156
+ for hit in root.iter(f"{ns}Hit"):
157
+ hsps = hit.find(f"{ns}Hit_hsps")
158
+ hsp = hsps.find(f"{ns}Hsp") if hsps is not None else None
159
+ hits.append({
160
+ "accession": hit.findtext(f"{ns}Hit_accession", ""),
161
+ "description": hit.findtext(f"{ns}Hit_def", ""),
162
+ "length": int(hit.findtext(f"{ns}Hit_len", "0")),
163
+ "evalue": float(hsp.findtext(f"{ns}Hsp_evalue", "999"))
164
+ if hsp is not None else 999,
165
+ "identity": float(hsp.findtext(f"{ns}Hsp_identity", "0"))
166
+ if hsp is not None else 0,
167
+ "score": float(hsp.findtext(f"{ns}Hsp_bit-score", "0"))
168
+ if hsp is not None else 0,
169
+ })
170
+ return hits
171
+
172
+
173
+ # Example: BLAST a short DNA sequence
174
+ rid = submit_blast("ATGCGATCGATCGATCGATCGATCG", program="blastn")
175
+ print(f"Submitted BLAST search: {rid}")
176
+
177
+ wait_for_results(rid)
178
+ hits = get_results(rid)
179
+ for h in hits[:5]:
180
+ print(f"{h['accession']}: {h['description'][:60]}...")
181
+ print(f" E-value: {h['evalue']:.2e} | Identity: {h['identity']}")
182
+ ```
183
+
184
+ ## Rate Limits
185
+
186
+ - Max 1 request per 10 seconds for search submission
187
+ - Max concurrent searches: varies by load
188
+ - NCBI requests a contact email in User-Agent header
189
+
190
+ ## References
191
+
192
+ - [NCBI BLAST](https://blast.ncbi.nlm.nih.gov/)
193
+ - [BLAST URL API Guide](https://blast.ncbi.nlm.nih.gov/doc/blast-help/developerinfo.html)
194
+ - [BLAST Command Line](https://www.ncbi.nlm.nih.gov/books/NBK279690/)
195
+ - Altschul, S.F. et al. (1990). "Basic local alignment search tool." *J. Mol. Biol.* 215(3).