Post

Seurat DEG로 VolcanoPlot그리기: 간단버전

오늘은 Seurat에서 FindMarker로 DEG구하고, volcano plot그리는 간단한 작업을 아카이브해보려함

Differentially Expressed Genes 구하기

보통 Seurat object에서 가장 간단하게 DEG구하는 방법은 FindMarker() function을 사용하는 것!

아무런 옵션변경 없이 기본옵션으로 ident.1, ident.2 정도만 설정해서 구하게 되면 pct(몇프로나 발현되는지)나 logFC threshold에 걸려서 전체 유전자에 대한 결과값을 얻지 못하기 때문에 제대로된 volcano plot이나 MA plot을 그릴수 없다.

따라서 반드시 min.pct=0 & logfc.threshold=-Inf 으로 설정해줘야 그림을 그릴수 있음

1
2
de <- FindMarkers(seurat.obj, ident.1 = "treated", ident.2 = "ctrl", test.use = "MAST",min.pct =0,logfc.threshold=-Inf)
#    write.table(de, paste0("deg.txt"), sep='\t')

Volcano plot 그리기 : EnhancedVolcano()

R package중에 EnhancedVolcano 라고 DEG결과만 있으면 알아서 예쁘게 그려주는 package가 있음 세상 좋아졌다

1
2
# Installation
BiocManager::install("EnhancedVolcano")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
nono <- rownames(markers.old[markers.old$avg_log2FC<1 & markers.old$avg_log2FC>-1,])
old_up_deg <- rownames(markers.old[markers.old$avg_log2FC > 0 & markers.old$p_val_adj < 0.05, ])
old_down_deg <- rownames(markers.old[markers.old$avg_log2FC < 0 & markers.old$p_val_adj < 0.05, ])

markers.old$color <- "#E5E4E2"
markers.old$color[rownames(markers.old) %in% old_up_deg] <- "#FF9999"
markers.old$color[rownames(markers.old) %in% old_down_deg] <- "#7199EB"
markers.old$color[rownames(markers.old) %in% rownames(old_specific_up_deg)] <- "#EE2E31"
markers.old$color[rownames(markers.old) %in% rownames(old_specific_down_deg)] <- "#004F98"
markers.old$color[rownames(markers.old) %in% nono] <- "#E5E4E2"
colors <- markers.old$color
names(colors)[colors=="#E5E4E2"] <- "Not sig."
names(colors)[colors=="#FF9999"] <- "sig.up"
names(colors)[colors=="#7199EB"] <- "sig.down"
names(colors)[colors=="#EE2E31"] <- "Old.specific.sig.up"
names(colors)[colors=="#004F98"] <- "Old.specific.sig.down"

EnhancedVolcano(markers.old, rownames(markers.old), x ="avg_log2FC", y ="p_val_adj", 
    pCutoff = 0.05, FCcutoff = 1, 
    selectLab = rownames(markers.old)[which(names(colors) %in% c('Old.specific.sig.up', 'Old.specific.sig.down'))],
    ylab = bquote('-'~Log[10]~ 'FDR'),
    xlab = bquote('avg' ~Log[2]~ 'fold change'),
    title="Old group: Wilcox", subtitle = "Infected - Ctrl",
    colCustom = colors)
ggsave("Old.Vol.colored.png", width=10, height=15)

Results

참 쉽쥬

This post is licensed under CC BY 4.0 by the author.

© Subin Cho. Some rights reserved.

Using the Chirpy theme for Jekyll.