
Tooluniverse Expression Data Retrieval
- 355 installs
- 1.6k repo stars
- Updated August 4, 2026
- mims-harvard/tooluniverse
tooluniverse-expression-data-retrieval is a ToolUniverse Claude Code skill that retrieves and assesses gene expression datasets from ArrayExpress and BioStudies for developers building omics research pipelines.
About
tooluniverse-expression-data-retrieval is a mims-harvard/tooluniverse skill for bioinformatics developers scouting RNA-seq, microarray, and multi-omics experiments. It searches ArrayExpress and BioStudies with English query terms, disambiguates gene symbols via HGNC or MGI, and produces Dataset Search Reports with quality tiers (high, medium, low, caution) based on replicate counts and metadata completeness. ToolUniverse Python calls include arrayexpress_search_experiments, biostudies_search, GEO_search_rnaseq_datasets, OmicsDI_search_datasets, and GTEx_get_expression_summary across 54 normal tissues. Developers use it before downloading raw matrices to compare case-control, time-series, or dose-response studies and to avoid guessing accession IDs. disable-model-invocation is true; invoke manually for expression data scouting.
- Cohort-aware retrieval
- Tissue and condition contrast
- Metadata harmonization
- Pathway scouting
- Reproducible query patterns
Tooluniverse Expression Data Retrieval by the numbers
- 355 all-time installs (skills.sh)
- +8 installs in the week ending Aug 4, 2026 (Skillselion tracking)
- Ranked #538 of 2,064 Data Science & ML skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/mims-harvard/tooluniverse --skill tooluniverse-expression-data-retrievalAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 355 |
|---|---|
| repo stars | ★ 1.6k |
| Last updated | August 4, 2026 |
| Repository | mims-harvard/tooluniverse ↗ |
How do you find RNA-seq datasets in ArrayExpress?
Pull public and curated expression matrices, normalize cohort metadata, and compare tissue or condition profiles while scouting genes and pathways.
Who is it for?
Bioinformatics developers using ToolUniverse who need curated ArrayExpress, BioStudies, and GEO dataset discovery with gene disambiguation and quality scoring.
Skip if: General-purpose web search or developers without ToolUniverse installed who need non-omics data retrieval.
When should I use this skill?
A developer asks to find RNA-seq or microarray datasets by gene, tissue, or disease, compare expression studies, or assess dataset quality before download.
What you get
Dataset Search Reports with experiment accessions, sample group tables, quality tier ratings, download links, and integration recommendations.
- Dataset Search Reports
- Ranked experiment accession lists
- Quality tier assessments with download links
By the numbers
- Uses 4 dataset quality tiers from high (3+ replicates) to caution
- GTEx_get_expression_summary covers baseline expression in 54 normal tissues
Files
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.
# 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(accession=accession)
samples = tu.tools.arrayexpress_get_experiment_samples(accession=accession)
files = tu.tools.arrayexpress_get_experiment_files(accession=accession)
# BioStudies for multi-omics
biostudies = tu.tools.biostudies_search(query="[keywords]", limit=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:querywithdescription="...")CxGDisc_search_datasets-- single-cell datasets (needs exact disease ontology terms)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
Expression Data Retrieval Checklist
Use this checklist to ensure complete dataset reports.
Query Disambiguation
- [ ] Gene name resolved (if gene-focused search)
- [ ] Organism confirmed
- [ ] Search keywords optimized
Per Experiment (Required)
- [ ] Accession number with database link
- [ ] Organism
- [ ] Experiment type (RNA-seq/microarray/etc.)
- [ ] Platform specified
- [ ] Sample count
- [ ] Brief description
- [ ] Quality assessment (●●●/●●○/●○○/○○○)
Quality Assessment Criteria
- [ ] Replicate count evaluated
- [ ] Metadata completeness checked
- [ ] Data accessibility confirmed
- [ ] Platform recency noted
Search Summary
- [ ] Query parameters stated
- [ ] Number of results
- [ ] Databases searched (ArrayExpress, BioStudies)
Recommendations
- [ ] Best dataset identified for user's purpose
- [ ] Alternative options listed
- [ ] Data access notes included
Multi-Omics (If Applicable)
- [ ] BioStudies searched
- [ ] Data types listed (transcriptomics, proteomics, etc.)
- [ ] Integration potential noted
Report Quality
- [ ] Search process NOT shown in output
- [ ] Clean tabular format used
- [ ] Download links provided
- [ ] Retrieval date included
Error Handling
- [ ] Empty search → broader keywords suggested
- [ ] Files unavailable → noted in report
- [ ] API errors → noted as "(retrieval incomplete)"
Expression Data Retrieval Examples
Example 1: Find Diabetes Gene Expression Studies
from tooluniverse import ToolUniverse
tu = ToolUniverse()
tu.load_tools()
# Search ArrayExpress
result = tu.tools.arrayexpress_search_experiments(
keywords="diabetes",
species="Homo sapiens",
limit=10
)
# Display results
for exp in result["data"]["experiments"][:5]:
print(f"{exp['accession']}: {exp['name']}")
print(f" Samples: {exp['samples']}")
print(f" Type: {exp.get('experimenttype', 'N/A')}")Example 2: Get Complete Experiment Details
# Get experiment metadata
accession = "E-MTAB-5214"
details = tu.tools.arrayexpress_get_experiment(
accession=accession
)
print(f"Title: {details['data']['title']}")
print(f"Description: {details['data']['description']}")
print(f"Samples: {details['data']['samples']}")
# Get associated files
files = tu.tools.arrayexpress_get_experiment_files(
accession=accession
)
print("\nAvailable files:")
for file in files["data"]["files"]:
print(f" {file['name']} ({file['size']})")Example 3: Search RNA-seq Experiments
# Search for RNA-seq studies
result = tu.tools.arrayexpress_search_experiments(
keywords="RNA-seq cancer",
species="Homo sapiens",
limit=20
)
# Filter for RNA-seq specifically
rnaseq_studies = [
exp for exp in result["data"]["experiments"]
if "rna-seq" in exp.get("experimenttype", "").lower()
]
print(f"Found {len(rnaseq_studies)} RNA-seq studies")Example 4: Multi-Omics Study from BioStudies
# Search BioStudies for proteomics
result = tu.tools.biostudies_search(
query="proteomics breast cancer",
limit=10
)
# Get first study
study_acc = result["data"]["studies"][0]["accession"]
# Get detailed information
details = tu.tools.biostudies_get_study(
accession=study_acc
)
print(f"Study: {details['data']['title']}")
print(f"Type: {details['data']['type']}")
# Get files
files = tu.tools.biostudies_get_study_files(
accession=study_acc
)Example 5: Compare Multiple Experiments
# Search for related experiments
result = tu.tools.arrayexpress_search_experiments(
keywords="liver tissue",
species="Mus musculus",
limit=10
)
# Get details for each
experiments = []
for exp in result["data"]["experiments"][:5]:
details = tu.tools.arrayexpress_get_experiment(
accession=exp["accession"]
)
experiments.append({
"accession": exp["accession"],
"samples": details["data"]["samples"],
"type": details["data"].get("experimenttype")
})
# Compare sample sizes
for exp in experiments:
print(f"{exp['accession']}: {exp['samples']} samples")Example 6: Download Experiment Data
# Get experiment files
accession = "E-MTAB-1234"
files = tu.tools.arrayexpress_get_experiment_files(
accession=accession
)
# Find processed data file
for file in files["data"]["files"]:
if "processed" in file["name"].lower():
print(f"Processed data: {file['url']}")
# Use file download tool to get actual fileRelated skills
How it compares
Pick this over generic research skills when you need ToolUniverse-specific ArrayExpress and BioStudies API calls with omics quality scoring, not broad literature search.
FAQ
Which databases does tooluniverse-expression-data-retrieval search?
tooluniverse-expression-data-retrieval searches ArrayExpress and BioStudies primarily, with fallbacks to GEO, OmicsDI, ENAPortal, CxGDisc, and GTEx tissue expression via ToolUniverse Python tools. All tool calls use English search terms.
How does tooluniverse-expression-data-retrieval score dataset quality?
tooluniverse-expression-data-retrieval assigns four quality tiers: high (3+ biological replicates, complete metadata), medium, low, and caution for single-sample or sparse data. Reports include sample groups, file tables, and download links per experiment.