跟着NatureMetabolism学作图:R语言ggplot2转录组差异表达火山图

论文
Independent phenotypic plasticity axes define distinct obesity sub-types

https://www.nature.com/articles/s42255-022-00629-2#Sec15

s42255-022-00629-2.pdf

论文中没有公开代码,但是所有作图数据都公开了,我们可以试着用论文中提供的数据模仿论文中的图

今天的推文重复一下论文中的Fig3b 差异表达火山图,之前也有推文介绍过火山图,今天的推文主要学习的一个知识点是利用latex2exp这个R包添加文本,包括

上下标
换行 换行的基本写法

ggplot()+geom_point(aes(x=1,y=1))+labs(x=TeX(r"(\overset${ABCDEF}{abcde}$)"))

在这里插入图片描述
火山图的部分示例数据
在这里插入图片描述
读取数据

library(readr)
df<-read_tsv("data/20220921/fig3b.txt")
head(df)
colnames(df)

添加差异表达的分组

df %>% mutate(change=case_when(log2FoldChange > 1 & pvalue < 0.05 ~ "Up",log2FoldChange < -1 & pvalue < 0.05 ~ "Down",TRUE ~ "Not Sig")) -> new.dftable(new.df$change)
new.df %>% filter(-log10(pvalue)>8) -> new.text.label

这里没有找到论文中差异表达的标准,这里是我随便写的

作图代码

library(ggplot2)
library(ggrepel)
library(latex2exp)
ggplot(data=new.df,aes(x=log2FoldChange,y=-log10(pvalue)))+geom_point(aes(color=change))+scale_color_manual(values = c("Down"="#3a53a4","Not Sig"="#aaaaaa","Up"="#7acde4"),labels=c("Down"=TeX(r"(\textit{Nnat}${^+}$${^/}$${^-}$${^p}$-\textit{Heavy} depleted)"),"Not Sig"="Not Significant","Up" = TeX(r"(\textit{Nnat}${^+}$${^/}$${^-}$${^p}$-\textit{Heavy} enriched)")))+theme_classic()+theme(legend.position = c(0.2,0.9),legend.text.align = 0,legend.title = element_blank())+geom_text_repel(data=new.text.label,aes(x=log2FoldChange,y=-log10(pvalue),label=mgi_symbol))+labs(x=TeX(r"(\overset${\textit{Nnat}{^+}{^/}{^-}{^p}-\textit{Lean}$ versus $\textit{Nnat}{^+}{^/}{^-}{^p}-\textit{Giant}}{(log{_2}$ fold $change)}$)"),y=TeX(r"(-log${_1}{_0}$ {(}\textit{P}{ value}{)})"))

在这里插入图片描述
制作封面图

p1<-ggplot(data=new.df,aes(x=log2FoldChange,y=-log10(pvalue)))+geom_point(aes(color=change))+scale_color_manual(values = c("Down"="#3a53a4","Not Sig"="#aaaaaa","Up"="#7acde4"),labels=c("Down"=TeX(r"(\textit{Nnat}${^+}$${^/}$${^-}$${^p}$-\textit{Heavy} depleted)"),"Not Sig"="Not Significant","Up" = TeX(r"(\textit{Nnat}${^+}$${^/}$${^-}$${^p}$-\textit{Heavy} enriched)")))+theme_classic()+theme(legend.position = c(0.2,0.9),legend.text.align = 0,legend.title = element_blank())+geom_text_repel(data=new.text.label,aes(x=log2FoldChange,y=-log10(pvalue),label=mgi_symbol))+labs(x=TeX(r"(\overset${\textit{Nnat}{^+}{^/}{^-}{^p}-\textit{Lean}$ versus $\textit{Nnat}{^+}{^/}{^-}{^p}-\textit{Giant}}{(log{_2}$ fold $change)}$)"),y=TeX(r"(-log${_1}{_0}$ {(}\textit{P}{ value}{)})"))p2<-ggplot(data=new.df,aes(x=log2FoldChange,y=-log10(pvalue)))+geom_point(aes(color=change))+scale_color_manual(values = c("Down"="red","Not Sig"="#aaaaaa","Up"="darkgreen"),labels=c("Down"=TeX(r"(\textit{Nnat}${^+}$${^/}$${^-}$${^p}$-\textit{Heavy} depleted)"),"Not Sig"="Not Significant","Up" = TeX(r"(\textit{Nnat}${^+}$${^/}$${^-}$${^p}$-\textit{Heavy} enriched)")))+theme_classic()+theme(legend.position = c(0.2,0.9),legend.text.align = 0,legend.title = element_blank())+geom_text_repel(data=new.text.label,aes(x=log2FoldChange,y=-log10(pvalue),label=mgi_symbol))+labs(x=TeX(r"(\overset${\textit{Nnat}{^+}{^/}{^-}{^p}-\textit{Lean}$ versus $\textit{Nnat}{^+}{^/}{^-}{^p}-\textit{Giant}}{(log{_2}$ fold $change)}$)"),y=TeX(r"(-log${_1}{_0}$ {(}\textit{P}{ value}{)})"))library(patchwork)
pdf(file = "Rplot03.pdf",width = 14.1,height = 6)
p1+p2
dev.off()

在这里插入图片描述
示例数据和代码可以给推文点赞 点击在看 最后留言获取

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

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

相关文章

用长tree方式做等长线

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 相关文章链接: 用set_data_check的方式做等长线 前面讲过了如何用set_data_check做等长线,这里再讲一下如何用cts的方式做。 1)写一个sdc,把等长线的起点设置成clock source,用于创建create_…

项目结束需要经历的5个关键步骤

项目结束是项目管理不可或缺的一部分。这是项目的最后阶段&#xff0c;根据关键绩效指标和范围对交付成果进行测试&#xff0c;收尾&#xff0c;总结经验教训&#xff0c;完成交接&#xff0c;并签署项目。 项目结束与启动会议和一样重要。管理人员应为此留出时间&#xff0c;…

前端CodeReivew实践 | 京东云技术团队

把Code Review变成一种开发文化而不仅仅是一种制度 把Code Review 作为开发流程的必选项后&#xff0c;不代表Code Review这件事就可以执行的很好&#xff0c;因为Code Review 的执行&#xff0c;很大部分程度上依赖于审查者的认真审查&#xff0c;以及被审查者的积极配合&…

求解仿射变换矩阵

仿射变换是图形学中经常用到的方法&#xff0c;通常但是仿射变换的系数是未知的&#xff0c;需要找到变换前后的三对对应点进行求解。 from affine import Affine import numpy as np参考文献 矩阵最小二乘法求解仿射变换矩阵 def solve_affine(init_points, goal_points) -&…

位置式PID

// 单环PID参数 float Position_KP 0.0180, Position_KI 0.0013, Position_KD 0.11425; /* 位置式PID系数 */ /*************************************************************************** brief 位置式PID控制器* param 实际位置reality&#xff0c;目标位置target…

【CCF】Z字形扫描

这题的关键是将整个扫描的过程&#xff0c;拆分成很多次斜着操作数组的过程。 而且这个过程中可以建立如下规律&#xff1a; &#xff08;1&#xff09;一斜线上的元素个数与切换到下一条斜线这一操作之间建立规律。 先讨论左上部分的数组&#xff1a; 1&#xff09;当元素个…

小记java正则表达式中matcher.find() 和 matcher.matches() 的区别

matcher.find() 顾名思义&#xff0c;find为查找&#xff0c;其功能为查找字符串中是否有符合条件的字串&#xff08;包含本身&#xff09;&#xff0c;当查找到时即返回true&#xff0c;更多地与matcher.group(int i) 配合使用&#xff0c;用于从字符串中取出特定字串。 mat…

linux 装机教程(自用备忘)

文章目录 安装 pyenv 管理多版本 python 环境安装使用使用 pyenv 和 virtualenv 管理虚拟 python 环境 sshvscode 连接远程服务器tmux 美化zsh 安装 pyenv 管理多版本 python 环境 安装 &#xff08;教程参考&#xff1a;https://www.modb.pro/db/155036&#xff09; sudo a…

2023 uniapp( vue3 + TS )使用canvas生成海报并保存,taro/微信小程序也适用

有段时间没写vue了&#xff0c;有点生疏了...... 1、代码有注释&#xff0c;完整代码如下 <template><view class"page"><canvas class"canvas" v-if"isShow" :style"{width:${canvasWidth}px,height:${canvasHeight}px}&…

React之引入css的方式

一、是什么 组件式开发选择合适的css解决方案尤为重要 通常会遵循以下规则&#xff1a; 可以编写局部css&#xff0c;不会随意污染其他组件内的原生&#xff1b;可以编写动态的css&#xff0c;可以获取当前组件的一些状态&#xff0c;根据状态的变化生成不同的css样式&#…

SpringCloud-Sentinel

一、介绍 &#xff08;1&#xff09;提供界面配置配置服务限流、服务降级、服务熔断 &#xff08;2&#xff09;SentinelResource的blockHandler只处理后台配置的异常&#xff0c;运行时异常fallBack处理&#xff0c;且资源名为value时才生效&#xff0c;走兜底方法 二、安装…

Anaconda创建新的虚拟环境及Jupyter Notebok中、PyCharm中环境的使用

Anaconda创建新的虚拟环境 在windows开始菜单中【徽标键】&#xff0c;查找Anaconda文件夹并打开【Anaconda Prompt】 查看已有虚拟环境 conda env list1.创建 conda create --name mytest python3.7 # 创建一个名称为mytest&#xff0c;python版本为3.7的虚拟环境输入【…

济南双软认定办理流程,软件企业认定申报材料

具体流程及需要材料&#xff1a; 第一步&#xff1a;软件着作权 材料&#xff1a;源代码前后各30页&#xff0c;软件说明书&#xff0c;企业营业执照公章、软件着作权的申请表。统一提交中国版权中心?? 第二步&#xff1a;软件测评 材料&#xff1a;软件操作手册、说明书…

clion本地调试nginx-1.22.1

1 概述 nginx是一个多进程模型的流量代理软件&#xff0c;在本地调试时需要将它设置为单进程模式。 2 下载nginx源码 mkdir -p /opt/third-party cd /opt/third-party wget http://nginx.org/download/nginx-1.22.1.tar.gz tar xf nginx-1.22.1.tar.gz ls /opt/third-party…

Android振动器(Vibrator)

1.获取权限 振动器权限仅需静态申请 在清单文件中声明&#xff1a;android.permission.VIBRATE <uses-permission android:name"android.permission.VIBRATE"/> 2.振动器的使用 //获取系统服务-振动器 Vibrator vibrator (Vibrator) getSystemService(VIB…

Redis的持久化策略:RDB与AOF(面试题详解)

文章来源&#xff1a;Redis持久化的两种方式&#xff1a;RDB与AOF&#xff08;详解&#xff09;&#xff0c;订正了一些错误 一、概述&#xff1a; RDB和AOF持久化的由来&#xff1f; 因为Redis中的数据是基于内存的&#xff0c;所以如果出现服务器断电或者服务器宕机&#xf…

Java SOAP 调用 C# 的WebService

Java SOAP 调用 C# 的WebService&#xff0c;C# 的WebService方法的创建可以参考上一篇文章。IntelliJ IDEA Community Edition 2021.2.3的idea64.exe新建项目&#xff0c;导入需要的jar&#xff0c;代码如下&#xff1a; import org.apache.axis.client.Service; import org.…

教育行业如何通过互联网推广品牌?媒介盒子告诉你

近年来&#xff0c;国民对教育的重视程度日趋上升&#xff0c;教育行业也日益壮大&#xff0c;数字化时代的来临也使教育行业推广品牌的方式更加多样化&#xff0c;接下来媒介盒子就和大家分享&#xff1a;教育行业如何通过互联网推广品牌。 一、 发布软文进行品牌推广 数字…

js到vue到react的发展

介绍&#xff1a; JavaScript是一种基于对象和事件驱动的编程语言&#xff0c;在Web开发中占据着重要的地位。随着前端技术的不断发展&#xff0c;出现了一系列的框架和库&#xff0c;Vue和React是其中较为知名的两个。 Vue是一个轻量级的JavaScript框架&#xff0c;由尤雨溪…

项目部署Linux一般步骤

1、最小化安装centos7-环境准备 安装epel-release 安装epel-release&#xff0c;因为有些rpm包在官方库中找不到。前提是保证可以联网 yum install -y epel-release 修改IP net-tools net-tool&#xff1a;工具包集合&#xff0c;包含ifconfig等命令 yum install -y net-…