DESeq2 runner (Python + rpy2) for bulk RNA-seq with auto-discovery, E2E DE, plots, HTML report.
Project description
⚙️ GeneXpressor 💡
GeneXpressor is a streamlined, user-friendly tool designed for bulk RNA-seq differential expression analysis, built on the robust DESeq2 framework. It intelligently detects your count and metadata files, automates the entire DESeq2 workflow, and generates publication-quality plots along with a reproducible HTML report—all with a single command. Unlike traditional approaches, GeneXpressor allows you to process multiple datasets simultaneously, eliminating the need to select and analyze each dataset individually, making large-scale analyses faster and more efficient.
🚀 Key Features
🔍 Auto-discovery of count + metadata files
🧠 End-to-end DESeq2 analysis with rpy2 integration
📊 Publication-ready visualizations (volcano, MA, heatmap, QC plots)
🧾 Optional HTML report summarizing results
⚙️ Cross-platform (Windows, macOS, Linux)
🧩 Supports both AUTO and manual dataset selection
Lightweight setup – no manual R scripting required
Run this in your R console:
if(!requireNamespace("BiocManager", quietly=TRUE)) install.packages("BiocManager", repos="https://cloud.r-project.org")
BiocManager::install(c( "DESeq2", "apeglm", "ashr", "ggplot2", "pheatmap", "rmarkdown", "knitr" ), ask=FALSE)
💾 Installation pip install GeneXpressor
or
To confirm: GeneXpressor --help
🧩 Input Directory Structure Your working directory (--parent_dir) should contain:
MyProject/ ├─ counts.csv # genes × samples, first column = gene IDs ├─ metadata.csv # sample info; must include the condition column └─ (optional extra files)
Example metadata.csv:
sample condition S1 Disease S2 Control S3 Disease S4 Control
⚙️ CLI USE CASE
Example (Windows PowerShell)
genexpressor --parent_dir "C:\Users\<username>\Downloads\Deseq2-pkg"
--pick AUTO --case_level Disease
--control_level Control --alpha 0.05
--lfc_thr 2.0 --top_labels 20
--top_heatmap 50 --make_report true
--debug true `
--threads 2
📊 Output Overview After a successful run, GeneXpressor will create a new results folder inside your working directory containing:
Example output structure:
C:\Users<username>\Downloads\Deseq2-pkg
├─ results/
│ ├─ deseq2_results.csv
│ ├─ deseq2_significant.csv
│ ├─ volcano_plot.png
│ ├─ ma_plot.png
│ ├─ heatmap.png
│ └─ GeneXpressor_Report.html
└─ logs/
└─ run.log
Command Options Flag Description --parent_dir Directory containing counts + metadata --pick Dataset selection (AUTO, ALL, or manual) --case_level / --control_level Condition names --alpha Adjusted p-value cutoff (default 0.05) --lfc_thr log₂ Fold-change threshold --top_labels Genes labeled in volcano plot --top_heatmap Top genes in heatmap --make_report Whether to generate HTML report --threads Parallel worker threads --debug Verbose console logging
🧪 Quick Test python -c "import genexpressor; print(genexpressor.version)" genexpressor --help 0.1.4 genexpressor CLI OK
Troubleshooting
Issue Cause / Fix
ModuleNotFoundError: genexpressor.cli Reinstall the package
(pip install --upgrade GeneXpressor)
rpy2 or R_HOME errors Ensure R is installed and on PATH (R --version)
DESeq2 not found
Install via BiocManager::install("DESeq2")
Permission denied
Run from a directory you own
Missing plots / report Check --make_report true and logs 📘Citation
If you use GeneXpressor in your work, please cite: Malik, S. (2025). GeneXpressor: Automated DESeq2 runner for bulk RNA-seq via rpy2. PyPI. https://pypi.org/project/GeneXpressor
👤 Author Sheryar Malik Bioinformatics Scientist 📧 sheryarmalik1403@gmail.com 🔗 GitHub: shari01 : https://github.com/shari01/GeneXpressor
📄 License MIT License © 2025 Sheryar Malik
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file genexpressor-0.1.7.tar.gz.
File metadata
- Download URL: genexpressor-0.1.7.tar.gz
- Upload date:
- Size: 12.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c68e06e07fcc37a80c5c53475a7691a604e4a66d3d6960ad09a706892bf9ded1
|
|
| MD5 |
52bde8402cb80e7581eede92e15069f1
|
|
| BLAKE2b-256 |
98b3cb16834fb81acfcba856c05ca2f485b9a82eb3a8a297c69a012f4a06ac22
|
File details
Details for the file genexpressor-0.1.7-py3-none-any.whl.
File metadata
- Download URL: genexpressor-0.1.7-py3-none-any.whl
- Upload date:
- Size: 13.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca9ca7c47e01bb1596ee327d712fc8ade95069ef6640cc481c46b5a6cb1b283c
|
|
| MD5 |
16b559d78159e523306692d38bb0b8b3
|
|
| BLAKE2b-256 |
562bb05c2818e1801df4db0db1ebb660490ae9c6dbf330ed7c0e0aac7007c720
|