getwd()

#下载方式有很多,挑自己能下载的办法下载好几个包就好,我们用自带的数据就好

install.packages("SeuratData")
devtools::install_github('satijalab/seurat-data')
library(SeuratData)
library(Seurat)
library(airway)
library(magrittr)
#加载火山图的包
install.packages('BiocManager')
#install.packages("EnhancedVolcano")
devtools::install_github('kevinblighe/EnhancedVolcano')
library(EnhancedVolcano)
#控制数据大小(读取时间))
getOption('timeout')
options(otimeout=10000)

#载入PBMC3k数据,已经是一个seurat结构
#InstallData("pbmc3k")
data(pbmc3k)
pbmc3k
str(pbmc3k)
head(pbmc3k,5)#有一个注释群在

#final是处理过的pbmc3k数据
sce <- pbmc3k.final
#展示数据
sce
head(sce,5)#这个东西被降维,计算线粒体基因等一系列操作了
table(Idents(sce))#展示一下ident
pbmc3k@meta.data$seurat_annotations #展示一下注释

#寻找两个群之间的高变基因
deg = FindMarkers(sce,ident.1 = 'NK', ident.2 = 'B')
head(deg[order(deg$p_val),])#根据P值排序

这个包的内容非常丰富,有时间再多整理出来吧
#lab=rownames 设置标签(gene名字)
#xlim = c(-17, 13)、ylim=c(1,6):设置x、y轴的展示区间
#pCutoff = 0.001、FCcutoff = 2:自定义阈值线划分的范围,也就是那两个虚线。
#cutoffLineCol  自定义阈值线的颜色
#cutoffLineType  自定义阈值线的类型
#cutoffLineWidth    自定义阈值线的宽度
#pointSize 点的大小默认是2
#shape=19
#subtitle 是title下面那个title
#caption 是右下角的title
#titleLabSize,subtitleLabSize,captionLabSize三个标题的大小,默认是14
EnhancedVolcano(deg,
                lab = rownames(deg),
                #xlim = c(-5,7),
                #ylim = c(0,100),
                #pCutoff = 0.01,
                #FCcutoff = 4,
                x = 'avg_log2FC',
                y = 'p_val_adj',
                #subtitle = F,
                #caption = "what",
                #cutoffLineCol = "red",
                #titleLabSize = 14,
                #shape=16,
                #pointSize=5,
                title = "NK vs B",)

deg$p_val_adj
deg$avg_log2FC

#用ggplo去画图,同一组数据
deg$threshold<-as.factor(ifelse(deg$avg_log2FC >= 2,'Up',ifelse(deg$p_val_adj<0.05 & deg$avg_log2FC <= -2,'Down','Not')))
deg<-data.frame(deg)
ggplot(data=deg, aes(x=avg_log2FC, y=-log10(p_val_adj), colour=threshold, fill=threshold)) +
  scale_color_manual(values=c("blue", "grey","red"))+
  geom_point(alpha=0.6,size=2) +
  #xlim(c(-6, 6)) +
  #ylim(c(0, 300)) +
  theme_bw(base_size = 12, base_family = "Times") +
  geom_vline(xintercept=c(-2,2),lty=1,col=c("blue","red"),lwd=0.6)+
  geom_hline(yintercept = -log10(0.05),lty=2,col="black",lwd=0.6)+
  theme(legend.position="right",
        panel.grid=element_blank(),
        legend.title = element_blank(),
        legend.text= element_text(face="bold", color="black",family = "Times", size=8),
        plot.title = element_text(hjust = 0.5),
        axis.text.x = element_text(color="black", size=12),
        axis.text.y = element_text(color="black", size=12),
        axis.title.x = element_text(face="bold", color="black", size=12),
        axis.title.y = element_text(face="bold",color="black", size=12))+
  labs(x="log2 (Fold Change)",y="-log10 (p-value)",title="NK vs B")

ggplot封装的东西比较少,还是没那么方便

R语言用EnhancedVolcano和ggplot画同一数据的火山图相关推荐

  1. R语言使用循环语句一次性画出多幅图

    R语言使用循环语句一次性画出多幅图 首先加载包,patchwork用来一个界面展示多幅图 具体的可以看这篇文章 library(ggplot2) library(patchwork) 以数据iris为 ...

  2. 【R语言】可视化:ggplot代码的自动生成

    [R语言]可视化:ggplot代码的自动生成 前言: 准备 1. 设置 Settings 2. 面板和背景 Panel & Backgroud 3. 坐标轴 Axis 4. 标题与标签 Tit ...

  3. 使用R语言ggplot2包绘制pathway富集分析气泡图(Bubble图):数据结构及代码

    气泡图是在笛卡尔坐标系同加入大小的参数所形成的可以表示三个变量关系的图例.在对基因完成GO/KEGG分析后,使用气泡图可以直观的展示pathway.pvalue.count之间的关系.下面为使用R语言 ...

  4. R语言系统教程(七):数据的分布(含多种图的绘制)

    R语言系统教程(七):数据的分布 7.1 分布函数 7.2 直方图.经验分布图与QQ图 7.2.1 直方图 7.2.2 核密度估计函数 7.2.3 经验分布 7.2.4 QQ图 7.3 茎叶图.箱线图 ...

  5. R语言ggplot2可视化:ggplot2可视化时间序列数据并在末尾数据点添加数值标签(number label)

    R语言ggplot2可视化:ggplot2可视化时间序列数据并在末尾数据点添加数值标签(number label) 目录

  6. R语言plotly可视化:plotly可视化分裂的分组小提琴图、每个小提琴图内部分为两组数据、每个分组占小提琴图的一半(Split violin plot in R with plotly)

    R语言plotly可视化:plotly可视化分裂的分组小提琴图.每个小提琴图内部分为两组数据.每个分组占小提琴图的一半(Split violin plot in R with plotly) 目录

  7. R语言ggplot2可视化:使用长表数据(窄表数据)( Long Data Format)可视化多个时间序列数据、在同一个可视化图像中可视化多个时间序列数据(Multiple Time Series)

    R语言ggplot2可视化:使用长表数据(窄表数据)( Long Data Format)可视化多个时间序列数据.在同一个可视化图像中可视化多个时间序列数据(Multiple Time Series) ...

  8. R语言构建文本分类模型:文本数据预处理、构建词袋模型(bag of words)、构建xgboost文本分类模型、基于自定义函数构建xgboost文本分类模型

    R语言构建文本分类模型:文本数据预处理.构建词袋模型(bag of words).构建xgboost文本分类模型.基于自定义函数构建xgboost文本分类模型 目录

  9. R语言使用ggplot2包使用geom_violin函数绘制分组小提琴图(配置显示均值、中位数)实战

    R语言使用ggplot2包使用geom_violin函数绘制分组小提琴图(配置显示均值.中位数)实战 目录

最新文章

  1. java识别文件类型_在Java中识别文件类型
  2. 什么是用户与计算机硬件之间的桥梁,计算机应用基础简答题(附答案)
  3. 翻牌游戏如何打乱牌面java_剑仙登上虎牙封面C位,成为新的牌面,虎牙造星能力真的强...
  4. CNN中常用的卷积核:锐化卷积核模板
  5. SAP Fiori Elements原理介绍之类型为Value Help的Smart Field工作原理
  6. java绘制一个饼图_一个简单的绘制饼图的 Java Bean 实例
  7. Python 基礎 - 變量
  8. java 数据流 中文_【Java I/O流】File、字符集、字节流、字符流、缓冲流、数据流、对象流、序列化、try-wi...
  9. 公司用的非标普通自动化用单片机还是plc_合格电气自动化工程师必备十大技能...
  10. 【架构师考试】架构师考试内容与历年真题
  11. 在屏幕的任意位置拖拽,控制精灵移动
  12. java计算机毕业设计学校意见征集系统源码+系统+mysql数据库+lw文档
  13. 生信分析之R语言常用R包一步下载
  14. 费雪方程式和交易量公式
  15. 《全栈技术资料》你值得拥有 | 寻找C站宝藏
  16. 如何深入和高效的学习编程语言
  17. 麻球繁衍(Tribbles 概率dp)
  18. pika详解 (一)
  19. Code Sight with Black Duck SCA
  20. 【Appium学习总结1】----原理

热门文章

  1. 实用!清空了回收站怎么恢复误删的文件?教你这2招!
  2. 绝地求生8月7号服务器维修吗,2019绝地求生8月7日更新官方公告 吃鸡8月7日更新了什么内容?...
  3. 十大经典预测算法(八)---adboost
  4. 微信二维码竟然可以变色了?
  5. 练习总结sql面试50题(2021-12-27完结)
  6. JS 遍历本地文件夹中的内容
  7. android 10.0 两个laucher动态相互切换(退出一个launcher到另外一个launcher桌面 )(RK 展讯 MTK等平台都适用)
  8. Vue之mixins使用
  9. windows10 解决音量图标红叉
  10. Windows10在PowerShell中启动Redis