A Shiny interface for standardised RNA-seq differential expression based on the R-ODAF framework.
Use the Analysis tab to upload count and metadata tables, run the full pipeline, and download publication-ready results.
All analyses run locally in your R session. No data are uploaded to external servers.
This tutorial shows a complete run of the R-ODAF DESeq2 pipeline using a published human doxorubicin organoid dataset.
The example data are publicly available in the R-ODAF GitHub repository.
Download these files to a folder on your computer (e.g. Desktop):
The counts file contains normalized RNA-seq counts (genes × samples).
The metadata file contains sample information, including the treatment group.
On the left side of the Analysis tab you upload all inputs that the pipeline needs:
In this tutorial we use the doxorubicin-treated human colonoid dataset from Rodriguez et al., 2022, which was reprocessed with the R-ODAF criteria (see Lodhi et al., 2025; Verheijen et al., 2022).
Organoids_NORM_human.txt.Organoids_meta_human.txt.Once both files are uploaded, the right side of the screen shows them under Data preview:
Below the file inputs on the left, you specify how the study design is encoded in your metadata:
Treatment).dimethyl sulfoxide).doxorubicin).In the example dataset, the treatment information is stored in a column called
Treatment and the two levels are dimethyl sulfoxide (control) and
doxorubicin (case).
If your own metadata uses different names (e.g. a column called Exposure
with levels case and control), make sure to enter those exact names here.
After:
you are ready to start the analysis.
A progress bar will appear at the top of the main panel. Wait until the progress reaches 100 % and the status message shows “Done.”.
After the run completes, all downstream tabs are populated:
“PCA & outliers”, “DE results”, “Top gene expression”,
“Avg expression”, and “Summary”.
Open the PCA & outliers tab to check the principal component analysis before and after outlier removal:
Here you mainly check that control and doxorubicin samples separate in a reasonable way and that no obviously bad samples remain.
In this example, the PCA & outliers tab shows that the R-ODAF outlier routine did not remove any samples: the message “No outliers removed.” appears between the two panels, and the “before” and “after” PCA plots are identical. Both DMSO (control) and doxorubicin (case) samples cluster reasonably, with no single sample lying far away from the rest of its group on the first two principal components, so no sample is flagged as an outlier. In other datasets you may see one or more samples removed here; if that happens, always check whether those samples have known technical issues before deciding to keep or discard them.
Return to the DE results tab to interpret the differential expression and sample-level QC.
At the top, confirm the summary:
Use the DEG table to inspect individual genes (log2 fold change, p-value, adjusted p-value, etc.).
Below the table you will find two heatmaps:
On the DE results tab you see a summary of the statistical output from the T-ROAM / R-ODAF pipeline. At the top, the summary line reports how many genes were tested and how many passed the final R-ODAF filters at FDR < 0.01. In this example, 13,240 genes were tested and 655 genes are called DEGs.
Below the summary is an interactive DEG table, one row per gene. By default the table is sorted by adjusted p-value (padj), so the most significant genes appear first. The main columns are:
baseMean – mean normalized count across all samples
log2FoldChange – log₂(case / control) expression change
lfcSE – standard error of the log₂ fold change
stat – Wald test statistic
pvalue – raw p-value
padj – FDR-adjusted p-value
You can change how many rows are shown using the “Show … entries” drop-down and use the Search box on the right to filter for specific Ensembl IDs or gene symbols.
At the bottom left, two buttons allow you to export results:
Download DEGs – saves the current DEG table (all rows, all columns) as a CSV file.
Download Norm Counts – saves the full normalized counts matrix for all genes and all samples, which you can reuse for downstream analyses or plotting in R.
Heat‐map: all samples
The top heat‐map shows the sample–sample correlation matrix of the normalized counts. Each row and column is one sample; colours represent the Pearson correlation between two samples (dark blue ≈ very high positive correlation).
In this doxorubicin organoid example almost all cells are dark blue, meaning that every sample is globally very similar to the others. This tells you that there are no obvious “odd” samples or separate clusters of poor-quality samples – it is primarily a QC check.
Heat‐map: final DEGs
The bottom heat‐map shows expression of the final R-ODAF DEG set (≈655 genes in this example). Rows are genes, columns are samples, and values are z-scaled per gene (yellow = average, red = higher, blue = lower expression). The hierarchical clustering groups together genes with similar expression patterns and samples with similar DEG profiles. In your own data, clear left–right blocks in this heat‐map can indicate good separation between control and exposed samples; more mixed patterns suggest subtler or more heterogeneous responses.
After checking the DEG table, you can use the Top gene expression and
Avg expression tabs to look at how the most significant genes behave per
sample and per group.
The Top gene expression tab shows per-gene boxplots of normalized counts.
Total DEGs to consider (top slider)
selects how many DEGs (ranked by FDR) form the “shortlist”.
In the example, the top 20 DEGs are considered.
Gene range (second slider)
lets you move a window through this ranked list.
With the range set to 1–4, the app shows the first four DEGs; moving the
window to e.g. 5–8 will show the next four.
Each panel corresponds to one gene (Ensembl ID on top).
On the x-axis you see the Treatment groups (dimethyl sulfoxide vs
doxorubicin); on the y-axis the normalized counts.
Points are individual samples; the boxes summarise the distribution per group. A clear shift between the control and doxorubicin boxes indicates a strong and consistent treatment effect for that gene.
This view is useful to check whether important DEGs have clean, consistent differences between control and doxorubicin samples, or whether a gene is driven by only one or two outlying samples.
The Avg expression tab summarizes the same ranked DEGs as bar plots of mean normalized expression per group.
The Total DEGs to consider and Gene range sliders work in exactly the same way as on the Top gene tab; the genes shown are the same window in the ranked DEG list.
For each gene you see two bars:
This view makes it easy to compare effect size across genes: genes with large differences between the two bars are strong candidates for follow-up.
By completing this tutorial with the human doxorubicin organoid dataset, you see the full behaviour of the R-ODAF pipeline from input files to DEG table and expression plots. You can then apply exactly the same steps to your own RNA-seq experiments.
This section summarises the main assumptions and steps of the pipeline.
If you use this app in a publication, please cite:
Lodhi, S., Verheijen, M., de Kok, T. M., Caiment, F., Jennen, D. (2025).
R-ODAF-Shiny: An Interactive and Reproducible Framework for RNA-seq
Transcriptomics Analysis. (manuscript ready for submission).
For the original R-ODAF framework, refer to:
Verheijen, M. C., Meier, M. J., Asensio, J. O., Gant, T. W., Tong, W.,
Yauk, C. L., & Caiment, F. (2022). R-ODAF: Omics data analysis framework
for regulatory application. Regulatory Toxicology and Pharmacology,
131, 105143.
MIT License
Copyright (c) 2025 Saad Lodhi
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
For questions, suggestions, or bug reports: