@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,271 @@
1
+ ---
2
+ name: clinical-trial-design-guide
3
+ description: "Clinical trial methodology, biostatistics, and study design guidance"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "test-tube"
7
+ category: "domains"
8
+ subcategory: "pharma"
9
+ keywords: ["clinical-trial", "biostatistics", "randomization", "sample-size", "survival-analysis", "rct"]
10
+ source: "wentor"
11
+ ---
12
+
13
+ # Clinical Trial Design Guide
14
+
15
+ A skill for designing and analyzing clinical trials, covering study design selection, sample size calculation, randomization methods, interim analysis, survival endpoints, and regulatory considerations. Essential for pharmaceutical researchers, biostatisticians, and clinical scientists.
16
+
17
+ ## Clinical Trial Phases
18
+
19
+ ### Phase Overview
20
+
21
+ | Phase | Objective | Typical N | Duration | Primary Endpoints |
22
+ |-------|-----------|----------|----------|-------------------|
23
+ | Phase I | Safety, dose-finding | 20-80 | Months | MTD, DLT, PK profile |
24
+ | Phase II | Efficacy signal, dosing | 100-300 | 1-2 years | Response rate, biomarker |
25
+ | Phase III | Confirmatory efficacy | 300-3,000+ | 2-4 years | OS, PFS, clinical outcome |
26
+ | Phase IV | Post-marketing surveillance | 1,000+ | Ongoing | Safety, real-world effectiveness |
27
+
28
+ ## Study Design Selection
29
+
30
+ ### Common Designs
31
+
32
+ ```
33
+ Parallel Group (most common Phase III):
34
+ R --> Treatment A --> Outcome assessment
35
+ R --> Treatment B --> Outcome assessment
36
+
37
+ Crossover:
38
+ R --> Treatment A --> Washout --> Treatment B --> Outcome
39
+ R --> Treatment B --> Washout --> Treatment A --> Outcome
40
+
41
+ Factorial (2x2):
42
+ R --> Drug A + Drug B
43
+ R --> Drug A + Placebo B
44
+ R --> Placebo A + Drug B
45
+ R --> Placebo A + Placebo B
46
+
47
+ Adaptive:
48
+ Stage 1: Enroll n1 patients --> Interim analysis
49
+ Stage 2: Modify design (dose, sample size, arm dropping) --> Continue
50
+ ```
51
+
52
+ ### Design Selection Criteria
53
+
54
+ | Factor | Recommended Design |
55
+ |--------|-------------------|
56
+ | Chronic disease, stable condition | Crossover (within-subject comparison) |
57
+ | Acute condition, one-time treatment | Parallel group |
58
+ | Multiple drugs to evaluate | Factorial or multi-arm |
59
+ | High uncertainty in effect size | Adaptive (sample size re-estimation) |
60
+ | Rare disease, limited patients | Bayesian adaptive, single-arm with historical control |
61
+
62
+ ## Sample Size Calculation
63
+
64
+ ### Two-Sample Comparison of Means
65
+
66
+ ```python
67
+ from scipy.stats import norm
68
+ import numpy as np
69
+
70
+ def sample_size_two_means(delta: float, sigma: float,
71
+ alpha: float = 0.05, power: float = 0.80,
72
+ ratio: float = 1.0) -> dict:
73
+ """
74
+ Sample size for comparing two group means (two-sided test).
75
+ delta: minimum clinically important difference
76
+ sigma: pooled standard deviation
77
+ alpha: type I error rate
78
+ power: desired power (1 - beta)
79
+ ratio: allocation ratio (n2/n1)
80
+ """
81
+ z_alpha = norm.ppf(1 - alpha / 2)
82
+ z_beta = norm.ppf(power)
83
+ effect = delta / sigma
84
+
85
+ n1 = ((z_alpha + z_beta) ** 2 * (1 + 1 / ratio)) / effect ** 2
86
+ n2 = ratio * n1
87
+
88
+ return {
89
+ "n_per_group_1": int(np.ceil(n1)),
90
+ "n_per_group_2": int(np.ceil(n2)),
91
+ "total": int(np.ceil(n1) + np.ceil(n2)),
92
+ "effect_size": round(effect, 3),
93
+ }
94
+
95
+ # Example: detect 5-point difference, SD=15, 80% power
96
+ result = sample_size_two_means(delta=5, sigma=15)
97
+ print(f"Required: {result['total']} total patients")
98
+ ```
99
+
100
+ ### Sample Size for Survival Endpoints
101
+
102
+ ```python
103
+ def sample_size_logrank(hazard_ratio: float, alpha: float = 0.05,
104
+ power: float = 0.80, ratio: float = 1.0,
105
+ median_control: float = 12.0,
106
+ accrual_time: float = 24.0,
107
+ followup_time: float = 12.0) -> dict:
108
+ """
109
+ Sample size for log-rank test comparing two survival curves.
110
+ hazard_ratio: expected HR (treatment/control), <1 means treatment better
111
+ median_control: median survival in control arm (months)
112
+ """
113
+ z_alpha = norm.ppf(1 - alpha / 2)
114
+ z_beta = norm.ppf(power)
115
+
116
+ # Required number of events (Schoenfeld formula)
117
+ d = ((z_alpha + z_beta) ** 2 * (1 + ratio) ** 2) / (
118
+ ratio * (np.log(hazard_ratio)) ** 2
119
+ )
120
+ d = int(np.ceil(d))
121
+
122
+ # Estimate probability of event during study
123
+ lambda_c = np.log(2) / median_control
124
+ lambda_t = lambda_c * hazard_ratio
125
+
126
+ # Average probability of event (simplified uniform accrual)
127
+ p_event_c = 1 - np.exp(-lambda_c * followup_time)
128
+ p_event_t = 1 - np.exp(-lambda_t * followup_time)
129
+ p_event_avg = (p_event_c + ratio * p_event_t) / (1 + ratio)
130
+
131
+ n_total = int(np.ceil(d / p_event_avg))
132
+
133
+ return {
134
+ "events_required": d,
135
+ "total_patients": n_total,
136
+ "hazard_ratio": hazard_ratio,
137
+ "p_event_avg": round(p_event_avg, 3),
138
+ }
139
+ ```
140
+
141
+ ## Randomization Methods
142
+
143
+ ### Implementation
144
+
145
+ ```python
146
+ import random
147
+
148
+ def stratified_block_randomization(strata: list[str],
149
+ block_sizes: list[int] = [4, 6],
150
+ ratio: tuple = (1, 1),
151
+ seed: int = 42) -> list[str]:
152
+ """
153
+ Stratified permuted block randomization.
154
+ strata: list of stratum labels for each patient (in enrollment order)
155
+ block_sizes: list of possible block sizes (randomly selected)
156
+ ratio: allocation ratio (e.g., (1,1) for 1:1, (2,1) for 2:1)
157
+ Returns list of treatment assignments ('A' or 'B').
158
+ """
159
+ rng = random.Random(seed)
160
+ stratum_queues = {}
161
+ assignments = []
162
+
163
+ for stratum in strata:
164
+ if stratum not in stratum_queues:
165
+ stratum_queues[stratum] = []
166
+
167
+ if not stratum_queues[stratum]:
168
+ # Generate new block
169
+ block_size = rng.choice(block_sizes)
170
+ n_a = block_size * ratio[0] // sum(ratio)
171
+ n_b = block_size - n_a
172
+ block = ["A"] * n_a + ["B"] * n_b
173
+ rng.shuffle(block)
174
+ stratum_queues[stratum] = block
175
+
176
+ assignments.append(stratum_queues[stratum].pop(0))
177
+
178
+ return assignments
179
+ ```
180
+
181
+ ## Interim Analysis and Monitoring
182
+
183
+ ### Group Sequential Design
184
+
185
+ ```python
186
+ def obrien_fleming_boundary(n_looks: int, alpha: float = 0.05) -> list[float]:
187
+ """
188
+ Compute O'Brien-Fleming spending function boundaries.
189
+ Provides very conservative early stopping with near-nominal final alpha.
190
+ """
191
+ from scipy.stats import norm
192
+ boundaries = []
193
+ for k in range(1, n_looks + 1):
194
+ info_fraction = k / n_looks
195
+ z_boundary = norm.ppf(1 - alpha / 2) / np.sqrt(info_fraction)
196
+ p_boundary = 2 * (1 - norm.cdf(z_boundary))
197
+ boundaries.append({
198
+ "look": k,
199
+ "info_fraction": round(info_fraction, 3),
200
+ "z_boundary": round(z_boundary, 4),
201
+ "p_boundary": round(p_boundary, 6),
202
+ })
203
+ return boundaries
204
+
205
+ # Example: 3 interim looks + 1 final
206
+ boundaries = obrien_fleming_boundary(4)
207
+ for b in boundaries:
208
+ print(f"Look {b['look']}: Z={b['z_boundary']}, p={b['p_boundary']}")
209
+ ```
210
+
211
+ ## Survival Analysis
212
+
213
+ ### Kaplan-Meier and Log-Rank Test
214
+
215
+ ```python
216
+ from lifelines import KaplanMeierFitter
217
+ from lifelines.statistics import logrank_test
218
+
219
+ def analyze_survival(time: pd.Series, event: pd.Series,
220
+ group: pd.Series) -> dict:
221
+ """
222
+ Perform Kaplan-Meier estimation and log-rank test.
223
+ time: follow-up duration
224
+ event: 1=event occurred, 0=censored
225
+ group: treatment group labels
226
+ """
227
+ groups = group.unique()
228
+ kmf_results = {}
229
+
230
+ for g in groups:
231
+ mask = group == g
232
+ kmf = KaplanMeierFitter()
233
+ kmf.fit(time[mask], event[mask], label=str(g))
234
+ kmf_results[g] = {
235
+ "median_survival": kmf.median_survival_time_,
236
+ "survival_at_12m": kmf.predict(12),
237
+ }
238
+
239
+ # Log-rank test
240
+ mask_a = group == groups[0]
241
+ lr = logrank_test(
242
+ time[mask_a], time[~mask_a],
243
+ event[mask_a], event[~mask_a],
244
+ )
245
+
246
+ return {
247
+ "group_results": kmf_results,
248
+ "logrank_statistic": lr.test_statistic,
249
+ "logrank_p_value": lr.p_value,
250
+ }
251
+ ```
252
+
253
+ ## Regulatory Considerations
254
+
255
+ Key regulatory documents for clinical trial design:
256
+
257
+ - **ICH E6 (R2)**: Good Clinical Practice guidelines
258
+ - **ICH E9 (R1)**: Statistical Principles, estimands framework
259
+ - **ICH E8 (R1)**: General Considerations for Clinical Studies
260
+ - **FDA 21 CFR Part 312**: Investigational New Drug regulations
261
+ - **EMA Scientific Guidelines**: Disease-specific guidance documents
262
+
263
+ ## Tools and Software
264
+
265
+ - **R survival package**: Kaplan-Meier, Cox regression, log-rank test
266
+ - **lifelines (Python)**: Survival analysis library
267
+ - **gsDesign (R)**: Group sequential design and monitoring boundaries
268
+ - **PASS / nQuery**: Commercial sample size software
269
+ - **EAST (Cytel)**: Adaptive and group sequential design software
270
+ - **REDCap**: Electronic data capture for clinical research
271
+ - **ClinicalTrials.gov API**: Trial registry search and data access
@@ -0,0 +1,242 @@
1
+ ---
2
+ name: drug-target-interaction
3
+ description: "Computational drug-target interaction prediction and virtual screening"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "pill"
7
+ category: "domains"
8
+ subcategory: "pharma"
9
+ keywords: ["drug-target", "virtual-screening", "molecular-docking", "binding-affinity", "cheminformatics"]
10
+ source: "wentor"
11
+ ---
12
+
13
+ # Drug-Target Interaction Prediction
14
+
15
+ A skill for computational prediction of drug-target interactions (DTI), covering molecular docking, machine learning-based binding affinity prediction, compound library screening, and target identification using cheminformatics and structural biology tools.
16
+
17
+ ## Drug-Target Interaction Databases
18
+
19
+ ### Key Data Resources
20
+
21
+ | Database | Content | Access |
22
+ |----------|---------|--------|
23
+ | ChEMBL | 2.4M compounds, 15M bioactivities | REST API, SQL dump |
24
+ | BindingDB | 2.8M binding data points | Bulk download, REST API |
25
+ | DrugBank | 15,000+ drug entries with targets | Academic license |
26
+ | PDB (Protein Data Bank) | 220,000+ 3D structures | Free download, REST API |
27
+ | UniProt | 250M+ protein sequences | Free, REST API |
28
+ | STITCH | Chemical-protein interactions | Free academic access |
29
+
30
+ ### Fetching Bioactivity Data
31
+
32
+ ```python
33
+ from chembl_webresource_client.new_client import new_client
34
+
35
+ def get_target_bioactivities(target_chembl_id: str,
36
+ activity_type: str = "IC50",
37
+ max_nm: float = 10000) -> list[dict]:
38
+ """
39
+ Retrieve bioactivity data for a protein target from ChEMBL.
40
+ Returns compounds with measured binding/inhibition values.
41
+ """
42
+ activity = new_client.activity
43
+ results = activity.filter(
44
+ target_chembl_id=target_chembl_id,
45
+ standard_type=activity_type,
46
+ standard_relation="=",
47
+ standard_units="nM",
48
+ ).only([
49
+ "molecule_chembl_id", "canonical_smiles",
50
+ "standard_value", "standard_type",
51
+ "pchembl_value", "assay_description",
52
+ ])
53
+
54
+ filtered = []
55
+ for r in results:
56
+ if r.get("standard_value") and float(r["standard_value"]) <= max_nm:
57
+ filtered.append({
58
+ "molecule_id": r["molecule_chembl_id"],
59
+ "smiles": r["canonical_smiles"],
60
+ "activity_type": r["standard_type"],
61
+ "value_nM": float(r["standard_value"]),
62
+ "pchembl": float(r["pchembl_value"]) if r.get("pchembl_value") else None,
63
+ })
64
+ return filtered
65
+ ```
66
+
67
+ ## Molecular Fingerprints and Descriptors
68
+
69
+ ### Computing Molecular Representations
70
+
71
+ ```python
72
+ from rdkit import Chem
73
+ from rdkit.Chem import AllChem, Descriptors, rdMolDescriptors
74
+ import numpy as np
75
+
76
+ def compute_fingerprints(smiles_list: list[str],
77
+ fp_type: str = "morgan",
78
+ radius: int = 2,
79
+ n_bits: int = 2048) -> np.ndarray:
80
+ """
81
+ Compute molecular fingerprints from SMILES strings.
82
+ fp_type: 'morgan' (ECFP-like), 'maccs', 'rdkit', 'topological'
83
+ """
84
+ fps = []
85
+ for smi in smiles_list:
86
+ mol = Chem.MolFromSmiles(smi)
87
+ if mol is None:
88
+ fps.append(np.zeros(n_bits))
89
+ continue
90
+
91
+ if fp_type == "morgan":
92
+ fp = AllChem.GetMorganFingerprintAsBitVect(mol, radius, nBits=n_bits)
93
+ elif fp_type == "maccs":
94
+ fp = rdMolDescriptors.GetMACCSKeysFingerprint(mol)
95
+ elif fp_type == "rdkit":
96
+ fp = Chem.RDKFingerprint(mol, fpSize=n_bits)
97
+ else:
98
+ fp = AllChem.GetMorganFingerprintAsBitVect(mol, radius, nBits=n_bits)
99
+
100
+ arr = np.zeros(len(fp))
101
+ Chem.DataStructs.ConvertToNumpyArray(fp, arr)
102
+ fps.append(arr)
103
+
104
+ return np.array(fps)
105
+
106
+ def compute_descriptors(smiles: str) -> dict:
107
+ """Compute physicochemical descriptors for a molecule."""
108
+ mol = Chem.MolFromSmiles(smiles)
109
+ if mol is None:
110
+ return {}
111
+ return {
112
+ "molecular_weight": Descriptors.MolWt(mol),
113
+ "logP": Descriptors.MolLogP(mol),
114
+ "hbd": Descriptors.NumHDonors(mol),
115
+ "hba": Descriptors.NumHAcceptors(mol),
116
+ "tpsa": Descriptors.TPSA(mol),
117
+ "rotatable_bonds": Descriptors.NumRotatableBonds(mol),
118
+ "aromatic_rings": Descriptors.NumAromaticRings(mol),
119
+ "lipinski_violations": sum([
120
+ Descriptors.MolWt(mol) > 500,
121
+ Descriptors.MolLogP(mol) > 5,
122
+ Descriptors.NumHDonors(mol) > 5,
123
+ Descriptors.NumHAcceptors(mol) > 10,
124
+ ]),
125
+ }
126
+ ```
127
+
128
+ ## Machine Learning for DTI Prediction
129
+
130
+ ### Binary Classification Model
131
+
132
+ ```python
133
+ from sklearn.ensemble import RandomForestClassifier
134
+ from sklearn.model_selection import StratifiedKFold
135
+ from sklearn.metrics import roc_auc_score, average_precision_score
136
+
137
+ def train_dti_classifier(compound_fps: np.ndarray,
138
+ target_features: np.ndarray,
139
+ labels: np.ndarray) -> dict:
140
+ """
141
+ Train a DTI classifier using compound-target pair features.
142
+ compound_fps: molecular fingerprints (n_samples, fp_dim)
143
+ target_features: protein descriptors (n_samples, target_dim)
144
+ labels: binary interaction labels (1=interacts, 0=no interaction)
145
+ """
146
+ # Concatenate compound and target features
147
+ X = np.hstack([compound_fps, target_features])
148
+ y = labels
149
+
150
+ skf = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)
151
+ metrics = {"auroc": [], "auprc": []}
152
+
153
+ for train_idx, test_idx in skf.split(X, y):
154
+ model = RandomForestClassifier(
155
+ n_estimators=500, max_depth=20, n_jobs=-1, random_state=42
156
+ )
157
+ model.fit(X[train_idx], y[train_idx])
158
+ pred_proba = model.predict_proba(X[test_idx])[:, 1]
159
+
160
+ metrics["auroc"].append(roc_auc_score(y[test_idx], pred_proba))
161
+ metrics["auprc"].append(average_precision_score(y[test_idx], pred_proba))
162
+
163
+ return {
164
+ "mean_auroc": np.mean(metrics["auroc"]),
165
+ "mean_auprc": np.mean(metrics["auprc"]),
166
+ "model": model,
167
+ }
168
+ ```
169
+
170
+ ### Deep Learning Approaches
171
+
172
+ Modern DTI prediction architectures:
173
+
174
+ | Method | Compound Representation | Target Representation | Architecture |
175
+ |--------|------------------------|----------------------|-------------|
176
+ | DeepDTA | SMILES (1D CNN) | Protein sequence (1D CNN) | Concatenation + FC |
177
+ | GraphDTA | Molecular graph (GCN/GAT) | Protein sequence (CNN) | Graph + sequence fusion |
178
+ | MolTrans | SMILES (Transformer) | Protein sequence (Transformer) | Cross-attention |
179
+ | DrugBAN | Molecular graph | Protein graph | Bilinear attention |
180
+
181
+ ## Molecular Docking
182
+
183
+ ### Structure-Based Virtual Screening
184
+
185
+ ```python
186
+ import subprocess
187
+
188
+ def run_autodock_vina(receptor_pdbqt: str, ligand_pdbqt: str,
189
+ center: tuple, box_size: tuple = (20, 20, 20),
190
+ exhaustiveness: int = 8) -> dict:
191
+ """
192
+ Run AutoDock Vina for molecular docking.
193
+ receptor_pdbqt: path to prepared receptor file
194
+ ligand_pdbqt: path to prepared ligand file
195
+ center: (x, y, z) coordinates of the binding site center
196
+ Returns docking scores and poses.
197
+ """
198
+ cmd = [
199
+ "vina",
200
+ "--receptor", receptor_pdbqt,
201
+ "--ligand", ligand_pdbqt,
202
+ "--center_x", str(center[0]),
203
+ "--center_y", str(center[1]),
204
+ "--center_z", str(center[2]),
205
+ "--size_x", str(box_size[0]),
206
+ "--size_y", str(box_size[1]),
207
+ "--size_z", str(box_size[2]),
208
+ "--exhaustiveness", str(exhaustiveness),
209
+ "--num_modes", "9",
210
+ ]
211
+ result = subprocess.run(cmd, capture_output=True, text=True)
212
+ # Parse output for binding affinities
213
+ scores = []
214
+ for line in result.stdout.split("\n"):
215
+ parts = line.split()
216
+ if len(parts) >= 4 and parts[0].isdigit():
217
+ scores.append({
218
+ "mode": int(parts[0]),
219
+ "affinity_kcal_mol": float(parts[1]),
220
+ "rmsd_lb": float(parts[2]),
221
+ "rmsd_ub": float(parts[3]),
222
+ })
223
+ return {"scores": scores, "best_affinity": scores[0]["affinity_kcal_mol"] if scores else None}
224
+ ```
225
+
226
+ ## Validation and Benchmarking
227
+
228
+ Standard benchmarks for DTI prediction:
229
+
230
+ - **DUD-E**: Directory of Useful Decoys, Enhanced (102 targets, 22,886 actives)
231
+ - **MUV**: Maximum Unbiased Validation datasets (17 targets)
232
+ - **LIT-PCBA**: Large-scale confirmatory bioassay benchmark
233
+ - **Davis and KIBA**: Kinase binding affinity datasets for regression
234
+
235
+ ## Tools and Libraries
236
+
237
+ - **RDKit**: Open-source cheminformatics toolkit
238
+ - **AutoDock Vina / Smina**: Molecular docking engines
239
+ - **OpenMM**: GPU-accelerated molecular dynamics
240
+ - **DeepChem**: Deep learning for drug discovery
241
+ - **PyMOL / ChimeraX**: Molecular visualization
242
+ - **Open Babel**: Chemical file format conversion
@@ -0,0 +1,153 @@
1
+ ---
2
+ name: madd-drug-discovery-guide
3
+ description: "Multi-agent system for automated drug discovery pipelines"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "💊"
7
+ category: "domains"
8
+ subcategory: "pharma"
9
+ keywords: ["drug discovery", "multi-agent", "molecular design", "ADMET", "virtual screening", "pharma AI"]
10
+ source: "https://github.com/sb-ai-lab/MADD"
11
+ ---
12
+
13
+ # MADD: Multi-Agent Drug Discovery Guide
14
+
15
+ ## Overview
16
+
17
+ MADD (Multi-Agent Drug Discovery) is a multi-agent system that automates key stages of the drug discovery pipeline — target identification, molecule generation, property prediction (ADMET), docking simulation, and lead optimization. Specialized agents collaborate to propose, evaluate, and refine drug candidates, reducing the manual effort in early-stage drug discovery research.
18
+
19
+ ## Agent Pipeline
20
+
21
+ ```
22
+ Target Protein
23
+
24
+ Target Analysis Agent (binding site, druggability)
25
+
26
+ Molecule Generation Agent (de novo design)
27
+
28
+ Property Prediction Agent (ADMET screening)
29
+
30
+ Docking Agent (binding affinity estimation)
31
+
32
+ Optimization Agent (lead optimization cycle)
33
+
34
+ Report Agent (candidate ranking + rationale)
35
+ ```
36
+
37
+ ## Usage
38
+
39
+ ```python
40
+ from madd import DrugDiscoveryPipeline
41
+
42
+ pipeline = DrugDiscoveryPipeline(
43
+ llm_provider="anthropic",
44
+ tools=["rdkit", "autodock_vina", "admet_predictor"],
45
+ )
46
+
47
+ # Run discovery pipeline
48
+ results = pipeline.discover(
49
+ target_protein="6LU7", # PDB ID (SARS-CoV-2 Mpro)
50
+ target_site="active_site",
51
+ constraints={
52
+ "molecular_weight": (200, 500), # Lipinski
53
+ "logP": (-0.4, 5.6),
54
+ "hbd": (0, 5),
55
+ "hba": (0, 10),
56
+ "tpsa": (0, 140),
57
+ },
58
+ num_candidates=100,
59
+ optimization_rounds=3,
60
+ )
61
+
62
+ # Top candidates
63
+ for i, mol in enumerate(results.top_candidates[:5]):
64
+ print(f"\nCandidate {i+1}: {mol.smiles}")
65
+ print(f" Docking score: {mol.docking_score:.2f} kcal/mol")
66
+ print(f" QED: {mol.qed:.3f}")
67
+ print(f" Synthetic accessibility: {mol.sa_score:.2f}")
68
+ print(f" ADMET: {mol.admet_summary}")
69
+ ```
70
+
71
+ ## ADMET Prediction
72
+
73
+ ```python
74
+ from madd.agents import ADMETAgent
75
+
76
+ admet = ADMETAgent()
77
+
78
+ # Predict ADMET properties for a molecule
79
+ props = admet.predict("CC(=O)Oc1ccccc1C(=O)O") # Aspirin
80
+
81
+ print(f"Absorption: {props.absorption}")
82
+ print(f"Distribution: {props.distribution}")
83
+ print(f"Metabolism: {props.metabolism}")
84
+ print(f"Excretion: {props.excretion}")
85
+ print(f"Toxicity: {props.toxicity}")
86
+ print(f"BBB penetration: {props.bbb_penetration}")
87
+ print(f"CYP inhibition: {props.cyp_inhibition}")
88
+ print(f"hERG liability: {props.herg_risk}")
89
+ ```
90
+
91
+ ## Molecule Generation
92
+
93
+ ```python
94
+ from madd.agents import MolGenAgent
95
+
96
+ gen = MolGenAgent(method="reinforcement_learning")
97
+
98
+ # Generate molecules targeting a binding site
99
+ molecules = gen.generate(
100
+ target_pdb="6LU7",
101
+ binding_site="active_site",
102
+ num_molecules=500,
103
+ diversity_threshold=0.5, # Tanimoto diversity
104
+ constraints={
105
+ "drug_likeness": True, # Lipinski + Veber
106
+ "novelty": True, # Not in ChEMBL
107
+ },
108
+ )
109
+
110
+ print(f"Generated: {len(molecules)}")
111
+ print(f"Drug-like: {sum(1 for m in molecules if m.is_drug_like)}")
112
+ print(f"Novel: {sum(1 for m in molecules if m.is_novel)}")
113
+ ```
114
+
115
+ ## Lead Optimization
116
+
117
+ ```python
118
+ from madd.agents import OptimizationAgent
119
+
120
+ optimizer = OptimizationAgent()
121
+
122
+ # Optimize a lead compound
123
+ optimized = optimizer.optimize(
124
+ lead_smiles="c1ccc(-c2ncc(F)c(N)n2)cc1",
125
+ objectives=[
126
+ ("docking_score", "minimize"),
127
+ ("qed", "maximize"),
128
+ ("sa_score", "minimize"),
129
+ ("solubility", "maximize"),
130
+ ],
131
+ num_iterations=50,
132
+ keep_scaffold=True, # Maintain core structure
133
+ )
134
+
135
+ for mol in optimized.pareto_front[:5]:
136
+ print(f"SMILES: {mol.smiles}")
137
+ print(f" Docking: {mol.docking_score:.2f}")
138
+ print(f" QED: {mol.qed:.3f}")
139
+ ```
140
+
141
+ ## Use Cases
142
+
143
+ 1. **Hit discovery**: Generate novel drug candidates for targets
144
+ 2. **Lead optimization**: Improve properties of promising compounds
145
+ 3. **ADMET screening**: Predict pharmacokinetic properties
146
+ 4. **Virtual screening**: Score large molecule libraries
147
+ 5. **Drug repurposing**: Evaluate known drugs for new targets
148
+
149
+ ## References
150
+
151
+ - [MADD GitHub](https://github.com/sb-ai-lab/MADD)
152
+ - [RDKit](https://www.rdkit.org/) — Chemistry toolkit
153
+ - [AutoDock Vina](https://vina.scripps.edu/) — Molecular docking