knitr::opts_chunk$set(echo = TRUE)
setwd("~/Desktop")
list.files(pattern = "normalized_as3")
## [1] "normalized_as3.csv"
data <- read.csv(file = "normalized_as3.csv" )
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.2     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.2     ✔ tibble    3.2.1
## ✔ lubridate 1.9.2     ✔ tidyr     1.3.0
## ✔ purrr     1.0.1     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(ggrepel)
theme_set(theme_bw())
dim(data)
## [1] 118   3
head(data)
##          Genes      LogFC     p_value
## 1  hsa.miR.10a  0.7112300 0.000514126
## 2  hsa.miR.10b  1.0114286 0.001141261
## 3   hsa.miR.22  0.3785714 0.018725003
## 4 hsa.miR.133b -1.4700000 0.028189795
## 5  hsa.miR.328 -0.6242857 0.036312081
## 6   hsa.let.7g -0.3071429 0.045335697
p1 <- ggplot(data, aes(x = LogFC, y = -log(p_value, 10))) +
  geom_point() +
  xlab(expression("log"[2]*"F")) +
  ylab(expression("-log"[10]*"FDR"))

p1

data <- data %>%
  mutate(Expression = case_when(LogFC >= 0 & p_value <= 0.05 ~ "Up-regulated",
                                LogFC <= 0 & p_value <= 0.05 ~ "Down-regulated",
                                TRUE ~ "Unchanged"))

head(data)
##          Genes      LogFC     p_value     Expression
## 1  hsa.miR.10a  0.7112300 0.000514126   Up-regulated
## 2  hsa.miR.10b  1.0114286 0.001141261   Up-regulated
## 3   hsa.miR.22  0.3785714 0.018725003   Up-regulated
## 4 hsa.miR.133b -1.4700000 0.028189795 Down-regulated
## 5  hsa.miR.328 -0.6242857 0.036312081 Down-regulated
## 6   hsa.let.7g -0.3071429 0.045335697 Down-regulated
p2 <- ggplot(data, aes(x = LogFC, y = -log(p_value, 10))) +
  geom_point(aes(color = Expression)) +
  xlab(expression("log"[2]*"F")) +
  ylab(expression("-log"[10]*"FDR")) +
  scale_color_manual(values = c("green", "gray50", "firebrick3"))

p2

top_genes <- data %>%
  filter(Expression == 'Up-regulated' | Expression == 'Down-regulated')

p3 <- p2 +
  geom_label_repel(data = top_genes, aes(label = Genes), size = 2,
                   label.size = NA, fill = NA)

p3

~/Desktop/normalized_as3.csv