掌握ggplot2,輕松繪制基因區(qū)間長度圖!——R語言實戰(zhàn)
爾云間? 一個專門做科研的團隊
歡迎點贊+收藏+關注

相信大家都對R語言中的ggplot2包有所了解,那么你們知道怎么通過ggplot2繪制基因組的各染色體上的區(qū)間類型分布圖嘛?今天小果就來給大家演示一下!

數(shù)據(jù)集準備
在繪制之前,我們首先要準備要導入的數(shù)據(jù)集,我們可以根據(jù)自己的情況將各染色體上進行“分區(qū)”,并匯總成一個table文件,我們一起來看看小果準備的數(shù)據(jù)文件吧!

在這個數(shù)據(jù)集中,從左向右分別代表染色體編號、區(qū)域起點、區(qū)域終點、染色體名稱、區(qū)域類型、區(qū)域長度、區(qū)域號。怎么樣,你看懂了嘛?

導入數(shù)據(jù)集以及數(shù)據(jù)處理
首先,讓我們看一下這段代碼的作用。這段代碼可以讀取一個名為"newGeneArea-15.txt"的數(shù)據(jù)文件,并繪制出柱狀圖,其中每個柱子代表一段基因區(qū)域,橫坐標表示基因所在的染色體編號,縱坐標表示基因區(qū)域的長度,不同顏色的柱子代表不同的基因分段類別,例如重要性高、中、低等。
下面,我將一步一步地為大家解釋這段代碼的實現(xiàn)過程。
1.?導入ggplot2包
library(ggplot2)
ggplot2是R語言中常用的可視化包,它提供了很多種圖形類型和參數(shù)設置,可以用來繪制高質(zhì)量的數(shù)據(jù)可視化圖形哦。
2.?讀取數(shù)據(jù)文件
3.?提取染色體號并加上"Chr"前綴
這行代碼使用unique函數(shù)選出數(shù)據(jù)中唯一的染色體號,然后使用sprintf函數(shù)將它們轉(zhuǎn)換為字符串,并在每個字符串前加上"Chr"前綴。這樣做是為了后續(xù)用這些字符串來標記x軸。
4.?計算基因區(qū)域長度
這行代碼將數(shù)據(jù)表a中的第6列設置為第3列減去第2列的差,進而得到每一個基因區(qū)域的長度。
5. 根據(jù)染色體號設置對應的橫坐標上的位置列:
繪制圖形
現(xiàn)在,我們已經(jīng)完成了數(shù)據(jù)的預處理和整理,并且已經(jīng)定義了我們要使用的圖形元素和配色方案?,F(xiàn)在,讓我們用 ggplot2 包中的 ggplot 函數(shù)創(chuàng)建一個繪圖對象,用于繪制我們的圖形。我們將在此函數(shù)中指定數(shù)據(jù)框表a 作為數(shù)據(jù)源,同時指定在 x 和 y 軸上繪制的變量。
在上述的代碼中,我們使用 geom_bar 函數(shù)繪制條形圖。我們使用 "identity" 參數(shù),以使 ggplot2 包知道我們已經(jīng)使用了預處理的條形高度。我們還使用 theme 函數(shù)來進一步定制繪圖對象的外觀。
好啦,我們今天的繪圖工作已經(jīng)基本完成,我們一起來和小果看一下繪制好的圖長什么樣子吧!

圖片描述
在這個圖中,主要向大家展示了擬南芥完整基因組的5條染色體上對應的“新區(qū)域”和老區(qū)域的位置分布圖,其中藍色的部分代表“老區(qū)域”,紅色的部分代表“新區(qū)域”。同學們也可以根據(jù)自己想要展示的分區(qū)來進行設置數(shù)據(jù)集哦!
保存圖像
現(xiàn)在,我們已經(jīng)完成了圖形的繪制。我們可以使用 R 中的任何繪圖設備將圖形保存到文件中。在這里,我們將使用 png 函數(shù)將圖形保存為 PNG 文件。
完整代碼:
怎么樣,今天的分區(qū)圖表繪制你學會怎么用了嗎!
更多ggplot繪圖應用學習資源請大家移步小果專屬云生信平臺搜索更多資源哦!
小果專屬云生信平臺:云生信 ?- 學生物信息學 (biocloudservice.com)
ggplot繪制互作網(wǎng)絡圖:http://www.biocloudservice.com/703/703.php
云生信平臺也有繪圖專版的學習模塊哦,快來找小果尋找你想學習的專屬哦
生信人R語言學習必備
立刻擁有一個Rstudio賬號
開啟升級模式吧
(56線程,256G內(nèi)存,個人存儲1T)

“ 生信果”,生信入門、R語言、生信圖解讀與繪制、軟件操作、代碼復現(xiàn)、生信硬核知識技能、服務器、生物信息學的教程,以及基于R的分析和可視化等原創(chuàng)內(nèi)容,一起見證小白和大佬的成長。