science图表_Science:组合图表绘制
寫在前面
有些事情做了很痛苦,但是不做更難受。比如今天談到的這件事情,我花了一天加一個晚上時間才寫了一個這個功能:Science組合圖表的實現。這部分一共寫了三個函數,一個門特爾檢驗,一個ggplot版本的相關熱圖繪制,還有連線圖形繪制。為什么我花費了這么多時間呢?一方面這個功能的實現要想做的靈活點,就必須有一個ggplot版本的相關熱圖輪子,公開的輪子不好用,所以我自己造了一個,功能很基礎哈,只是一個雛形,但是可以作為后面組合圖表的輪子。這幾個獨立的函數也很有用,但是不細化了。
早在之前我們就推送過science組合圖表的推文了,我們做的也是比較早的,ggplot版本的,例如;
終于你也可以做這張圖了;
science 級別的組合圖表函數升級了;
science組合圖表第二次重大升級了;
最終版本Science級組合圖表繪制;
Science這張驚艷圖表終于完成了:最終穩定版本;
最后最好用的出現了,雖然在分析微生物數據上還有點小瑕疵,但是已經非常舒服了,但是這個包已經被作者刪除,厚哥表示不會在公開這個包。半年來大家的需求似乎不斷,本來從第四個版本以來我放棄了這個圖形的開發,因為開發的沒有厚哥的好,所以就擱置了一年,到如今,我只能撿起來繼續做一些工作,盡量讓這個功能好用點。還有就是任何問題的解決方案都不應該只有一個,太容易就斷掉了,所以增加一種問題的解決方法,雖然不一定是最好的,也是有必要的。我也沒有參考厚哥之前的代碼,自己實現,達到一個功能也是挺有意思的,就是浪費了好多時間,代碼也不夠成熟,慢慢提升吧,實用性后再優化。
MatCorPlot函數參數解釋
env.dat = env1 其他指標表格,參見要求
tabOTU = tabOTU1 otu表格,list文件,最多三個。
distance = “bray”群落距離計算方法,這里就兩種 bray和jcd。
method = “metal” 門特爾檢驗方法, 這里兩種,另外一種是偏門特爾檢驗。
x = F 是否設置x軸標簽。
y = F 是否設置y軸標簽
diag = T 是否設置對角線標簽。
sig = TRUE 是否僅僅展示顯著的色塊
siglabel = FALSE 顯著色標是否標記星號
shownum = TRUE 是否展示相關值
numpoint = 色塊point類型,默認22號方塊,直接使用pch編號即可更換。注意必須更換具有fill屬性的編號。
numsymbol = 27 這是symbol,擴展了ggplot中point類型,如果要使用,則需要另外安裝R包ggsymbol。需要github安裝
numpoint2 這部分只可以使用ggplot中的pch點形狀,默認21號點,控制link部分點形狀。
lacx = “left” 相關熱圖展示方向,x軸,可選“right”
lacy = “bottom” 相關熱圖展示方向,y軸,可選“top”
range = 0.5 連線整體粗細變化,值越大變化越大。
p.thur = 0.3 顯著性閾值
onlysig = F 是否只展示顯著性的連線。
實戰
注意這個功能為2020年11月29號加入,之前安裝的沒有這個功能。
devtools:: install_github("taowenmicro/ggClusterNet")需要R包和數據(內置)
library(phyloseq)library(ggClusterNet)
library(tidyverse)
data(ps)
ps1 = filter_taxa(ps, function(x) sum(x ) > 200 , TRUE);ps1## phyloseq-class experiment-level object
## otu_table OTU Table: [ 442 taxa and 18 samples ]
## sample_data Sample Data: [ 18 samples by 10 sample variables ]
## tax_table Taxonomy Table: [ 442 taxa by 7 taxonomic ranks ]
## phy_tree Phylogenetic Tree: [ 442 tips and 441 internal nodes ]otu = as.data.frame(t(vegan_otu(ps1)))
mapping = as.data.frame( sample_data(ps1))
data(env1)
關于微生物組數據的要求:要求很簡單,將otu表格作為list對象即可,就像下這樣,多個optu表格自然都添加進去list對象即可。
其他指標數據要求:一張數據框,行名是樣本,列名字是指標。
tabOTU1 = list(otu1 = otu)data(env1)
默認參數會會給出一套解決方案,當然可以換
# ?MatCorPlotp0 p0
numpoint2改變link部分點形,并標記顯著性,去除不顯著的元素,標記顯著的R值。
p1 env.dat = env1,tabOTU = tabOTU1,
numpoint2 = 22,
sig = F,
lacx = "right
總結
以上是生活随笔為你收集整理的science图表_Science:组合图表绘制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三星 Galaxy Z Fold 5 折
- 下一篇: 使用实例_EM菌使用实例