@wentorai/research-plugins 1.3.2 → 1.4.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 (229) hide show
  1. package/README.md +32 -56
  2. package/curated/analysis/README.md +1 -13
  3. package/curated/domains/README.md +1 -5
  4. package/curated/literature/README.md +1 -10
  5. package/curated/research/README.md +1 -18
  6. package/curated/tools/README.md +1 -12
  7. package/curated/writing/README.md +1 -5
  8. package/index.ts +88 -5
  9. package/openclaw.plugin.json +3 -12
  10. package/package.json +3 -5
  11. package/skills/analysis/statistics/SKILL.md +1 -1
  12. package/skills/analysis/statistics/meta-analysis-guide/SKILL.md +1 -1
  13. package/skills/domains/ai-ml/SKILL.md +3 -2
  14. package/skills/domains/ai-ml/generative-ai-guide/SKILL.md +1 -0
  15. package/skills/domains/ai-ml/huggingface-api/SKILL.md +251 -0
  16. package/skills/domains/biomedical/SKILL.md +9 -2
  17. package/skills/domains/biomedical/alphafold-api/SKILL.md +227 -0
  18. package/skills/domains/biomedical/biothings-api/SKILL.md +296 -0
  19. package/skills/domains/biomedical/clinicaltrials-api-v2/SKILL.md +216 -0
  20. package/skills/domains/biomedical/enrichr-api/SKILL.md +264 -0
  21. package/skills/domains/biomedical/ensembl-rest-api/SKILL.md +204 -0
  22. package/skills/domains/biomedical/medical-data-api/SKILL.md +197 -0
  23. package/skills/domains/biomedical/pdb-structure-api/SKILL.md +219 -0
  24. package/skills/domains/business/SKILL.md +2 -3
  25. package/skills/domains/chemistry/SKILL.md +3 -2
  26. package/skills/domains/chemistry/catalysis-hub-api/SKILL.md +171 -0
  27. package/skills/domains/education/SKILL.md +2 -3
  28. package/skills/domains/law/SKILL.md +3 -2
  29. package/skills/domains/law/uk-legislation-api/SKILL.md +179 -0
  30. package/skills/literature/fulltext/SKILL.md +3 -2
  31. package/skills/literature/fulltext/arxiv-latex-source/SKILL.md +195 -0
  32. package/skills/literature/search/SKILL.md +2 -3
  33. package/skills/research/automation/SKILL.md +2 -3
  34. package/skills/research/automation/datagen-research-guide/SKILL.md +1 -0
  35. package/skills/research/automation/mle-agent-guide/SKILL.md +1 -0
  36. package/skills/research/automation/paper-to-agent-guide/SKILL.md +1 -0
  37. package/skills/research/deep-research/auto-deep-research-guide/SKILL.md +1 -0
  38. package/skills/research/methodology/SKILL.md +1 -1
  39. package/skills/research/methodology/claude-scientific-guide/SKILL.md +1 -0
  40. package/skills/research/methodology/qualitative-research-guide/SKILL.md +1 -1
  41. package/skills/research/paper-review/SKILL.md +1 -1
  42. package/skills/research/paper-review/peer-review-guide/SKILL.md +1 -1
  43. package/skills/tools/knowledge-graph/SKILL.md +2 -3
  44. package/skills/tools/ocr-translate/zotero-pdf2zh-guide/SKILL.md +1 -0
  45. package/skills/writing/citation/obsidian-citation-guide/SKILL.md +1 -0
  46. package/skills/writing/citation/obsidian-zotero-guide/SKILL.md +1 -0
  47. package/skills/writing/citation/papersgpt-zotero-guide/SKILL.md +1 -0
  48. package/skills/writing/citation/zotero-mdnotes-guide/SKILL.md +1 -0
  49. package/skills/writing/citation/zotero-reference-guide/SKILL.md +1 -0
  50. package/skills/writing/composition/scientific-writing-resources/SKILL.md +1 -0
  51. package/skills/writing/latex/latex-drawing-collection/SKILL.md +1 -0
  52. package/skills/writing/latex/latex-templates-collection/SKILL.md +1 -0
  53. package/skills/writing/templates/novathesis-guide/SKILL.md +1 -0
  54. package/src/tools/arxiv.ts +78 -30
  55. package/src/tools/biorxiv.ts +142 -0
  56. package/src/tools/crossref.ts +60 -22
  57. package/src/tools/datacite.ts +188 -0
  58. package/src/tools/dblp.ts +125 -0
  59. package/src/tools/doaj.ts +82 -0
  60. package/src/tools/europe-pmc.ts +159 -0
  61. package/src/tools/hal.ts +118 -0
  62. package/src/tools/inspire-hep.ts +165 -0
  63. package/src/tools/openaire.ts +158 -0
  64. package/src/tools/openalex.ts +20 -15
  65. package/src/tools/opencitations.ts +103 -0
  66. package/src/tools/orcid.ts +136 -0
  67. package/src/tools/osf-preprints.ts +104 -0
  68. package/src/tools/pubmed.ts +19 -13
  69. package/src/tools/ror.ts +118 -0
  70. package/src/tools/unpaywall.ts +12 -6
  71. package/src/tools/util.ts +141 -0
  72. package/src/tools/zenodo.ts +154 -0
  73. package/mcp-configs/academic-db/ChatSpatial.json +0 -17
  74. package/mcp-configs/academic-db/academia-mcp.json +0 -17
  75. package/mcp-configs/academic-db/academic-paper-explorer.json +0 -17
  76. package/mcp-configs/academic-db/academic-search-mcp-server.json +0 -17
  77. package/mcp-configs/academic-db/agentinterviews-mcp.json +0 -17
  78. package/mcp-configs/academic-db/all-in-mcp.json +0 -17
  79. package/mcp-configs/academic-db/alphafold-mcp.json +0 -20
  80. package/mcp-configs/academic-db/apple-health-mcp.json +0 -17
  81. package/mcp-configs/academic-db/arxiv-latex-mcp.json +0 -17
  82. package/mcp-configs/academic-db/arxiv-mcp-server.json +0 -17
  83. package/mcp-configs/academic-db/bgpt-mcp.json +0 -17
  84. package/mcp-configs/academic-db/biomcp.json +0 -17
  85. package/mcp-configs/academic-db/biothings-mcp.json +0 -17
  86. package/mcp-configs/academic-db/brightspace-mcp.json +0 -21
  87. package/mcp-configs/academic-db/catalysishub-mcp-server.json +0 -17
  88. package/mcp-configs/academic-db/climatiq-mcp.json +0 -20
  89. package/mcp-configs/academic-db/clinicaltrialsgov-mcp-server.json +0 -17
  90. package/mcp-configs/academic-db/deep-research-mcp.json +0 -17
  91. package/mcp-configs/academic-db/dicom-mcp.json +0 -17
  92. package/mcp-configs/academic-db/enrichr-mcp-server.json +0 -17
  93. package/mcp-configs/academic-db/fec-mcp-server.json +0 -17
  94. package/mcp-configs/academic-db/fhir-mcp-server-themomentum.json +0 -17
  95. package/mcp-configs/academic-db/fhir-mcp.json +0 -19
  96. package/mcp-configs/academic-db/gget-mcp.json +0 -17
  97. package/mcp-configs/academic-db/gibs-mcp.json +0 -20
  98. package/mcp-configs/academic-db/gis-mcp-server.json +0 -22
  99. package/mcp-configs/academic-db/google-earth-engine-mcp.json +0 -21
  100. package/mcp-configs/academic-db/google-researcher-mcp.json +0 -17
  101. package/mcp-configs/academic-db/idea-reality-mcp.json +0 -17
  102. package/mcp-configs/academic-db/legiscan-mcp.json +0 -19
  103. package/mcp-configs/academic-db/lex.json +0 -17
  104. package/mcp-configs/academic-db/m4-clinical-mcp.json +0 -21
  105. package/mcp-configs/academic-db/medical-mcp.json +0 -21
  106. package/mcp-configs/academic-db/nexonco-mcp.json +0 -20
  107. package/mcp-configs/academic-db/omop-mcp.json +0 -20
  108. package/mcp-configs/academic-db/onekgpd-mcp.json +0 -20
  109. package/mcp-configs/academic-db/openedu-mcp.json +0 -20
  110. package/mcp-configs/academic-db/opengenes-mcp.json +0 -20
  111. package/mcp-configs/academic-db/openstax-mcp.json +0 -21
  112. package/mcp-configs/academic-db/openstreetmap-mcp.json +0 -21
  113. package/mcp-configs/academic-db/opentargets-mcp.json +0 -21
  114. package/mcp-configs/academic-db/pdb-mcp.json +0 -21
  115. package/mcp-configs/academic-db/smithsonian-mcp.json +0 -20
  116. package/mcp-configs/ai-platform/Adaptive-Graph-of-Thoughts-MCP-server.json +0 -17
  117. package/mcp-configs/ai-platform/ai-counsel.json +0 -17
  118. package/mcp-configs/ai-platform/atlas-mcp-server.json +0 -17
  119. package/mcp-configs/ai-platform/counsel-mcp.json +0 -17
  120. package/mcp-configs/ai-platform/cross-llm-mcp.json +0 -17
  121. package/mcp-configs/ai-platform/gptr-mcp.json +0 -17
  122. package/mcp-configs/ai-platform/magi-researchers.json +0 -21
  123. package/mcp-configs/ai-platform/mcp-academic-researcher.json +0 -22
  124. package/mcp-configs/ai-platform/open-paper-machine.json +0 -21
  125. package/mcp-configs/ai-platform/paper-intelligence.json +0 -21
  126. package/mcp-configs/ai-platform/paper-reader.json +0 -21
  127. package/mcp-configs/ai-platform/paperdebugger.json +0 -21
  128. package/mcp-configs/browser/decipher-research-agent.json +0 -17
  129. package/mcp-configs/browser/deep-research.json +0 -17
  130. package/mcp-configs/browser/everything-claude-code.json +0 -17
  131. package/mcp-configs/browser/exa-mcp.json +0 -20
  132. package/mcp-configs/browser/gpt-researcher.json +0 -17
  133. package/mcp-configs/browser/heurist-agent-framework.json +0 -17
  134. package/mcp-configs/browser/mcp-searxng.json +0 -21
  135. package/mcp-configs/browser/mcp-webresearch.json +0 -20
  136. package/mcp-configs/cloud-docs/confluence-mcp.json +0 -37
  137. package/mcp-configs/cloud-docs/google-drive-mcp.json +0 -35
  138. package/mcp-configs/cloud-docs/notion-mcp.json +0 -29
  139. package/mcp-configs/communication/discord-mcp.json +0 -29
  140. package/mcp-configs/communication/discourse-mcp.json +0 -21
  141. package/mcp-configs/communication/slack-mcp.json +0 -29
  142. package/mcp-configs/communication/telegram-mcp.json +0 -28
  143. package/mcp-configs/data-platform/4everland-hosting-mcp.json +0 -17
  144. package/mcp-configs/data-platform/automl-stat-mcp.json +0 -21
  145. package/mcp-configs/data-platform/context-keeper.json +0 -17
  146. package/mcp-configs/data-platform/context7.json +0 -19
  147. package/mcp-configs/data-platform/contextstream-mcp.json +0 -17
  148. package/mcp-configs/data-platform/email-mcp.json +0 -17
  149. package/mcp-configs/data-platform/jefferson-stats-mcp.json +0 -22
  150. package/mcp-configs/data-platform/mcp-excel-server.json +0 -21
  151. package/mcp-configs/data-platform/mcp-stata.json +0 -21
  152. package/mcp-configs/data-platform/mcpstack-jupyter.json +0 -21
  153. package/mcp-configs/data-platform/ml-mcp.json +0 -21
  154. package/mcp-configs/data-platform/nasdaq-data-link-mcp.json +0 -20
  155. package/mcp-configs/data-platform/numpy-mcp.json +0 -21
  156. package/mcp-configs/database/neo4j-mcp.json +0 -37
  157. package/mcp-configs/database/postgres-mcp.json +0 -28
  158. package/mcp-configs/database/sqlite-mcp.json +0 -29
  159. package/mcp-configs/dev-platform/geogebra-mcp.json +0 -21
  160. package/mcp-configs/dev-platform/github-mcp.json +0 -31
  161. package/mcp-configs/dev-platform/gitlab-mcp.json +0 -34
  162. package/mcp-configs/dev-platform/latex-mcp-server.json +0 -21
  163. package/mcp-configs/dev-platform/manim-mcp.json +0 -20
  164. package/mcp-configs/dev-platform/mcp-echarts.json +0 -20
  165. package/mcp-configs/dev-platform/panel-viz-mcp.json +0 -20
  166. package/mcp-configs/dev-platform/paperbanana.json +0 -20
  167. package/mcp-configs/dev-platform/texflow-mcp.json +0 -20
  168. package/mcp-configs/dev-platform/texmcp.json +0 -20
  169. package/mcp-configs/dev-platform/typst-mcp.json +0 -21
  170. package/mcp-configs/dev-platform/vizro-mcp.json +0 -20
  171. package/mcp-configs/email/email-mcp.json +0 -40
  172. package/mcp-configs/email/gmail-mcp.json +0 -37
  173. package/mcp-configs/note-knowledge/ApeRAG.json +0 -17
  174. package/mcp-configs/note-knowledge/In-Memoria.json +0 -17
  175. package/mcp-configs/note-knowledge/agent-memory.json +0 -17
  176. package/mcp-configs/note-knowledge/aimemo.json +0 -17
  177. package/mcp-configs/note-knowledge/biel-mcp.json +0 -19
  178. package/mcp-configs/note-knowledge/cognee.json +0 -17
  179. package/mcp-configs/note-knowledge/context-awesome.json +0 -17
  180. package/mcp-configs/note-knowledge/context-mcp.json +0 -17
  181. package/mcp-configs/note-knowledge/conversation-handoff-mcp.json +0 -17
  182. package/mcp-configs/note-knowledge/cortex.json +0 -17
  183. package/mcp-configs/note-knowledge/devrag.json +0 -17
  184. package/mcp-configs/note-knowledge/easy-obsidian-mcp.json +0 -17
  185. package/mcp-configs/note-knowledge/engram.json +0 -17
  186. package/mcp-configs/note-knowledge/gnosis-mcp.json +0 -17
  187. package/mcp-configs/note-knowledge/graphlit-mcp-server.json +0 -19
  188. package/mcp-configs/note-knowledge/local-faiss-mcp.json +0 -21
  189. package/mcp-configs/note-knowledge/mcp-memory-service.json +0 -21
  190. package/mcp-configs/note-knowledge/mcp-obsidian.json +0 -23
  191. package/mcp-configs/note-knowledge/mcp-ragdocs.json +0 -20
  192. package/mcp-configs/note-knowledge/mcp-summarizer.json +0 -21
  193. package/mcp-configs/note-knowledge/mediawiki-mcp.json +0 -21
  194. package/mcp-configs/note-knowledge/openzim-mcp.json +0 -20
  195. package/mcp-configs/note-knowledge/zettelkasten-mcp.json +0 -21
  196. package/mcp-configs/reference-mgr/academic-paper-mcp-http.json +0 -20
  197. package/mcp-configs/reference-mgr/academix.json +0 -20
  198. package/mcp-configs/reference-mgr/arxiv-cli.json +0 -17
  199. package/mcp-configs/reference-mgr/arxiv-research-mcp.json +0 -21
  200. package/mcp-configs/reference-mgr/arxiv-search-mcp.json +0 -17
  201. package/mcp-configs/reference-mgr/chiken.json +0 -17
  202. package/mcp-configs/reference-mgr/claude-scholar.json +0 -17
  203. package/mcp-configs/reference-mgr/devonthink-mcp.json +0 -17
  204. package/mcp-configs/reference-mgr/google-scholar-abstract-mcp.json +0 -19
  205. package/mcp-configs/reference-mgr/google-scholar-mcp.json +0 -20
  206. package/mcp-configs/reference-mgr/mcp-paperswithcode.json +0 -21
  207. package/mcp-configs/reference-mgr/mcp-scholarly.json +0 -20
  208. package/mcp-configs/reference-mgr/mcp-simple-arxiv.json +0 -20
  209. package/mcp-configs/reference-mgr/mcp-simple-pubmed.json +0 -20
  210. package/mcp-configs/reference-mgr/mcp-zotero.json +0 -21
  211. package/mcp-configs/reference-mgr/mendeley-mcp.json +0 -20
  212. package/mcp-configs/reference-mgr/ncbi-mcp-server.json +0 -22
  213. package/mcp-configs/reference-mgr/onecite.json +0 -21
  214. package/mcp-configs/reference-mgr/paper-search-mcp.json +0 -21
  215. package/mcp-configs/reference-mgr/pubmed-search-mcp.json +0 -21
  216. package/mcp-configs/reference-mgr/scholar-mcp.json +0 -21
  217. package/mcp-configs/reference-mgr/scholar-multi-mcp.json +0 -21
  218. package/mcp-configs/reference-mgr/seerai.json +0 -21
  219. package/mcp-configs/reference-mgr/semantic-scholar-fastmcp.json +0 -21
  220. package/mcp-configs/reference-mgr/sourcelibrary.json +0 -20
  221. package/mcp-configs/registry.json +0 -476
  222. package/mcp-configs/repository/dataverse-mcp.json +0 -33
  223. package/mcp-configs/repository/huggingface-mcp.json +0 -29
  224. package/skills/domains/business/xpert-bi-guide/SKILL.md +0 -84
  225. package/skills/domains/education/edumcp-guide/SKILL.md +0 -74
  226. package/skills/literature/search/paper-search-mcp-guide/SKILL.md +0 -107
  227. package/skills/research/automation/mcp-server-guide/SKILL.md +0 -211
  228. package/skills/tools/knowledge-graph/paperpile-notion-guide/SKILL.md +0 -84
  229. package/src/tools/semantic-scholar.ts +0 -66
@@ -0,0 +1,227 @@
1
+ ---
2
+ name: alphafold-api
3
+ description: "Query AlphaFold protein structure predictions by UniProt accession"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "🧬"
7
+ category: "domains"
8
+ subcategory: "biomedical"
9
+ keywords: ["protein structure", "AlphaFold", "structure prediction", "UniProt", "pLDDT", "bioinformatics"]
10
+ source: "https://alphafold.ebi.ac.uk"
11
+ ---
12
+
13
+ # AlphaFold Protein Structure Database API
14
+
15
+ ## Overview
16
+
17
+ The AlphaFold DB, maintained by EMBL-EBI and DeepMind, provides open access to over 200 million protein structure predictions. The REST API enables programmatic lookup of predicted structures, confidence metrics (pLDDT, PAE), and downloadable structure files (PDB, mmCIF, BinaryCIF) keyed on UniProt accessions. Free, no authentication required.
18
+
19
+ ## Authentication
20
+
21
+ None. All endpoints are publicly accessible without API keys or tokens.
22
+
23
+ ## Core Endpoints
24
+
25
+ Base URL: `https://alphafold.ebi.ac.uk/api`
26
+
27
+ ### 1. Get Prediction by UniProt Accession
28
+
29
+ Retrieves all AlphaFold models for a given UniProt accession or model ID.
30
+
31
+ ```bash
32
+ curl "https://alphafold.ebi.ac.uk/api/prediction/P04637"
33
+ ```
34
+
35
+ **Response** (first entry, abbreviated):
36
+
37
+ ```json
38
+ [
39
+ {
40
+ "entryId": "AF-P04637-F1",
41
+ "uniprotAccession": "P04637",
42
+ "uniprotId": "P53_HUMAN",
43
+ "uniprotDescription": "Cellular tumor antigen p53",
44
+ "gene": "TP53",
45
+ "organismScientificName": "Homo sapiens",
46
+ "taxId": 9606,
47
+ "globalMetricValue": 75.06,
48
+ "fractionPlddtVeryHigh": 0.527,
49
+ "fractionPlddtConfident": 0.071,
50
+ "fractionPlddtLow": 0.104,
51
+ "fractionPlddtVeryLow": 0.298,
52
+ "latestVersion": 6,
53
+ "modelCreatedDate": "2025-08-01T00:00:00Z",
54
+ "sequenceStart": 1,
55
+ "sequenceEnd": 393,
56
+ "pdbUrl": "https://alphafold.ebi.ac.uk/files/AF-P04637-F1-model_v6.pdb",
57
+ "cifUrl": "https://alphafold.ebi.ac.uk/files/AF-P04637-F1-model_v6.cif",
58
+ "bcifUrl": "https://alphafold.ebi.ac.uk/files/AF-P04637-F1-model_v6.bcif",
59
+ "paeImageUrl": "https://alphafold.ebi.ac.uk/files/AF-P04637-F1-predicted_aligned_error_v6.png",
60
+ "paeDocUrl": "https://alphafold.ebi.ac.uk/files/AF-P04637-F1-predicted_aligned_error_v6.json",
61
+ "plddtDocUrl": "https://alphafold.ebi.ac.uk/files/AF-P04637-F1-confidence_v6.json",
62
+ "amAnnotationsUrl": "https://alphafold.ebi.ac.uk/files/AF-P04637-F1-aa-substitutions.csv"
63
+ }
64
+ ]
65
+ ```
66
+
67
+ ### 2. Per-Residue Confidence Scores (pLDDT)
68
+
69
+ Download the per-residue pLDDT confidence JSON linked in `plddtDocUrl`:
70
+
71
+ ```bash
72
+ curl "https://alphafold.ebi.ac.uk/files/AF-P04637-F1-confidence_v6.json"
73
+ ```
74
+
75
+ **Response** (truncated):
76
+
77
+ ```json
78
+ {
79
+ "residueNumber": [1, 2, 3, 4, 5],
80
+ "confidenceScore": [40.66, 44.53, 49.97, 48.59, 44.88],
81
+ "confidenceCategory": ["D", "D", "D", "D", "D"]
82
+ }
83
+ ```
84
+
85
+ Categories: **A** (Very High, >90), **B** (Confident, 70-90), **C** (Low, 50-70), **D** (Very Low, <50).
86
+
87
+ ### 3. UniProt Summary (3D-Beacons Format)
88
+
89
+ Returns model metadata following the 3D-Beacons data standard:
90
+
91
+ ```bash
92
+ curl "https://alphafold.ebi.ac.uk/api/uniprot/summary/P04637.json"
93
+ ```
94
+
95
+ **Response** (abbreviated):
96
+
97
+ ```json
98
+ {
99
+ "uniprot_entry": {
100
+ "ac": "P04637",
101
+ "id": "P53_HUMAN",
102
+ "sequence_length": 393
103
+ },
104
+ "structures": [
105
+ {
106
+ "summary": {
107
+ "model_identifier": "AF-P04637-F1",
108
+ "model_url": "https://alphafold.ebi.ac.uk/files/AF-P04637-F1-model_v6.cif",
109
+ "provider": "AlphaFold DB",
110
+ "confidence_type": "pLDDT",
111
+ "confidence_avg_local_score": 75.06,
112
+ "coverage": 1.0
113
+ }
114
+ }
115
+ ]
116
+ }
117
+ ```
118
+
119
+ ### 4. Download Structure Files
120
+
121
+ Structure files are available at the URLs returned in prediction responses:
122
+
123
+ ```bash
124
+ # PDB format
125
+ curl -O "https://alphafold.ebi.ac.uk/files/AF-P04637-F1-model_v6.pdb"
126
+
127
+ # mmCIF format
128
+ curl -O "https://alphafold.ebi.ac.uk/files/AF-P04637-F1-model_v6.cif"
129
+
130
+ # Predicted Aligned Error (PAE) matrix
131
+ curl -O "https://alphafold.ebi.ac.uk/files/AF-P04637-F1-predicted_aligned_error_v6.json"
132
+ ```
133
+
134
+ ## Key Response Fields
135
+
136
+ | Field | Type | Description |
137
+ |-------|------|-------------|
138
+ | `entryId` | string | AlphaFold model ID (e.g., `AF-P04637-F1`) |
139
+ | `uniprotAccession` | string | UniProt accession code |
140
+ | `gene` | string | Gene symbol |
141
+ | `globalMetricValue` | float | Average pLDDT score (0-100) |
142
+ | `fractionPlddtVeryHigh` | float | Fraction of residues with pLDDT > 90 |
143
+ | `fractionPlddtConfident` | float | Fraction with pLDDT 70-90 |
144
+ | `fractionPlddtLow` | float | Fraction with pLDDT 50-70 |
145
+ | `fractionPlddtVeryLow` | float | Fraction with pLDDT < 50 |
146
+ | `pdbUrl` | string | Direct download URL for PDB file |
147
+ | `cifUrl` | string | Direct download URL for mmCIF file |
148
+ | `paeDocUrl` | string | URL for predicted aligned error JSON |
149
+ | `plddtDocUrl` | string | URL for per-residue confidence JSON |
150
+ | `latestVersion` | int | Model version number |
151
+
152
+ ## Rate Limits
153
+
154
+ The AlphaFold DB API has no published per-request rate limits. EMBL-EBI's general fair use policy applies: usage that degrades service for others may result in blocking. For bulk downloads (entire proteomes), use the FTP archive at `https://ftp.ebi.ac.uk/pub/databases/alphafold/` rather than repeated API calls.
155
+
156
+ ## Python Example
157
+
158
+ ```python
159
+ import requests
160
+
161
+
162
+ def get_alphafold_prediction(uniprot_id: str) -> dict:
163
+ """Fetch AlphaFold structure prediction for a UniProt accession."""
164
+ url = f"https://alphafold.ebi.ac.uk/api/prediction/{uniprot_id}"
165
+ resp = requests.get(url)
166
+ resp.raise_for_status()
167
+ entries = resp.json()
168
+ # Return the canonical (first) entry
169
+ return entries[0] if entries else None
170
+
171
+
172
+ def get_confidence_scores(prediction: dict) -> dict:
173
+ """Download per-residue pLDDT confidence scores."""
174
+ resp = requests.get(prediction["plddtDocUrl"])
175
+ resp.raise_for_status()
176
+ return resp.json()
177
+
178
+
179
+ def download_structure(prediction: dict, fmt: str = "pdb",
180
+ output_dir: str = ".") -> str:
181
+ """Download structure file in pdb, cif, or bcif format."""
182
+ url_key = {"pdb": "pdbUrl", "cif": "cifUrl", "bcif": "bcifUrl"}[fmt]
183
+ url = prediction[url_key]
184
+ filename = url.split("/")[-1]
185
+ path = f"{output_dir}/{filename}"
186
+
187
+ resp = requests.get(url)
188
+ resp.raise_for_status()
189
+ with open(path, "wb") as f:
190
+ f.write(resp.content)
191
+ return path
192
+
193
+
194
+ # Example: fetch p53 structure and assess quality
195
+ pred = get_alphafold_prediction("P04637")
196
+ print(f"Gene: {pred['gene']} ({pred['uniprotDescription']})")
197
+ print(f"Organism: {pred['organismScientificName']}")
198
+ print(f"Average pLDDT: {pred['globalMetricValue']}")
199
+ print(f"Very high confidence: {pred['fractionPlddtVeryHigh']:.1%}")
200
+
201
+ # Download per-residue scores
202
+ scores = get_confidence_scores(pred)
203
+ high_conf = [i+1 for i, c in enumerate(scores["confidenceCategory"])
204
+ if c in ("A", "B")]
205
+ print(f"High-confidence residues: {len(high_conf)}/{len(scores['residueNumber'])}")
206
+
207
+ # Download PDB file
208
+ path = download_structure(pred, fmt="pdb")
209
+ print(f"Structure saved to: {path}")
210
+ ```
211
+
212
+ ## Academic Use Cases
213
+
214
+ - **Drug target assessment**: Check pLDDT scores in binding pockets before docking
215
+ - **Homology model comparison**: Compare AlphaFold predictions with experimental PDB structures
216
+ - **Disorder prediction**: Low pLDDT regions (<50) correlate with intrinsically disordered regions
217
+ - **Variant interpretation**: Use AlphaMissense annotations (via `amAnnotationsUrl`) to assess pathogenicity
218
+ - **Structural coverage**: Quickly check if a protein of interest has a predicted structure
219
+ - **Batch proteome analysis**: Retrieve predictions for all proteins in a reference proteome
220
+
221
+ ## References
222
+
223
+ - [AlphaFold Protein Structure Database](https://alphafold.ebi.ac.uk/)
224
+ - [AlphaFold DB API Documentation](https://alphafold.ebi.ac.uk/api/openapi.json)
225
+ - [AlphaFold DB FTP (Bulk Downloads)](https://ftp.ebi.ac.uk/pub/databases/alphafold/)
226
+ - Jumper, J. et al. (2021). "Highly accurate protein structure prediction with AlphaFold." *Nature* 596, 583-589.
227
+ - Varadi, M. et al. (2022). "AlphaFold Protein Structure Database: massively expanding the structural coverage of protein-sequence space with high-accuracy models." *Nucleic Acids Research* 50(D1).
@@ -0,0 +1,296 @@
1
+ ---
2
+ name: biothings-api
3
+ description: "Query gene, variant, and drug annotations via BioThings APIs"
4
+ metadata:
5
+ openclaw:
6
+ emoji: "🧪"
7
+ category: "domains"
8
+ subcategory: "biomedical"
9
+ keywords: ["gene annotation", "variant annotation", "drug data", "BioThings", "mygene", "myvariant", "bioinformatics"]
10
+ source: "https://biothings.io"
11
+ ---
12
+
13
+ # BioThings API Suite
14
+
15
+ ## Overview
16
+
17
+ BioThings is a family of high-performance biomedical annotation APIs developed at the Scripps Research Institute. The suite provides unified, up-to-date access to gene, variant, and chemical/drug annotations aggregated from dozens of authoritative sources. Three primary services cover the core entities in translational research:
18
+
19
+ - **MyGene.info** — Gene annotations from NCBI Entrez, Ensembl, UniProt, GO, KEGG, Reactome, and 20+ sources.
20
+ - **MyVariant.info** — Variant annotations from dbSNP, ClinVar, gnomAD, CADD, COSMIC, and 15+ sources.
21
+ - **MyChem.info** — Drug and chemical annotations from NDC, DrugBank, ChEMBL, FDA, PubChem, and 10+ sources.
22
+
23
+ All three share identical query syntax, require no authentication, and return JSON. Free for academic and commercial use.
24
+
25
+ ## Authentication
26
+
27
+ No authentication or API keys are required. All endpoints are open-access.
28
+
29
+ ```bash
30
+ # No API key needed — just query directly
31
+ curl "https://mygene.info/v3/query?q=BRCA1&size=1"
32
+ ```
33
+
34
+ ## MyGene.info — Gene Annotations
35
+
36
+ ### Search Genes
37
+
38
+ ```
39
+ GET https://mygene.info/v3/query?q={query}&size={n}
40
+ ```
41
+
42
+ Query by gene symbol, name, Entrez ID, Ensembl ID, or keyword. Supports boolean operators (`AND`, `OR`, `NOT`) and field-specific queries like `symbol:CDK2`.
43
+
44
+ ```bash
45
+ curl -s "https://mygene.info/v3/query?q=BRCA1&size=1"
46
+ ```
47
+
48
+ Response:
49
+
50
+ ```json
51
+ {
52
+ "took": 178,
53
+ "total": 13223,
54
+ "hits": [
55
+ {
56
+ "_id": "672",
57
+ "_score": 145.6796,
58
+ "entrezgene": "672",
59
+ "name": "BRCA1 DNA repair associated",
60
+ "symbol": "BRCA1",
61
+ "taxid": 9606
62
+ }
63
+ ]
64
+ }
65
+ ```
66
+
67
+ ### Get Gene by ID
68
+
69
+ ```
70
+ GET https://mygene.info/v3/gene/{entrez_id}
71
+ ```
72
+
73
+ Returns comprehensive annotations for a single gene. Use the `fields` parameter to select specific data sources.
74
+
75
+ ```bash
76
+ # Full annotation (large response)
77
+ curl -s "https://mygene.info/v3/gene/1017"
78
+
79
+ # Selective fields
80
+ curl -s "https://mygene.info/v3/gene/1017?fields=symbol,name,summary,genomic_pos,go"
81
+ ```
82
+
83
+ Response (key fields for CDK2, Entrez ID 1017):
84
+
85
+ ```json
86
+ {
87
+ "_id": "1017",
88
+ "symbol": "CDK2",
89
+ "name": "cyclin dependent kinase 2",
90
+ "HGNC": "1771",
91
+ "MIM": "116953",
92
+ "AllianceGenome": "1771",
93
+ "taxid": 9606,
94
+ "type_of_gene": "protein-coding"
95
+ }
96
+ ```
97
+
98
+ The full response includes accessions, Gene Ontology terms, pathway memberships (KEGG, Reactome, WikiPathways), protein domains (InterPro, Pfam), homology data, and genomic coordinates.
99
+
100
+ ## MyVariant.info — Variant Annotations
101
+
102
+ ### Search Variants
103
+
104
+ ```
105
+ GET https://myvariant.info/v1/query?q={query}&size={n}
106
+ ```
107
+
108
+ Query by rsID, HGVS notation (e.g., `chr7:g.140453136A>T`), gene symbol, or ClinVar significance. Returns aggregated annotations from 15+ sources.
109
+
110
+ ```bash
111
+ curl -s "https://myvariant.info/v1/query?q=rs58991260&size=1"
112
+ ```
113
+
114
+ Response (truncated):
115
+
116
+ ```json
117
+ {
118
+ "took": 20,
119
+ "total": 1,
120
+ "hits": [
121
+ {
122
+ "_id": "chr1:g.218631822G>A",
123
+ "_score": 21.382616,
124
+ "dbsnp": {
125
+ "rsid": "rs58991260",
126
+ "vartype": "snv",
127
+ "ref": "G",
128
+ "alt": "A",
129
+ "chrom": "1"
130
+ },
131
+ "cadd": {
132
+ "phred": 1.679,
133
+ "consequence": "INTERGENIC",
134
+ "chrom": 1,
135
+ "pos": 218631822
136
+ },
137
+ "gnomad_genome": {
138
+ "af": { "af": 0.0150338, "af_afr": 0.0528007, "af_eas": 0.0, "af_nfe": 0.00032417 },
139
+ "alt": "A",
140
+ "ref": "G"
141
+ }
142
+ }
143
+ ]
144
+ }
145
+ ```
146
+
147
+ ### Get Variant by HGVS ID
148
+
149
+ ```
150
+ GET https://myvariant.info/v1/variant/{hgvs_id}
151
+ ```
152
+
153
+ ```bash
154
+ curl -s "https://myvariant.info/v1/variant/chr1:g.218631822G>A?fields=dbsnp,cadd,clinvar"
155
+ ```
156
+
157
+ ## MyChem.info — Drug & Chemical Annotations
158
+
159
+ ### Search Drugs/Chemicals
160
+
161
+ ```
162
+ GET https://mychem.info/v1/query?q={query}&size={n}
163
+ ```
164
+
165
+ Query by drug name, NDC code, InChIKey, or active ingredient. Aggregates data from FDA NDC, DrugBank, ChEMBL, PubChem, SIDER, and more.
166
+
167
+ ```bash
168
+ curl -s "https://mychem.info/v1/query?q=aspirin&size=1"
169
+ ```
170
+
171
+ Response (truncated):
172
+
173
+ ```json
174
+ {
175
+ "took": 82,
176
+ "total": 248,
177
+ "hits": [
178
+ {
179
+ "_id": "0615-8613",
180
+ "_score": 13.657401,
181
+ "ndc": {
182
+ "substancename": "ASPIRIN",
183
+ "nonproprietaryname": "Aspirin",
184
+ "proprietaryname": "Adult Low Dose Aspirin",
185
+ "active_numerator_strength": "81",
186
+ "active_ingred_unit": "mg/1",
187
+ "dosageformname": "TABLET, DELAYED RELEASE",
188
+ "routename": "ORAL",
189
+ "producttypename": "HUMAN OTC DRUG",
190
+ "pharm_classes": [
191
+ "Cyclooxygenase Inhibitors [MoA]",
192
+ "Decreased Platelet Aggregation [PE]",
193
+ "Anti-Inflammatory Agents, Non-Steroidal [CS]",
194
+ "Nonsteroidal Anti-inflammatory Drug [EPC]",
195
+ "Platelet Aggregation Inhibitor [EPC]"
196
+ ]
197
+ }
198
+ }
199
+ ]
200
+ }
201
+ ```
202
+
203
+ ### Get Chemical by ID
204
+
205
+ ```
206
+ GET https://mychem.info/v1/chem/{id}
207
+ ```
208
+
209
+ ```bash
210
+ curl -s "https://mychem.info/v1/chem/CHEMBL25?fields=drugbank,chembl,pubchem"
211
+ ```
212
+
213
+ ## Query Syntax (Shared Across All Three APIs)
214
+
215
+ All BioThings APIs share the same query engine. Key features:
216
+
217
+ | Feature | Syntax | Example |
218
+ |---------|--------|---------|
219
+ | Field-specific | `field:value` | `symbol:TP53` |
220
+ | Boolean | `AND`, `OR`, `NOT` | `BRCA1 AND cancer` |
221
+ | Wildcard | `*` | `CDK*` |
222
+ | Range | `[min TO max]` | `exac.af:[0.01 TO 0.05]` |
223
+ | Pagination | `size`, `from` | `size=20&from=40` |
224
+ | Field selection | `fields` | `fields=symbol,name,go` |
225
+ | Sorting | `sort` | `sort=_score:desc` |
226
+ | Batch POST | POST with `ids` | Up to 1000 IDs per request |
227
+
228
+ ## Rate Limits
229
+
230
+ - **GET requests:** 3 per second sustained; bursts up to 10/s tolerated
231
+ - **POST batch requests:** 1 per second; up to 1000 IDs per batch
232
+ - **No daily cap** for reasonable academic usage
233
+ - **Best practice:** Add 350ms delays between sequential requests; use batch POST for bulk queries
234
+ - **User-Agent header:** Set a descriptive User-Agent for priority support from the BioThings team
235
+
236
+ ## Python Example: Cross-API Gene-Variant-Drug Lookup
237
+
238
+ ```python
239
+ import requests, time
240
+
241
+ MYGENE = "https://mygene.info/v3"
242
+ MYVARIANT = "https://myvariant.info/v1"
243
+ MYCHEM = "https://mychem.info/v1"
244
+
245
+ def search_gene(symbol):
246
+ resp = requests.get(f"{MYGENE}/query",
247
+ params={"q": f"symbol:{symbol}", "size": 1, "species": "human"})
248
+ resp.raise_for_status()
249
+ hits = resp.json().get("hits", [])
250
+ return hits[0] if hits else {}
251
+
252
+ def search_variants(gene_symbol, size=5):
253
+ resp = requests.get(f"{MYVARIANT}/query",
254
+ params={"q": f"clinvar.gene.symbol:{gene_symbol}",
255
+ "fields": "dbsnp.rsid,clinvar.rcv.clinical_significance,cadd.phred",
256
+ "size": size})
257
+ resp.raise_for_status()
258
+ return resp.json().get("hits", [])
259
+
260
+ def search_drug(name):
261
+ resp = requests.get(f"{MYCHEM}/query",
262
+ params={"q": name, "size": 1,
263
+ "fields": "ndc.substancename,ndc.pharm_classes"})
264
+ resp.raise_for_status()
265
+ hits = resp.json().get("hits", [])
266
+ return hits[0] if hits else {}
267
+
268
+ # Translational research pipeline: gene -> variants -> drug
269
+ gene = search_gene("BRCA1")
270
+ print(f"Gene: {gene.get('symbol')} (Entrez: {gene.get('entrezgene')})")
271
+ time.sleep(0.35)
272
+
273
+ variants = search_variants("BRCA1", size=3)
274
+ for v in variants:
275
+ rsid = v.get("dbsnp", {}).get("rsid", v.get("_id"))
276
+ print(f" Variant: {rsid} | CADD: {v.get('cadd', {}).get('phred', 'N/A')}")
277
+ time.sleep(0.35)
278
+
279
+ drug = search_drug("olaparib")
280
+ print(f" Drug: {drug.get('ndc', {}).get('substancename', 'N/A')}")
281
+ ```
282
+
283
+ ## Academic Use Cases
284
+
285
+ - **GWAS follow-up:** Annotate thousands of significant SNPs with allele frequencies (gnomAD), functional predictions (CADD, SIFT, PolyPhen), and clinical significance (ClinVar) via MyVariant.info batch queries.
286
+ - **Drug target mapping:** Link gene symbols to pathway memberships (KEGG, Reactome) via MyGene.info, then find approved drugs targeting those pathways via MyChem.info.
287
+ - **Pharmacogenomics:** Cross-reference variant annotations with drug metabolism data to identify clinically actionable gene-drug interactions.
288
+ - **Systematic reviews:** Programmatically collect gene/variant metadata across large candidate lists to populate supplementary tables in genomics publications.
289
+
290
+ ## References
291
+
292
+ - BioThings API Hub: https://biothings.io
293
+ - MyGene.info Documentation: https://docs.mygene.info
294
+ - MyVariant.info Documentation: https://docs.myvariant.info
295
+ - MyChem.info Documentation: https://docs.mychem.info
296
+ - Publication: Xin J et al. *Genome Biology* 17:91 (2016). https://doi.org/10.1186/s13059-016-0953-9