GenoMAS Guide
Overview
GenoMAS (Genomics Multi-Agent System) is a minimalist multi-agent framework for automating scientific analysis workflows, particularly gene expression analysis. It orchestrates specialized agents for data retrieval, preprocessing, differential expression analysis, pathway enrichment, and visualization — turning a natural language research question into a complete bioinformatics pipeline.
Installation
pip install genomas
# Or from source
git clone https://github.com/futianfan/GenoMAS.git
cd GenoMAS && pip install -e .
Core Workflow
Natural Language to Pipeline
from genomas import GenoMAS
geno = GenoMAS(llm_provider="anthropic")
# Describe analysis in natural language
result = geno.analyze(
"Compare gene expression between tumor and normal tissue "
"in the TCGA breast cancer dataset. Identify differentially "
"expressed genes and run pathway enrichment analysis."
)
# GenoMAS automatically:
# 1. Retrieves TCGA-BRCA data via GDC API
# 2. Normalizes and filters expression data
# 3. Runs DESeq2-style differential expression
# 4. Performs GO and KEGG pathway enrichment
# 5. Generates volcano plots and heatmaps
Agent Roles
| Agent |
Responsibility |
| Data Agent |
Retrieves datasets from GEO, TCGA, ArrayExpress |
| Preprocessing Agent |
Quality control, normalization, filtering |
| Analysis Agent |
Differential expression, clustering, PCA |
| Enrichment Agent |
GO, KEGG, MSigDB pathway analysis |
| Visualization Agent |
Plots, heatmaps, volcano plots |
| Report Agent |
Generates methods section and results summary |
Step-by-Step Usage
from genomas import DataAgent, AnalysisAgent, EnrichmentAgent
# Step 1: Retrieve data
data_agent = DataAgent()
dataset = data_agent.fetch("GSE12345", platform="RNA-seq")
# Step 2: Differential expression
analysis = AnalysisAgent()
de_results = analysis.differential_expression(
dataset,
group_col="condition",
case="tumor",
control="normal",
method="deseq2",
)
# Step 3: Filter significant genes
sig_genes = de_results[
(de_results["padj"] < 0.05) &
(abs(de_results["log2FoldChange"]) > 1)
]
print(f"Found {len(sig_genes)} differentially expressed genes")
# Step 4: Pathway enrichment
enrichment = EnrichmentAgent()
pathways = enrichment.run(
gene_list=sig_genes["gene_symbol"].tolist(),
databases=["GO_BP", "KEGG", "Reactome"],
)
# Step 5: Visualize
from genomas.viz import volcano_plot, pathway_barplot
volcano_plot(de_results, output="volcano.png")
pathway_barplot(pathways, top_n=20, output="pathways.png")
Supported Analyses
| Analysis |
Method |
| Differential expression |
DESeq2, edgeR, limma-voom |
| Clustering |
Hierarchical, k-means, UMAP |
| PCA |
Principal component analysis |
| GO enrichment |
Gene Ontology term enrichment |
| KEGG pathway |
KEGG pathway mapping |
| GSEA |
Gene Set Enrichment Analysis |
| Survival analysis |
Kaplan-Meier, Cox regression |
Data Sources
| Source |
Data type |
| GEO (NCBI) |
Microarray, RNA-seq |
| TCGA |
Cancer genomics |
| GTEx |
Normal tissue expression |
| ArrayExpress |
European expression data |
References
- GenoMAS GitHub
- Love, M.I. et al. (2014). "Moderated estimation of fold change and dispersion for RNA-seq data with DESeq2." Genome Biology 15(12).
1---2name: genomas-guide3description: Automate gene expression analysis with the GenoMAS multi-agent system4---56# GenoMAS Guide78## Overview910GenoMAS (Genomics Multi-Agent System) is a minimalist multi-agent framework for automating scientific analysis workflows, particularly gene expression analysis. It orchestrates specialized agents for data retrieval, preprocessing, differential expression analysis, pathway enrichment, and visualization — turning a natural language research question into a complete bioinformatics pipeline.1112## Installation1314```bash15pip install genomas16# Or from source17git clone https://github.com/futianfan/GenoMAS.git18cd GenoMAS && pip install -e .19```2021## Core Workflow2223### Natural Language to Pipeline2425```python26from genomas import GenoMAS2728geno = GenoMAS(llm_provider="anthropic")2930# Describe analysis in natural language31result = geno.analyze(32 "Compare gene expression between tumor and normal tissue "33 "in the TCGA breast cancer dataset. Identify differentially "34 "expressed genes and run pathway enrichment analysis."35)3637# GenoMAS automatically:38# 1. Retrieves TCGA-BRCA data via GDC API39# 2. Normalizes and filters expression data40# 3. Runs DESeq2-style differential expression41# 4. Performs GO and KEGG pathway enrichment42# 5. Generates volcano plots and heatmaps43```4445### Agent Roles4647| Agent | Responsibility |48|-------|---------------|49| **Data Agent** | Retrieves datasets from GEO, TCGA, ArrayExpress |50| **Preprocessing Agent** | Quality control, normalization, filtering |51| **Analysis Agent** | Differential expression, clustering, PCA |52| **Enrichment Agent** | GO, KEGG, MSigDB pathway analysis |53| **Visualization Agent** | Plots, heatmaps, volcano plots |54| **Report Agent** | Generates methods section and results summary |5556### Step-by-Step Usage5758```python59from genomas import DataAgent, AnalysisAgent, EnrichmentAgent6061# Step 1: Retrieve data62data_agent = DataAgent()63dataset = data_agent.fetch("GSE12345", platform="RNA-seq")6465# Step 2: Differential expression66analysis = AnalysisAgent()67de_results = analysis.differential_expression(68 dataset,69 group_col="condition",70 case="tumor",71 control="normal",72 method="deseq2",73)7475# Step 3: Filter significant genes76sig_genes = de_results[77 (de_results["padj"] < 0.05) &78 (abs(de_results["log2FoldChange"]) > 1)79]80print(f"Found {len(sig_genes)} differentially expressed genes")8182# Step 4: Pathway enrichment83enrichment = EnrichmentAgent()84pathways = enrichment.run(85 gene_list=sig_genes["gene_symbol"].tolist(),86 databases=["GO_BP", "KEGG", "Reactome"],87)8889# Step 5: Visualize90from genomas.viz import volcano_plot, pathway_barplot91volcano_plot(de_results, output="volcano.png")92pathway_barplot(pathways, top_n=20, output="pathways.png")93```9495## Supported Analyses9697| Analysis | Method |98|----------|--------|99| Differential expression | DESeq2, edgeR, limma-voom |100| Clustering | Hierarchical, k-means, UMAP |101| PCA | Principal component analysis |102| GO enrichment | Gene Ontology term enrichment |103| KEGG pathway | KEGG pathway mapping |104| GSEA | Gene Set Enrichment Analysis |105| Survival analysis | Kaplan-Meier, Cox regression |106107## Data Sources108109| Source | Data type |110|--------|-----------|111| GEO (NCBI) | Microarray, RNA-seq |112| TCGA | Cancer genomics |113| GTEx | Normal tissue expression |114| ArrayExpress | European expression data |115116## References117118- [GenoMAS GitHub](https://github.com/futianfan/GenoMAS)119- Love, M.I. et al. (2014). "Moderated estimation of fold change and dispersion for RNA-seq data with DESeq2." *Genome Biology* 15(12).