#' ks.vulcano_plot
#'
#' Draw vulcano plot of selected miRNAs.
#'
#' @param selected_miRNAs Vector of selected miRNAs.
#' @param DE Differential expression to get the values from. It can be generated by `ks.miRNA_differential_expression()` or `ks.best_signature_de()`
#' @param only_label If NULL - all selected miRNAs will be labeled. If you want to label only selected miRNAs provide a character vector with their names.
#' @param take_adjusted_p If take adjusted p-value using BH method. Default: false
#'
#' @return Vulcano plot.
#'
#' @export
ks.vulcano_plot = function(selected_miRNAs, DE = ks.miRNA_differential_expression(), only_label = NULL, take_adjusted_p = FALSE)
{
suppressMessages(library(plyr))
suppressMessages(library(dplyr))
suppressMessages(library(edgeR))
suppressMessages(library(epiDisplay))
suppressMessages(library(rsq))
suppressMessages(library(MASS))
suppressMessages(library(Biocomb))
suppressMessages(library(caret))
suppressMessages(library(dplyr))
suppressMessages(library(epiDisplay))
suppressMessages(library(pROC))
suppressMessages(library(ggplot2))
suppressMessages(library(DMwR))
suppressMessages(library(ROSE))
suppressMessages(library(gridExtra))
suppressMessages(library(gplots))
suppressMessages(library(devtools))
suppressMessages(library(stringr))
suppressMessages(library(data.table))
suppressMessages(library(tidyverse))
temp = DE[match(selected_miRNAs, DE$miR), ]
tlabels = gsub("\\.", "-", selected_miRNAs)
if (is.null(only_label)) {
}
else {
tlabels = rep(NA, length(gsub("\\.", "-", selected_miRNAs)))
tlabels[match(only_label, DE$miR)] = gsub("\\.", "-",
selected_miRNAs)[match(only_label, DE$miR)]
}
if(take_adjusted_p) {
thres = -log10(0.05)
suppressMessages(library(ggplot2))
suppressMessages(library(ggrepel))
x_limits <- c(-max(abs(temp$log2FC)), +max(abs(temp$log2FC)))
pval = -log10(temp$`p-value BH`)
ggplot(data = temp, aes(x = temp$log2FC, y = pval, label = tlabels)) +
geom_text_repel(arrow = arrow(length = unit(0.01, "npc"),
type = "closed", ends = "last"), force = 50) + geom_point(color = "black") +
theme_classic(base_size = 16) + labs(x = "Log2(FC)") +
labs(y = "-Log10(adjusted p-value)") + geom_hline(yintercept = thres,
linetype = "dashed", color = "red") + geom_vline(xintercept = 0,
linetype = "dotted", color = "blue", size = 0.5) + xlim(-max(abs(temp$log2FC)),
max(abs(temp$log2FC))) + ylim(0, max(pval))
} else {
thres = -log10(0.05)
suppressMessages(library(ggplot2))
suppressMessages(library(ggrepel))
x_limits <- c(-max(abs(temp$log2FC)), +max(abs(temp$log2FC)))
pval = -log10(temp$`p-value`)
ggplot(data = temp, aes(x = temp$log2FC, y = pval, label = tlabels)) +
geom_text_repel(arrow = arrow(length = unit(0.01, "npc"),
type = "closed", ends = "last"), force = 50) + geom_point(color = "black") +
theme_classic(base_size = 16) + labs(x = "Log2(FC)") +
labs(y = "-Log10(p-value)") + geom_hline(yintercept = thres,
linetype = "dashed", color = "red") + geom_vline(xintercept = 0,
linetype = "dotted", color = "blue", size = 0.5) + xlim(-max(abs(temp$log2FC)),
max(abs(temp$log2FC))) + ylim(0, max(pval))
}
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.