更多精彩內容可關注我的公眾號《KS科研分享與服務》!!!
image.png
(Reference:Proteogenomic characterization of pancreatic ductal adenocarcinoma)
還是復現《cell》文章的圖標,是一個對于臨床特征的展示,圖形是柱狀圖結合分組注釋,圖的內容比較豐富,還是比較復雜的。不知道原文作者是如何做的,這里我是結合ggplot2做柱狀圖,Complexheatmap做的熱圖注釋。
從這個圖要學的內容有:
1、雙側柱狀圖的做法及其坐標軸的設置。
2、熱圖其他參數在熱圖系列已經出現,這里學習legend的位置設置。
復現圖片
image.png
注釋代碼及數據已上傳群文件!
這里作圖數據一部分是結合原文給出的補充材料,一部分是我自己創造的。柱狀圖和熱圖是兩個文件。首先完成柱狀圖的部分:
setwd("E:/生物信息學/復現Cell雙向柱狀圖加注釋")
A <- read.csv("AA.csv", header = T)
library(ggplot2)
library(tidyverse)
A<-gather(A,key=Sample,value=value,-锘縞ase_id)
A[which(A$Sample == 'Myeloid'),'value'] <-
A[which(A$Sample == 'Myeloid'), 'value'] * -1
p1 <-ggplot(A,aes(锘縞ase_id,value,fill=Sample))+
geom_col()+
theme_bw()+
theme(panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),
panel.border = element_blank(),
legend.title = element_blank(),
axis.text = element_text(color="black",size=10),
axis.text.x = element_blank(),
axis.ticks.x = element_blank(),
axis.line.y = element_line(color = "black",, size=0.5))+
scale_y_continuous(breaks = seq(-10, 10, 10),
labels = as.character(abs(seq(-10, 10, 10))),
limits = c(-10, 10))+
labs(x='', y='')+
geom_hline(yintercept = 0,size=0.5)+
scale_fill_manual(values = c("#D08E8E","#89B9D8"))
p1
image.png
然后利用ComplexHetamap完成注釋和離散熱圖的繪制。(也許有其他的辦法能夠更好的注釋,但是這里我想用這個熱圖)
B <- read.csv("BB.csv", header = T)
B1 <- B[,c(1,6)]
B1 <- t(B1)
B1 <- as.data.frame(B1)
colnames(B1) <- B1[1,]
B1 <- B1[-1,]
library(ComplexHeatmap)
B2 <- B[,1:5]
rownames(B2) <- B2[, 1]
B2 <- B2[,-1]
top_anno=HeatmapAnnotation(df=B2,
border = T,
show_annotation_name = T,
col = list(histology_diagnosis=c('PDAC'='#006699',
'Adenosquamous carcinoma'='red')))
p2 <- Heatmap(B1,
cluster_rows = F,
cluster_columns = F,
show_column_names = T,
show_row_names = T,
column_title = NULL,
heatmap_legend_param = list(
title='Disease\nassociation'),
col = c("#1084A4",
"#8D4873"),
border = 'black',
row_names_gp = gpar(fontsize = 12),
column_names_gp = gpar(fontsize = 8),
top_annotation = top_anno)
p3 <- draw(p2, heatmap_legend_side = "bottom",
annotation_legend_side = "bottom",merge_legend = TRUE)
image.png
最后就是組合,還是強烈建議使用AI組合吧,很方便!小伙伴有更好的辦法也可私信分享!如果覺得分享有用,點個贊,分享至朋友圈、在看。感謝支持!
image.png
看完了還不知道關注一下!