R/OmicSelector_vulcano_plot.R

Defines functions OmicSelector_vulcano_plot

Documented in OmicSelector_vulcano_plot

#' OmicSelector_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 `OmicSelector_differential_expression_ttest()` or `OmicSelector_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
OmicSelector_vulcano_plot = function(selected_miRNAs, DE = OmicSelector_differential_expression_ttest(), 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))

  }
}
kstawiski/OmicSelector documentation built on April 10, 2024, 11:11 p.m.