tooluniverse 0.2.0__py3-none-any.whl → 1.0.0__py3-none-any.whl

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.

Potentially problematic release.


This version of tooluniverse might be problematic. Click here for more details.

Files changed (190) hide show
  1. tooluniverse/__init__.py +340 -4
  2. tooluniverse/admetai_tool.py +84 -0
  3. tooluniverse/agentic_tool.py +563 -0
  4. tooluniverse/alphafold_tool.py +96 -0
  5. tooluniverse/base_tool.py +129 -6
  6. tooluniverse/boltz_tool.py +207 -0
  7. tooluniverse/chem_tool.py +192 -0
  8. tooluniverse/compose_scripts/__init__.py +1 -0
  9. tooluniverse/compose_scripts/biomarker_discovery.py +293 -0
  10. tooluniverse/compose_scripts/comprehensive_drug_discovery.py +186 -0
  11. tooluniverse/compose_scripts/drug_safety_analyzer.py +89 -0
  12. tooluniverse/compose_scripts/literature_tool.py +34 -0
  13. tooluniverse/compose_scripts/output_summarizer.py +279 -0
  14. tooluniverse/compose_scripts/tool_description_optimizer.py +681 -0
  15. tooluniverse/compose_scripts/tool_discover.py +705 -0
  16. tooluniverse/compose_scripts/tool_graph_composer.py +448 -0
  17. tooluniverse/compose_tool.py +371 -0
  18. tooluniverse/ctg_tool.py +1002 -0
  19. tooluniverse/custom_tool.py +81 -0
  20. tooluniverse/dailymed_tool.py +108 -0
  21. tooluniverse/data/admetai_tools.json +155 -0
  22. tooluniverse/data/agentic_tools.json +1156 -0
  23. tooluniverse/data/alphafold_tools.json +87 -0
  24. tooluniverse/data/boltz_tools.json +9 -0
  25. tooluniverse/data/chembl_tools.json +16 -0
  26. tooluniverse/data/clait_tools.json +108 -0
  27. tooluniverse/data/clinicaltrials_gov_tools.json +326 -0
  28. tooluniverse/data/compose_tools.json +202 -0
  29. tooluniverse/data/dailymed_tools.json +70 -0
  30. tooluniverse/data/dataset_tools.json +646 -0
  31. tooluniverse/data/disease_target_score_tools.json +712 -0
  32. tooluniverse/data/efo_tools.json +17 -0
  33. tooluniverse/data/embedding_tools.json +319 -0
  34. tooluniverse/data/enrichr_tools.json +31 -0
  35. tooluniverse/data/europe_pmc_tools.json +22 -0
  36. tooluniverse/data/expert_feedback_tools.json +10 -0
  37. tooluniverse/data/fda_drug_adverse_event_tools.json +491 -0
  38. tooluniverse/data/fda_drug_labeling_tools.json +1 -1
  39. tooluniverse/data/fda_drugs_with_brand_generic_names_for_tool.py +76929 -148860
  40. tooluniverse/data/finder_tools.json +209 -0
  41. tooluniverse/data/gene_ontology_tools.json +113 -0
  42. tooluniverse/data/gwas_tools.json +1082 -0
  43. tooluniverse/data/hpa_tools.json +333 -0
  44. tooluniverse/data/humanbase_tools.json +47 -0
  45. tooluniverse/data/idmap_tools.json +74 -0
  46. tooluniverse/data/mcp_client_tools_example.json +113 -0
  47. tooluniverse/data/mcpautoloadertool_defaults.json +28 -0
  48. tooluniverse/data/medlineplus_tools.json +141 -0
  49. tooluniverse/data/monarch_tools.json +1 -1
  50. tooluniverse/data/openalex_tools.json +36 -0
  51. tooluniverse/data/opentarget_tools.json +1 -1
  52. tooluniverse/data/output_summarization_tools.json +101 -0
  53. tooluniverse/data/packages/bioinformatics_core_tools.json +1756 -0
  54. tooluniverse/data/packages/categorized_tools.txt +206 -0
  55. tooluniverse/data/packages/cheminformatics_tools.json +347 -0
  56. tooluniverse/data/packages/earth_sciences_tools.json +74 -0
  57. tooluniverse/data/packages/genomics_tools.json +776 -0
  58. tooluniverse/data/packages/image_processing_tools.json +38 -0
  59. tooluniverse/data/packages/machine_learning_tools.json +789 -0
  60. tooluniverse/data/packages/neuroscience_tools.json +62 -0
  61. tooluniverse/data/packages/original_tools.txt +0 -0
  62. tooluniverse/data/packages/physics_astronomy_tools.json +62 -0
  63. tooluniverse/data/packages/scientific_computing_tools.json +560 -0
  64. tooluniverse/data/packages/single_cell_tools.json +453 -0
  65. tooluniverse/data/packages/software_tools.json +4954 -0
  66. tooluniverse/data/packages/structural_biology_tools.json +396 -0
  67. tooluniverse/data/packages/visualization_tools.json +399 -0
  68. tooluniverse/data/pubchem_tools.json +215 -0
  69. tooluniverse/data/pubtator_tools.json +68 -0
  70. tooluniverse/data/rcsb_pdb_tools.json +1332 -0
  71. tooluniverse/data/reactome_tools.json +19 -0
  72. tooluniverse/data/semantic_scholar_tools.json +26 -0
  73. tooluniverse/data/special_tools.json +2 -25
  74. tooluniverse/data/tool_composition_tools.json +88 -0
  75. tooluniverse/data/toolfinderkeyword_defaults.json +34 -0
  76. tooluniverse/data/txagent_client_tools.json +9 -0
  77. tooluniverse/data/uniprot_tools.json +211 -0
  78. tooluniverse/data/url_fetch_tools.json +94 -0
  79. tooluniverse/data/uspto_downloader_tools.json +9 -0
  80. tooluniverse/data/uspto_tools.json +811 -0
  81. tooluniverse/data/xml_tools.json +3275 -0
  82. tooluniverse/dataset_tool.py +296 -0
  83. tooluniverse/default_config.py +165 -0
  84. tooluniverse/efo_tool.py +42 -0
  85. tooluniverse/embedding_database.py +630 -0
  86. tooluniverse/embedding_sync.py +396 -0
  87. tooluniverse/enrichr_tool.py +266 -0
  88. tooluniverse/europe_pmc_tool.py +52 -0
  89. tooluniverse/execute_function.py +1775 -95
  90. tooluniverse/extended_hooks.py +444 -0
  91. tooluniverse/gene_ontology_tool.py +194 -0
  92. tooluniverse/graphql_tool.py +158 -36
  93. tooluniverse/gwas_tool.py +358 -0
  94. tooluniverse/hpa_tool.py +1645 -0
  95. tooluniverse/humanbase_tool.py +389 -0
  96. tooluniverse/logging_config.py +254 -0
  97. tooluniverse/mcp_client_tool.py +764 -0
  98. tooluniverse/mcp_integration.py +413 -0
  99. tooluniverse/mcp_tool_registry.py +925 -0
  100. tooluniverse/medlineplus_tool.py +337 -0
  101. tooluniverse/openalex_tool.py +228 -0
  102. tooluniverse/openfda_adv_tool.py +283 -0
  103. tooluniverse/openfda_tool.py +393 -160
  104. tooluniverse/output_hook.py +1122 -0
  105. tooluniverse/package_tool.py +195 -0
  106. tooluniverse/pubchem_tool.py +158 -0
  107. tooluniverse/pubtator_tool.py +168 -0
  108. tooluniverse/rcsb_pdb_tool.py +38 -0
  109. tooluniverse/reactome_tool.py +108 -0
  110. tooluniverse/remote/boltz/boltz_mcp_server.py +50 -0
  111. tooluniverse/remote/depmap_24q2/depmap_24q2_mcp_tool.py +442 -0
  112. tooluniverse/remote/expert_feedback/human_expert_mcp_tools.py +2013 -0
  113. tooluniverse/remote/expert_feedback/simple_test.py +23 -0
  114. tooluniverse/remote/expert_feedback/start_web_interface.py +188 -0
  115. tooluniverse/remote/expert_feedback/web_only_interface.py +0 -0
  116. tooluniverse/remote/expert_feedback_mcp/human_expert_mcp_server.py +1611 -0
  117. tooluniverse/remote/expert_feedback_mcp/simple_test.py +34 -0
  118. tooluniverse/remote/expert_feedback_mcp/start_web_interface.py +91 -0
  119. tooluniverse/remote/immune_compass/compass_tool.py +327 -0
  120. tooluniverse/remote/pinnacle/pinnacle_tool.py +328 -0
  121. tooluniverse/remote/transcriptformer/transcriptformer_tool.py +586 -0
  122. tooluniverse/remote/uspto_downloader/uspto_downloader_mcp_server.py +61 -0
  123. tooluniverse/remote/uspto_downloader/uspto_downloader_tool.py +120 -0
  124. tooluniverse/remote_tool.py +99 -0
  125. tooluniverse/restful_tool.py +53 -30
  126. tooluniverse/scripts/generate_tool_graph.py +408 -0
  127. tooluniverse/scripts/visualize_tool_graph.py +829 -0
  128. tooluniverse/semantic_scholar_tool.py +62 -0
  129. tooluniverse/smcp.py +2452 -0
  130. tooluniverse/smcp_server.py +975 -0
  131. tooluniverse/test/mcp_server_test.py +0 -0
  132. tooluniverse/test/test_admetai_tool.py +370 -0
  133. tooluniverse/test/test_agentic_tool.py +129 -0
  134. tooluniverse/test/test_alphafold_tool.py +71 -0
  135. tooluniverse/test/test_chem_tool.py +37 -0
  136. tooluniverse/test/test_compose_lieraturereview.py +63 -0
  137. tooluniverse/test/test_compose_tool.py +448 -0
  138. tooluniverse/test/test_dailymed.py +69 -0
  139. tooluniverse/test/test_dataset_tool.py +200 -0
  140. tooluniverse/test/test_disease_target_score.py +56 -0
  141. tooluniverse/test/test_drugbank_filter_examples.py +179 -0
  142. tooluniverse/test/test_efo.py +31 -0
  143. tooluniverse/test/test_enrichr_tool.py +21 -0
  144. tooluniverse/test/test_europe_pmc_tool.py +20 -0
  145. tooluniverse/test/test_fda_adv.py +95 -0
  146. tooluniverse/test/test_fda_drug_labeling.py +91 -0
  147. tooluniverse/test/test_gene_ontology_tools.py +66 -0
  148. tooluniverse/test/test_gwas_tool.py +139 -0
  149. tooluniverse/test/test_hpa.py +625 -0
  150. tooluniverse/test/test_humanbase_tool.py +20 -0
  151. tooluniverse/test/test_idmap_tools.py +61 -0
  152. tooluniverse/test/test_mcp_server.py +211 -0
  153. tooluniverse/test/test_mcp_tool.py +247 -0
  154. tooluniverse/test/test_medlineplus.py +220 -0
  155. tooluniverse/test/test_openalex_tool.py +32 -0
  156. tooluniverse/test/test_opentargets.py +28 -0
  157. tooluniverse/test/test_pubchem_tool.py +116 -0
  158. tooluniverse/test/test_pubtator_tool.py +37 -0
  159. tooluniverse/test/test_rcsb_pdb_tool.py +86 -0
  160. tooluniverse/test/test_reactome.py +54 -0
  161. tooluniverse/test/test_semantic_scholar_tool.py +24 -0
  162. tooluniverse/test/test_software_tools.py +147 -0
  163. tooluniverse/test/test_tool_description_optimizer.py +49 -0
  164. tooluniverse/test/test_tool_finder.py +26 -0
  165. tooluniverse/test/test_tool_finder_llm.py +252 -0
  166. tooluniverse/test/test_tools_find.py +195 -0
  167. tooluniverse/test/test_uniprot_tools.py +74 -0
  168. tooluniverse/test/test_uspto_tool.py +72 -0
  169. tooluniverse/test/test_xml_tool.py +113 -0
  170. tooluniverse/tool_finder_embedding.py +267 -0
  171. tooluniverse/tool_finder_keyword.py +693 -0
  172. tooluniverse/tool_finder_llm.py +699 -0
  173. tooluniverse/tool_graph_web_ui.py +955 -0
  174. tooluniverse/tool_registry.py +416 -0
  175. tooluniverse/uniprot_tool.py +155 -0
  176. tooluniverse/url_tool.py +253 -0
  177. tooluniverse/uspto_tool.py +240 -0
  178. tooluniverse/utils.py +369 -41
  179. tooluniverse/xml_tool.py +369 -0
  180. tooluniverse-1.0.0.dist-info/METADATA +377 -0
  181. tooluniverse-1.0.0.dist-info/RECORD +186 -0
  182. tooluniverse-1.0.0.dist-info/entry_points.txt +9 -0
  183. tooluniverse/generate_mcp_tools.py +0 -113
  184. tooluniverse/mcp_server.py +0 -3340
  185. tooluniverse-0.2.0.dist-info/METADATA +0 -139
  186. tooluniverse-0.2.0.dist-info/RECORD +0 -21
  187. tooluniverse-0.2.0.dist-info/entry_points.txt +0 -4
  188. {tooluniverse-0.2.0.dist-info → tooluniverse-1.0.0.dist-info}/WHEEL +0 -0
  189. {tooluniverse-0.2.0.dist-info → tooluniverse-1.0.0.dist-info}/licenses/LICENSE +0 -0
  190. {tooluniverse-0.2.0.dist-info → tooluniverse-1.0.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,87 @@
1
+ [
2
+ {
3
+ "name": "alphafold_get_prediction_by_uniprot_id",
4
+ "description": "Retrieve AlphaFold-predicted 3D protein structure metadata and download links for a given UniProt accession ID.",
5
+ "type": "AlphaFoldRESTTool",
6
+ "parameter": {
7
+ "type": "object",
8
+ "properties": {
9
+ "uniprot_id": {
10
+ "type": "string",
11
+ "description": "UniProt accession ID (e.g., 'P69905' for hemoglobin alpha)."
12
+ }
13
+ },
14
+ "required": ["uniprot_id"]
15
+ },
16
+ "fields": {
17
+ "endpoint": "/prediction/{uniprot_id}",
18
+ "return_format": "JSON"
19
+ },
20
+ "return_schema": {
21
+ "type": "object",
22
+ "description": "AlphaFold predicted protein structure metadata.",
23
+ "properties": {
24
+ "uniprotAccession": {
25
+ "type": "string",
26
+ "description": "UniProt accession ID"
27
+ },
28
+ "uniprotDescription": {
29
+ "type": "string",
30
+ "description": "Protein description"
31
+ },
32
+ "organismScientificName": {
33
+ "type": "string",
34
+ "description": "Scientific name of the source organism"
35
+ },
36
+ "gene": {
37
+ "type": "string",
38
+ "description": "Gene name if available"
39
+ },
40
+ "modelCreatedDate": {
41
+ "type": "string",
42
+ "description": "Date this AlphaFold model was created"
43
+ },
44
+ "globalMetricValue": {
45
+ "type": "number",
46
+ "description": "Global pLDDT confidence score"
47
+ },
48
+ "fractionPlddtVeryLow": {
49
+ "type": "number",
50
+ "description": "Fraction of residues with very low pLDDT (<50)"
51
+ },
52
+ "fractionPlddtLow": {
53
+ "type": "number",
54
+ "description": "Fraction of residues with low pLDDT (50–70)"
55
+ },
56
+ "fractionPlddtConfident": {
57
+ "type": "number",
58
+ "description": "Fraction of residues with confident pLDDT (70–90)"
59
+ },
60
+ "fractionPlddtVeryHigh": {
61
+ "type": "number",
62
+ "description": "Fraction of residues with very high pLDDT (>90)"
63
+ },
64
+ "pdbUrl": {
65
+ "type": "string",
66
+ "description": "Download link for PDB file"
67
+ },
68
+ "cifUrl": {
69
+ "type": "string",
70
+ "description": "Download link for CIF file"
71
+ },
72
+ "bcifUrl": {
73
+ "type": "string",
74
+ "description": "Download link for BCIF file"
75
+ },
76
+ "paeImageUrl": {
77
+ "type": "string",
78
+ "description": "Predicted aligned error plot image URL"
79
+ },
80
+ "paeDocUrl": {
81
+ "type": "string",
82
+ "description": "Predicted aligned error JSON URL"
83
+ }
84
+ }
85
+ }
86
+ }
87
+ ]
@@ -0,0 +1,9 @@
1
+ [
2
+ {
3
+ "name": "mcp_auto_loader_boltz",
4
+ "description": "Run Boltz2 docking and affinity prediction using MCP protocol",
5
+ "type": "MCPAutoLoaderTool",
6
+ "server_url": "http://${BOLTZ_MCP_SERVER_HOST}:8080/mcp",
7
+ "required_api_keys": ["BOLTZ_MCP_SERVER_HOST"]
8
+ }
9
+ ]
@@ -0,0 +1,16 @@
1
+ [
2
+ {
3
+ "type": "ChEMBLTool",
4
+ "name": "ChEMBL_search_similar_molecules",
5
+ "description": "Search for molecules similar to a given SMILES, chembl_id, or compound or drug name, using the ChEMBL Web Services.",
6
+ "parameter": {
7
+ "type": "object",
8
+ "properties": {
9
+ "query": { "type": "string", "description": "SMILES string, chembl_id, or compound or drug name." },
10
+ "similarity_threshold": { "type": "integer", "description": "Similarity threshold (0–100).", "default": 80 },
11
+ "max_results": { "type": "integer", "description": "Maximum number of results to return.", "default": 20 }
12
+ },
13
+ "required": ["query"]
14
+ }
15
+ }
16
+ ]
@@ -0,0 +1,108 @@
1
+ [
2
+ {
3
+ "type": "AgenticTool",
4
+ "name": "AdverseEventPredictionQuestionGenerator",
5
+ "description": "Generates a set of personalized adverse‐event prediction questions for a given disease and drug, across multiple patient subgroups.",
6
+ "prompt": "You are a clinical pharmacology and epidemiology expert. Given the following inputs:\n\n- Disease: {disease_name} \n- Drug: {drug_name} \n\nYour task is to generate a hierarchy of personalized adverse-event prediction questions at two levels:\n\n1. **General Safety Check** \n - Identify one broad safety question that asks for as many potential adverse effects as possible beyond the known label, and include only the disease term in the population description.\n\n2. **Population-Specific Extensions** \n - For at least five distinct patient subgroups, build on the general question by adding one or more clinical details unique to that subgroup (e.g., age, sex, comorbidities, organ function, genetic variants, concomitant meds). \n - Each subgroup’s question must: \n - Ask for as many potential adverse effects as possible \n - Include the description of that specific population in the question \n - Specify any relevant time frame and lab or clinical thresholds \n\n**Output structure**: return only a JSON object with two keys:\n\n- `\"general\"`: \n - `\"population\"`: a list containing only the disease term (e.g. `[\"{disease_name}\"]`) \n - `\"question\"`: the broad safety question that asks for as many adverse effects as possible and incorporates the disease description only \n\n- `\"specific\"`: an array of objects, each with: \n - `\"population\"`: a list of terms describing the subgroup (e.g. `[\"72-year-old\", \"female\", \"atrial fibrillation\", \"chronic warfarin\"]`) \n - `\"question\"`: the extended adverse-event prediction question that: \n - asks for as many adverse effects as possible \n - includes the description of that subgroup \n - specifies the time frame and any lab/clinical thresholds \n\n**Example**:\n\n```json\n{\n \"general\": {\n \"population\": [\"mild Alzheimer’s disease\"],\n \"question\": \"In a patient with mild Alzheimer’s disease planning to start Kisunla therapy, what additional safety concerns or adverse effects—beyond those listed in the FDA label—should be monitored?\"\n },\n \"specific\": [\n {\n \"population\": [\"72-year-old\", \"female\", \"atrial fibrillation\", \"chronic warfarin\"],\n \"question\": \"In a 72-year-old female with atrial fibrillation on chronic warfarin therapy, what potential bleeding events or other adverse effects—beyond the FDA label—should be anticipated within 30 days of initiating Kisunla?\"\n },\n {\n \"population\": [\"79-year-old\", \"female\", \">5 cerebral microhemorrhages\", \"baseline MRI\"],\n \"question\": \"In a 79-year-old female with more than five cerebral microhemorrhages on baseline MRI and no prior intracerebral hemorrhage, what non-label adverse intracranial bleeding events or other safety concerns should be discussed before starting Kisunla?\"\n },\n {\n \"population\": [\"70-year-old\", \"male\", \"well-controlled focal epilepsy\", \"seizure-free 5 years\"],\n \"question\": \"In a 70-year-old male with well-controlled focal epilepsy (seizure-free for 5 years), what seizure-related adverse events or other off-label safety issues should be part of counseling within 60 days of Kisunla therapy?\"\n }\n // …at least two more…\n ]\n}\n```",
7
+ "input_arguments": [
8
+ "disease_name",
9
+ "drug_name"
10
+ ],
11
+ "parameter": {
12
+ "type": "object",
13
+ "properties": {
14
+ "disease_name": {
15
+ "type": "string",
16
+ "description": "The name of the disease or condition"
17
+ },
18
+ "drug_name": {
19
+ "type": "string",
20
+ "description": "The name of the drug"
21
+ }
22
+ },
23
+ "required": [
24
+ "disease_name",
25
+ "drug_name"
26
+ ]
27
+ },
28
+ "configs": {
29
+ "api_type": "CHATGPT",
30
+ "model_id": "o3-mini-0131",
31
+ "temperature": 1.0,
32
+ "max_new_tokens": 20480,
33
+ "return_json": true,
34
+ "return_metadata": false
35
+ }
36
+ },
37
+ {
38
+ "type": "AgenticTool",
39
+ "name": "AdverseEventICDMapper",
40
+ "description": "Extracts adverse events from narrative clinical or pharmacovigilance text and maps each event to the most specific ICD-10-CM code.",
41
+ "prompt": "You are a clinically-oriented NLP assistant trained in pharmacovigilance and ICD-10-CM medical coding.\\n\\n**Your task:**\\n1. Read the *Input Text* below.\\n2. Identify every distinct **adverse event** explicitly stated or unambiguously implied.\\n3. For each adverse event, select the **single most specific ICD-10-CM code** that would ordinarily be assigned by a professional coder in the United States.\\n • If several codes are plausible, choose the one that best matches the wording and context (e.g., \"upper-GI haemorrhage\" ⇒ K92.0 rather than the generic K92.2).\\n • If no precise code exists, return the closest valid proxy and append the flag \"≈ (closest match)\".\\n4. Output the results **exactly** in the following JSON array format (no additional keys or commentary):\\n```json\\n[\\n {\\n \"adverse_event\": \"<event term>\",\\n \"icd10cm_code\": \"<code>\",\\n \"code_description\": \"<official ICD-10-CM description>\"\\n }\\n]\\n```\\n5. Preserve the order in which events first appear in the text.\\n6. Do **not** invent adverse events that are absent from the text.\\n7. If the input text contains no adverse events, reply with the empty list `[]`.\\n\\n*Input Text:*\\n{source_text}",
42
+ "input_arguments": [
43
+ "source_text"
44
+ ],
45
+ "parameter": {
46
+ "type": "object",
47
+ "properties": {
48
+ "source_text": {
49
+ "type": "string",
50
+ "description": "Unstructured narrative text that may mention adverse events.",
51
+ "required": true
52
+ }
53
+ },
54
+ "required": [
55
+ "source_text"
56
+ ]
57
+ },
58
+ "configs": {
59
+ "api_type": "CHATGPT",
60
+ "model_id": "o4-mini-0416",
61
+ "temperature": 1.0,
62
+ "max_new_tokens": 20480,
63
+ "return_json": false,
64
+ "return_metadata": false
65
+ }
66
+ },
67
+ {
68
+ "type": "AgenticTool",
69
+ "name": "AdverseEventPredictionQuestionGeneratorWithContext",
70
+ "description": "Generates a set of personalized adverse‐event prediction questions for a given disease and drug, incorporating additional context information such as patient medical history, clinical findings, or research data.",
71
+ "prompt": "You are a clinical pharmacology and epidemiology expert. Given the following inputs:\n\n- Disease: {disease_name} \n- Drug: {drug_name}\n- Context Information: {context_information}\n\nYour task is to generate a hierarchy of personalized adverse-event prediction questions at two levels, taking into account the provided context information:\n\n**IMPORTANT RESTRICTIONS:**\n- DO NOT mention ancestry, race, or ethnicity in any questions or population descriptions\n- DO NOT include specific adverse events or side effects in the questions themselves - the questions should ask WHAT adverse effects might occur, not suggest specific ones\n- Questions should be open-ended inquiries about potential adverse effects, not statements about known risks\n\n**Context Integration Guidelines:**\n- Use the context information to inform your understanding of the disease severity, patient characteristics, drug mechanisms, known interactions, or clinical findings\n- Incorporate relevant details from the context to make questions more specific and clinically relevant\n- Consider any special populations, contraindications, or risk factors mentioned in the context\n- Exclude any ancestry-related information from consideration\n\n1. **General Safety Check** \n - Identify one broad safety question that asks for as many potential adverse effects as possible beyond the known label, incorporating relevant context insights and including only the disease term in the population description.\n\n2. **Population-Specific Extensions** \n - For at least five distinct patient subgroups, build on the general question by adding one or more clinical details unique to that subgroup (e.g., age, sex, comorbidities, organ function, genetic variants, concomitant meds). \n - Use context information to identify the most relevant and high-risk subgroups\n - Each subgroup's question must: \n - Ask for as many potential adverse effects as possible \n - Include the description of that specific population in the question \n - Specify any relevant time frame and lab or clinical thresholds\n - Incorporate context-specific risk factors or considerations\n - NOT mention ancestry, race, or ethnicity\n\n**Output structure**: return only a JSON object with three keys:\n\n- `\"context_summary\"`: a brief summary of how the context information influenced the question generation\n\n- `\"general\"`: \n - `\"population\"`: a list containing only the disease term (e.g. `[\"{disease_name}\"]`) \n - `\"question\"`: the broad safety question that asks for as many adverse effects as possible, incorporates the disease description, and reflects context insights \n\n- `\"specific\"`: an array of objects, each with: \n - `\"population\"`: a list of terms describing the subgroup (e.g. `[\"72-year-old\", \"female\", \"atrial fibrillation\", \"chronic warfarin\"]`) \n - `\"question\"`: the extended adverse-event prediction question that: \n - asks for as many adverse effects as possible \n - includes the description of that subgroup \n - specifies the time frame and any lab/clinical thresholds\n - incorporates relevant context considerations\n\n**Example**:\n\n```json\n{\n \"context_summary\": \"Context revealed increased risk factors in elderly patients and potential drug interactions with anticoagulants, leading to enhanced focus on cardiovascular and bleeding-related inquiries.\",\n \"general\": {\n \"population\": [\"mild Alzheimer's disease\"],\n \"question\": \"In a patient with mild Alzheimer's disease planning to start Kisunla therapy, what additional safety concerns or adverse effects—beyond those listed in the FDA label—should be monitored?\"\n },\n \"specific\": [\n {\n \"population\": [\"72-year-old\", \"female\", \"atrial fibrillation\", \"chronic warfarin\"],\n \"question\": \"In a 72-year-old female with atrial fibrillation on chronic warfarin therapy, what potential adverse effects—beyond the FDA label—should be anticipated within 30 days of initiating Kisunla?\"\n },\n {\n \"population\": [\"79-year-old\", \"female\", \">5 cerebral microhemorrhages\", \"baseline MRI\"],\n \"question\": \"In a 79-year-old female with more than five cerebral microhemorrhages on baseline MRI and no prior intracerebral hemorrhage, what adverse events or safety concerns should be discussed before starting Kisunla?\"\n }\n // …at least three more…\n ]\n}\n```",
72
+ "input_arguments": [
73
+ "disease_name",
74
+ "drug_name",
75
+ "context_information"
76
+ ],
77
+ "parameter": {
78
+ "type": "object",
79
+ "properties": {
80
+ "disease_name": {
81
+ "type": "string",
82
+ "description": "The name of the disease or condition"
83
+ },
84
+ "drug_name": {
85
+ "type": "string",
86
+ "description": "The name of the drug"
87
+ },
88
+ "context_information": {
89
+ "type": "string",
90
+ "description": "Additional context information such as patient medical history, clinical findings, research data, or other relevant background information that should inform the adverse event prediction questions"
91
+ }
92
+ },
93
+ "required": [
94
+ "disease_name",
95
+ "drug_name",
96
+ "context_information"
97
+ ]
98
+ },
99
+ "configs": {
100
+ "api_type": "CHATGPT",
101
+ "model_id": "o3-mini-0131",
102
+ "temperature": 1.0,
103
+ "max_new_tokens": 20480,
104
+ "return_json": true,
105
+ "return_metadata": false
106
+ }
107
+ }
108
+ ]
@@ -0,0 +1,326 @@
1
+ [
2
+ {
3
+ "name": "search_clinical_trials",
4
+ "description": "Search for clinical trials registered on clinicaltrials.gov based on title, conditions, interventions, outcome measures, and status. Returns a paginated list of studies, containing the NCT ID and description of each trial. You can then take the NCT IDs and use 'get_clinical_trials_*' tools to get detailed information about specific protocol fields for specific studies, or 'extract_clinical_trials_efficacy/safety' tools to get efficacy or adverse events results from specific studies. If you wish to see the next page of results, you can use the 'nextPageToken' value from the previous output of this tool and input it as the 'pageToken' parameter in the next query. Note that currently the search is limited to trials beyond phase 1.",
5
+ "parameter": {
6
+ "type": "object",
7
+ "properties": {
8
+ "condition": {
9
+ "type": "string",
10
+ "description": "Query for condition or disease using Essie expression syntax (e.g., 'lung cancer', '(head OR neck) AND pain AND NOT \"back pain\"'). ",
11
+ "required": false
12
+ },
13
+ "intervention": {
14
+ "type": "string",
15
+ "description": "Query for intervention/treatment using Essie expression syntax (e.g., 'chemotherapy', 'immunotherapy', 'olaparib', 'combination therapy').",
16
+ "required": false
17
+ },
18
+ "query_term": {
19
+ "type": "string",
20
+ "description": "Query for 'other terms' with Essie expression syntax (e.g., 'combination', 'AREA[LastUpdatePostDate]RANGE[2023-01-15,MAX]', 'Phase II'). Can be used to search for all other protocol fields, including but not limited to title, outcome measures, status, phase, location, etc."
21
+ },
22
+ "pageSize": {
23
+ "type": "integer",
24
+ "description": "Maximum number of studies to return per page (default 10, max 1000).",
25
+ "required": false
26
+ },
27
+ "pageToken": {
28
+ "type": "string",
29
+ "description": "Token to retrieve the next page of results, obtained from the 'nextPageToken' field of the previous response. Do not specify it for first page. When you make an initial request to the API which supports pagination, the response will include a nextPageToken. This token can then be used as a parameter in the subsequent API request to retrieve the next set of data.",
30
+ "required": false
31
+ }
32
+ }
33
+ },
34
+ "query_schema": {
35
+ "pageSize": 10
36
+ },
37
+ "label": ["ClinicalTrials.gov", "Clinical Trial", "Intervention", "Adverse Effect", "Efficacy", "Search"],
38
+ "type": "ClinicalTrialsSearchTool",
39
+ "tool_url": "/studies"
40
+ },
41
+
42
+ {
43
+ "name": "get_clinical_trial_descriptions",
44
+ "description": "Retrieves detailed identification information for trials, including titles, phases, and descriptions, using their NCT IDs.",
45
+ "parameter": {
46
+ "type": "object",
47
+ "properties": {
48
+ "nct_ids": {
49
+ "type": "array",
50
+ "description": "List of NCT IDs of the clinical trials (e.g., ['NCT04852770', 'NCT01728545']).",
51
+ "items": {
52
+ "type": "string"
53
+ },
54
+ "required": true
55
+ },
56
+ "description_type": {
57
+ "type": "string",
58
+ "description": "Type of information to retrieve. Options are 'brief' for brief descriptions or 'full' for full descriptions.",
59
+ "enum": ["brief", "full"]
60
+ }
61
+ }
62
+ },
63
+ "query_schema": {
64
+ "description_type": "brief"
65
+ },
66
+ "label": ["ClinicalTrials.gov", "Clinical Trial", "Study", "Description"],
67
+ "type": "ClinicalTrialsDetailsTool",
68
+ "tool_url": "/studies/{nctId}"
69
+ },
70
+
71
+ {
72
+ "name": "get_clinical_trial_status_and_dates",
73
+ "description": "Retrieves trial status and start and completion dates, using their NCT IDs.",
74
+ "parameter": {
75
+ "type": "object",
76
+ "properties": {
77
+ "nct_ids": {
78
+ "type": "array",
79
+ "description": "List of NCT IDs of the clinical trials (e.g., ['NCT04852770', 'NCT01728545']).",
80
+ "items": {
81
+ "type": "string"
82
+ },
83
+ "required": true
84
+ },
85
+ "status_and_date": {
86
+ "type": "string",
87
+ "description": "Placeholder."
88
+ }
89
+ }
90
+ },
91
+ "query_schema": {},
92
+ "label": ["ClinicalTrials.gov", "Clinical Trial", "Study", "Status", "Dates"],
93
+ "type": "ClinicalTrialsDetailsTool",
94
+ "tool_url": "/studies/{nctId}"
95
+ },
96
+
97
+ {
98
+ "name": "get_clinical_trial_conditions_and_interventions",
99
+ "description": "Retrieves the list of conditions or diseases and the interventions and arm groups that the clinical trials are focused on, using their NCT IDs.",
100
+ "parameter": {
101
+ "type": "object",
102
+ "properties": {
103
+ "nct_ids": {
104
+ "type": "array",
105
+ "description": "List of NCT IDs of the clinical trials (e.g., ['NCT04852770', 'NCT01728545']).",
106
+ "items": {
107
+ "type": "string"
108
+ },
109
+ "required": true
110
+ },
111
+ "condition_and_intervention": {
112
+ "type": "string",
113
+ "description": "Placeholder."
114
+ }
115
+ }
116
+ },
117
+ "query_schema": {},
118
+ "label": ["ClinicalTrials.gov", "Clinical Trial", "Study", "Condition", "Intervention", "Arm Group"],
119
+ "type": "ClinicalTrialsDetailsTool",
120
+ "tool_url": "/studies/{nctId}"
121
+ },
122
+
123
+ {
124
+ "name": "get_clinical_trial_eligibility_criteria",
125
+ "description": "Retrieves the eligibility criteria for the clinical trials, using their NCT IDs.",
126
+ "parameter": {
127
+ "type": "object",
128
+ "properties": {
129
+ "nct_ids": {
130
+ "type": "array",
131
+ "description": "List of NCT IDs of the clinical trials (e.g., ['NCT04852770', 'NCT01728545']).",
132
+ "items": {
133
+ "type": "string"
134
+ },
135
+ "required": true
136
+ },
137
+ "eligibility_criteria": {
138
+ "type": "string",
139
+ "description": "Placeholder."
140
+ }
141
+ }
142
+ },
143
+ "query_schema": {},
144
+ "label": ["ClinicalTrials.gov", "Clinical Trial", "Study", "Eligibility Criteria"],
145
+ "type": "ClinicalTrialsDetailsTool",
146
+ "tool_url": "/studies/{nctId}"
147
+ },
148
+
149
+ {
150
+ "name": "get_clinical_trial_locations",
151
+ "description": "Retrieves the locations where the clinical trials are being conducted, using their NCT IDs.",
152
+ "parameter": {
153
+ "type": "object",
154
+ "properties": {
155
+ "nct_ids": {
156
+ "type": "array",
157
+ "description": "List of NCT IDs of the clinical trials (e.g., ['NCT04852770', 'NCT01728545']).",
158
+ "items": {
159
+ "type": "string"
160
+ },
161
+ "required": true
162
+ },
163
+ "location": {
164
+ "type": "string",
165
+ "description": "Placeholder."
166
+ }
167
+ }
168
+ },
169
+ "query_schema": {},
170
+ "label": ["ClinicalTrials.gov", "Clinical Trial", "Study", "Location"],
171
+ "type": "ClinicalTrialsDetailsTool",
172
+ "tool_url": "/studies/{nctId}"
173
+ },
174
+
175
+ {
176
+ "name": "get_clinical_trial_outcome_measures",
177
+ "description": "Retrieves the outcome measures for the clinical trials, using their NCT IDs.",
178
+ "parameter": {
179
+ "type": "object",
180
+ "properties": {
181
+ "nct_ids": {
182
+ "type": "array",
183
+ "description": "List of NCT IDs of the clinical trials (e.g., ['NCT04852770', 'NCT01728545']).",
184
+ "items": {
185
+ "type": "string"
186
+ },
187
+ "required": true
188
+ },
189
+ "outcome_measures": {
190
+ "type": "string",
191
+ "description": "Decides whether to retrieve primary, secondary, or all outcome measures. Options are 'primary', 'secondary', or 'all'. Default is 'primary'.",
192
+ "enum": ["primary", "secondary", "all"],
193
+ "required": false
194
+ }
195
+ }
196
+ },
197
+ "query_schema": {
198
+ "outcome_measures": "primary"
199
+ },
200
+ "label": ["ClinicalTrials.gov", "Clinical Trial", "Study", "Outcome Measures"],
201
+ "type": "ClinicalTrialsDetailsTool",
202
+ "tool_url": "/studies/{nctId}"
203
+ },
204
+
205
+ {
206
+ "name": "get_clinical_trial_references",
207
+ "description": "Retrieves the references (if any) for the clinical trials, using their NCT IDs.",
208
+ "parameter": {
209
+ "type": "object",
210
+ "properties": {
211
+ "nct_ids": {
212
+ "type": "array",
213
+ "description": "List of NCT IDs of the clinical trials (e.g., ['NCT04852770', 'NCT01728545']).",
214
+ "items": {
215
+ "type": "string"
216
+ },
217
+ "required": true
218
+ },
219
+ "references": {
220
+ "type": "string",
221
+ "description": "Placeholder."
222
+ }
223
+ }
224
+ },
225
+ "query_schema": {},
226
+ "label": ["ClinicalTrials.gov", "Clinical Trial", "Study", "References"],
227
+ "type": "ClinicalTrialsDetailsTool",
228
+ "tool_url": "/studies/{nctId}"
229
+ },
230
+
231
+ {
232
+ "name": "extract_clinical_trial_outcomes",
233
+ "description": "Extracts detailed trial outcome results (e.g., overall survival months, p-values, etc.) from clinicaltrials.gov, using their NCT IDs.",
234
+ "parameter": {
235
+ "type": "object",
236
+ "properties": {
237
+ "nct_ids": {
238
+ "type": "array",
239
+ "description": "List of NCT IDs of the clinical trials (e.g., ['NCT04852770', 'NCT01728545']).",
240
+ "items": {
241
+ "type": "string"
242
+ },
243
+ "required": true
244
+ },
245
+ "outcome_measure": {
246
+ "type": "string",
247
+ "description": "Outcome measure to extract. Example values include 'primary' (primary outcomes only), 'secondary' (secondary outcomes only), 'all' (all outcomes), or specific measure names such as 'survival', 'overall survival'. For specific measure names, outcome measures will be matched as long as the input partially matches their titles or descriptions (case agnostic). Querying for specific measure names is recommended after getting an overview of outcome measures ('primary'). If querying for specific measure names does not return any results, this parameter should be set to 'primary' for sanity check. By default, the value is set to 'primary', i.e. the tool will extract all primary outcome results.",
248
+ "required": false
249
+ }
250
+ }
251
+ },
252
+ "query_schema": {
253
+ "outcome_measure": "primary"
254
+ },
255
+ "label": ["ClinicalTrials.gov", "Clinical Trial", "Study", "Outcome", "Efficacy", "Primary Outcome", "Secondary Outcome"],
256
+ "type": "ClinicalTrialsDetailsTool",
257
+ "tool_url": "/studies/{nctId}"
258
+ },
259
+
260
+ {
261
+ "name": "extract_clinical_trial_adverse_events",
262
+ "description": "Extracts detailed adverse event results from clinicaltrials.gov, using their NCT IDs.",
263
+ "parameter": {
264
+ "type": "object",
265
+ "properties": {
266
+ "nct_ids": {
267
+ "type": "array",
268
+ "description": "List of NCT IDs of the clinical trials (e.g., ['NCT04852770', 'NCT01728545']).",
269
+ "items": {
270
+ "type": "string"
271
+ },
272
+ "required": true
273
+ },
274
+ "organ_systems": {
275
+ "type": "array",
276
+ "description": "List of organs or organ systems to filter adverse events (see enum for exact text). Adverse events will be matched only if the input exactly matches their terms (case agnostic). If not specified, all adverse events will be returned. By default, all adverse events will be returned.",
277
+ "items": {
278
+ "type": "string",
279
+ "enum": [
280
+ "Blood and Lymphatic System Disorders",
281
+ "Cardiac Disorders",
282
+ "Congenital, Familial and Genetic Disorders",
283
+ "Ear and Labyrinth Disorders",
284
+ "Endocrine Disorders",
285
+ "Eye Disorders",
286
+ "Gastrointestinal Disorders",
287
+ "General Disorders",
288
+ "Hepatobiliary Disorders",
289
+ "Immune System Disorders",
290
+ "Infections and Infestations",
291
+ "Injury, Poisoning and Procedural Complications",
292
+ "Investigations",
293
+ "Metabolism and Nutrition Disorders",
294
+ "Musculoskeletal and Connective Tissue Disorders",
295
+ "Neoplasms Benign, Malignant and Unspecified (Including Cysts and Polyps)",
296
+ "Nervous System Disorders",
297
+ "Pregnancy, Puerperium and Perinatal Conditions",
298
+ "Product Issues",
299
+ "Psychiatric Disorders",
300
+ "Renal and Urinary Disorders",
301
+ "Reproductive System and Breast Disorders",
302
+ "Respiratory, Thoracic and Mediastinal Disorders",
303
+ "Skin and Subcutaneous Tissue Disorders",
304
+ "Social Circumstances",
305
+ "Surgical and Medical Procedures",
306
+ "Vascular Disorders"
307
+ ]
308
+ },
309
+ "required": false
310
+ },
311
+ "adverse_event_type": {
312
+ "type": "string",
313
+ "description": "Type of adverse events to extract. Options are 'serious' (serious adverse events only), 'other' (non-serious adverse events only), 'all' (all adverse events), or specific event names such as 'nausea', 'neutropenia', 'epilepsy' (from MedDRA). For specific event names, adverse events will be matched as long as the input partially matches their terms (case agnostic). Querying for specific adverse event names is recommended as there are typically many adverse events logged. If querying for specific event names does not return any results, this parameter should be set to 'serious' for sanity check. By default, the value is set to 'serious', i.e. the tool will extract all serious adverse events.",
314
+ "required": false
315
+ }
316
+ }
317
+ },
318
+ "query_schema": {
319
+ "adverse_event_type": "serious"
320
+ },
321
+ "label": ["ClinicalTrials.gov", "Clinical Trial", "Study", "Adverse Event", "Safety"],
322
+ "type": "ClinicalTrialsDetailsTool",
323
+ "tool_url": "/studies/{nctId}"
324
+ }
325
+
326
+ ]