Visualization of RNA-Seq results with Volcano Plot
OverviewQuestions:Objectives:
How to generate a volcano plot from RNA-seq data?
Requirements:
Create a volcano plot of RNA-seq data to visualize significant genes
- Introduction to Galaxy Analyses
- slides Slides: Quality Control
- tutorial Hands-on: Quality Control
- slides Slides: Mapping
- tutorial Hands-on: Mapping
- tutorial Hands-on: 2: RNA-seq counts to genes
Time estimation: 30 minutesLevel: Introductory IntroductorySupporting Materials:Published: Dec 31, 2018Last modification: Sep 19, 2024License: Tutorial Content is licensed under Creative Commons Attribution 4.0 International License. The GTN Framework is licensed under MITpurl PURL: https://gxy.io/GTN:T00304rating Rating: 5.0 (2 recent ratings, 53 all time)version Revision: 15
Volcano plots are commonly used to display the results of RNA-seq or other omics experiments. A volcano plot is a type of scatterplot that shows statistical significance (P value) versus magnitude of change (fold change). It enables quick visual identification of genes with large fold changes that are also statistically significant. These may be the most biologically significant genes. In a volcano plot, the most upregulated genes are towards the right, the most downregulated genes are towards the left, and the most statistically significant genes are towards the top.
To generate a volcano plot of RNA-seq results, we need a file of differentially expressed results which is provided for you here. To generate this file yourself, see the RNA-seq counts to genes tutorial. The file used here was generated from limma-voom but you could use a file from any RNA-seq differential expression tool, such as edgeR or DESeq2, as long as it has the required columns (see below).
The data for this tutorial comes from Fu et al. 2015. This study examined the expression profiles of basal and luminal cells in the mammary gland of virgin, pregnant and lactating mice. Here we will visualize the results of the luminal pregnant vs lactating comparison.
AgendaIn this tutorial, we will deal with:
Preparing the inputs
We will use two files for this analysis:
- Differentially expressed results file (genes in rows, and 4 required columns: raw P values, adjusted P values (FDR), log fold change and gene labels)
- Genes of interest file (list of genes to be plotted in volcano)
Import data
Hands-on: Data upload
Create a new history for this RNA-seq exercise e.g.
Volcano plot
To create a new history simply click the new-history icon at the top of the history panel:
- Click on galaxy-pencil (Edit) next to the history name (which by default is “Unnamed history”)
- Type the new name
- Click on Save
- To cancel renaming, click the galaxy-undo “Cancel” button
If you do not have the galaxy-pencil (Edit) next to the history name (which can be the case if you are using an older version of Galaxy) do the following:
- Click on Unnamed history (or the current name of the history) (Click to rename history) at the top of your history panel
- Type the new name
- Press Enter
Import the differentially results table.
To import the file, there are two options:
- Option 1: From a shared data library if available (ask your instructor)
- Option 2: From Zenodo
- Copy the link location
Click galaxy-upload Upload Data at the top of the tool panel
- Select galaxy-wf-edit Paste/Fetch Data
Paste the link(s) into the text field
Press Start
- Close the window
As an alternative to uploading the data from a URL or your computer, the files may also have been made available from a shared data library:
- Go into Data (top panel) then Data libraries
- Navigate to the correct folder as indicated by your instructor.
- On most Galaxies tutorial data will be provided in a folder named GTN - Material –> Topic Name -> Tutorial Name.
- Select the desired files
- Click on Add to History galaxy-dropdown near the top and select as Datasets from the dropdown menu
In the pop-up window, choose
- “Select history”: the history you want to import the data to (or create a new one)
- Click on Import
You can paste the links below into the Paste/Fetch box:
https://zenodo.org/record/2529117/files/limma-voom_luminalpregnant-luminallactate https://zenodo.org/record/2529117/files/volcano_genes
Select “Type”:
tabular
After the files import, check that the datatype is
tabular
. If the datatype is nottabular
, please change the file type totabular
.
- Click on the galaxy-pencil pencil icon for the dataset to edit its attributes
- In the central panel, click galaxy-chart-select-data Datatypes tab on the top
- In the galaxy-chart-select-data Assign Datatype, select
tabular
from “New type” dropdown
- Tip: you can start typing the datatype into the field to filter the dropdown menu
- Click the Save button
>
Click on the galaxy-eye (eye) icon and take a look at the limma-voom file. It should look like below, with 8 columns.
Create volcano plot highlighting significant genes
First we will create a volcano plot highlighting all significant genes. We will call genes significant here if they have FDR < 0.01 and a log fold change of 0.58 (equivalent to a fold-change of 1.5). These were the values used in the original paper for this dataset.
Hands-on: Create a Volcano plot
- Volcano Plot ( Galaxy version 0.0.5) to create a volcano plot
- param-file “Specify an input file”: limma-voom file
- param-select “FDR (adjusted P value)”:
Column 8
- param-select “P value (raw)”:
Column 7
- param-select “Log Fold Change”:
Column 4
- param-select “Labels”:
Column 2
- param-text “Significance threshold”:
0.01
- param-text “LogFC threshold to colour”:
0.58
- param-select “Points to label”:
None
In the plot above the genes are coloured if they pass the thresholds for FDR and Log Fold Change, red if they are upregulated and blue if they are downregulated. You can see in this plot that there are many (hundreds) of significant genes in this dataset.
QuestionWhy does the y axis use a negative P value scale?
The negative log of the P values are used for the y axis so that the smallest P values (most significant) are at the top of the plot.
Create volcano plot labelling top significant genes
You can also choose to show the labels (e.g. Gene Symbols) for the significant genes with this volcano plot tool. You can select to label all significant or just the top genes. The top genes are those that pass the FDR and logFC thresholds that have the smallest P values. As there are hundreds of significant genes here, too many to sensibly label, let’s label the top 10 genes.
Hands-on: Create a Volcano plot labelling top genes
- Use the Rerun galaxy-refresh button in the History to rerun Volcano Plot tool with the same parameters as before except:
- param-select “Points to label”:
Significant
- param-text “Only label top most significant”:
10
As in the previous plot, genes are coloured if they pass the thresholds for FDR and Log Fold Change, (red for upregulated and blue for downregulated) and the top genes by P value are labelled. Note that in the plot above we can now easily see what the top genes are by P value and also which of them have bigger fold changes.
QuestionWhich gene is the most statistically significant with large fold change?
Csn1s2b, as it is the gene nearest the top of the plot and it is also far to the left. This gene is a calcium-sensitive casein that is important in milk production. As this dataset compares lactating and pregnant mice, it makes sense that it is a gene that is very differentially expressed.
Create volcano plot labelling genes of interest
We can also label one or more genes of interest in a volcano plot. This enables us to visualize where these genes are in terms of significance and in comparison to the other genes. In the original paper using this dataset, there is a heatmap of 31 genes in Figure 6b (have a look at this visualization tutorial if you would like to see how to generate the heatmap). These genes are a set of 30 cytokines/growth factor identified as differentially expressed, and the authors’ main gene of interest, Mcl1. These genes are provided in the volcano_genes
file and shown below. We will label these genes in the volcano plot. We’ll add boxes around the labels to highlight the gene names.
Hands-on: Create a Volcano plot labelling genes of interest
- Use the Rerun galaxy-refresh button in the History to rerun Volcano Plot tool with the same parameters as before except:
- param-select “Points to label”:
Input from file
- param-file “File of labels”: volcano genes file
- In “Plot Options”:
- param-check “Label Boxes”:
Yes
Question
- How many of the genes of interest are significant?
Which gene of interest is the most statistically significant?
- 29/31 are significant, the genes not in the grey area.
- The Egf gene is the most statistically significant as it is nearest the top of the plot.
As in the previous plots, genes are coloured if they pass the thresholds for FDR and Log Fold Change. Here all the genes of interest are significant (red or blue) except for two genes, Mcl1 and Gmfg. Gmfg, has an FDR just very slightly outside the significance threshold we used of 0.01 (0.0105). Mcl1 is the authors’ gene of interest and they showed that while it’s expression did increase at the protein level, it did not increase at the transcription level, as we can see here, suggesting it is regulated post-transcriptionally.
You can get the R code used to generate the plot under Output Options in the tool form. You can edit this code in R if you want to customise the plot. See the Visualization of RNA-Seq results with Volcano Plot in R tutorial for how to do this.
Conclusion
In this tutorial we have seen how a volcano plot can be generated from RNA-seq data and used to quickly visualize significant genes.