Last active
February 7, 2018 16:35
-
-
Save jmickey/62fe64010923868d8df22b9ff9da6f14 to your computer and use it in GitHub Desktop.
R code for cleaning gRNA vs Empty Vector dataset and creating a volcano plot
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # To download & install BiomaRt package if not previously done | |
| # source("https://bioconductor.org/biocLite.R") | |
| # biocLite("biomaRt") | |
| # Import required packages | |
| require(ggplot2) | |
| require(biomaRt) | |
| require(ggrepel) | |
| # Import the data | |
| rna <- read.csv("data/AllgRNAvsEmptyVector.csv") | |
| # Remove NA values | |
| rna <- na.omit(rna) | |
| # Print first 6 lines | |
| head(rna) | |
| # Reset row numbers | |
| rownames(rna) <- NULL | |
| # Retreive BioMart database | |
| mart <- useDataset("hsapiens_gene_ensembl", useMart("ensembl")) | |
| # Searching BioMart database | |
| genes <- getBM(filters="ensembl_gene_id", | |
| attributes=c("ensembl_gene_id", "hgnc_symbol"), | |
| values=rna$X, | |
| mart=mart) | |
| # Rename "X" column to "ensembl_gene_id" | |
| colnames(rna)[1] <- "ensembl_gene_id" | |
| # Merging datasets based on ensembl_gene_id | |
| rna_genes <- merge(rna, genes, by="ensembl_gene_id") | |
| # Create plot. Filter out pvalues greater than 0.05, and where -log10(pavlue) greater than 300 | |
| ggplot(data=subset(rna_genes, pvalue < 0.05 & -log10(pvalue) <= 300), | |
| aes(x=log2FoldChange, y=-log10(pvalue))) + | |
| xlim(c(-6, 6)) + ylim(c(0, 300)) + # Set axis limits | |
| geom_point(aes(colour=-log10(pvalue)), size = 3) + # Scatter plot | |
| scale_color_gradient(low="black", high="red", guide = FALSE) + # Set colour gradient | |
| geom_label_repel(data=subset(rna_genes, -log10(pvalue) > 180 & -log10(pvalue) < 300), # Add gene name labels and arrows | |
| aes(label = hgnc_symbol), | |
| box.padding = 0.5, | |
| size=4, | |
| force = 2, | |
| max.iter = 3e3, | |
| point.padding = 1.2, | |
| arrow = arrow(length = unit(0.01, "npc"), type="open"), # Add arrows | |
| segment.size=0.5) + | |
| ggtitle("All gRNA vs Empty Vector") + # Set the title for the plot | |
| ylab(expression(paste("-log"[10], "(", italic("p"), "-value)"))) + # Y-axis label | |
| xlab(expression(paste("log"[2], "(fold change)"))) + # X-axis label | |
| theme_classic() + | |
| theme(plot.title=element_text(hjust=0.5)) # Center the title |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # To download & install BiomaRt package if not previously done | |
| # source("https://bioconductor.org/biocLite.R") | |
| # biocLite("biomaRt") | |
| # Import required packages | |
| require(ggplot2) | |
| require(biomaRt) | |
| require(ggrepel) | |
| # Import the data | |
| rna <- read.csv("data/AllgRNAvsEmptyVector.csv") | |
| # Remove NA values | |
| rna <- na.omit(rna) | |
| # Print first 6 lines | |
| head(rna) | |
| # Reset row numbers | |
| rownames(rna) <- NULL | |
| # Retreive BioMart database | |
| mart <- useDataset("hsapiens_gene_ensembl", useMart("ensembl")) | |
| # Searching BioMart database | |
| genes <- getBM(filters="ensembl_gene_id", | |
| attributes=c("ensembl_gene_id", "hgnc_symbol"), | |
| values=rna$X, | |
| mart=mart) | |
| # Rename "X" column to "ensembl_gene_id" | |
| colnames(rna)[1] <- "ensembl_gene_id" | |
| # Merging datasets based on ensembl_gene_id | |
| rna_genes <- merge(rna, genes, by="ensembl_gene_id") | |
| # Create plot. Filter out pvalues greater than 0.05, and where -log10(pavlue) greater than 300 | |
| ggplot(data=subset(rna_genes, pvalue < 0.05 & -log10(pvalue) <= 300), | |
| aes(x=log2FoldChange, y=-log10(pvalue))) + | |
| xlim(c(-6, 6)) + ylim(c(0, 300)) + # Set axis limits | |
| geom_point(aes(colour=-log10(pvalue)), size = 3) + # Scatter plot | |
| scale_color_gradient(low="black", high="red", guide = FALSE) + # Set colour gradient | |
| geom_text_repel(data=subset(rna_genes, hgnc_symbol %in% c("ZEB1")), # Add gene name labels and arrows | |
| aes(label = hgnc_symbol), | |
| size=4, | |
| point.padding = 1.5, | |
| arrow = arrow(length = unit(0.01, "npc"), type="open"), # Add arrows | |
| segment.size=0.5) + | |
| ggtitle("All gRNA vs Empty Vector") + # Set the title for the plot | |
| ylab(expression(paste("-log"[10], "(", italic("p"), "-value)"))) + # Y-axis label | |
| xlab(expression(paste("log"[2], "(fold change)"))) + # X-axis label | |
| theme_classic() + | |
| theme(plot.title=element_text(hjust=0.5)) # Center the title |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment