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

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

genexpressor-0.1.7.tar.gz (12.2 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.7-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

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

Hashes for genexpressor-0.1.7.tar.gz
Algorithm Hash digest
SHA256 c68e06e07fcc37a80c5c53475a7691a604e4a66d3d6960ad09a706892bf9ded1
MD5 52bde8402cb80e7581eede92e15069f1
BLAKE2b-256 98b3cb16834fb81acfcba856c05ca2f485b9a82eb3a8a297c69a012f4a06ac22

See more details on using hashes here.

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

Hashes for genexpressor-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 ca9ca7c47e01bb1596ee327d712fc8ade95069ef6640cc481c46b5a6cb1b283c
MD5 16b559d78159e523306692d38bb0b8b3
BLAKE2b-256 562bb05c2818e1801df4db0db1ebb660490ae9c6dbf330ed7c0e0aac7007c720

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