tooluniverse-expression-data-retrieval — Claude Code skill
Finds gene expression and omics datasets in ArrayExpress and BioStudies, scoring replicates and metadata quality. Helps locate RNA-seq and microarray experiments for analysis.
npx skills add mims-harvard/ToolUniverse --skill tooluniverse-expression-data-retrieval -a claude-codeWhat tooluniverse-expression-data-retrieval does
This skill retrieves gene expression and multi-omics datasets from ArrayExpress and BioStudies. It does not guess accessions. Instead, the agent looks up studies to confirm their existence. It first resolves official gene symbols via HGNC or MGI and gathers aliases.
Under the hood, it calls arrayexpress_search_experiments and biostudies_search to gather metadata, sample groups, and download files. It prioritizes datasets with at least 3 biological replicates, complete metadata, and raw data files. If ArrayExpress yields no results, it falls back to BioStudies.
Tool calls require English keywords regardless of the conversation language. The final report ranks matching experiments and provides direct download links.
What it helps with
- find RNA-seq datasets by gene symbol and tissue type
- assess biological replicates and metadata before downloading files
- locate microarray case-control studies for comparative analysis
- retrieve multi-omics experiments from BioStudies
Example prompts for the agent
- Find human RNA-seq datasets for lung cancer with case-control design
- Check sample replicates and metadata quality for the retrieved experiments
- Search BioStudies for multi-omics experiments on Alzheimer disease
How to install tooluniverse-expression-data-retrieval
1Skills CLI (Vercel)
npx skills add mims-harvard/ToolUniverse --skill tooluniverse-expression-data-retrieval -a claude-code2Manually: put the files in place
~/.claude/skills/tooluniverse-expression-data-retrieval/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/tooluniverse-expression-data-retrieval/
1Skills CLI (Vercel)
npx skills add mims-harvard/ToolUniverse --skill tooluniverse-expression-data-retrieval -a codex2Manually: put the files in place
.agents/skills/tooluniverse-expression-data-retrieval/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add mims-harvard/ToolUniverse --skill tooluniverse-expression-data-retrieval -a cursor2Manually: put the files in place
.cursor/skills/tooluniverse-expression-data-retrieval/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install mims-harvard/ToolUniverse tooluniverse-expression-data-retrieval2Manually: put the files in place
.github/skills/tooluniverse-expression-data-retrieval/SKILL.md1Skills CLI (Vercel)
npx skills add mims-harvard/ToolUniverse --skill tooluniverse-expression-data-retrieval -a gemini-cli2Platform CLI
gemini skills install https://github.com/mims-harvard/ToolUniverse --path skills/tooluniverse-expression-data-retrievalManually: put the files in place
.devin/skills/tooluniverse-expression-data-retrieval/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add mims-harvard/ToolUniverse --skill tooluniverse-expression-data-retrieval -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about tooluniverse-expression-data-retrieval
How to install tooluniverse-expression-data-retrieval in Claude Code?
Run npx skills add mims-harvard/ToolUniverse --skill tooluniverse-expression-data-retrieval -a claude-code in your terminal. This registers the skill for Claude Code.
What does tooluniverse-expression-data-retrieval do?
It searches ArrayExpress and BioStudies for gene expression and multi-omics datasets. The skill evaluates replication counts, checks metadata completeness, and presents a ranked report with direct download links.
Which databases does the skill query?
The skill primarily queries ArrayExpress for transcriptomics and BioStudies for multi-omics datasets. It can also fall back to GEO, GTEx, and other repositories listed in the tool reference.
Source text
SKILL.md · Apache-2.0
---
name: tooluniverse-expression-data-retrieval
description: Retrieve gene expression and omics datasets from ArrayExpress and BioStudies with gene disambiguation and quality assessment. Use for finding RNA-seq/microarray datasets by organism/tissue/condition, comparing across studies (case-control, time-series, dose-response), and assessing dataset suitability before downloading. Always uses English search terms.
disable-model-invocation: true
---
# Gene Expression & Omics Data Retrieval
Retrieve gene expression experiments and multi-omics datasets with disambiguation and quality assessment.
**IMPORTANT**: Always use English terms in tool calls. Respond in the user's language.
**LOOK UP DON'T GUESS**: Never assume which datasets exist or their accessions. Always search to confirm.
## Domain Reasoning
Before retrieving, determine: organism, tissue, experimental design (case-control/time-series/dose-response). These affect which database to search and how to interpret results. RNA-seq provides wider dynamic range; microarray has extensive legacy data. Prioritize experiments with >=3 biological replicates, complete annotations, and both raw+processed data.
## Workflow
```
Phase 0: Clarify (if ambiguous) → Phase 1: Disambiguate → Phase 2: Search & Retrieve → Phase 3: Report
```
---
## Phase 0: Clarification (When Needed)
Ask ONLY if: gene name ambiguous, tissue/condition unclear, organism not specified.
Skip for: specific accessions (E-MTAB-*, E-GEOD-*, S-BSST*), clear disease/tissue+organism, explicit platform requests.
---
## Phase 1: Query Disambiguation
Resolve official gene symbol (HGNC for human, MGI for mouse). Note common aliases for search expansion.
| User Query Type | Search Strategy |
|-----------------|-----------------|
| Specific accession | Direct retrieval |
| Gene + condition | "[gene] [condition]" + species filter |
| Disease only | "[disease]" + species filter |
| Technology-specific | Add platform keywords |
---
## Phase 2: Data Retrieval (Internal)
Search silently. Do NOT narrate the process.
```python
# ArrayExpress search
result = tu.tools.arrayexpress_search_experiments(keywords="[gene/disease]", species="[species]", limit=20)
# Get experiment details, samples, files
details = tu.tools.arrayexpress_get_experiment(experiment_id=accession)
samples = tu.tools.arrayexpress_get_experiment_samples(experiment_id=accession)
files = tu.tools.arrayexpress_get_experiment_files(experiment_id=accession)
# BioStudies for multi-omics
biostudies = tu.tools.biostudies_search(query="[keywords]", pageSize=10)
study = tu.tools.biostudies_get_study(accession=study_accession)
study_files = tu.tools.biostudies_get_study_files(accession=study_accession)
```
### Fallback Chains
| Primary | Fallback |
|---------|----------|
| ArrayExpress search | BioStudies search |
| arrayexpress_get_experiment | biostudies_get_study |
| arrayexpress_get_experiment_files | Note "Files unavailable" |
---
## Phase 3: Report Dataset Profile
Present as a **Dataset Search Report**. Hide search process. Include:
1. **Search Summary**: query, databases searched, result count
2. **Top Experiments** (per experiment):
- Accession, organism, type (RNA-seq/microarray), platform, sample count, date
- Description, experimental design (conditions, replicates, tissue)
- Sample groups table, data files table
- Quality assessment (●●●/●●○/●○○)
3. **Multi-Omics Studies** (from BioStudies): accession, type, data types included
4. **Summary Table**: all experiments ranked
5. **Recommendations**: best dataset for user's purpose, integration notes
6. **Data Access**: download links, database URLs
---
## Data Quality Tiers
| Tier | Symbol | Criteria |
|------|--------|----------|
| High | ●●● | >=3 bio replicates, complete metadata, processed data available |
| Medium | ●●○ | 2-3 replicates OR some metadata gaps |
| Low | ●○○ | No replicates, sparse metadata, or access issues |
| Caution | ○○○ | Single sample, no replication, outdated platform |
---
## Reasoning Framework
**Dataset quality**: Prioritize >=3 biological replicates, complete annotations, both raw+processed data. Single-replicate experiments can inform but not be sole evidence.
**Platform comparison**: RNA-seq = wider dynamic range, novel transcripts. Microarray = probe-limited but extensive legacy data. Cross-platform combining requires batch correction.
**Metadata scoring**: Rate 0-5 on: (1) sample annotations, (2) design documented, (3) pipeline described, (4) raw data deposited, (5) publication linked. Score <=2 warrants caution.
**GEO vs ArrayExpress**: GEO has broader coverage (older studies); ArrayExpress enforces stricter metadata. BioStudies captures multi-omics. Search both.
### Synthesis Questions
1. Does the dataset have sufficient replication and metadata for the intended analysis?
2. Are there batch effects or confounding variables?
3. Do multiple datasets show concordant patterns, and can they be integrated?
---
## Error Handling
| Error | Response |
|-------|----------|
| "No experiments found" | Broaden keywords, remove species filter, try synonyms |
| "Accession not found" | Verify format, check if withdrawn |
| "Files not available" | Note: "Data files restricted by submitter" |
| "API timeout" | Retry once, note "(metadata retrieval incomplete)" |
---
## Tool Reference
**ArrayExpress**: `arrayexpress_search_experiments` (search), `arrayexpress_get_experiment` (metadata), `arrayexpress_get_experiment_files` (downloads), `arrayexpress_get_experiment_samples` (annotations)
**BioStudies**: `biostudies_search` (search), `biostudies_get_study` (metadata+sections), `biostudies_get_study_files` (files)
**Additional Sources**:
- `GEO_search_rnaseq_datasets` / `geo_search_datasets` -- GEO (largest RNA-seq repo)
- `OmicsDI_search_datasets` -- cross-repository aggregation (GEO+ArrayExpress+PRIDE+MassIVE)
- `GTEx_get_expression_summary` -- baseline tissue expression (54 normal tissues, param: `gene_symbol`)
- `ENAPortal_search_studies` -- sequencing studies (param: `query` with `description="..."`)
- `CxGDisc_search_datasets` -- single-cell datasets (needs exact disease ontology terms)
- `GxA_list_experiments` / `GxA_get_experiment_info` / `GxA_get_experiment_expression` -- EBI Gene Expression Atlas: curated baseline (tissue) and differential (condition-comparison) bulk RNA-seq/microarray experiments. Filter `GxA_list_experiments` by `species` and `experiment_type` ("baseline" vs "differential") first; `GxA_get_experiment_expression` needs a specific `experiment_accession` (e.g. `E-MTAB-2836`) plus `gene_id`.
- `ARCHS4_get_gene_expression` / `ARCHS4_get_gene_correlations` -- ARCHS4: box-plot expression statistics (min/Q1/median/Q3/max, log2) across human/mouse tissues and cell lines, and top co-expressed genes by Pearson correlation across 300K+ uniformly reprocessed RNA-seq samples. Good for a quick baseline-expression sanity check or finding candidate co-regulated genes without running a full differential-expression pipeline.
- `Bgee_search_genes` / `Bgee_get_gene_expression` / `Bgee_list_species` -- Bgee: curated baseline expression-by-tissue calls across 29+ animal species (vs. ARCHS4's human/mouse-only reprocessed RNA-seq, or GxA's curated-but-narrower experiment set). `Bgee_get_gene_expression` needs BOTH an Ensembl gene ID and an NCBI taxonomy ID (e.g. `gene_id="ENSG00000141510"`, `species_id="9606"` for human TP53) -- resolve the gene ID with `Bgee_search_genes` first if you only have a symbol. Use `Bgee_list_species` to confirm a species is covered before assuming Bgee has it. Best for cross-species comparison questions ("is gene X expressed in the same tissues in mouse and zebrafish?"), not for finding raw sequencing datasets to download.
- `PubMed_search_articles` -- dataset discovery via publications
---
## Search Parameters
**ArrayExpress**: `keywords` (free text), `species` (scientific name), `array` (platform filter), `limit`
**BioStudies**: `query` (free text), `limit`
© mims-harvard · Apache-2.0 · mims-harvard/ToolUniverse