我愿称之为: jjVioMap (小提琴热图)

2023-11-11 04:59

本文主要是介绍我愿称之为: jjVioMap (小提琴热图),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

吾将上下而求索

53afd4f29c65c05261f11845569ed850.gif

1Introduction

Here supply a geom_jjviomap function to visualize gene expression or other data in a heatmap-like way. The geom_jjviomap can still retain data distribution informations through violin graphs.

如果对你有帮助, 点击右上角的小心心便是对我的鼓励和支持:

链接: https://github.com/junjunlab/jjPlot

def28624eadc90cec7a3387d63120228.png

2Installation

Re-install it to gain new features:

install.packages('devtools')
devtools::install_github('junjunlab/jjPlot')library(jjPlot)

3Load test data

Process data first:

# load test data
data(exp.long)# check
head(exp.long,3)
#   id gene      exp
# 1  2 LDHB 3.075915
# 2  3 LDHB 2.583047
# 3  2 LDHB 3.387729# add median expression to group per gene
map_df(unique(exp.long$id),function(x){tmp <- exp.long %>% filter(id == x)map_df(unique(tmp$gene),function(j){tmp1 <- tmp %>% filter(gene == j)# calculate median expressionstmp1$median_exp <- median(tmp1$exp)return(tmp1)}) -> resreturn(res)
}) -> test# make factor
test$id <- factor(test$id)

4Examples

First we show the facet violin plots:

# facet plot
ggplot(test,aes(x = id,y = exp)) +geom_violin(aes(fill = id),trim = T) +facet_wrap(~gene,ncol = 1,strip.position = 'right',scales = 'fixed') +theme_bw(base_size = 12) +theme(strip.text.y = element_text(angle = 0,hjust = 0),panel.grid = element_blank(),axis.ticks.y = element_blank(),axis.text.y = element_blank(),aspect.ratio = 0.05,strip.background.y = element_rect(fill = NA,color = NA),panel.spacing = unit(0,'cm'))
24a282f84b52b11ef800845edb47b719.png

Viomap default plot:

# default
ggplot(test,aes(x = gene,y = id)) +geom_jjviomap(aes(val = exp),width = 1) +coord_fixed()
8b42fd901a2cc865d9fb0329822ba416.png

Mapping with cluster:

# aes cluster
ggplot(test,aes(x = gene,y = id)) +geom_jjviomap(aes(val = exp,fill = id),width = 1) +coord_fixed()
3aebf0f18610fbaa2d77e7ec69d0331e.png

Mapping with gene:

# aes gene
ggplot(test,aes(x = gene,y = id)) +geom_jjviomap(aes(val = exp,fill = gene),width = 1) +coord_fixed()
18bf0644018f59002d69ea16e9b93969.png

The most important point that we need to show the gene expression variance across the different clusters, we can use median expression to fill the violin color:

# aes median expressions
ggplot(test,aes(x = gene,y = id)) +geom_jjviomap(aes(val = exp,fill = median_exp),width = 1) +scale_fill_gradient(low = 'white',high = '#04009A') +theme_bw(base_size = 14) +theme(panel.grid = element_blank(),axis.text.x = element_text(angle = 90,hjust = 1,vjust = 0.5)) +coord_fixed()
d05e2d4a1955769b8167703fe9461d61.png

Add rect background:

# add rect
ggplot(test,aes(x = gene,y = id)) +geom_jjviomap(aes(val = exp,fill = median_exp),width = 1) +scale_fill_gradient(low = 'white',high = '#04009A') +theme_bw(base_size = 14) +theme(panel.grid = element_blank(),axis.text.x = element_text(angle = 90,hjust = 1,vjust = 0.5)) +coord_fixed() +geom_tile(fill = 'transparent',color = 'black')
7d34b37a155624d8348bb8a21473c091.png

You can rotate the violins:

# rotate the violins
ggplot(test,aes(x = gene,y = id)) +geom_jjviomap(aes(val = exp,fill = median_exp),angle = 45,width = 1) +scale_fill_gradient(low = 'white',high = '#04009A') +theme_bw(base_size = 14) +theme(panel.grid = element_blank(),axis.text.x = element_text(angle = 90,hjust = 1,vjust = 0.5)) +coord_fixed() +geom_tile(fill = 'transparent',color = 'black')
d52cb920aa138f3dc31205f2b6062318.png

5End

More args see:

?geom_jjviomap

fd11286f8249284f2b8aab0764a5199a.png

往期精品(点击图片直达文字对应教程)

6476c1102edbbf608b30b35b0528b956.jpeg

f877411112943cdb7095c03bddbe997e.jpeg

2123f0c5c8252ea93a118120b1642caa.jpeg

9b046e4e5695fe814eadf86a32c9ca7e.jpeg

ae89742c427ecff910e3817e8be30e65.jpeg

dd4cc3f74c3c6e851c962dc654d51cd6.jpeg

02146391ddd40bcddc18b57c63a29728.jpeg

5da6899eea467017eecaeea5438b37b7.jpeg

a633343269a3e47382a108194a4a6cda.jpeg

bc7a2d0b2566a7be61abd0c4d28a1a15.jpeg

0c5886d615e8983458c3c8a7f315def6.jpeg

3b4f12c7bed6cf2a6578155fd1c9820b.jpeg

d9a2321ea1116f693059486a3926af4d.png

c8cfdae534087be1baa3410d56523e74.png

8405a57494bc79e34b3500c07a09157e.png

769869ba8f27c3c3617dc4c495a306ff.png

6b6eb8f863cdf11f784885c5efea44f2.jpeg

3ca612ccbae3b2bf4155f5dd96b623cd.jpeg

4a878b5e49b9a83167a7e55d574dc123.jpeg

fb5a6bcd8f9eb4b6436dbefff282baaf.jpeg

b7a113e6b88367ede4057789963b2a99.png

4560bf2f4a88101c909ee85b355e5695.png

6d6b9945dd89d371ca723439f4f0f8d8.jpeg

7215ede39c6a471a04d7d9386c6b15b0.png

962fcbaf88968020d686e3359b738841.png

5e0826ee1f71fabb75d2835e88fee349.jpeg

d901367d7923d1a3a776c1e2e42edfed.png

58152ca7f0025f4399376e2bd7f92b3a.png

机器学习

后台回复“生信宝典福利第一波”或点击阅读原文获取教程合集

a9afd224bfc5ba037ae49471ac3b857e.jpeg

d69e63e4bf85a13668019ed58e997653.jpeg

fc9e295a0df3d925fe59cd7ee0a4f5f8.png

这篇关于我愿称之为: jjVioMap (小提琴热图)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/387709

相关文章

我选称之为大模型界的神书!!大模型与AIGC在医疗领域的革命性成果!

《LLMs and Generative AI for Healthcare》这本书可能会探讨大型语言模型和生成式人工智能在医疗领域的应用。这本书可能会详细介绍LLMs和Generative AI的原理、技术和应用,并重点讨论它们在医疗领域的潜力和挑战。 这本大模型《LLMs and Generative AI for Healthcare》PDF已经上传CSDN,还有完整版的大模型 AI

基于HTML5实现的Heatmap热图3D应用

Heatmap热图通过众多数据点信息,汇聚成直观可视化颜色效果,热图已广泛被应用于气象预报、医疗成像、机房温度监控等行业,甚至应用于竞技体育领域的数据分析。 已有众多文章分享了生成Heatmap热图原理,可参考《How to make heat maps》和《How to make heat maps in Flex》,本文将介绍基于HTML5技术的实现方式,主要基于Cavans和We

「热图」ComplexHeatmap展示单细胞聚类

实用Seurat自带的热图函数DoHeatmap绘制的热图,感觉有点不上档次,于是我尝试使用ComplexHeatmap这个R包来对结果进行展示。 个人觉得好的热图有三个要素 聚类: 能够让别人一眼就看到模式 注释: 附加注释能提供更多信息 配色: 要符合直觉,比如说大部分都会认为红色是高表达,蓝色是低表达 在正式开始之前,我们需要先获取一下pbmc的数据,Seurat提供了R包Seura

理解Linux环境变量及配置文件执行顺序 博客分类: Linux 每个用户都有自己专属的运行环境,这个环境是由一组变量所定义,这些变量称之为环境变量。用户可以修改环境变量以满足自己的要求。

理解Linux环境变量及配置文件执行顺序 博客分类:  Linux   每个用户都有自己专属的运行环境,这个环境是由一组变量所定义,这些变量称之为环境变量。用户可以修改环境变量以满足自己的要求。 设置环境变量:$export NAME="HELLOWORLD"  (临时变量,重启系统将失效) 显示环境变量:$echo $NAME env 命令查看当前用户的环境变量

文章MSM_metagenomics(六):复杂热图绘制

欢迎大家关注全网生信学习者系列: WX公zhong号:生信学习者Xiao hong书:生信学习者知hu:生信学习者CDSN:生信学习者2 介绍 本教程将使用基于R的函数在复杂热图上绘制物种的丰度或流行度。 数据 大家通过以下链接下载数据: 百度网盘链接:https://pan.baidu.com/s/1f1SyyvRfpNVO3sLYEblz1A提取码: 请关注WX公zhong号_生信

卷积网络热图显示

【卷积神经网络可视化】之热度图可视化_visualizing heatmaps of class activation in an ima-CSDN博客

代码分享|时频分析时绘制热图进行平滑的代码

大家好,我是茗创科技的周翊,近日分析数据的时候碰到一批采样率比较低,虽然对于分析的频段已经足够了,但是画出来的时频图却不好看,如下左图。本着对客户负责的原则,就想在现有的数据基础上给客户进行平滑作图,就有了右图的效果,是不是瞬间好看了很多? % 代码由茗创科技工程师 周翊编写 并无偿分享使用 转载注明来源% 更多需要可加微信了解% 茗创科技专注于脑影像数据处理,涵盖(fMR

独具魅力的 App UI 风格才能称之为优秀

独具特色的App UI 长什么样!看这里

《大话数据结构》静态链表(也称之为:模拟链表,游标实现法)

1.定义 用数组描述的链表叫做:静态链表 我们让数组的元素都由两个数据域组成: 数据域data,用来存放数据元素,也就是我们要处理的数据; 游标cur,相当于单链表中next指针,存放该元素的后继在数组中的下标 对数组第一个和最后一个元素作为特殊元素处理,不存数据 模拟链表的存储结构及初始化的数组状态 #define MAXMIZE 10000//链表的最大长度typedef st

python数据可视化:层次聚类热图clustermap()

【小白从小学Python、C、Java】 【考研初试+复试+毕业设计】 【Python基础+AI+数据分析】 python数据可视化: 层次聚类热图 clustermap() [太阳]选择题 请问关于以下代码表述错误的选项是? import seaborn as sns import matplotlib.pyplot as plt import numpy as np np.random.se