歡迎關(guān)注Bioinfor 生信云微信公眾號!
上一期我們講了樣本相關(guān)性分析的一些可視化,這一期我們來做差異分析的熱圖和火山圖。
火山圖
火山圖(Volcano Plot)RNA-seq等分析時常用的一種圖,它能夠清晰地展示顯著上調(diào)和下調(diào)的基因,因作出來的圖形如火山噴發(fā),故而得名。
例如圖中,X軸一般表示log2的倍數(shù)變化,Y軸一般表示-log10(p-value),不同顏色的點表示滿足不同條件的基因,紅色表示上調(diào)基因(P<0.05, Fold change >=2),藍色表示下調(diào)基因,灰色表示不顯著的基因(即要么Fold change不滿足閾值,要么Pvalue不滿足閾值,要么Fold change和Pvalue都不滿足閾值),兩條垂直虛線表示Fold change(這里默認2倍,即log2(2)=1),一條水平線表示Pvalue閾值(默認0.05)
DE <- read.delim("Rworkspace/de_result") #導(dǎo)入差異分析結(jié)果
library(ggrepel)
my_palette <- c('#4DBBD5FF', '#999999','#E64B35FF' )
library(ggplot2)
ggplot(data = DE, aes(x = log2FoldChange, y = -log10(padj))) +
geom_point(aes(color = direction, size = abs(log2FoldChange))) +
geom_hline(yintercept = -log10(0.05), linetype = 'dashed', color = 'red') +
geom_vline(xintercept = c(-1,1), linetype = 'dashed') +
#geom_label_repel(data = top_de, aes(label = GID)) + #展示gene id
scale_color_manual(values = my_palette) +
scale_size(range = c(0.1,1.5)) +
guides(size = FALSE) +
labs(x = 'log2 fold change',
y = '-log10(pvalue)' ,
title = 'Vocano plot',
size = 'log2 fold change') +
theme_bw()
legend.background = element_blank())

熱圖
用顏色代表數(shù)字,讓數(shù)據(jù)呈現(xiàn)更直觀,對比更明顯。
直觀呈現(xiàn)多樣本多個基因的全局表達量變化
呈現(xiàn)多樣本多基因表達量的聚類關(guān)系
聚類是把相似的對象通過靜態(tài)分類的方法分成不同的組別或者更多的子集,這樣讓在同一個子集中的成員對象都有相似的一些屬性
library(tidyverse)
de_result <- filter(DE, abs(log2FoldChange) > 1 & padj < 0.05) %>%
mutate(FC = 2 **log2FoldChange) %>%
mutate(direction = if_else(
padj > 0.05, 'ns', if_else(
abs(log2FoldChange) < 1, 'ns', if_else(
log2FoldChange >= 1, 'up', 'down')))) %>%
left_join(gene_info, by = c('GID' = 'ID')) %>%
left_join(rownames_to_column(genes_exp, var = 'GID'), by = 'GID') %>%
dplyr::select(-c(8:9)) %>%
arrange(desc(abs(log2FoldChange)))
#logFC>2,padi<0.05篩選差異基因,并關(guān)聯(lián)基因信息表和表達矩陣
pheatmap_de <- select(de_result, -c(2:15)) %>% column_to_rownames(var = 'GID')
pheatmap(log10(pheatmap_de + 1), cluster_rows = TRUE,
show_rownames = F,
annotation_col = select(sample_info, group),
cutree_rows =2,
cutree_cols =2 )
#熱圖
