1. Package 설치
install.packages(c("tidyverse", "RColorBrewer", "ggrepel"))
2. Library 실행
library(tidyverse)
library(RColorBrewer)
library(ggrepel)
- tidyverse: ggplot2를 포함하며 data visualization, manipulation을 위한 라이브러리
- RColorBrewer: 색깔 변경을 위해 사용하는 라이브러리
- ggrepel: annotations을 위해 사용하는 라이브러리
3. 경로 설정
setwd("C:/Users/Desktop/주소")
getwd()
- setwd("~")에 변경할 주소를 넣는다. 이 위치에 data.csv 파일이 들어있어야 함.
- getwd()로 변경이 잘 되었는지 현재 주소를 확인.
4. 데이터 불러오기
df <- read.csv("data.csv", header = TRUE, row.names = 1)
- 사용할 데이터가 담긴 csv 파일을 불러온다.
- 해당 데이터 파일은 첫번째 row가 Name, log2FoldChange, pvalue여서 header와 row.names를 설정함.
5. diffexpressed column 추가
df$diffexpressed <- "NO" # 기본값 "NO"
df$diffexpressed[df$log2FoldChange > 0.5 & df$pvalue < 0.05] <- "UP"
df$diffexpressed[df$log2FoldChange < -0.5 & df$pvalue < 0.05] <- "DOWN"
- 데이터프레임에 새로운 column을 추가하고 기본 값을 모두 "NO"로 추가한다.
- log2FoldChange와 pvalue 기준을 설정한 뒤 각각을 "UP:과 "DOWN"으로 재지정한다.
6. Volcano plot 그리기
ggplot(data = df, aes(x = log2FoldChange, y = -log10(pvalue), color = diffexpressed)) +
geom_vline(xintercept = c(-0.5, 0.5), color = "gray", linetype = "dashed") +
geom_hline(yintercept = -log10(0.05), color = "gray", linetype = "dashed") +
geom_point(size = 2) +
scale_color_manual(values = c("DOWN" = "#00A", "NO" = "grey", "UP" = "red"),
labels = c("Downregulated", "Not significant", "Upregulated")) +
ggtitle("Protein expression") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5))
- aes: aesthetic mapping 정의
- aes(x = x축, y = y축): 그래프의 x축과 y축에 들어갈 데이터 지정
- geom_vline, geom_hline: fold change threshold를 그래프에 표현하기 위한 축을 설정
- 위 코드에서는 fold change가 1.5배 이상, p-value가 0.05 이하인 threshold를 표시함.
- 그래프에 제목을 추가하기 위해 ggtitle("제목")을 사용함



7. Dot에 symbol 표기하기
df$gene_symbol <- rownames(df)
df$delabel <- ifelse(df$gene_symbol %in% head(df[order(df$pvalue), "gene_symbol"], 60), df$gene_symbol, NA)
- 하다 말았음
- 각 도트별로 이름이 표기되는데 깔끔하게 보는 걸 찾다가 말았음..
'연구 > BI' 카테고리의 다른 글
| [QIIME2] 업데이트 시 기존 버전 지우기 (0) | 2025.09.25 |
|---|---|
| [Cytoscape] proteomics 데이터 분석 (0) | 2025.09.18 |
| 16s rRNA SILVA database v3-v4 만들기 (2) | 2025.07.29 |
| [QIIME2] 16s rRNA sequencing data 제작 pipeline (0) | 2025.07.25 |