This is a Shiny app that provides an interactive analysis of RNA-seq data. It uses Limma-Voom for differential expression analysis and produces a volcano plot highlighting significant DE genes.
Given count and sample datasets, the app first conducts batch correction based on the 'Experiment' column in the sample dataset. After ensuring the data is free from batch effects, it applies the voom transformation to adjust the count data for linear modeling. Following this, a linear model is fitted using defined contrasts. The empirical Bayes (eBayes) method is then utilized to compute moderated statistics. Based on these results, the app identifies genes significantly differentially expressed.
To use the app, fetch it from Docker Hub and type the given commands in your terminal:
- docker pull lizhiruijerry/limma_voom_app_repo:limma_voom_app_complex
- docker run -d --rm -p 3838:3838 lizhiruijerry/limma_voom_app_repo:limma_voom_app_complex
- Open a browser and go to http://localhost:3838
Example datasets are included. When launching the app, please upload the counts_mat.txt file to the "Upload count data" section and the samplesheet.txt file to the "Upload sample data" section. Additional example datasets in the "more_datasets" folder are named sub_sample.txt and sub_count.txt.
While the app is running, you may encounter error warnings. However, the app is fully functional and may take some time to produce the output plot.
To utilize the app effectively, please ensure the following:
- The count matrix and the sample sheet datasets are in .txt format.
- The first column of the count dataset contains gene names.
- Subsequent columns of the count dataset represent samples.
- The first column of the sample dataset contains sample names.
- Each row in the first column of the sample dataset corresponds to the column names in the count dataset, starting from the second column.
- The second column of the sample dataset indicates the batch or experiment group to which the sample belongs.
- The sample dataset has three columns named: "Treatment," "Condition," and "DaysPostInfection."
Here is an example of the count dataset:

Here is an example of the sample dataset:

After successfully running the app (Shiny_All_Contrasts.Rmd), you will get results like this:
There is another version of the app (Shiny_Customize_Contrasts.Rmd) where you can upload all the valid contrasts as a Txt file (contrasts.txt):