Skip to main content

BioFlowValidator

A transparent, rule-based validator for RNA-seq differential expression analysis workflows.

BioFlowValidator catches common scientific and computational errors in RNA-seq data before expensive analysis begins — acting as a pre-analysis guard rail for wet-lab biologists, students, and clinical researchers.


Features

  • ✅ 32 validation rules across 5 categories (format, sample, gene ID, normalization, biology)
  • 🔬 Detects: sample mismatches, mixed gene ID namespaces, pre-normalized counts, too few replicates, library size outliers, and more
  • 📊 Human-readable HTML report + machine-readable JSON
  • 🚀 REST API (FastAPI) + React/TypeScript frontend
  • 🐳 Single-command Docker startup

Quick Start

Docker (recommended)

git clone https://github.com/Rashidmstar12/BioFlowValidator.git
cd BioFlowValidator
docker compose up --build

Open http://localhost:3000 in your browser.

Local Development

Backend:

cd backend
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8000

Frontend:

cd frontend
npm install
npm run dev

Open http://localhost:5173.


Inputs

File Format Required
Count matrix TSV / CSV / XLSX (genes × samples or samples × genes) ✅
Sample metadata TSV / CSV (sample IDs + condition column) Optional

Validation Rule Categories

Category Rules Description
Format FMT-001 – FMT-008 Encoding, delimiters, headers, duplicates, non-negatives, matrix orientation
Sample SMP-001 – SMP-005 Sample ID matching, duplicates, replicates, near-identical replicate diagnostics
Gene ID GEN-001 – GEN-005 Namespace consistency, duplicates, version suffixes, organism detection
Normalization NRM-001 – NRM-006 Integer counts, library size ratios, zero genes, duplicate count profiles
Biology BIO-001 – BIO-008 Single condition, MT fraction, label sanity, batch confounding, ERCC spike-ins

See docs/validation_rules.md for the full rule reference.


Running Tests

cd backend
python -m pytest tests/ -v

Run the dataset benchmark:

python datasets/benchmark.py

API Reference

See docs/api_spec.md or browse the interactive docs at http://localhost:8000/docs.


Repository Structure

BioFlowValidator/
├── backend/           # Python FastAPI application
│   ├── app/
│   │   ├── engine/    # FileParser, RuleRegistry, RuleRunner
│   │   ├── models/    # RuleResult, ValidationReport, ValidationContext
│   │   ├── rules/     # format/, sample/, gene/, normalization/, biology/
│   │   ├── report/    # JSONExporter, HTMLExporter
│   │   └── routers/   # FastAPI route handlers
│   └── tests/         # Unit + integration tests
├── frontend/          # React + TypeScript + Vite SPA
├── datasets/          # Valid + faulty example datasets + benchmark
├── docs/              # API spec, validation rules reference
├── Dockerfile.backend
├── Dockerfile.frontend
└── docker-compose.yml

Design Principles

  • Validation only — no analysis, no statistical computation
  • Transparent — every rule has a documented ID, description, and suggestion
  • Auditable — JSON report includes file SHA-256 hash and timestamp
  • Scientifically conservative — ambiguous cases produce WARNING not ERROR
  • Reproducible — same inputs always produce identical outputs

License

MIT

Metadata

Release files for bioflowvalidator 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bioflowvalidator 1.0.0
File Size Uploaded
bioflowvalidator-1.0.0.tar.gz 36.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bioflowvalidator 1.0.0
File Interpreter ABI Platform
bioflowvalidator-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 77.8 kB

Release files / bioflowvalidator-1.0.0.tar.gz

Download URL bioflowvalidator-1.0.0.tar.gz
Size 36.1 kB
Tags Source
SHA-256 checksum
How to use checksums
a996d0aa2e45ef7c51c2401748a60353451d9e373a010edec5347ca9bd9d5034
BLAKE2b-256 checksum
How to use checksums
de3e663b483630d1aafd1cc24f5d279bc914bee872104ab430f6d972981b3691
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 26, 2026.

Transparency log

Release files / bioflowvalidator-1.0.0-py3-none-any.whl

Download URL bioflowvalidator-1.0.0-py3-none-any.whl
Size 41.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
75bd6a612205e756ebe912b6325262159446ef5cd67981872d3c4fec12da93a7
BLAKE2b-256 checksum
How to use checksums
8e62f9a530b4002d3fd9422f96064158c17c31cbfd9387a356b97f2fc9bc4273
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 May 26, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page