一邊學習,一邊總結,一邊分享!
本期教程內容
**注:**本教程詳細內容
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教程(替換數據即可出全部結果與圖形)
-
WGCNA分析 | 全流程分析代碼 | 代碼一
-
WGCNA分析 | 全流程分析代碼 | 代碼二
-
WGCNA分析 | 全流程代碼分享 | 代碼三
-
WGCNA分析 | 全流程分析代碼 | 代碼四
-
WGCNA分析 | 全流程分析代碼 | 代碼五(最新版本)
4. 精美圖形繪制教程
- 精美圖形繪制教程
5. 轉錄組分析教程
轉錄組上游分析教程[零基礎]
小杜的生信筆記 ,主要發表或收錄生物信息學的教程,以及基于R的分析和可視化(包括數據分析,圖形繪制等);分享感興趣的文獻和學習資料!!