bulk-rna-seq-differential-expression-with-omicverse
An end-to-end DEG analysis pipeline for bulk RNA-seq data using omicverse.
Install
mkdir -p .claude/skills/bulk-rna-seq-differential-expression-with-omicverse && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/4143" && unzip -o skill.zip -d .claude/skills/bulk-rna-seq-differential-expression-with-omicverse && rm skill.zipInstalls to .claude/skills/bulk-rna-seq-differential-expression-with-omicverse
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Bulk RNA-seq DEG pipeline: gene ID mapping, DESeq2 normalization, statistical testing, volcano plots, and pathway enrichment in OmicVerse.Key capabilities
- →Maps gene IDs from GTF files to symbols
- →Normalizes counts using DESeq2 size factors
- →Executes differential expression testing
- →Generates volcano plots and enrichment charts
How it works
Applies statistical normalization and Welch t-tests to raw count data through the omicverse bulk DEG pipeline.
Inputs & outputs
When to use bulk-rna-seq-differential-expression-with-omicverse
- →Identify differentially expressed genes from count matrices
- →Convert raw gene IDs to symbols for analysis
- →Generate volcano plots and pathway enrichment results
About this skill
Bulk RNA-seq differential expression with omicverse
Overview
Follow this skill to run the end-to-end differential expression (DEG) workflow showcased in t_deg.ipynb. It assumes the user provides a raw gene-level count matrix (e.g., from featureCounts) and wants to analyse bulk RNA-seq cohorts inside omicverse.
Instructions
- Set up the session
- Import
omicverse as ov,scanpy as sc, andmatplotlib.pyplot as plt. - Call
ov.plot_set()so downstream plots adopt omicverse styling.
- Import
- Prepare ID mapping assets
- When gene IDs must be converted to gene symbols, instruct the user to download mapping pairs via
ov.utils.download_geneid_annotation_pair()and store them undergenesets/. - Mention the available prebuilt genomes (T2T-CHM13, GRCh38, GRCh37, GRCm39, danRer7, danRer11) and that users can generate their own mapping from GTF files if needed.
- When gene IDs must be converted to gene symbols, instruct the user to download mapping pairs via
- Load the raw counts
- Read tab-delimited featureCounts output with
ov.pd.read_csv(..., sep='\t', header=1, index_col=0). - Strip trailing
.bamsegments from column names using list comprehension so sample IDs are clean.
- Read tab-delimited featureCounts output with
- Map gene identifiers
- Run
ov.bulk.Matrix_ID_mapping(counts_df, 'genesets/pair_<GENOME>.tsv')to replacegene_identries with gene symbols.
- Run
- Initialise the DEG object
- Create
dds = ov.bulk.pyDEG(mapped_counts). - Handle duplicate gene symbols with
dds.drop_duplicates_index()to keep the highest expressed version.
- Create
- Normalise and estimate size factors
- Execute
dds.normalize()to calculate DESeq2 size factors, correcting for library size and batch differences.
- Execute
- Run differential testing
- Collect treatment and control replicate labels into lists.
- Call
dds.deg_analysis(treatment_groups, control_groups, method='ttest')for the default Welch t-test. - Offer optional alternatives:
method='edgepy'for edgeR-like tests andmethod='limma'for limma-style modelling.
- Filter and threshold results
- Note that lowly expressed genes are retained by default; filter using
dds.result.loc[dds.result['log2(BaseMean)'] > 1]when needed. - Set dynamic fold-change and significance cutoffs via
dds.foldchange_set(fc_threshold=-1, pval_threshold=0.05, logp_max=6)(fc_threshold=-1auto-selects based on log2FC distribution).
- Note that lowly expressed genes are retained by default; filter using
- Visualise differential expression
- Produce volcano plots with
dds.plot_volcano(title=..., figsize=..., plot_genes=... or plot_genes_num=...)to highlight key genes. - Generate per-gene boxplots using
dds.plot_boxplot(genes=[...], treatment_groups=..., control_groups=..., figsize=..., legend_bbox=...); adjust y-axis tick labels if required.
- Produce volcano plots with
- Perform pathway enrichment (optional)
- Download curated pathway libraries through
ov.utils.download_pathway_database(). - Load genesets with
ov.utils.geneset_prepare(<path>, organism='Mouse'|'Human'|...). - Build the DEG gene list from
dds.result.loc[dds.result['sig'] != 'normal'].index. - Run enrichment with
ov.bulk.geneset_enrichment(gene_list=deg_genes, pathways_dict=..., pvalue_type='auto', organism=...). Encourage users without internet access to provide abackgroundgene list. - Visualise single-library results via
ov.bulk.geneset_plot(...)and combine multiple ontologies usingov.bulk.geneset_plot_multi(enr_dict, colors_dict, num=...).
- Download curated pathway libraries through
- Document outputs
- Suggest exporting
dds.resultand enrichment tables to CSV for downstream reporting. - Encourage users to save figures generated by matplotlib (
plt.savefig(...)) when running outside notebooks.
- Suggest exporting
- Defensive validation
# Before DEG: verify treatment/control groups exist as column names all_cols = set(dds.result.columns) if hasattr(dds, 'result') else set(counts_df.columns) for g in treatment_groups + control_groups: assert g in all_cols, f"Sample '{g}' not found in count matrix columns" # Verify groups don't overlap assert not set(treatment_groups) & set(control_groups), "Treatment and control groups must not overlap" - Troubleshooting tips
- Ensure sample labels in
treatment_groups/control_groupsexactly match column names post-cleanup. - Verify required packages (
omicverse,pyComplexHeatmap,gseapy) are installed for enrichment visualisations. - Remind users that internet access is required the first time they download gene mappings or pathway databases.
- Ensure sample labels in
Examples
- "I have a featureCounts matrix for mouse tumour samples—normalize it with DESeq2, run t-test DEG, and highlight the top 8 genes in a volcano plot."
- "Use omicverse to compute edgeR-style differential expression between treated and control replicates, then run GO enrichment on significant genes."
- "Guide me through converting Ensembl IDs to symbols, performing limma DEG, and plotting boxplots for Krtap9-5 and Lef1."
References
- Detailed walkthrough notebook:
t_deg.ipynb - Sample count matrix for testing:
sample/counts.txt - Quick copy/paste commands:
reference.md
When not to use it
- →Analysis of single-cell RNA-seq data
- →Data lacking replicate samples
Prerequisites
Limitations
- →Sensitive to duplicate gene symbol handling
- →Limited to default t-test method in basic scripts
- →Dependent on reference ID mapping quality
How it compares
It wraps complex DEG statistical steps into a simplified workflow for immediate analysis.
Compared to similar skills
bulk-rna-seq-differential-expression-with-omicverse side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| bulk-rna-seq-differential-expression-with-omicverse (this skill) | 1 | 5mo | No flags | Intermediate |
| quant-analyst | 103 | 2mo | No flags | Advanced |
| umap-learn | 6 | 2mo | Review | Intermediate |
| embedding-strategies | 8 | 2mo | No flags | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by Starlitnightly
View all by Starlitnightly →You might also like
quant-analyst
zenobi-us
Expert quantitative analyst specializing in financial modeling, algorithmic trading, and risk analytics. Masters statistical methods, derivatives pricing, and high-frequency trading with focus on mathematical rigor, performance optimization, and profitable strategy development.
umap-learn
K-Dense-AI
UMAP dimensionality reduction. Fast nonlinear manifold learning for 2D/3D visualization, clustering preprocessing (HDBSCAN), supervised/parametric UMAP, for high-dimensional data.
embedding-strategies
wshobson
Select and optimize embedding models for semantic search and RAG applications. Use when choosing embedding models, implementing chunking strategies, or optimizing embedding quality for specific domains.
building-automl-pipelines
jeremylongshore
Build automated machine learning pipelines, including feature engineering, model selection, and performance evaluation.
model-compare
rawwerks
Compare 3D CAD models using boolean operations (IoU, Dice, precision/recall). Use when evaluating generated models against gold references, diffing CAD revisions, or computing similarity metrics for ML training. Triggers on: model diff, compare models, IoU, intersection over union, model similarity, CAD comparison, STEP diff, 3D evaluation, gold reference, generated model, precision recall 3D.
matchms
davila7
Mass spectrometry analysis. Process mzML/MGF/MSP, spectral similarity (cosine, modified cosine), metadata harmonization, compound ID, for metabolomics and MS data processing.