R語(yǔ)言學(xué)習(xí)之火山圖的繪制詳解
火山圖
火山圖用于展示基因表達(dá)差異的分布,橫軸為Log2 Fold Change
,越偏離中心差異倍數(shù)越大;縱軸為(-1)*Log10 P_adjust
,值越大差異越顯著。一般橫軸越偏離中心的點(diǎn)其縱軸值也會(huì)比較大,因此呈現(xiàn)火山噴發(fā)的形狀。
一步繪制火山圖
輸入數(shù)據(jù)格式
火山圖需要的數(shù)據(jù)格式如下 (本文用到的數(shù)據(jù)文件名為volcano.txt
,文末有下載鏈接,此處截取一部分作為例子,也可用來(lái)畫(huà)圖,只是數(shù)據(jù)少,效果不明顯)
- id: 不是必須的,但一般的軟件輸出結(jié)果中都會(huì)包含,表示基因名字。
- log2FoldChange: 差異倍數(shù)的對(duì)數(shù),一般的差異分析輸出結(jié)果中也會(huì)給出對(duì)數(shù)處理的值, 因此程序沒(méi)有提供這一步的計(jì)算操作。
- padj: 多重假設(shè)檢驗(yàn)矯正過(guò)的差異顯著性P值;一般的差異分析輸出結(jié)果為原始值,程序提供一個(gè)參數(shù)對(duì)其求取負(fù)對(duì)數(shù)。
- significant: 可選列,標(biāo)記哪些基因是上調(diào)、下調(diào)、無(wú)差異;若無(wú)此列或未在參數(shù)中指定此列,默認(rèn)程序會(huì)根據(jù)
padj
列和log2FoldChange
列根據(jù)給定的閾值自動(dòng)計(jì)算差異基因,并作出不同顏色的標(biāo)記。 - label: 可選列,一般用于在圖中標(biāo)記出感興趣的基因的名字。非
-
行的字符串都會(huì)標(biāo)記在圖上。
id log2FoldChange padj significant label E00007 4.28238 0 EHBIO_UP A E00008 -1.1036 0.476466843393901 Unchanged - E00009 -0.274368 1 Unchanged - E00010 4.62347 7.37606076333335e-103 EHBIO_UP - E00012 0.973987 0.482982440163204 Unchanged - E00017 -1.30205 0.000555693857439792 Baodian_UP B E00024 0.617636 2.78047837287061e-13 Unchanged - E00033 1.48669 2.56000581595275e-60 EHBIO_UP - E00034 -0.783716 0.00341521725291801 Unchanged - E00036 2.01592 6.03136656016401e-06 EHBIO_UP C E00040 -1.89657 4.73663890849056e-21 Baodian_UP - E00041 -0.268168 0.563429434558031 Unchanged - E00042 0.0861048 0.367700939634328 Unchanged - E00043 -1.19328 1.42673872027352e-153 Baodian_UP - E00044 -0.887981 2.43067804654905e-26 Unchanged - E00047 -0.610941 5.51696648645932e-57 Unchanged -
使用significant列繪制火山圖
# -f: 指定輸入文件,格式如上 # -x: 指定橫軸變量,值為輸入文件中與取過(guò)對(duì)數(shù)的變化倍數(shù)相關(guān)的列的名字 # -y: 指定縱軸變量,值為輸入文件中與P-value # (也可能是p-adj,是否取過(guò)對(duì)數(shù)都可以)相關(guān)的列的名字 # -P: 若為T(mén)RUE,則表示對(duì)<-y>指定的列進(jìn)行-log10轉(zhuǎn)換 # -L: 指定圖例的位置 # -s: 指定差異基因列 # -S: 指定差異基因列不同的標(biāo)簽出現(xiàn)的順序 sp_volcano.sh -f volcano.txt -x log2FoldChange -y padj -s significant -S "'EHBIO_UP', 'Baodian_UP', 'Unchanged'" -P TRUE -L top
這個(gè)圖看上去還可以,沒(méi)有太大的問(wèn)題。但有部分點(diǎn)與最頂端的線重合了,這些點(diǎn)的pvalue為0,取負(fù)對(duì)數(shù)后為負(fù)無(wú)窮。另外在一些情況下,會(huì)存在部分基因的pvalue極小,使得整張圖呈現(xiàn)一個(gè)壓縮的趨勢(shì),大部分點(diǎn)偏安于圖的下方,中間大段空白,最上面零星幾個(gè)點(diǎn)。為了避免這種情況,程序設(shè)置了參數(shù)-M
用于設(shè)定pvalue的最大的負(fù)對(duì)數(shù),所有大于給定值的數(shù),都會(huì)視為給定值。
# -M 10: 指定P-value(也可能是p-adj);若小于10^(-10),則為10^(-10) # 用于部分p-value存在異常值,導(dǎo)致整個(gè)圖都被壓縮在最底部 p_volcano.sh -f volcano.txt -x log2FoldChange -y padj -s significant -S "'EHBIO_UP', 'Baodian_UP', 'Unchanged'" -P TRUE -L top -M 10
注意看縱軸的變化,和最上面排成一條線的一堆點(diǎn)。
自動(dòng)計(jì)算significant列繪制火山圖
若不存在significant
列,程序會(huì)根據(jù)-F
指定的參數(shù)計(jì)算并標(biāo)記差異基因。-F
的默認(rèn)值為"0.05,1"
(引號(hào)是必須的), 第一個(gè)數(shù)表示pvalue或padj,對(duì)應(yīng)于<-y>列;第二個(gè)數(shù)表示對(duì)數(shù)轉(zhuǎn)換的差異倍數(shù),對(duì)應(yīng)于<-x>列。
# <-F "0.05,1">, 默認(rèn)值,故命令行中未寫(xiě),引號(hào)是必須的 sp_volcano.sh -f volcano.txt -x log2FoldChange -y padj -P TRUE -L top
# -M 10: 與之前相同 sp_volcano.sh -f volcano.txt -x log2FoldChange -y padj -P TRUE -L top -M 10
火山圖中標(biāo)記基因的名字
# -l: label,在圖中標(biāo)記部分基因的名字; # label為含有待標(biāo)記基因名字的列名,此列中非<->的非空字符都會(huì)視為基因名字 sp_volcano.sh -f volcano.txt -x log2FoldChange -y padj -P TRUE -L top -M 10 -l label
label
列中非-
的值都會(huì)標(biāo)記在圖上。
今天先到這,前天提到的富集分析圖,今天的火山圖都是散點(diǎn)圖的一種,后續(xù)介紹散點(diǎn)圖時(shí)再對(duì)用到的R代碼進(jìn)行解讀。需要繪圖腳本的,還是請(qǐng)幫助轉(zhuǎn)發(fā)下,謝謝。
數(shù)據(jù)文件鏈接 https://pan.baidu.com/s/1I3hi8Lr9IxTgNFJoN4zbag . 提取碼:1234
到此這篇關(guān)于R語(yǔ)言學(xué)習(xí)之火山圖的繪制詳解的文章就介紹到這了,更多相關(guān)R語(yǔ)言繪制火山圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
R語(yǔ)言關(guān)于卡方檢驗(yàn)實(shí)例詳解
在本篇文章里小編給大家整理了一篇關(guān)于R語(yǔ)言關(guān)于卡方檢驗(yàn)實(shí)例 內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。2021-05-05在R語(yǔ)言中實(shí)現(xiàn)Logistic邏輯回歸的操作
這篇文章主要介紹了在R語(yǔ)言中實(shí)現(xiàn)Logistic邏輯回歸的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04R語(yǔ)言開(kāi)發(fā)之CSV文件的讀寫(xiě)操作實(shí)現(xiàn)
這篇文章主要介紹了R語(yǔ)言開(kāi)發(fā)之CSV文件的讀寫(xiě)操作實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03R語(yǔ)言ggplot2拼圖包patchwork安裝使用
這篇文章主要介紹了R語(yǔ)言ggplot2拼圖包patchwork安裝使用的圖文示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06R語(yǔ)言繪圖學(xué)習(xí)教程VennDiagram繪制venn
這篇文章主要為大家介紹了R語(yǔ)言繪圖學(xué)習(xí)教程VennDiagram繪制venn的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06R語(yǔ)言時(shí)間序列TAR閾值自回歸模型示例詳解
這篇文章主要介紹了R語(yǔ)言時(shí)間序列TAR閾值自回歸模型,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03R語(yǔ)言導(dǎo)入導(dǎo)出數(shù)據(jù)的幾種方法匯總
這篇文章主要給大家總結(jié)介紹了R語(yǔ)言導(dǎo)入導(dǎo)出數(shù)據(jù)的幾種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03