学习ComplexHeatmap复杂热图

iMeta | 复杂热图(ComplexHeatmap)可视化文章最新版,画热图就引它_生信宝典的博客-CSDN博客

作者贡献

顾祖光:研究课题的提出和设计, 软件编写,可视化,数据分析,论文编写,修订和审阅。

代码和数据可用性

ComplexHeatmap 的稳定版本发布在 https://bioconductor.org/packages/ComplexHeatmap/

开发者版本发布在https://github.com/jokergoo/ComplexHeatmap,

文档发布在

https://jokergoo.github.io/ComplexHeatmap-reference/book/

论文中绘制图1到图6的代码发布在

https://github.com/jokergoo/ComplexHeatmap_v2_paper_code

数据下载

作图

数据
##有9块数据
rm(list = ls())
library(ComplexHeatmap)
library(circlize)
library(RColorBrewer)
# 载入示例数据
res_list = readRDS("meth.rds")
str(res_list)##查看数据格式,便于数据提取#进行数据提取:共有9大块数据类型
type = res_list$type
mat_meth = res_list$mat_meth
mat_expr = res_list$mat_expr
direction = res_list$direction
cor_pvalue = res_list$cor_pvalue
gene_type = res_list$gene_type
anno_gene = res_list$anno_gene
dist = res_list$dist
anno_enhancer = res_list$anno_enhancer
List of 9$ type         : chr [1:20] "Tumor" "Tumor" "Tumor" "Tumor" ...$ mat_meth     : num [1:1000, 1:20] 0.0951 0.1789 0.1988 0.3331 0.3731 .....- attr(*, "dimnames")=List of 2.. ..$ : NULL.. ..$ : chr [1:20] "sample1" "sample2" "sample3" "sample4" ...$ mat_expr     : num [1:1000, 1:20] 1.2638 -0.6938 0.5577 0.0853 -0.2573 .....- attr(*, "dimnames")=List of 2.. ..$ : NULL.. ..$ : chr [1:20] "sample1" "sample2" "sample3" "sample4" ...$ direction    : chr [1:1000] "hypo" "hypo" "hypo" "hyper" ...$ cor_pvalue   : num [1:1000] 0.656 0.5782 0.3495 0.0287 1.2388 ...$ gene_type    : chr [1:1000] "protein_coding" "psedo-gene" "psedo-gene" "lincRNA" ...$ anno_gene    : chr [1:1000] "intergenic" "intergenic" "intergenic" "intergenic" ...$ dist         : num [1:1000] 388737 97280 36426 420011 355666 ...$ anno_enhancer: num [1:1000, 1:3] 0.072 0.758 0 0 0.571 .....- attr(*, "dimnames")=List of 2.. ..$ : NULL.. ..$ : chr [1:3] "enhancer_1" "enhancer_2" "enhancer_3"
图探索
颜色及注释
column_tree = hclust(dist(t(mat_meth)))#根据mat_meth 列(样本)进行聚类
column_order = column_tree$order#为了后面统一mat_expr 矩阵的顺序
##根据type数据显示前10个为肿瘤,后10个为对照(聚类癌与癌旁结果区分明确)
#[1]  8  6  5  7  4 10  3  9  1  2 | 12 18 15 19 13 14 16 17 11 20#颜色设置
library(RColorBrewer)
meth_col_fun = colorRamp2(c(0, 0.5, 1), c("blue", "white", "red"))
direction_col = c("hyper" = "red", "hypo" = "blue")
expr_col_fun = colorRamp2(c(-2, 0, 2), c("green", "white", "red"))
pvalue_col_fun = colorRamp2(c(0, 2, 4), c("white", "white", "red"))
gene_type_col = structure(brewer.pal(length(unique(gene_type)), "Set3"), names = unique(gene_type))
anno_gene_col = structure(brewer.pal(length(unique(anno_gene)), "Set1"), names = unique(anno_gene))
dist_col_fun = colorRamp2(c(0, 10000), c("black", "white"))
enhancer_col_fun = colorRamp2(c(0, 1), c("white", "orange"))#We first define two column annotations and then make the complex heatmaps.
#ht_opt(
#  legend_title_gp = gpar(fontsize = 8, fontface = "bold"), 
#  legend_labels_gp = gpar(fontsize = 8), 
#  heatmap_column_names_gp = gpar(fontsize = 8),
#  heatmap_column_title_gp = gpar(fontsize = 10),
#  heatmap_row_title_gp = gpar(fontsize = 8)
#)#列注释信息
ha = HeatmapAnnotation(type = type, col = list(type = c("Tumor" = "pink", "Control" = "royalblue")),annotation_name_side = "left")#注释名左侧
ha2 = HeatmapAnnotation(type = type, col = list(type = c("Tumor" = "pink", "Control" = "royalblue")), show_legend = FALSE)#不在显示图例(与第一个重复)
出图代码
##绘图:Heatmap+Heatmap的方式进行合并
p <- draw(Heatmap(mat_meth, name = "methylation", col = meth_col_fun,column_order= column_order,top_annotation = ha, column_title = "Methylation")+Heatmap(direction, name = "direction", col = direction_col) +Heatmap(mat_expr[, column_tree$order], name = "expression", col = expr_col_fun, column_order = column_order, top_annotation = ha2, column_title = "Expression"),row_km = 2, #对两个部分进行行聚类row_split = direction)#根据direction对行切分

绘制原图
ht_list = Heatmap(mat_meth, name = "methylation", col = meth_col_fun,column_order= column_order,top_annotation = ha, column_title = "Methylation") +Heatmap(direction, name = "direction", col = direction_col) +Heatmap(mat_expr[, column_tree$order], name = "expression", col = expr_col_fun, column_order = column_order, top_annotation = ha2, column_title = "Expression") +Heatmap(cor_pvalue, name = "-log10(cor_p)", col = pvalue_col_fun) +Heatmap(gene_type, name = "gene type", col = gene_type_col) +Heatmap(anno_gene, name = "anno_gene", col = anno_gene_col) +Heatmap(dist, name = "dist_tss", col = dist_col_fun) +Heatmap(anno_enhancer, name = "anno_enhancer", col = enhancer_col_fun, cluster_columns = FALSE, column_title = "Enhancer")
#pdf('complex_heatmap.pdf',width = 12,height = 8)
draw(ht_list, row_km = 2, row_split = direction,column_title = "Comprehensive correspondence between methylation, expression and other genomic features", column_title_gp = gpar(fontsize = 12, fontface = "bold"), merge_legends = TRUE, heatmap_legend_side = "bottom")
dev.off()

R实战 | 复杂热图3.0(ComplexHeatmap) (qq.com)

快速入门ComplexHeatmap包:理解绘制复杂热图的多种参数设置 (qq.com)

tidyHeatmap使用长数据绘制热图 (qq.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/216606.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【教3妹学编程-算法题】二叉树中的伪回文路径

3妹&#xff1a;好冷啊&#xff0c; 冻得瑟瑟发抖啦 2哥 : 又一波寒潮来袭&#xff0c; 外面风吹的呼呼的。 3妹&#xff1a;今天还有雨&#xff0c;2哥上班记得带伞。 2哥 : 好的 3妹&#xff1a;哼&#xff0c;不喜欢冬天&#xff0c;也不喜欢下雨天&#xff0c;要是我会咒语…

你听过斯大林病毒吗?

相信不少小伙伴看过这种红眼特效&#xff0c;那么你知道这个特效最早出自哪里吗&#xff1f; 其实这个红眼病毒最早出于俄罗斯的电脑病毒斯大林&#xff0c;一旦电脑感染这个病毒&#xff0c;屏幕上就会出现自带一个红眼特效的斯大林人像&#xff0c;同时不断播放苏联国歌。 …

分布式篇---第五篇

系列文章目录 文章目录 系列文章目录前言一、你知道哪些限流算法?二、说说什么是计数器(固定窗口)算法三、说说什么是滑动窗口算法前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去…

[Docker]十一.Docker Swarm集群raft算法,Docker Swarm Web管理工具

一.Docker Swarm集群raft算法讲解 Raft &#xff1a;一致性算法&#xff0c;在保证大多数管理节点存活的情况下&#xff0c;集群才能使用&#xff0c; 所以就要求如果集群的话&#xff0c; manager 节点必须 >3 台 &#xff0c;如果是两个台&#xff0c;其中一台宕机&#…

分布式锁,分布式锁应该具备哪些条件,分布式锁的实现方式有:基于Zookeeper实现、Redis实现、数据库实现

文章目录 分布式锁0-1分布式锁--包含CAP理论模型概述分布式锁&#xff1a;分布式锁应该具备哪些条件&#xff1a;分布式锁的业务场景&#xff1a; 分布式锁的实现方式有&#xff1a;基于Zookeeper - 分布式锁实现思想优缺点基于Redis - 分布式锁实现思想实现思想的具体步骤&…

计算机体系结构概念总结

CH1 基本概念 课件补充 概念汇总 CH2 指令系统 课件补充 能够改变控制流的指令&#xff1a;分支、跳转、过程调用、过程返回 概念汇总 课后习题 CH3 流水线 课件补充 概念汇总 指令发射&#xff1a;指令从流水线的译码段进入执行段的过程称为指令发射。 向量处理机&#xf…

技术阅读周刊第第7️⃣期

技术阅读周刊&#xff0c;每周更新。 历史更新 20231013&#xff1a;第一期20231022&#xff1a;第二期20231027&#xff1a;第三期20231103&#xff1a;第四期20231107&#xff1a;第五期20231117&#xff1a;第六期 What is a JWT? Understanding JSON Web Tokens URL: http…

Leetcode—2824.统计和小于目标的下标对数目【简单】

2023每日刷题&#xff08;三十九&#xff09; Leetcode—2824.统计和小于目标的下标对数目 实现代码 class Solution { public:int countPairs(vector<int>& nums, int target) {int n nums.size();sort(nums.begin(), nums.end());int left 0, right left 1;i…

数据结构与算法编程题21

判别两棵树是否相等。 #define _CRT_SECURE_NO_WARNINGS#include <iostream> using namespace std;typedef char ElemType; #define ERROR 0 #define OK 1typedef struct BiNode {ElemType data;BiNode* lchild, * rchild; }BiNode, * BiTree;bool Create_tree(BiTree&a…

数据库的事务的基本特性,事务的隔离级别,事务隔离级别如何在java代码中使用,使用MySQL数据库演示不同隔离级别下的并发问题

文章目录 数据库的事务的基本特性事务的四大特性(ACID)4.1、原子性&#xff08;Atomicity&#xff09;4.2、一致性&#xff08;Consistency&#xff09;4.3、隔离性&#xff08;Isolation&#xff09;4.4、持久性&#xff08;Durability&#xff09; 事务的隔离级别5.1、事务不…

STM32-SPI1控制AD7705(Sigma-Delta-ADC芯片)

STM32-SPI1控制AD7705&#xff08;Sigma-Delta-ADC芯片&#xff09; 原理图手册说明功能方框图引脚功能 片内寄存器通信寄存器&#xff08;RS2、RS1、RS00、0、0&#xff09;设置寄存器时钟寄存器数据寄存器&#xff08;RS2、RS1、RS00、1、1&#xff09;测试寄存器&#xff08…

CFO的GenAI应用指南

CFO应该采取的最重要行动是识别最大的创造价值的机会&#xff0c;然后确保他们获得所需的资金和其他资源。GenAI拥有成为革命性技术的潜力&#xff0c;但它不会改变金融和经济学的基本原则&#xff1a;一家公司必须产生高于资本成本的回报。 技术改变了每一项业务&#xff0c;往…