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

news2024/9/21 0:34:36

吾将上下而求索

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

图片

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 expressions
    tmp1$median_exp <- median(tmp1$exp)
    return(tmp1)
  }) -> res
  return(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'))

图片

Viomap default plot:

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

图片

Mapping with cluster:

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

图片

Mapping with gene:

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

图片

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()

图片

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')

图片

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')

图片

5End

More args see:

?geom_jjviomap

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文解读汇总(目标检测、目标跟踪、语义分割....)定期更新

微信公众号 猫脸码客 论文解读文章 第1期 论文解读——YOLOv1&#xff08;目标检测&#xff09; 第2期 论文解读——YOLOv2&#xff08;目标检测&#xff09; 第3期 论文解读——YOLOv3&#xff08;目标检测&#xff09; 第4期 论文解读——YOLOv4&#xff08;目标检测&…

惊喜!万博智云亮相2024数博会和第三届828 B2B企业节

摘要 万博智云作为2024 828 B2B企业节铂金合作伙伴&#xff0c;在2024中国国际大数据产业博览会的828 B2B企业节开幕式上亮相&#xff0c;并参加了本次828企业节的一系列活动&#xff0c;包括在华为展台现场开展的“‘云上大咖团’直面数博会现场”的直播上发表了主题分享。 8…

最新发布!Windows 11 23H2 64位专业精简版

今天系统之家小编给大家带来2024年8月28日更新的Windows11 23H2精简版系统&#xff0c;该版本系统经过适度的精简优化&#xff0c;大部分功能都保留下来&#xff0c;可以轻松满足大家的日常使用需求。系统的兼容性强大&#xff0c;能完美兼容新老机型&#xff0c;安装后时刻运作…

图像压缩编码(2)有损压缩--变换编码

#灵感# 接上文&#xff0c;继续讲解第二种有损压缩&#xff0c;但是内容太多了&#xff0c;浅尝就行。 有损压缩编码以丢失一部分信息为代价&#xff0c;换来较高的压缩比。有损压缩主要分为几类&#xff1a;预测编码、变换编码、子带编码、模型编码。 变换编码 变换编码与预…

Java、python、php版 舞蹈工作室管理系统 舞蹈课程预约平台(源码、调试、LW、开题、PPT)

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人 八年开发经验&#xff0c;擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等&#xff0c;大家有这一块的问题可以一起交流&…

Redis网络通信模型

1.1. Java IO读写原理 不管是Socket的读写仍是文件的读写&#xff0c;在Java层面的应用开发或者是linux系统底层开发&#xff0c;都属于输入input和输出output的处理&#xff0c;简称为IO读写。在原理上和处理流程上&#xff0c;都是一致的。区别在于参数的不一样。用户程序进…

Kaggle竞赛——手写数字识别(Digit Recognizer)

目录 1. 数据集介绍2. 数据分析3. 数据处理与封装3.1 数据集划分3.2 将数据转为tensor张量3.3 数据封装 4. 模型训练4.1 定义功能函数4.1 resnet18模型4.3 CNN模型4.4 FCNN模型 5. 结果分析5.1 混淆矩阵5.2 查看错误分类的样本 6. 加载最佳模型7. 参考文献 本次手写数字识别使用…

【书生2.5】XTuner 微调个人小助手认知

XTuner 微调个人小助手认知 【Intern Studio的gpu不足。本实验使用自有服务器】 1 环境安装 # 创建虚拟环境 conda create -n xtuner python3.10 -y# 激活虚拟环境&#xff08;注意&#xff1a;后续的所有操作都需要在这个虚拟环境中进行&#xff09; conda activate xtuner…

同样128个内核,AMD霄龙9755性能翻倍:Zen 5架构下的性能飞跃

近日&#xff0c;AMD在服务器处理器领域再次展示了其强大的技术实力&#xff0c;随着AMD EPYC“Turin”处理器发布日期的临近&#xff0c;其基准测试结果也开始浮出水面。硬件爱好者博主9550pro近期分享了AMD 128核EPYC 9755“Turin”处理器在7zip压缩/解压缩基准测试中的跑分数…

深圳MES系统在电子制造业中的应用体现

深圳是中国电子制造业的重要基地&#xff0c;许多电子制造企业在深圳地区都在应用MES系统来优化生产管理、提高生产效率和产品质量。深圳MES系统在电子制造业中的应用主要体现在以下几个方面&#xff1a; 生产计划管理&#xff1a;电子制造企业通常面临订单量大、产品种类多的情…

【知识图谱】4、LLM大模型结合neo4j图数据库实现AI问答的功能

昨天写了一篇文章&#xff0c;使用fastapi直接操作neo4j图数据库插入数据的例子&#xff0c; 本文实现LLM大模型结合neo4j图数据库实现AI问答功能。 废话不多说&#xff0c;先上代码 import gradio as gr from fastapi import FastAPI, HTTPException, Request from pydantic…

分享使用智狐联创AI助手生成的一个食品选择器网页

先看效果&#xff1a; 使用的是智狐超强模型&#xff0c;只有一个html网页&#xff0c;点击开始会有动画的选择动画。效果很不错&#xff0c;你可以更改成任意类似场景使用&#xff0c;如&#xff1a;抽奖等等。感兴趣的可以去搜索官网试试&#xff0c;也有免费模型。https://w…

【云故事探索】NO.8:揭秘餐饮行业龙头 SaaS 厂商神州商龙的全栈可观测实践

云布道师 天津市神州商龙科技股份有限公司成立于1998年&#xff0c;是一家专为餐饮行业提供数字化整体解决方案及咨询业务的高新技术企业。秉承着“产品是第一生产力”的发展理念&#xff0c;神州商龙凭借过硬的产品与服务质量&#xff0c;为呷哺呷哺、大董、新荣记、刘一手、巴…

需方软件供应链安全保障要求及开源场景对照自评表(下)

国标《信息安全技术 软件供应链安全要求》确立了软件供应链安全目标&#xff0c;规定了软件供应链安全风险管理要求和供需双方的组织管理和供应活动管理安全要求。 开源软件供应链作为软件供应链的一种特殊形式&#xff0c;该国标亦适用于指导开源软件供应链中的供需双方开展组…

完美解决LBP2900打印机安装驱动提示无法识别USB及连接错误等问题(附Win11全新安装支持及卸载方案)

目录 前言驱动获取方法简易全新安装方法安装完成后的验证方法常见驱动卸载方法 前言 LBP2900打印机虽然属于经典老旧款&#xff0c;但依旧好用不过时。老早之前也分享过心相关的解决方案&#xff0c;请戳&#xff1a;&#x1f449;旧版解决方案。但因年代久远还diss部分系统不通…

ssm“最多跑一次”微信小程序论文源码调试讲解

2系统相关技术 2.1 Java语言简介 Java是由SUN公司推出&#xff0c;该公司于2010年被oracle公司收购。Java本是印度尼西亚的一个叫做爪洼岛的英文名称&#xff0c;也因此得来java是一杯正冒着热气咖啡的标识。Java语言在移动互联网的大背景下具备了显著的优势和广阔的前景&…

HarmonyOS开发实战( Beta5版)应用TSJS高性能编程工具最佳实践

概述 本文参考业界标准&#xff0c;并结合应用TS&JS部分的性能优化实践经验&#xff0c;从应用编程指南、高性能编程实践、性能优化调试工具等维度&#xff0c;为应用开发者提供参考指导&#xff0c;助力开发者开发出高性能的应用。 本文主要提供TS&JS高性能编程实践…

什么是短视频矩阵?一个人能做好短视频矩阵营销吗?

很多人认为做短视频矩阵就是多账号、多发视频就可以了&#xff0c;但其实做短视频矩阵&#xff0c;并不仅仅是更多账号更多视频那么简单&#xff0c;它的核心在于搭建一个全方位的内容传播方式。这种方式包括三个方面&#xff1a;账号矩阵、平台矩阵和内容矩阵。 首先是账号矩阵…

TikTok运营:IP地址如何影响TikTok的内容运营?

TikTok作为外贸人宣传推广的重要平台&#xff0c;其运营成效与产品的实际转化率息息相关。然而&#xff0c;在TikTok的运营过程中&#xff0c;一个看似微不足道的元素—IP地址&#xff0c;却扮演着至关重要的角色。本文将深入探讨TikTok运营中IP地址的重要性&#xff0c;揭示其…

炫700头猪!所有长久的关系,都是讲条件的——早读(逆天打工人爬取热门微信文章解读)

A股呀A股你好狠呀 引言Python 代码第一篇 洞见 所有长久的关系&#xff0c;都是讲条件的第二篇 华为小黑子&#xff1f;结尾 &#xff08;这哥们是来炫他家的700头猪的吧&#xff0c;等我有钱了&#xff0c;包圆咯&#xff09; 引言 周末工作一天 休息一天 周六上班 那天晚上…