进阶 | 热图 | heatmap | 高通量数据可视化经典图形 | pheatmap | ComplexHeatmap
2023年08月22日
热图只显示指定的基因,这个只有ComplexHeatmap能做到,但这个包是真的很复杂!!!
实例:http://localhost:17435/notebooks/data_center/2023_SOX9_Sci_Adv_PB/PB-log2FC.ipynb
颜色选取
1 2 3 | require(pals) pal.bands(coolwarm, parula, ocean.haline, brewer.blues, cubicl, kovesi.rainbow, ocean.phase, brewer.paired(12), stepped, brewer.seqseq2, main= "Colormap suggestions" ) |
https://cran.r-project.org/web/packages/pals/vignettes/pals_examples.html
高通量数据搞来搞去,都离不开那几图来呈现结果,因为那些图实在是太经典了,高度概括了测序数据的分析结果。
热图heatmap:
- 基因表达矩阵的直观可视化
- 数据之间的两两比较,相关性分析,相似性分析
可视化的对象也非常简单,就是一个表,也叫dataframe或matrix。
我最喜欢用pheatmap这个R包,非常好用,也基本涵盖了你想要的所有功能。
我的数据,就是两组样本的相关性矩阵,来看相似性。
1 | corM < - cor(as.matrix(human.BP.expr), as.matrix(mouse.BP.expr), method = "spearman" ) |
1 2 | library(pheatmap) library(ggplot2) |
改个label的名字
1 2 3 | rownames (corM) <- plyr:: mapvalues ( rownames (corM), from = c ( "IMR_ENCC" , "UE_ENCC" , "HSCR_5c3" , "HSCR_20c7" , "HSCR_10c2" , "HSCR_1c11" , "HSCR_17c8" , "HSCR_23c9" , "HSCR_6c5" ), to = c ( "IMR90" , "UE02302" , "HSCR#5" , "HSCR#20" , "HSCR#10" , "HSCR#1" , "HSCR#17" , "HSCR#23" , "HSCR#6" )) |
1 2 3 | colnames (corM) <- plyr:: mapvalues ( colnames (corM), from = c ( "E13.5_CNCC" ), to = c ( "E13.5 " )) |
设置顺序
1 2 | corM <- corM[ c ( "IMR90" , "UE02302" , "HSCR#5" , "HSCR#20" , "HSCR#10" , "HSCR#1" , "HSCR#17" , "HSCR#23" , "HSCR#6" ), c ( "E9.5" , "E10.5" , "E11.5" , "E12.5" , "E13.5" , "E16.5" , "P19" , "P21" , "E13.5 " )] |
设置侧边栏的bar的分组和颜色
1 2 3 4 5 6 7 8 | annotation_row = data.frame (Severity= c ( "Control" , "Control" , "S-HSCR" , "S-HSCR" , "S-HSCR" , "S-HSCR" , "L-HSCR" , "L-HSCR" , "TCA" ), row.names= c ( "IMR90" , "UE02302" , "HSCR#5" , "HSCR#20" , "HSCR#10" , "HSCR#1" , "HSCR#17" , "HSCR#23" , "HSCR#6" )) annotation_col = data.frame (row.names= c ( "E9.5" , "E10.5" , "E11.5" , "E12.5" , "E13.5" , "E16.5" , "P19" , "P21" , "E13.5 " ), Lineage= c ( "ENCC" , "ENCC" , "ENCC" , "ENCC" , "ENCC" , "ENCC" , "ENCC" , "ENCC" , "CNCC" )) annotation_colors = list (Severity= c (Control= "#4DAF4A" , `S-HSCR`= "#E41A1C" , `L-HSCR`= "#984EA3" , TCA= "gray70" ), Lineage= c (ENCC= "green" , CNCC= "#eb6566" )) |
核心画图函数
1 2 3 4 5 6 7 | options (repr.plot.width=7.0, repr.plot.height=6) p <- pheatmap (corM, cluster_rows = F, cluster_cols = F, display_numbers = T, border_color= NA , number_color= "white" , fontsize_number = 11, angle_col=315, annotation_row=annotation_row, annotation_colors=annotation_colors, annotation_col = annotation_col, gaps_col = c (8), color = colorRampPalette ( rev ( hcl.colors (100)))(100)) # brewer.pal(n = 7, name = "RdYlBu") |
其中有几个参数要重点说明:
display_numbers:是否显示数值
border_color:是否有边框的线
angle_col:label的旋转,非常方便
gaps_col:自行分组,非常实用的功能,就是拆分,这里不用聚类,随意分
hcl.colors:非常好看的热图的配色
保存PDF
1 2 3 | pdf ( "Figures/correlation.enteric.evidence.pdf" ,width = 7, height = 6) p dev.off () |
参考:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10亿数据,如何做迁移?
· 推荐几款开源且免费的 .NET MAUI 组件库
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· c# 半导体/led行业 晶圆片WaferMap实现 map图实现入门篇
· 易语言 —— 开山篇
2017-01-18 GO 和 KEGG 的区别 | GO KEGG数据库用法 | 基因集功能注释 | 代谢通路富集
2017-01-18 LncRNA
2017-01-18 生信科研服务市场趋势分析(转)
2017-01-18 图位克隆