Volcano3D绘制3D火山图

一边学习,一边总结,一边分享!

本期教程内容

**注:**本教程详细内容
Volcano3D绘制3D火山图

一、前言

火山图是做差异分析中最常用到的图形,在前面的推文中,我们也推出了好几期火山图的绘制教程,以及很多火山图的教程也可以参考。R语言绘制精美图形 | 火山图 | 学习笔记各类差异基因火山图汇总 | 学习笔记等等。大家根据自己的需求绘制相关的火山图即可。

今天,我们学习使用volcano3D绘制3D火山图,我们会给出详细的绘图过程。

注意: 小杜的生信笔记分享的教程是结合自己的需求进行分享,难免会有错误或遗漏,望见谅!

二、GitHub网址

https://github.com/KatrionaGoldmann/volcano3D

三、 加载R包和数据

3.1 安装volcano3D包

### 安装volcano3D包
library(devtools)
#install_github("KatrionaGoldmann/volcano3D")

### 或是使用以下方法进行安装
# repos = getOption("repos")
# repos["volcano3Ddata"] = "http://KatrionaGoldmann.github.io/volcano3Ddata"
# options(repos = repos)
#install.packages("volcano3Ddata")
library(volcano3Ddata)

3. 2 安装R包时报错问题处理

我自己在安装volcano3D1时出现的报错,安装不了。我开了VPN,但也是报错。后看了是如下的问题,volcano3D相关的包vctrs版本太低了,然后进行升级后即可安装。

3.3 加载数据包

devtools::install_github("KatrionaGoldmann/volcano3Ddata")

citation("volcano3D")

3.4 加载R包

library(volcano3D)
library(volcano3Ddata)

# Basic DESeq2 set up
library(DESeq2)
library(ggplot2)
library(kableExtra)

3.5 数据展示

结合示例数据进行准备数据,基本与我们平时做差异分析数据保持一致,或是你直接使用DESep2做差异分析,使用其结果进行绘图。

citation("volcano3D")

## 
## To cite package 'volcano3D' in publications use:
## 
##   Goldmann K, Lewis M (2020). _volcano3D: 3D Volcano Plots and Polar
##   Plots for Three-Class Data_.
##   https://katrionagoldmann.github.io/volcano3D/index.html,
##   https://github.com/KatrionaGoldmann/volcano3D.
## 
## A BibTeX entry for LaTeX users is
## 
##   @Manual{,
##     title = {volcano3D: 3D Volcano Plots and Polar Plots for Three-Class Data},
##     author = {Katriona Goldmann and Myles Lewis},
##     year = {2020},
##     note = {https://katrionagoldmann.github.io/volcano3D/index.html, https://github.com/KatrionaGoldmann/volcano3D},
##   }

data("syn_data")
data("syn_txi")

3.6 差异分析

创建数据集

counts <- matrix(rnbinom(n=3000, mu=100, size=1/0.5), ncol=30)
rownames(counts) <- paste0("gene", 1:100)
cond <- rep(factor(rep(1:3, each=5), labels = c('A', 'B', 'C')), 2)
resp <- factor(rep(1:2, each=15), labels = c('non.responder', 'responder'))
metadata <- data.frame(drug = cond, response = resp)
counts[1:10,1:5]

dds <- DESeqDataSetFromMatrix(counts, metadata, ~response)
res <- deseq_2x3(dds, ~response, "drug")


差异结果

head(res)


函数deseq_2x3()返回一个包含3个DESeq2对象的列表,其中包含3种药物中每一种的响应分析。这些响应与非响应差异表达式比较可以通过R软件包easylabel的easyVolcano()函数快速可视化,该软件包专为DESeq2和limma对象设计,并使用交互式。 R/发光界面。

#install.packages("easylabel")
library(easylabel)
df <- as.data.frame(res[[1]])  # results for the first drug  
easyVolcano(df)


deseq_2x3输出被传递给deseq_2x3_pole()以生成一个volc3d类对象用于绘图。因此,三维径向图和三维火山图简化了二乘三维分析的可视化,用一个单一的径向图或三维火山图取代了三个火山图。

# Generate polar object
obj <- deseq_2x3_polar(res)

# 2d plot
radial_plotly(obj)

# 3d plot
volcano3D(obj)


此图形可以手动选择方向,以及缩放。

四、绘制不同药理的图形

kable(table(syn_metadata$Pathotype), col.names = c("Pathotype", "Count"))

syn_metadata$Pathotype <- factor(syn_metadata$Pathotype, 
                                 levels = c('Lymphoid', 'Myeloid', 'Fibroid'))
##设置原始变量
dds <- DESeqDataSetFromTximport(txi = syn_txi, 
                                colData = syn_metadata, 
                                design = ~ Pathotype + Batch + Gender)

##差异分析
dds_DE <- DESeq(dds)
##病理类型
dds_LRT <- DESeq(dds, test = "LRT", reduced = ~ Batch + Gender, parallel = TRUE)
#创建'volc3d' 数据集
res <- deseq_polar(dds_DE, dds_LRT, "Pathotype")
##绘制三维散点图
volcano3D(res)

五、构建一个3D shiny

构建一个shiny,也可以单独放在一个R脚本中
Volcano3D绘制3D火山图


往期文章:

1. 复现SCI文章系列专栏

2. 《生信知识库订阅须知》,同步更新,易于搜索与管理。

3. 最全WGCNA教程(替换数据即可出全部结果与图形)


4. 精美图形绘制教程

5. 转录组分析教程

转录组上游分析教程[零基础]

小杜的生信筆記 ,主要发表或收录生物信息学的教程,以及基于R的分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!!

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小杜的生信筆記

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值