# MAST, limma, DESeq2에서 추출한 DEG의 rownames (유전자 이름)을 각각 가져옵니다.
degs_mast_genes <- rownames(degs_mast_filtered) # MAST에서 필터링된 DEG
degs_limma_genes <- rownames(degs_limma_filtered) # limma에서 필터링된 DEG
degs_deseq2_genes <- rownames(degs_deseq2_filtered) # DESeq2에서 필터링된 DEG
# 세 가지 방법에서 공통된 DEG 찾기
common_degs <- Reduce(intersect, list(degs_mast_genes, degs_limma_genes, degs_deseq2_genes))
# 공통 DEG 개수 확인
length(common_degs)
# 공통된 DEGs에 대한 정보를 가져오기
common_degs_data <- degs_deseq2_filtered[common_degs, ] # 여기서는 DESeq2 결과를 사용
# 결과 확인
head(common_degs_data)
# 필요한 패키지 로드
library(ggplot2)
# Volcano plot 그리기
ggplot(common_degs_data, aes(x = log2FoldChange, y = -log10(padj))) +
geom_point(aes(color = log2FoldChange > 0), size = 1.5) +
scale_color_manual(values = c("blue", "red")) + # 다운레귤레이션(blue), 업레귤레이션(red)
theme_minimal() +
labs(title = "Volcano Plot of Common DEGs",
x = "Log2 (Fold Change)",
y = "-log10 (Adjusted P-Value)") +
theme(plot.title = element_text(hjust = 0.5))
# 업레귤레이션된 유전자
up_regulated <- sum(common_degs_data$log2FoldChange > 0)
# 다운레귤레이션된 유전자
down_regulated <- sum(common_degs_data$log2FoldChange < 0)
cat("Up-regulated genes:", up_regulated, "\n")
cat("Down-regulated genes:", down_regulated, "\n")
# 필요한 패키지 설치 및 로드
if (!requireNamespace("pheatmap", quietly = TRUE)) {
install.packages("pheatmap")
}
library(pheatmap)
# 공통된 DEGs에 대한 발현 데이터 추출 (D26과 D54 세포만)
expression_data <- counts_data[common_degs, ] # 공통 DEGs의 발현 데이터
# Seurat 객체에서 D26과 D54 세포의 메타데이터(stage 정보)만 추출
stage_data <- seurat_object$stage
# D26과 D54 시점의 세포들만 필터링
d26_d54_cells <- which(stage_data %in% c("D26", "D54"))
expression_data <- expression_data[, d26_d54_cells]
# Z-score 정규화: 유전자별로 표준화를 수행하여 비교할 수 있도록 함
expression_data <- t(scale(t(expression_data)))
# stage 정보를 다시 저장
cell_stage <- stage_data[d26_d54_cells]
# 히트맵의 색상 팔레트 조정
pheatmap(expression_data,
annotation_col = data.frame(Stage = cell_stage), # D26과 D54 시점 표시
clustering_method = "ward.D2",
scale = "row",
color = colorRampPalette(c("blue", "white", "red"))(100), # 색상 팔레트 설정
show_rownames = FALSE,
show_colnames = FALSE,
main = "Hierarchical Clustering of Common DEGs")
# 클러스터링 방법을 변경해 시도 (예: complete linkage)
pheatmap(expression_data,
annotation_col = data.frame(Stage = cell_stage),
clustering_method = "complete", # 다른 클러스터링 방법 시도
scale = "row",
color = colorRampPalette(c("blue", "white", "red"))(100),
show_rownames = FALSE,
show_colnames = FALSE,
main = "Hierarchical Clustering of Common DEGs")
# 클러스터링 방법을 변경해 시도 (예: average)
pheatmap(expression_data,
annotation_col = data.frame(Stage = cell_stage),
clustering_method = "average", # 다른 클러스터링 방법 시도
scale = "row",
color = colorRampPalette(c("blue", "white", "red"))(100),
show_rownames = FALSE,
show_colnames = FALSE,
main = "Hierarchical Clustering of Common DEGs")
'논문 및 데이터 분석' 카테고리의 다른 글
Cell Ranger 설치 및 실행 (2) | 2024.11.07 |
---|---|
SRA Toolkit 사용해서 데이터 받기 (3) | 2024.11.06 |
[Seurat][DESeq2] DEGs 분석 (0) | 2024.09.19 |
[Seurat] [limma] DEG 분석 (0) | 2024.09.19 |
[Seurat] [MAST] DEGs 분석 (0) | 2024.09.19 |