ggplot2 | GO barplot with gene list

1. 效果圖

在這里插入圖片描述

2. 代碼

數據是GO的輸出結果,本文使用的是 metascape 輸出的excel挑選的若干行。

# 1. 讀取數據
dat=read.csv("E:\\research\\scPolyA-seq2\\GO-APA-Timepoint\\test.csv", sep="\t")
head(dat)# 2. 選擇所需要的列
dat.use=dat[, c("LogQvalue", "Description", "GroupID", "Symbols")]
# 如果只有Qvalue,則ggplot2中使用x=log10(Qvalue);
# GroupID是分組,不是必須的。主要用于區分顏色,一個類可以有多個term。

查看中間數據:

> head(dat.use, 2)LogQvalue                            Description    GroupID
1    -2.685      Thyroid hormone signaling pathway  1_Summary
2    -1.003 positive regulation of protein binding 10_SummarySymbols
1 ATP2A2,PFKP,RAF1,SLC9A1,HDAC3,NCOA2,MED13L,SIN3A,EGR2,NFKB1,THRAP3,CASP3,KMT2A,SLIT3,CCAR2,SLC9A3,MEF2D,TFAM,GBF1,BBS9,SGK1,TXN2,PI4KA,PEMT,PNPLA6,ACSL5
2                                               ABL1,PPP2CB,TIAM1,NMD3,ATP2A2,NFKB1,RAF1,OXSR1,NDFIP2,CCAR2,TAF3,UBLCP1,GBF1,DLC1,GLG1,STXBP3,SIN3A,JMJD1CSymbols2
1 ATP2A2,PFKP,RAF1,SLC9A1,HDAC3,NCOA2
2 ABL1,PPP2CB,TIAM1,NMD3,ATP2A2,NFKB1

繼續:

# set y order
#dat.use$Description=factor(dat.use$Description)# 3.選擇所需要的行 select rows to draw
cols=c("#D51F26","#00A08A","#F2AD00","#F98400","#5BBCD6")
dat.use=dat.use[1:length(cols), ]# 4.僅顯示不超過n=5個基因
n=6 #最多保留的基因個數
dat.use$Symbols2=sapply(dat.use$Symbols, function(x){arr=strsplit(x, ",")[[1]]len=ifelse(length(arr)>n, n, length(arr));arr=arr[1:len]paste0(arr, collapse = ",")
}) |> as.character()# 5.畫圖
library(ggplot2)
ggplot(dat.use, aes(x=-LogQvalue, y = Description, fill = GroupID)) +#1. barplot of GO Q valuegeom_bar(stat ="identity", width =0.5) +geom_text(aes(x=0.1/5, #文字和y軸的縫隙y=Description, label=Description), size=4, #fontface="bold",hjust=0) +scale_fill_manual(values = cols)+ #bar plot fill colorscale_x_continuous(expand = c(0,0))+ #bar和y軸無間隔#2. add gene listgeom_text(data = dat.use,aes(x =0.1/5, #文字和y軸的縫隙y = Description, label = Symbols2, #基因列表color = GroupID),size =3.5,fontface ='italic',hjust =0,vjust =2.3) +scale_color_manual(values=cols) + #gene list text colors#3. theme and styletheme_classic(base_size = 14)+theme(axis.text.y = element_blank(), #no y title, ticks, textaxis.title.y = element_blank(),axis.ticks.y = element_blank(),axis.line = element_line(colour ='black', linewidth =1),axis.text.x = element_text(colour ='black', size =12),axis.ticks.x = element_line(colour ='black', linewidth = 1),axis.title.x = element_text(colour ='black', size =12),legend.position ="none")+ #no legendscale_y_discrete( #expand = c(0.2, 0), #為bar下的字符留空間,缺點是上面也有空間了expand=expansion(mult = c(0.2, 0)), #ggplot 3.5.1limits=rev( dat.use$Description)  #設置bar的順序) + labs(x="-Log10(Qvalue)", title="Enrichment of xx")

Ref

  • https://mp.weixin.qq.com/s/h_x2Iz7FQdZWiT0WwY-9Eg

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

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

相關文章

學習搭子,秘塔AI搜索

什么是秘塔AI搜索 《秘塔AI搜索》的網址:https://metaso.cn/ 功能:AI搜索和知識學習,其中學習部分是亮點,也是主要推薦理由。對應的入口:https://metaso.cn/study 推薦理由 界面細節做工精良《今天學點啥》板塊的知…

【C語言】--指針超詳解(三)

目錄 一.數組名的理解 二.使用指針訪問數組 三.一維數組傳參的本質 四.冒泡排序 五.二級指針 六.指針數組 6.1--指針數組的定義 6.2--指針數組模擬二維數組 🔥個人主頁:草莓熊Lotso的個人主頁 🎬作者簡介:C方向學習者 &…

Linux防火墻

1.防火墻是一種位于內部網絡與外部網絡之間的網絡安全系統,它依照特定的規則,允許或限制傳輸的數據通過,以保護內部網絡的安全。以下從功能、分類、工作原理等方面為你詳細講解: 功能訪問控制:這是防火墻最主要的功能。…

嵌入式培訓之C語言學習完(十七)結構體、共用體、枚舉、typedef關鍵字與位運算

目錄 一、結構體(struct關鍵字) (一)聲明一個結構體數據類型 (二)結構體的成員初始化與賦值 a、結構體變量賦值 b、結構體成員初始化 c、結構體的定義形式 (三)考點&#xff…

Python字典:數據操作的核心容器

在Python編程生態中,字典(dict)是最常用且功能強大的內置數據結構之一。它以鍵值對(Key-Value Pair)的形式存儲數據,為快速查找、靈活映射關系提供了天然支持。無論是數據清洗、算法實現還是Web開發&#x…

按位寬提取十六進制值

需求:給出一個十六進制值,要求提取high和low位之間的值。比如16ha0f0,這是一個16bit寬的十六進制數0xa0f0,提取[15:12]范圍內的值。 def extract_bits(value, high, low):"""從 value 中提取 [high:low] 位的值:p…

LeRobot 項目部署運行邏輯(六)——visualize_dataset_html.py/visualize_dataset.py

可視化腳本包括了兩個方法:遠程下載 huggingface 上的數據集和使用本地數據集 腳本主要使用兩個: 目前來說,ACT 采集訓練用的是統一時間長度的數據集,此外,這兩個腳本最大的問題在于不能裁剪,這也是比較好…

SSTI模版注入

1、概念 SSTI是一種常見的Web安全漏洞,它允許攻擊者通過注入惡意模板代碼,使服務器在渲染模板時執行非預期的操作。 (1)渲染模版 至于什么是渲染模版:服務器端渲染模板是一種Web開發技術,它允許在服務器端…

關于點膠機的精度

一、精度: 1:X/y軸定位精度常通在5個絲左右,Z軸在3個絲左右, 如果采用伺服電機絲桿配置,可提升至于個2絲左右。 2:膠水控制精度:通過噴閥驅動器,氣壓等參數,實現膠量控制&#xf…

gitee推送更新失敗問題記錄:remote: error: hook declined to update refs/heads/master

問題描述: gitee推送更新時,提示: 解決方法: 登錄Gitee,進入【個人主頁】 點擊【個人設置】 更改郵箱的配置,如下: 更改“禁止命令行推送暴露個人郵箱”,將其關閉:

Java如何獲取電腦分辨率?

以下是一個 Java 程序示例,用于獲取電腦的主屏幕分辨率: import java.awt.*; public class ScreenResolutionExample { public static void main(String[] args) { // 獲取默認的屏幕設備 GraphicsDevice device GraphicsEnvironm…

WPF 3D圖形編程核心技術解析

一、三維坐標系系統 WPF采用右手坐標系系統,空間定位遵循: X 軸 → 右 Y 軸 → 上 Z 軸 → 觀察方向 X軸 \rightarrow 右\quad Y軸 \rightarrow 上\quad Z軸 \rightarrow 觀察方向 X軸→右Y軸→上Z軸→觀察方向 三維坐標值表示為 ( x , y , z ) (x, y,…

【庫(Library)、包(Package)和模塊(Module)解析】

在Python中,**庫(Library)、包(Package)和模塊(Module)**是代碼組織的不同層級,而import語句的導入行為與它們密切相關。以下是詳細對比和解釋: 📦 1. 核心概…

裸機上的 printf:在無操作系統環境下構建 C 標準庫

在嵌入式開發和底層系統編程領域,裸機開發是一項極具挑戰性但又至關重要的任務。想象一下,在沒有操作系統支持的情況下,讓 C 語言的標準庫函數,如printf正常工作,這聽起來是不是很有趣又充滿挑戰?今天&…

基于STM32F103的智能機械臂識別與控制項目(課件PPT+源代碼)

以下是基于 STM32F103 的智能機械臂識別與控制項目的詳細介紹: 項目概述 該項目以 STM32F103 為核心控制器,結合多種傳感器和技術,實現了機械臂的智能識別與控制功能,可完成倉庫貨物的識別、搬運等任務,并支持多種控…

Codeforces Round 1023 (Div. 2)

Dashboard - Codeforces Round 1023 (Div. 2) - Codeforces 一個構造問題&#xff0c;我把最大的數放在一個數組&#xff0c;其余數放在另一個數組&#xff0c;就能保證gcd不同 來看代碼&#xff1a; #include <bits/stdc.h> using namespace std;int main() {int t;ci…

6.01 Python中打開usb相機并進行顯示

本案例介紹如何打開USB相機并每隔100ms進行刷新的代碼,效果如下: 一、主要思路: 1. 打開視頻流、讀取幀 self.cam_cap = cv2.VideoCapture(0) #打開 視頻流 cam_ret, cam_frame = self.cam_cap.read() //讀取幀。 2.使用定時器,每隔100ms讀取幀 3.顯示到Qt的QLabel…

JVM——即時編譯

分層編譯模式&#xff1a;動態平衡啟動速度與執行效率 分層編譯是現代JVM&#xff08;如HotSpot、GraalVM&#xff09;實現高性能的核心策略之一&#xff0c;其核心思想是根據代碼的執行熱度動態選擇不同的編譯層次&#xff0c;實現啟動速度與運行效率的最佳平衡。以HotSpot虛…

Auto DOP:讓并行執行實現智能調優 | OceanBase 實踐

隨著數據量的迅速增長&#xff0c;企業數據庫往往面臨著一個困局&#xff1a;復雜的分析查詢需要充分的資源來保證性能&#xff0c;但過多增加并行執行又會造成資源競爭&#xff0c;影響系統穩定性。傳統基于DBA人工干預的并行度調節機制&#xff0c;既低效又難以適應動態變化的…

【區塊鏈】Uniswap之滑點(Slippage)

一、滑點是什么&#xff1f; 滑點&#xff08;Slippage&#xff09;是指你下單預期價格和最終成交價格之間的差距。 在 DEX 中&#xff0c;你的交易會影響池子的價格&#xff08;AMM機制&#xff09;&#xff0c;所以&#xff1a; 下單越大&#xff0c;滑點越大&#xff1b;…