R語(yǔ)言-使用ggplot2繪制測(cè)序深度圖

本文展示如何使用ggplot2包繪制測(cè)序reads深度分布圖咽斧,即用條形圖來(lái)展示每個(gè)位點(diǎn)的測(cè)序深度椒袍,以及用餅圖來(lái)展示檢出病原的分布抢埋。

  • 作圖數(shù)據(jù)說(shuō)明
  • 傳遞文件1“VM00986.hist.data”烧董,為測(cè)序reads深度,第一列堿基位置剂习,第二列序列數(shù)蛮位,內(nèi)容如下:
    VM00986.hist.data
  • 傳遞文件2“VM00986.txt”,指定坐標(biāo)軸及圖標(biāo)題鳞绕,內(nèi)容如下:
    VM00986.txt
  • 傳遞文件3“VM00986.pie.data”失仁,第一列為檢出病原名稱,第二列為序列數(shù)们何,第三列為百分比萄焦,內(nèi)容如下:
    VM00986.pie.data
  • 繪圖腳本說(shuō)明
### 使用ggplot2繪制測(cè)序深度的條形圖、餅圖

library(ggplot2)
library(gridExtra) ## gridExtra包常用于控制圖形的復(fù)雜布局和繪制文本表冤竹,如把幾張圖拼成一組圖

## 傳遞參數(shù)
args <- commandArgs(TRUE)

## 讀取數(shù)據(jù):args[1]為文件"VM00986.hist“,用于畫條形圖
data1 <- read.table(args[1],sep="\t") 
x1 <- data1[,1]  ## data1第一列:堿基位置
y1 <- data1[,2]  ## data2第二列:序列數(shù)拂封,若數(shù)值差異較大可執(zhí)行下一步的"截?cái)嘧鴺?biāo)軸",若不需要直接跳過(guò)下一步鹦蠕。

## 截?cái)嘧鴺?biāo)軸:將序列數(shù)大于600的值全部替換成600
n<-nrow(data1)  ## 計(jì)算行數(shù)
y1<-c(1:n)
for(i in 1:n){
  if (data1[i,2]>600) 
   data1[i,2]<-600
   y1[i]<-data1[i,2]
}
## 截?cái)嘧鴺?biāo)軸

## 讀取數(shù)據(jù):args[2]為文件"VM00986.txt“,用于畫條形圖
data2 <- read.table(args[2],header=FALSE,sep="\t")  
a <- data2[1,]   ## 第一行:x軸標(biāo)題
b <- data2[2,]   ## 第二行:圖標(biāo)題
c <- data2[3,]   ## 第三行:y軸標(biāo)題

## ggplot繪制條形圖
p1 <- ggplot(data1,aes(x=x1)) +
        geom_bar(aes(y=y1),stat="identity") +
        labs(x=a,title=b)+ylab(c) +                   ## x軸標(biāo)題冒签、圖標(biāo)題、y軸標(biāo)題
        theme(plot.title = element_text(hjust=0.5),   ## 圖標(biāo)題居中
              title=element_text(size=9),             ## 圖標(biāo)題字體大小
              axis.title.x=element_text(size=10),     ## x軸標(biāo)題字體大小
              axis.title.y=element_text(size=10)) +   ## y軸標(biāo)題字體大小
      scale_x_continuous(breaks = c(0,50,100,150,200,250,300,350,400,450))  ## x軸刻度標(biāo)簽

## 讀取數(shù)據(jù):args[3]為文件"VM00986.pie“,用于畫餅圖
data3 <- read.table(args[3],header=TRUE,sep="\t")           

## 設(shè)置圖例標(biāo)題d:“microbe(n= reads)"
d <- paste("microbe (n=",sum(data3[,2])," reads)",sep="")

## 設(shè)置系列x標(biāo)題:比如“Others (n=419, 0.89%)”,round()求百分比钟病,保留2位小數(shù)
x2 <- paste(data3[,1]," (n=",data3[,2],", ",round(data3[,3]*100,2),"%",")",sep="")
y2 <- data3[,2]  ## 第二列:y值

## 設(shè)置主題樣式:theme_minimal()簡(jiǎn)約主題萧恕,去除xy軸字體和標(biāo)題刚梭,去除邊框線和網(wǎng)格線
blank_theme <- theme_minimal()+theme(axis.title.x = element_blank(),
                                     axis.title.y = element_blank(),
                                     axis.text.x = element_blank(),
                                     axis.text.y = element_blank(),
                                     panel.border = element_blank(),
                                     panel.grid=element_blank())

## ggplot繪制餅圖
p2 <- ggplot(data3,aes(x=factor(1),fill=factor(x2,order=TRUE,levels=x2))) +  
        geom_bar(stat="identity",aes(y=y2), colour="black", size = 0.1) +   ## stat="identity":條形的高度表示數(shù)據(jù)的值,而數(shù)據(jù)的值是由aes()函數(shù)的y參數(shù)決定的票唆;colour=邊框線的顏色朴读;size=粗細(xì)
        coord_polar(theta="y",start=1.5) +   ## 準(zhǔn)換成餅圖,start=起始位置
        labs(fill=d) +                       ## 圖例標(biāo)題d
        blank_theme +
        scale_fill_manual(values=c("grey80","grey70","grey60","grey50","grey40"))    #填充顏色:根據(jù)系列x的數(shù)量惰说,更改顏色參數(shù)的個(gè)數(shù)

## 將兩張圖拼成一張:排列為ncol列磨德、nrow行
p3 <- grid.arrange(p1,p2,ncol=1)
  • 運(yùn)行腳本:操作環(huán)境cmd (傳遞參數(shù))

> D:     ## 切換路徑 
> cd D:\工作資料\科研項(xiàng)目\贛州人民醫(yī)院\ICU-鐘振洲\結(jié)果圖\測(cè)序深度圖
> Rscript.exe depth.R VM00986.hist.data VM00986.txt VM00986.pie.data  ## 輸出文件“Rplot.pdf”缘回,結(jié)果如下:
hist-pie.pdf

結(jié)果發(fā)現(xiàn)餅圖中后四種病原的比例過(guò)小吆视,可重新畫一個(gè)放大版的餅圖:

  • 使用ggplot2繪制餅圖

  • 作圖數(shù)據(jù)說(shuō)明
  • 元數(shù)據(jù)文件“pie.data”,第一列為檢出病原名稱酥宴,第二列為序列數(shù)啦吧,第三列為百分比,內(nèi)容如下:
    pie.data
  • 繪圖腳本說(shuō)明
### 使用ggplot2繪制餅圖
library(ggplot2)

## 讀取數(shù)據(jù):餅圖
data <- read.table("pie.data",header=TRUE,sep="\t")

## 設(shè)置圖例的標(biāo)題:比如“microbe(n= reads)",sep=""分隔符為空白
title <- paste("microbe (n=",sum(data[,2])," reads)",sep="")

## 設(shè)置系列名稱x:比如“Others (n=419, 0.89%)”,round()保留2位小數(shù)
x <- paste(data[,1]," (n=",data[,2],", ",round(data[,3]*100,2),"%",")",sep="")

## y值為第2列
y <- data[,2]

## 設(shè)置主題樣式:theme_minimal()簡(jiǎn)約主題拙寡,去除xy軸字體和標(biāo)題授滓,去除邊框線和網(wǎng)格線
blank_theme <- theme_minimal()+theme(axis.title.x = element_blank(),
                                     axis.title.y = element_blank(),
                                     axis.text.x = element_blank(),
                                     axis.text.y = element_blank(),
                                     panel.border = element_blank(),
                                     panel.grid=element_blank())
## ggplot繪制餅圖
p2 <- ggplot(data,aes(x=factor(1),fill=factor(x,order=TRUE,levels=x)))+
      geom_bar(stat="identity",aes(y=y),size = 0.1, colour="black")+   #條形圖轉(zhuǎn)換成餅圖,colour邊框顏色
      coord_polar(theta="y",start=1.5)+   #彎曲橫縱坐標(biāo),start起始位置90度
      labs(fill=title)+         #圖例標(biāo)題
      blank_theme+
      scale_fill_manual(values=c("grey70","grey60","grey50","grey40"))    #根據(jù)檢出病原的數(shù)量肆糕,更改顏色參數(shù)的個(gè)數(shù)
p2    ## 將結(jié)果保存為pdf格式般堆,如下圖所示:
pie.pdf
  • 圖片拼接:AI軟件

使用AI軟件打開(kāi)上述兩個(gè)結(jié)果圖的PDF文件,調(diào)整為如下格式即可:


VM00986.pdf
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末诚啃,一起剝皮案震驚了整個(gè)濱河市淮摔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌始赎,老刑警劉巖和橙,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異造垛,居然都是意外死亡魔招,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門五辽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)办斑,“玉大人,你說(shuō)我怎么就攤上這事杆逗∠绯幔” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵髓迎,是天一觀的道長(zhǎng)峦朗。 經(jīng)常有香客問(wèn)我,道長(zhǎng)排龄,這世上最難降的妖魔是什么波势? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任翎朱,我火速辦了婚禮,結(jié)果婚禮上尺铣,老公的妹妹穿的比我還像新娘拴曲。我一直安慰自己,他們只是感情好凛忿,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布澈灼。 她就那樣靜靜地躺著,像睡著了一般店溢。 火紅的嫁衣襯著肌膚如雪叁熔。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,144評(píng)論 1 285
  • 那天床牧,我揣著相機(jī)與錄音荣回,去河邊找鬼。 笑死戈咳,一個(gè)胖子當(dāng)著我的面吹牛心软,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播著蛙,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼删铃,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了踏堡?” 一聲冷哼從身側(cè)響起猎唁,我...
    開(kāi)封第一講書(shū)人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎暂吉,沒(méi)想到半個(gè)月后胖秒,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡慕的,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年阎肝,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肮街。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡风题,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嫉父,到底是詐尸還是另有隱情沛硅,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布绕辖,位于F島的核電站摇肌,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏仪际。R本人自食惡果不足惜围小,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一昵骤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧肯适,春花似錦变秦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至刘绣,卻和暖如春樱溉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背额港。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工饺窿, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留歧焦,地道東北人移斩。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像绢馍,于是被迫代替她去往敵國(guó)和親向瓷。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345