Skip to main content

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

🧰 Requirements Component Version Notes Python ≥ 3.11 64-bit recommended R ≥ 4.0 must be on PATH (R --version) R packages DESeq2, apeglm, ashr, ggplot2, pheatmap, rmarkdown, knitr install via BiocManager Python packages rpy2 ≥ 3.5 installed automatically 🧩 One-time R setup

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

pip install genexpressor

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 ⚙️ Command-Line Usage 🧠 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

🧪 Example (Linux / macOS) genexpressor
--parent_dir "/path/to/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:

Output file Description deseq2_results.csv Full DESeq2 result table deseq2_significant.csv Filtered DEGs (α- and LFC-based) volcano_plot.png Volcano plot ma_plot.png MA plot heatmap.png Top-gene heatmap QC_*.png Quality-control plots GeneXpressor_Report.html Complete HTML report

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

Expected output:

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

📄 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

genexpressor-0.1.6.tar.gz (12.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

genexpressor-0.1.6-py3-none-any.whl (13.6 kB view details)

Uploaded Python 3

File details

Details for the file genexpressor-0.1.6.tar.gz.

File metadata

  • Download URL: genexpressor-0.1.6.tar.gz
  • Upload date:
  • Size: 12.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for genexpressor-0.1.6.tar.gz
Algorithm Hash digest
SHA256 dfffe66389302fb2123e97d1cedd96eb8b9a60985df8de48432ec324c5af92fe
MD5 f0c793df8a6b0ce9f1990abc2e3f34d7
BLAKE2b-256 b888faffe4f85fd8c8a1370f3b088454fe287c48c2a457d043fbfc57b25936d9

See more details on using hashes here.

File details

Details for the file genexpressor-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: genexpressor-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 13.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for genexpressor-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 2553c3b192e78efa7464fb5687677385ac12b23c5a37c6313870c3287198f772
MD5 6948f1826a30dc6509496b5da8d8212d
BLAKE2b-256 c141d38309f0aca943929d8d625ef97417245731289869073dbbd03c96bb58ce

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page