Bulk RNA-seq Pipeline (rnaseq-pipeline)
An interactive, terminal-based pipeline for bulk RNA-seq: from public accessions (SRA, GEO, ENA) or local FASTQ files to differential-expression results, plots and an HTML report.
- Python does everything up to the gene count matrix: download/import, FASTQ validation, FastQC/MultiQC, the quality gate, fastp, reference preparation, HISAT2, BAM validation and QC, strandedness, StringTie2 and featureCounts.
- R runs DESeq2 and everything after it: normalisation, tests, up/down genes, and plots.
- Every stage validates its outputs independently (for example, FASTQ reads = HISAT2 reads = BAM primary records; count-matrix column sums = featureCounts assigned reads; up/down tables re-derived from the full result table).
- Checkpoints make interrupted runs resumable. A changed input, output or scientific setting re-runs exactly the affected stages.
- Scientific decisions (trimming, strandedness, experimental design) are never guessed; you confirm each one, with an explanation.
New to RNA-seq or to this tool? Read the illustrated User Guide and Learning Book (PDF · Word): installation step by step, every stage and tool explained in plain language with flowcharts, how to read the results and plots, a worked example, troubleshooting, a glossary and how to cite. No programming knowledge needed.
DATA (SRA / GEO / ENA / local, or search NCBI) -> FASTQ validation -> FastQC + MultiQC -> quality gate
-> [fastp -> validation -> FastQC + MultiQC] (only if you decide to trim)
-> reference (catalog, any organism from NCBI, or your own FASTA + GTF; validated; HISAT2 index)
-> HISAT2 | samtools sort -> BAM validation -> BAM QC -> strandedness (inferred, confirmed)
-> StringTie2 (transcript TPM) and featureCounts (gene counts) <- independent
-> count matrix -> experimental design (you confirm) -> DESeq2 -> plots -> validated HTML report + manifest
Install
pipx install git+https://github.com/vipin839/rnaseq_pipeline.git # the command
mamba env create -f "$(rnaseq-pipeline --runtime-env tools)" # FastQC, HISAT2, samtools, ...
mamba env create -f "$(rnaseq-pipeline --runtime-env r)" # R + DESeq2
rnaseq-pipeline --check # functional health check
See docs/INSTALLATION.md for conda setup, the Bioconda recipe (one-command install after it is published), user settings and upgrading from 1.0.0.
Use
rnaseq-pipeline # interactive menu
rnaseq-pipeline --project ~/rnaseq_projects/RNAseq_MyStudy # resume a project
rnaseq-pipeline --validate-project DIR # re-verify a project: PROJECT HEALTH PASS / WARNING / FAIL
rnaseq-pipeline --dry-run --project DIR # show what would run, execute nothing
rnaseq-pipeline --check # installation health check
What is supported
| Status | Notes | |
|---|---|---|
| Bulk RNA-seq, paired-end or single-end, Illumina | Supported | the layout must be the same for all samples in a project |
| Unstranded / forward / reverse libraries | Supported | inferred with RSeQC and confirmed; all three tested end to end |
| Human, mouse, yeast (catalog); any organism with an NCBI GTF; custom FASTA + GTF | Supported | genome and annotation compatibility is checked (names, lengths, assembly) |
| Bacteria (CDS-only NCBI annotation) | Supported | counts CDS; StringTie2 skipped; tested with E. coli UTI89 |
Designs ~ condition, ~ batch + condition, several groups/contrasts |
Supported | ≥2 biological replicates per group; confounding refused |
| Lanes / technical replicates | Supported | summed on request |
| Time course (LRT), interactions, continuous covariates | Not supported | planned |
| Mixed layouts or organisms in one project | Refused | use separate projects |
| Single-cell RNA-seq (10x, Drop-seq, Smart-seq, …) | Refused | detected from metadata and read structure; use Cell Ranger / STARsolo / alevin-fry |
| Human-scale data on a small machine | Partially | the index is built without splice sites below ~160 GB RAM (sites are given at alignment); ~8 GB RAM needed to align |
| GO / Reactome enrichment | Partially | optional; needs extra R packages; not part of the tested core |
| macOS, Windows (native) | Not supported | Linux and WSL2 only |
| Web interface, HPC schedulers, containers | Not supported | future versions |
Documentation
| Document | Contents |
|---|---|
| User Guide and Learning Book (PDF) / Word | complete illustrated guide for users: setup, workflow with flowcharts, every tool, result interpretation, worked example, troubleshooting, glossary, citation |
| docs/INSTALLATION.md | install options, runtime layer, user settings, upgrading |
| docs/USER_GUIDE.md | step-by-step use, menus, decisions, resuming, logs |
| docs/PIPELINE_METHODS.md | what each stage does, parameters, thresholds, validation |
| docs/VERIFICATION_MATRIX.md | requirement → code → tests → evidence → status |
| docs/TESTING.md | test suites, synthetic truth data, real-data evidence |
| docs/TROUBLESHOOTING.md | errors and fixes |
| docs/DEVELOPER_GUIDE.md | architecture and extension points |
| docs/RELEASE.md | release procedure (tag, PyPI, Bioconda) |
| CHANGELOG.md | version history |
How to cite
Vipin (2026). rnaseq-pipeline: an interactive, validated and resumable bulk RNA-seq pipeline (version 1.1.2) [Computer software]. GitHub. https://github.com/vipin839/rnaseq_pipeline
Please also cite the tools the pipeline runs (FastQC, MultiQC, fastp, HISAT2, SAMtools, RSeQC, StringTie2, featureCounts, DESeq2, apeglm). Full references and an example methods paragraph are in chapter 22 of the User Guide.
Developer and contact
Developed and maintained by Vipin (github.com/vipin839).
- Website: www.vipin.social
- E-mail: sainivipin839@gmail.com
- Questions and bug reports: GitHub issues
License: MIT.
Metadata
Release files for bulk-rnaseq-pipeline 1.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| bulk_rnaseq_pipeline-1.1.2.tar.gz | 158.3 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bulk_rnaseq_pipeline-1.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 337.3 kB
Release files / bulk_rnaseq_pipeline-1.1.2.tar.gz
| Download URL | bulk_rnaseq_pipeline-1.1.2.tar.gz |
|---|---|
| Size | 158.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9b864cc7848b7d13b5306ede4621b726675022eb4d1addeb08bd727d9747b3a3
|
|
BLAKE2b-256 checksum How to use checksums |
ddd1b93ba79fadd5a7121abf40b1ecd78ca570fe4897f605a393312f36cf4a4a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.
Transparency logRelease files / bulk_rnaseq_pipeline-1.1.2-py3-none-any.whl
| Download URL | bulk_rnaseq_pipeline-1.1.2-py3-none-any.whl |
|---|---|
| Size | 179.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
85e3edca8fe1f5fad71a777a0e16b0fc8da802db98c7cb93dec1ae6da63805eb
|
|
BLAKE2b-256 checksum How to use checksums |
d4c9126f96aa9aeba9b63edda9d8b296ba83026d430b9b18b134dcfb2a3066b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.
Transparency logSecurity for bulk-rnaseq-pipeline 1.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for bulk_rnaseq_pipeline-1.1.2.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.