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教程(替換數據即可出全部結果與圖形)

  • WGCNA分析 | 全流程分析代碼 | 代碼一

  • WGCNA分析 | 全流程分析代碼 | 代碼二

  • WGCNA分析 | 全流程代碼分享 | 代碼三

  • WGCNA分析 | 全流程分析代碼 | 代碼四

  • WGCNA分析 | 全流程分析代碼 | 代碼五(最新版本)


4. 精美圖形繪制教程

  • 精美圖形繪制教程

5. 轉錄組分析教程

轉錄組上游分析教程[零基礎]

小杜的生信筆記 ,主要發表或收錄生物信息學的教程,以及基于R的分析和可視化(包括數據分析,圖形繪制等);分享感興趣的文獻和學習資料!!加粗樣式

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/164555.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/164555.shtml
英文地址,請注明出處:http://en.pswp.cn/news/164555.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android——資源IDnonFinalResIds和“Attribute value must be constant”錯誤

一、異常描述 通過資源ID引用資源提示錯誤 Attribute value must be constant 二、解決方案 在根目錄下的文件 gradle.properties 中添加如下配置&#xff0c;然后Sync Project android.nonFinalResIdsfalse 三、問題原因 android.nonFinalResIds 是Android開發中一個用于解…

此處不允許使用特性namespace

1.DOCTYPE 后面改成 mapper 2.PUBLIC一行中的Config改為Mapper 3.將下一行config變為小寫的mapper <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.or…

交叉編譯安裝時報錯 ./install.sh: 15: ./install.sh: Bad substitution

報錯信息截圖如下&#xff1a; 解決方法 vim install.sh #!/bin/sh -e 修改為 !/bin/bash -e重新執行 sudo ./install.sh 成功運行

【Java并發】聊聊線程池原理以及實際應用

線程其實對于操作系統來說是寶貴的資源&#xff0c;java層面的線程其實本質還是依賴于操作系統內核的線程進行處理任務&#xff0c;如果頻繁的創建、使用、銷毀線程&#xff0c;那么勢必會非常浪費資源以及性能不高&#xff0c;所以池化技術&#xff08;數據庫連接池、線程池&a…

暢談Linux在小型微型企業中的應用

在這篇文章里我們討論和暢談一下linux系統在小微型企業中的應用&#xff0c;為什么會寫這篇文章呢&#xff1f;因為在平時的工作中&#xff0c;認識的一些做小微型企業的朋友&#xff0c;他們經常找我咨詢或是去解決一些平時工作中的IT相關的問題&#xff0c;那么小微型企業中的…

相同結構體不同類型轉換

緣由&#xff1a; 最近開發上遇到一個問題&#xff0c;通過grpcgateway 處理后的int64&uint64類型數據均轉換成了字符串類型&#xff0c;本身服務于前端&#xff0c;沒有任何問題。但是 項目部署現場后&#xff0c;發現需要兩套環境&#xff0c;那么就出現一個問題&#x…

2022 年十大 JavaScript 框架

2022 年十大 Web 應用開發 JavaScript 框架。 React.js jQuery Express Angular Vue.js Angular.js Svelte Next.js Ember.js Meteor React.js React.js 于 2013 年由 Meta(Facebook 前身) 推出&#xff0c;是一款開源的、免費的 JavaScript 庫。React.js 被用于開…

C++中的map和set的使用

C中的map詳解 關聯式容器鍵值對樹形結構的關聯式容器set的使用1. set的模板參數列表2. set的構造3. set的迭代器4. set的容量5. set修改操作6. set的使用舉例 map1. map的簡介2. map的模板參數說明3. map的構造4. map的迭代器5. map的容量與元素訪問6. map的元素修改 multimap和…

Linux vim操作教程(vim 基操、vim替換和查找、 vim改變文本顏色、判斷和循環語句)

vim 基操 vim 是一個強大的文本編輯器,常用于在終端環境下編輯文件。下面是一些常用的 vim 操作: 打開文件:在終端中輸入 vim 文件名 來打開一個文件,如果文件不存在,則會創建一個新文件。 模式切換: 按下 i 進入插入模式,在該模式下可以輸入和編輯文本。按下 Esc 鍵返…

python單例模式

單例模式是一種創建型設計模式&#xff0c;它保證一個類僅有一個實例&#xff0c;并提供一個全局訪問點。 在 Python 中&#xff0c;可以使用以下幾種方式來創建單例模式&#xff1a; 使用 __new__ 方法 在 Python 中&#xff0c; __new__ 方法是一個類方法&#xff0c;它在…

msvcp120.dll丟失是什么意思,哪個修復方法最簡單

在計算機使用過程中&#xff0c;我們經常會遇到一些錯誤提示&#xff0c;其中之一就是“找不到msvcp120.dll”。這個錯誤通常發生在運行某些程序或游戲時&#xff0c;它會導致程序無法正常啟動或運行。那么&#xff0c;這個錯誤提示到底是什么意思呢&#xff1f;為了解決這個問…

深入了解Java8新特性-日期時間API_LocalDate類

閱讀建議 嗨&#xff0c;伙計&#xff01;刷到這篇文章咱們就是有緣人&#xff0c;在閱讀這篇文章前我有一些建議&#xff1a; 本篇文章大概12000多字&#xff0c;預計閱讀時間長需要10分鐘。本篇文章的實戰性、理論性較強&#xff0c;是一篇質量分數較高的技術干貨文章&…

【iOS】數據持久化(一)之Plist文件、Preference(NSUserDefaults類)

目錄 什么是Plist文件&#xff1f;plist可以存儲哪些數據類型plist文件數據的讀取與存儲 Perference&#xff08;NSUserDefaults&#xff09;使用方法registerDefaults: 方法的使用 什么是Plist文件&#xff1f; Plist文件&#xff08;屬性列表&#xff09;是將某些特定的類&a…

python運行hhblits二進制命令的包裝器類

hhblits 是 HMM-HMM&#xff08;Hidden Markov Model to Hidden Markov Model&#xff09;比對方法的一部分&#xff0c;也是 HMMER 軟件套件中的工具之一。與 hhsearch 類似&#xff0c;hhblits 也用于進行高效的蛋白質序列比對&#xff0c;特別擅長于檢測遠緣同源性。 hh-su…

筑牢思想防線——建行駐江門市分行紀檢組舉辦2023年清廉合規大講堂

為推動廉潔教育打通“最后一公里”&#xff0c;近日&#xff0c;建行駐江門市分行紀檢組舉辦江門市分行2023年清廉合規大講堂。 本次大講堂檢察官結合一線辦案經歷&#xff0c;從防范化解金融風險、預防金融從業人員犯罪等方面對全轄員工進行了深入淺出地的講解&#xff0c;引導…

代碼隨想錄算法訓練營第五十二天|1143.最長公共子序列 1035.不相交的線 53. 最大子序和

文檔講解&#xff1a;代碼隨想錄 視頻講解&#xff1a;代碼隨想錄B站賬號 狀態&#xff1a;看了視頻題解和文章解析后做出來了 1143.最長公共子序列 class Solution:def longestCommonSubsequence(self, text1: str, text2: str) -> int:dp [[0] * (len(text2) 1) for _ i…

C++——stack和queue

目錄 stack的介紹和使用 stack的使用 queue的介紹和使用 queue的使用 容器適配器 deque的介紹 deque的缺陷 priority_queue的介紹和使用 priority_queue的使用 仿函數 反向迭代器 stack的介紹和使用 在原來的數據結構中已經介紹過什么是棧了&#xff0c;再來回顧一下…

視頻監控平臺EasyCVR+智能分析網關+物聯網,聯合打造智能環衛監控系統

一、背景介紹 城市作為人們生活的載體&#xff0c;有著有無數樓宇和四通八達的街道&#xff0c;這些建筑的整潔與衛生的背后&#xff0c;是無數環衛工作人員的努力。環衛工人通過清理垃圾、打掃街道、清洗公共設施等工作&#xff0c;保持城市的整潔和衛生&#xff0c;防止垃圾…

【機器學習 | 白噪聲檢驗】檢驗模型學習成果 檢驗平穩性最佳實踐,確定不來看看?

&#x1f935;?♂? 個人主頁: AI_magician &#x1f4e1;主頁地址&#xff1a; 作者簡介&#xff1a;CSDN內容合伙人&#xff0c;全棧領域優質創作者。 &#x1f468;?&#x1f4bb;景愿&#xff1a;旨在于能和更多的熱愛計算機的伙伴一起成長&#xff01;&#xff01;&…

C++ Day09 容器

C-STL01- 容器 引入 我們想存儲多個學員的信息 , 現在學員數量不定 通過以前學習的知識 , 我們可以創建一個數組存儲學員的信息 但是這個數組大小是多少呢 ? 過大會導致空間浪費 , 小了又需要擴容 對其中的數據進行操作也較為復雜 每次刪除數據后還要對其進行回收等操作…