359 lines
16 KiB
Markdown
359 lines
16 KiB
Markdown
---
|
|
title: "Tool Reference: Multi-Omics Disease Characterization"
|
|
task: ""
|
|
lineage_type: import
|
|
upstream_source: https://github.com/mims-harvard/ToolUniverse/blob/e2520a96/skills/tooluniverse-multiomic-disease-characterization/tool-reference.md
|
|
upstream_sha: e2520a96
|
|
imported_at: 2026-06-26
|
|
prompt_class: prompt
|
|
upstream_changes: accepted
|
|
author: upstream
|
|
validated: false
|
|
---
|
|
|
|
# Tool Reference: Multi-Omics Disease Characterization
|
|
|
|
Detailed tool parameters, inputs/outputs, and per-phase workflows.
|
|
|
|
---
|
|
|
|
## Phase 0: Disease Disambiguation Tools
|
|
|
|
**OpenTargets_get_disease_id_description_by_name** (primary):
|
|
- **Input**: `diseaseName` (string)
|
|
- **Output**: `{data: {search: {hits: [{id, name, description}]}}}`
|
|
- **CRITICAL**: Disease IDs use underscore format (e.g., `MONDO_0004975`), NOT colon format
|
|
|
|
**OSL_get_efo_id_by_disease_name** (secondary):
|
|
- **Input**: `disease` (string)
|
|
- **Output**: `{efo_id, name}`
|
|
|
|
**OpenTargets_get_disease_description_by_efoId**:
|
|
- **Input**: `efoId` (string, e.g., `MONDO_0004975`)
|
|
- **Output**: `{data: {disease: {id, name, description, dbXRefs}}}`
|
|
|
|
**OpenTargets_get_disease_synonyms_by_efoId**:
|
|
- **Input**: `efoId` (string)
|
|
- **Output**: `{data: {disease: {id, name, synonyms: [{relation, terms}]}}}`
|
|
|
|
**OpenTargets_get_disease_therapeutic_areas_by_efoId**:
|
|
- **Input**: `efoId` (string)
|
|
- **Output**: `{data: {disease: {id, name, therapeuticAreas: [{id, name}]}}}`
|
|
|
|
**OpenTargets_get_disease_ancestors_parents_by_efoId**:
|
|
- **Input**: `efoId` (string)
|
|
- **Output**: `{data: {disease: {id, name, ancestors: [{id, name}]}}}`
|
|
|
|
**OpenTargets_get_disease_descendants_children_by_efoId**:
|
|
- **Input**: `efoId` (string)
|
|
- **Output**: `{data: {disease: {id, name, descendants: [{id, name}]}}}`
|
|
|
|
**OpenTargets_map_any_disease_id_to_all_other_ids**:
|
|
- **Input**: `inputId` (string, e.g., `OMIM:104300`, `UMLS:C0002395`)
|
|
- **Output**: `{data: {disease: {id, name, dbXRefs: [str], ...}}}`
|
|
|
|
### Phase 0 Workflow
|
|
1. Search by disease name to get primary ID (OpenTargets)
|
|
2. Get full description and cross-references
|
|
3. Get synonyms for search term expansion
|
|
4. Get therapeutic areas for context
|
|
5. Get disease hierarchy (parents/children)
|
|
6. If user provided OMIM/other ID, map to MONDO/EFO first
|
|
|
|
### Collision-Aware Search
|
|
- Check if user's input matches any hit exactly
|
|
- If ambiguous, present top 3-5 options and ask user to select
|
|
- Prefer the most specific disease (not parent categories)
|
|
- For cancer, prefer the specific tumor type over generic "cancer"
|
|
|
|
### Key Disease IDs to Track
|
|
After disambiguation, store for downstream queries:
|
|
- `efo_id` - Primary ID for OpenTargets (e.g., `MONDO_0004975`)
|
|
- `disease_name` - Canonical name
|
|
- `synonyms` - For literature search expansion
|
|
- `therapeutic_areas` - For context
|
|
- `dbXRefs` - Cross-references (OMIM, UMLS, DOID, etc.)
|
|
|
|
---
|
|
|
|
## Phase 1: Genomics Layer Tools
|
|
|
|
**OpenTargets_get_associated_targets_by_disease_efoId** (primary):
|
|
- **Input**: `efoId` (string)
|
|
- **Output**: `{data: {disease: {id, name, associatedTargets: {count, rows: [{target: {id, approvedSymbol}, score}]}}}}`
|
|
- **NOTE**: Returns top 25 by default. Note the total `count`
|
|
|
|
**OpenTargets_get_evidence_by_datasource**:
|
|
- **Input**: `efoId` (string), `ensemblId` (string), optional `datasourceIds` (array), `size` (int, default 50)
|
|
- **Output**: `{data: {disease: {evidences: {count, rows: [{...}]}}}}`
|
|
- Key datasourceIds for genomics:
|
|
- `['ot_genetics_portal']` - GWAS/genetics
|
|
- `['gene2phenotype', 'genomics_england', 'orphanet']` - Rare variants
|
|
- `['eva']` - ClinVar variants
|
|
|
|
**gwas_search_associations** (GWAS Catalog):
|
|
- **Input**: `disease_trait` (string), `size` (int, default 20)
|
|
- **Output**: `{data: [{association_id, p_value, or_per_copy_num, or_value, beta, risk_frequency, efo_traits}], metadata: {pagination: {totalElements}}}`
|
|
- **NOTE**: Use disease name (e.g., "Alzheimer"), not ID
|
|
|
|
**gwas_get_studies_for_trait**:
|
|
- **Input**: `disease_trait` (string), `size` (int)
|
|
- **NOTE**: May return empty if trait name does not match exactly. Try synonyms
|
|
|
|
**gwas_get_variants_for_trait**:
|
|
- **Input**: `disease_trait` (string), `size` (int)
|
|
|
|
**GWAS_search_associations_by_gene**:
|
|
- **Input**: `gene_name` (string)
|
|
|
|
**OpenTargets_search_gwas_studies_by_disease**:
|
|
- **Input**: `diseaseIds` (array of strings), `enableIndirect` (bool, default true), `size` (int, default 10)
|
|
- **Output**: `{data: {studies: {count, rows: [{id, studyType, traitFromSource, publicationFirstAuthor, publicationDate, pubmedId, nSamples, nCases, nControls}]}}}`
|
|
|
|
**ClinVar_search_variants**:
|
|
- **Input**: `condition` (string) or `gene` (string), optional `max_results` (int)
|
|
|
|
### Phase 1 Workflow
|
|
1. Get associated genes from OpenTargets (overall scores)
|
|
2. For top 10-15 genes, get genetic evidence via `OpenTargets_get_evidence_by_datasource`
|
|
3. Search GWAS Catalog for associations
|
|
4. Search OpenTargets GWAS studies
|
|
5. Search ClinVar for rare variants
|
|
6. For top GWAS genes, check `GWAS_search_associations_by_gene`
|
|
|
|
### Gene Tracking
|
|
Maintain a dictionary of genes found in genomics layer:
|
|
```python
|
|
genomics_genes = {
|
|
'PSEN1': {'score': 0.87, 'evidence': 'genetic', 'ensembl_id': 'ENSG00000080815', 'layer': 'genomics'},
|
|
'APP': {'score': 0.82, 'evidence': 'genetic', 'ensembl_id': 'ENSG00000142192', 'layer': 'genomics'},
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## Phase 2: Transcriptomics Layer Tools
|
|
|
|
**ExpressionAtlas_search_differential**:
|
|
- **Input**: optional `gene` (string), `condition` (string), `species` (string, default 'homo sapiens')
|
|
|
|
**ExpressionAtlas_search_experiments**:
|
|
- **Input**: optional `gene` (string), `condition` (string), `species` (string)
|
|
|
|
**expression_atlas_disease_target_score**:
|
|
- **Input**: `efoId` (string), `pageSize` (int, required)
|
|
|
|
**europepmc_disease_target_score**:
|
|
- **Input**: `efoId` (string), `pageSize` (int, required)
|
|
|
|
**HPA_get_rna_expression_by_source** (Human Protein Atlas):
|
|
- **Input**: `gene_name` (string), `source_type` (string: 'tissue', 'blood', 'brain'), `source_name` (string)
|
|
- **Output**: `{status, data: {gene_name, source_type, source_name, expression_value, expression_level, expression_unit}}`
|
|
- **NOTE**: ALL 3 params required. `source_type` options: 'tissue', 'blood', 'brain', 'cell_line', 'single_cell'
|
|
|
|
**HPA_get_rna_expression_in_specific_tissues**:
|
|
- **Input**: `gene_name` (string), `tissues` (array of strings)
|
|
|
|
**HPA_get_cancer_prognostics_by_gene**:
|
|
- **Input**: `gene_name` (string) - for cancer context
|
|
|
|
**HPA_get_subcellular_location**:
|
|
- **Input**: `gene_name` (string)
|
|
|
|
**HPA_search_genes_by_query**:
|
|
- **Input**: `query` (string)
|
|
|
|
### Phase 2 Workflow
|
|
1. Search Expression Atlas for differential expression studies
|
|
2. Get expression-based disease scores
|
|
3. Get literature-based disease scores (EuropePMC)
|
|
4. For top 10-15 genes from genomics layer, check tissue expression via HPA
|
|
5. Check disease-relevant tissue expression patterns
|
|
6. For cancer: check prognostic biomarkers
|
|
|
|
---
|
|
|
|
## Phase 3: Proteomics & Interaction Layer Tools
|
|
|
|
**STRING_get_interaction_partners** (primary PPI):
|
|
- **Input**: `protein_ids` (array of strings), `species` (int, default 9606), `confidence_score` (float, default 0.4), `limit` (int, default 20)
|
|
- **Output**: `{status: 'success', data: [{stringId_A, stringId_B, preferredName_A, preferredName_B, ncbiTaxonId, score, nscore, fscore, pscore, ascore, escore, dscore, tscore}]}`
|
|
- **NOTE**: `protein_ids` is an array, NOT string. Gene symbols like `['APOE']` work
|
|
|
|
**STRING_get_network**:
|
|
- **Input**: `protein_ids` (array), `species` (int), `confidence_score` (float)
|
|
|
|
**STRING_functional_enrichment**:
|
|
- **Input**: `protein_ids` (array), `species` (int)
|
|
|
|
**STRING_ppi_enrichment**:
|
|
- **Input**: `protein_ids` (array), `species` (int)
|
|
|
|
**intact_get_interactions**:
|
|
- **Input**: `identifier` (string - UniProt ID or gene name)
|
|
|
|
**intact_search_interactions**:
|
|
- **Input**: `query` (string), `first` (int, default 0), `max` (int, default 25)
|
|
|
|
**HPA_get_protein_interactions_by_gene**:
|
|
- **Input**: `gene_name` (string)
|
|
- **Output**: `{gene, interactions, interactor_count, interactors: [...]}`
|
|
|
|
**humanbase_ppi_analysis**:
|
|
- **Input**: `gene_list` (array), `tissue` (string), `max_node` (int), `interaction` (string), `string_mode` (bool)
|
|
- **NOTE**: ALL params required. `interaction` options: 'coexpression', 'interaction', 'coexpression_and_interaction'
|
|
|
|
### Phase 3 Workflow
|
|
1. Take top 15-20 genes from genomics + transcriptomics layers
|
|
2. Query STRING for interaction partners of each gene
|
|
3. Build composite PPI network using STRING_get_network
|
|
4. Test PPI enrichment (are genes more connected than random?)
|
|
5. Get functional enrichment from STRING
|
|
6. For disease-relevant tissue, get tissue-specific network (HumanBase)
|
|
7. Identify hub genes (highest degree centrality)
|
|
8. Check IntAct for experimentally validated interactions
|
|
|
|
### Hub Gene Analysis
|
|
- **Degree**: Number of interaction partners
|
|
- **Betweenness**: Number of shortest paths through node
|
|
- **Hub score**: Genes with degree > mean + 1 SD are hubs
|
|
|
|
---
|
|
|
|
## Phase 4: Pathway & Network Layer Tools
|
|
|
|
**enrichr_gene_enrichment_analysis** (primary enrichment):
|
|
- **Input**: `gene_list` (array, min 2), `libs` (array of library names)
|
|
- **Output**: `{status: 'success', data: '{...JSON string...}'}`
|
|
- **Key libraries**: `['KEGG_2021_Human']`, `['Reactome_2022']`, `['WikiPathway_2023_Human']`, `['GO_Biological_Process_2023']`, `['GO_Molecular_Function_2023']`, `['GO_Cellular_Component_2023']`
|
|
- **NOTE**: `data` field is a JSON string, needs parsing. `libs` is REQUIRED as array
|
|
|
|
**ReactomeAnalysis_pathway_enrichment**:
|
|
- **Input**: `identifiers` (string - space-separated gene list), optional `page_size` (int, default 20), `include_disease` (bool), `projection` (bool)
|
|
- **Output**: `{data: {token, analysis_type, pathways_found, pathways: [{pathway_id, name, species, is_disease, is_lowest_level, entities_found, entities_total, entities_ratio, p_value, fdr, reactions_found, reactions_total}]}}`
|
|
|
|
**Reactome_map_uniprot_to_pathways**:
|
|
- **Input**: `id` (string - UniProt accession)
|
|
|
|
**Reactome_get_pathway** / **Reactome_get_pathway_reactions**:
|
|
- **Input**: `stId` (string, e.g., 'R-HSA-73817')
|
|
|
|
**kegg_search_pathway**:
|
|
- **Input**: `keyword` (string)
|
|
|
|
**kegg_get_pathway_info**:
|
|
- **Input**: `pathway_id` (string, e.g., 'hsa04930')
|
|
|
|
**WikiPathways_search**:
|
|
- **Input**: `query` (string), optional `organism` (string, e.g., 'Homo sapiens')
|
|
|
|
### Phase 4 Workflow
|
|
1. Collect all genes from genomics + transcriptomics layers (top 20-30)
|
|
2. Run Enrichr enrichment for KEGG, Reactome, WikiPathways
|
|
3. Run ReactomeAnalysis for detailed Reactome enrichment with p-values
|
|
4. Search KEGG for disease-specific pathways
|
|
5. Search WikiPathways for disease pathways
|
|
6. For top Reactome pathways, get detailed reactions
|
|
7. Identify cross-pathway connections (genes in multiple pathways)
|
|
|
|
---
|
|
|
|
## Phase 5: Gene Ontology & Functional Annotation Tools
|
|
|
|
**enrichr_gene_enrichment_analysis** (GO enrichment):
|
|
- Use with `libs=['GO_Biological_Process_2023']` for BP
|
|
- Use with `libs=['GO_Molecular_Function_2023']` for MF
|
|
- Use with `libs=['GO_Cellular_Component_2023']` for CC
|
|
|
|
**GO_get_annotations_for_gene**:
|
|
- **Input**: `gene_id` (string - gene symbol or UniProt ID)
|
|
|
|
**GO_search_terms**:
|
|
- **Input**: `query` (string)
|
|
|
|
**QuickGO_annotations_by_gene**:
|
|
- **Input**: `gene_product_id` (string, e.g., 'UniProtKB:P02649'), optional `aspect` ('biological_process', 'molecular_function', 'cellular_component'), `taxon_id` (int: 9606), `limit` (int: 25)
|
|
|
|
**OpenTargets_get_target_gene_ontology_by_ensemblID**:
|
|
- **Input**: `ensemblId` (string)
|
|
|
|
### Phase 5 Workflow
|
|
1. Run Enrichr GO enrichment for all 3 aspects using combined gene list
|
|
2. For top 5 genes, get detailed GO annotations from QuickGO
|
|
3. For top genes, get OpenTargets GO terms
|
|
4. Summarize key biological processes, molecular functions, cellular components
|
|
|
|
---
|
|
|
|
## Phase 6: Therapeutic Landscape Tools
|
|
|
|
**OpenTargets_get_associated_drugs_by_disease_efoId** (primary):
|
|
- **Input**: `efoId` (string), `size` (int, REQUIRED - use 100)
|
|
- **Output**: `{data: {disease: {knownDrugs: {count, rows: [{drug: {id, name, tradeNames, maximumClinicalTrialPhase, isApproved, hasBeenWithdrawn}, phase, mechanismOfAction, target: {id, approvedSymbol}, disease: {id, name}, urls: [{url, name}]}]}}}}`
|
|
|
|
**OpenTargets_get_target_tractability_by_ensemblID**:
|
|
- **Input**: `ensemblId` (string)
|
|
|
|
**OpenTargets_get_associated_drugs_by_target_ensemblID**:
|
|
- **Input**: `ensemblId` (string), `size` (int, REQUIRED)
|
|
|
|
**search_clinical_trials**:
|
|
- **Input**: `query_term` (string, REQUIRED), optional `condition` (string), `intervention` (string), `pageSize` (int, default 10)
|
|
- **NOTE**: `query_term` is REQUIRED even if `condition` is provided
|
|
|
|
**OpenTargets_get_drug_mechanisms_of_action_by_chemblId**:
|
|
- **Input**: `chemblId` (string)
|
|
|
|
### Phase 6 Workflow
|
|
1. Get all drugs for disease from OpenTargets
|
|
2. For top disease-associated genes, check tractability
|
|
3. For top genes with no approved drugs, identify repurposing candidates
|
|
4. Search clinical trials for disease
|
|
5. For top approved drugs, get mechanism of action
|
|
|
|
### Drug Tracking
|
|
```python
|
|
drug_targets = {
|
|
'PSEN1': {'drugs': ['Semagacestat'], 'tractability': 'small_molecule', 'clinical_phase': 3},
|
|
'ACHE': {'drugs': ['Donepezil', 'Galantamine'], 'tractability': 'small_molecule', 'clinical_phase': 4},
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## Tool Parameter Quick Reference
|
|
|
|
| Tool | Key Parameters | Notes |
|
|
|------|---------------|-------|
|
|
| `OpenTargets_get_disease_id_description_by_name` | `diseaseName` | Primary disambiguation |
|
|
| `OSL_get_efo_id_by_disease_name` | `disease` | Secondary disambiguation |
|
|
| `OpenTargets_get_associated_targets_by_disease_efoId` | `efoId` | Returns top 25 genes |
|
|
| `OpenTargets_get_evidence_by_datasource` | `efoId`, `ensemblId`, `datasourceIds[]`, `size` | Per-gene evidence |
|
|
| `OpenTargets_search_gwas_studies_by_disease` | `diseaseIds[]`, `size` | GWAS studies |
|
|
| `gwas_search_associations` | `disease_trait`, `size` | GWAS Catalog |
|
|
| `ClinVar_search_variants` | `condition` or `gene`, `max_results` | Rare variants |
|
|
| `ExpressionAtlas_search_differential` | `condition`, `species` | DEGs |
|
|
| `expression_atlas_disease_target_score` | `efoId`, `pageSize` (REQUIRED) | Expression scores |
|
|
| `europepmc_disease_target_score` | `efoId`, `pageSize` (REQUIRED) | Literature scores |
|
|
| `HPA_get_rna_expression_by_source` | `gene_name`, `source_type`, `source_name` (ALL REQUIRED) | Tissue expression |
|
|
| `STRING_get_interaction_partners` | `protein_ids[]`, `species` (9606), `limit` | PPI partners |
|
|
| `STRING_get_network` | `protein_ids[]`, `species` | PPI network |
|
|
| `STRING_functional_enrichment` | `protein_ids[]`, `species` | Functional enrichment |
|
|
| `STRING_ppi_enrichment` | `protein_ids[]`, `species` | Network significance |
|
|
| `intact_search_interactions` | `query`, `max` | Experimental PPIs |
|
|
| `humanbase_ppi_analysis` | `gene_list[]`, `tissue`, `max_node`, `interaction`, `string_mode` (ALL REQ) | Tissue PPI |
|
|
| `enrichr_gene_enrichment_analysis` | `gene_list[]`, `libs[]` (BOTH REQUIRED) | Pathway/GO enrichment |
|
|
| `ReactomeAnalysis_pathway_enrichment` | `identifiers` (space-sep string) | Reactome enrichment |
|
|
| `Reactome_map_uniprot_to_pathways` | `id` (UniProt accession) | Protein-pathway mapping |
|
|
| `kegg_search_pathway` | `keyword` | KEGG pathway search |
|
|
| `WikiPathways_search` | `query`, `organism` | WikiPathways search |
|
|
| `GO_get_annotations_for_gene` | `gene_id` | GO annotations |
|
|
| `QuickGO_annotations_by_gene` | `gene_product_id` (e.g., 'UniProtKB:P02649') | Detailed GO |
|
|
| `OpenTargets_get_associated_drugs_by_disease_efoId` | `efoId`, `size` (REQUIRED) | Disease drugs |
|
|
| `OpenTargets_get_target_tractability_by_ensemblID` | `ensemblId` | Druggability |
|
|
| `search_clinical_trials` | `query_term` (REQUIRED), `condition`, `pageSize` | Clinical trials |
|
|
| `PubMed_search_articles` | `query`, `limit` | Literature |
|
|
| `ensembl_lookup_gene` | `gene_id`, `species` ('homo_sapiens' REQUIRED) | Gene lookup |
|
|
| `MyGene_query_genes` | `query`, `species`, `fields`, `size` | Gene info |
|
|
| `OpenTargets_get_similar_entities_by_disease_efoId` | `efoId`, `threshold`, `size` (ALL REQUIRED) | Similar diseases |
|