Vol. 01 · No. 1 · Beta Edition
Bulk RNA-seq

featureCounts to PyDESeq2 to GSEA — no R session required.

Load a count matrix, a featureCounts or STAR ReadsPerGene table, or Kallisto / Salmon quantifications; attach the sample sheet with Merge Cell Meta; run sample-level QC, cpm / tmm / deseq2 / vst normalisation, PyDESeq2 differential expression, GSEA or ORA and PROGENy / Hallmark / CollecTRI activity — then volcano, MA, heatmap, sample-distance and library-size plots.

In the Bulk RNA-seq view

Nodes in this view
19

8 pipeline stages

Loaders
4

Count Matrix · featureCounts · Abundance (Kallisto/Salmon) · H5AD

Templates
3

1 need a Resource Center install

Plot types
7

across the visualization nodes in this view

Counted from the app’s v0.25 Node Library view, not typed by hand.

Oreumics — airway_deseq2.bioflowRun
Load featureCounts

airway_featurecounts.txt

samples × genes

Merge Cell Meta

airway_metadata.csv

dex column attached

Bulk QC

library size · IQR

outliers labelled

Bulk Normalize

deseq2 size factors

counts kept in layers

Differential Expr.

PyDESeq2 · trt vs untrt

padj · log2FC

GSEA / ORA

GO_Biological_Process_2023

pathways ranked

Bulk Visualization

volcano · α 0.05

figure ready

Building workflow…

A Bulk RNA-seq pipeline on the Oreumics canvas — drag, connect, run. Illustration; parameters are examples.

What it produces

Result capture

Oreumics — Bulk RNA-seq result
Bulk Visualization, volcano plot type — log2 fold-change against −log10 adjusted p-value from PyDESeq2, with genes passing the FDR and fold-change thresholds highlighted.

Bulk Visualization, volcano plot type — log2 fold-change against −log10 adjusted p-value from PyDESeq2, with genes passing the FDR and fold-change thresholds highlighted.

Supported input formats

What you can drag in.

featureCounts.txt

Subread featureCounts output; comment and header lines are handled automatically.

STAR ReadsPerGene.tab

ReadsPerGene.out.tab; strand_column picks unstranded (1), forward (2) or reverse (3) counts.

Kallisto abundance.tsv

abundance.tsv, format auto-detected. One file per sample; choose TPM or estimated counts with value_type.

Salmon quant.sf

quant.sf, format auto-detected. One file per sample, joined afterwards with Merge Data.

Count matrix.csv

CSV / TSV / TXT count table, genes × samples by default (Transpose is on); an optional metadata file joins on sample name.

AnnData.h5ad

A samples × genes AnnData built earlier, e.g. saved from a previous Oreumics run.

Sample sheet.csv

Sample × condition table attached with Merge Cell Meta (auto-matched, deterministic) or built with Define Groups.

PyDESeq2 needs raw integer counts — set value_type = counts for Kallisto / Salmon. TPM is fine for the plots.

A typical run

A canonical Bulk RNA-seq pipeline.

The steps below are the story; the full stage-by-stage node list follows in section 04.

  1. 01

    Load counts

    Pick the loader that matches your quantifier. For Kallisto / Salmon, load each sample and concatenate with Merge Data.

  2. 02

    Attach the design

    Merge Cell Meta joins the sample sheet onto obs with a live match-rate preview; Define Groups builds condition labels from rules when there is no sheet.

  3. 03

    Sample QC and gene filtering

    Bulk QC reports library size, detected genes and IQR-based outliers — label first, filter once you have seen the plots. Filter Low Expressed drops genes below CPM 1 in fewer than 2 samples (defaults).

  4. 04

    Normalize

    CPM, TMM, DESeq2 size factors or VST. Raw counts are always preserved in layers["counts"], so differential expression still sees integers.

  5. 05

    Differential expression

    PyDESeq2 between a reference and a test group from any obs column (t-test fallback), with FDR and absolute log2 fold-change thresholds for the significant set.

  6. 06

    Pathways and activity

    GSEA / ORA runs gseapy preranked GSEA on all genes or ORA on the significant ones against an Enrichr library — Enrichr is the one online service, enabled in the Resource Center. PROGENy, Hallmark and CollecTRI score pathway and TF activity per sample.

  7. 07

    Plots and export

    Bulk Visualization draws volcano, MA, DEG heatmap, sample distance and library size; Export CSV writes the DE and GSEA tables, and any figure’s underlying data can be exported from its Visualization Workspace.

The Node Library, Bulk RNA-seq view

Every node, in pipeline order.

The app’s Node Library is modality-first: pick bulk rna-seq and it shows these 19 nodes grouped into the 8 stages below. Shared nodes such as Quality Control or Merge Cell Meta appear in more than one view.

Stage 02

Sample Sheet & Groups

2 nodes

Stage 03

QC & Filtering

2 nodes

Stage 04

Normalization

1 nodes

Stage 05

Differential Expression

1 nodes

Stage 07

Plots

1 nodes

Also available

Utilities & Export

4 nodes · collapsed by default in the app

3 templates shipped with the app

Pre-wired pipelines — open, point at data, run.

Templates open from the Templates dialog with sensible defaults already set. Those marked below include a node whose database, model or manifest must be installed in the Resource Center first — every other node runs, and the gated one stops until it is installed. A run never downloads.

Bulk RNA-seq Differential Expression

7 nodes

Load featureCounts output, run QC, normalization, DE, and volcano plot

Load featureCounts → Bulk QC → Filter Low Expressed → Bulk Normalize → Differential Expression → Bulk Visualization

Bulk RNA-seq with GSEA

9 nodes

Load Airway featureCounts, QC, filter, VST, DE, pathway enrichment (ORA), and heatmap

Load featureCounts → Bulk QC → Filter Low Expressed → Bulk Normalize → Differential Expression → GSEA / ORA → Bulk Visualization

Needs Resource Center install · GSEA / ORA

STAR ReadsPerGene — Single-sample Load Demo

3 nodes

Load featureCounts → Bulk QC → Bulk Visualization

Sample data the templates point at

Paths are relative to the app’s sampledata/ folder.

  • sampledata/bulk/airway_featurecounts.txtAirway smooth-muscle featureCounts table (dexamethasone treated vs untreated).Used by: Bulk RNA-seq Differential Expression · Bulk RNA-seq with GSEA
  • sampledata/bulk/airway_metadata.csvSample sheet for the airway dataset, for Merge Cell Meta.Used by: Bulk RNA-seq Differential Expression · Bulk RNA-seq with GSEA
  • sampledata/bulk/star_ReadsPerGene.out.tabA single-sample STAR ReadsPerGene output for the strand-column demo.Used by: STAR ReadsPerGene — Single-sample Load Demo
All sample datasets, with sources

What sets it apart

  • DESeq2 without R

    Differential Expression runs PyDESeq2, a Python implementation of the DESeq2 method, from a parameter panel: pick the condition column, reference and test group, and read padj and log2FC from the node.

  • Every quantifier, one canvas

    featureCounts, STAR ReadsPerGene, Kallisto, Salmon and plain matrices come in through 4 loaders that share the same downstream nodes, so switching quantifier does not mean switching pipeline.

  • Activity, not only enrichment

    Alongside GSEA / ORA, the PROGENy (14 pathways), Hallmark (50 programs) and CollecTRI (TF regulons) nodes give per-sample activity scores through decoupler, with priors installed and checksummed in the Resource Center.

  • Local by design

    Counts never leave your machine. Every run records its parameters and a Methods paragraph is generated for the report.

Figures from this pipeline

3 captures

MA plot — fold-change against mean expression across all genes.
Fig. 1MA plot — fold-change against mean expression across all genes.
Sample distance — clustered heatmap of sample similarity.
Fig. 2Sample distance — clustered heatmap of sample similarity.
Library size — per-sample depth, the first QC glance.
Fig. 3Library size — per-sample depth, the first QC glance.

End matter

Start with Bulk RNA-seq today.

Free during the beta with an admin-issued Beta Access ticket. Windows 10/11, 64-bit. Runs locally; sign in at each launch.