一鍵繪制微生物關(guān)聯(lián)網(wǎng)共現(xiàn)圖
背景:
關(guān)聯(lián)網(wǎng)絡(luò)分析主要用于尋找特定微生物群落在時(shí)空變化,環(huán)境過程驅(qū)動(dòng)下所呈現(xiàn)的共現(xiàn)(Co-occurrence)或互斥(Co-exclusion)模式,從而分析環(huán)境差異或?qū)嶒?yàn)處理是否導(dǎo)致了群落物種裝配的差異,探究微生物群落中是否存在特定的模塊單元(Module)以完成特定的生態(tài)功能,并據(jù)此尋找足以撬動(dòng)整個(gè)群落的組成變化的關(guān)鍵物種(Hubs或keystone species)。基于群落數(shù)據(jù)相關(guān)性構(gòu)建的Co-occurrence網(wǎng)絡(luò)圖。可以采用R中igraph包構(gòu)建并實(shí)現(xiàn)出圖。當(dāng)然,除此之外,還有一些非命令行的軟件,例如cytoscape,gephi,pajek等。為了探究微生物之間的關(guān)聯(lián)性,把共現(xiàn)性網(wǎng)絡(luò)引入到微生物組領(lǐng)域,開發(fā)的ggClusterNet包可以快速的繪制你想要的網(wǎng)絡(luò)圖。
主要操作內(nèi)容:
1、R環(huán)境的配置以及R包的下載
R語言下載地址https://www.r-project.org/
Rstudio下載地址:https://www.rstudio.com/products/rstudio/download/#download
R包的安裝
ggClusterNet安裝過程中需要很多依賴的安裝包,耗時(shí)會(huì)久一些,希望你耐心等待(安裝速度取決你的R環(huán)境中依賴包有多少個(gè)以前沒有下載過哦~)
#安裝ggClusterNet
devtools::install_github("taowenmicro/ggClusterNet")
2、構(gòu)建數(shù)據(jù)格式
#加載所用的包
library(ggClusterNet)
library(phyloseq)
library(tidyverse)
library(igraph)
library(sna)
library(network)
#根據(jù)自己的數(shù)據(jù)格式分別導(dǎo)入otuable、taxnomoy和metadata數(shù)據(jù)
otutable <- read.table("table.xls", header = T, sep = "\t",row.names = 1)
taxnomoy <- read.table("tax.txt", header = T,sep = "\t", fill=TRUE, na.strings = "NA", row.names = 1)
metadata <- read.table("metadata.tsv", header = T,sep = "\t", row.names = 1)
#最后得到ps的數(shù)據(jù)格式
ps <- phyloseq(sample_data(metadata),otu_table(as.matrix(otutable),taxa_are_rows = T),tax_table(as.matrix(taxnomoy)))
#構(gòu)建好后可以ps一下看一下這個(gè)數(shù)據(jù)集(主要包括otu_table()、sample_table()、tax_table()、phy_table()四個(gè)部分)
數(shù)據(jù)集的構(gòu)建是最麻煩的地方但是一旦構(gòu)建好,操作起來就很方便,希望你耐心做好這一步~
構(gòu)建好數(shù)據(jù)格式后,做共現(xiàn)網(wǎng)絡(luò)分析只需一行代碼就可以搞定,快來試一下~
3、一鍵分析
#先創(chuàng)建一個(gè)存儲(chǔ)的路徑
path1 = "./result_net/"
dir.create(path1)
result1 = network.2(ps = ps,#構(gòu)建的數(shù)據(jù)集
?????????????????N = 100, #取前豐度最高的前100
?????????????????layout_net = "model_Gephi.2", #布局格式model_Gephi.2這里我用的Gephi的
?????????????????r.threshold=0.6, #相關(guān)性的閾值
?????????????????p.threshold=0.01, #顯著性的閾值
?????????????????label = TRUE, #是否在節(jié)點(diǎn)上標(biāo)記標(biāo)簽
?????????????????path = path1, #存放的文件
?????????????????lab = "Genus", #標(biāo)簽用Genus 這里一定要與taxnomoy中列名一致
?????????????????zipi = TRUE #是否繪制zipi圖)
?
4、輸出文件解讀
(1)、有兩張pdf的關(guān)聯(lián)網(wǎng)絡(luò)圖(networkXX.pdf),是根據(jù)包中默認(rèn)的參數(shù)繪制的,但是一般圖形達(dá)不到想要的理想效果。
(2)、會(huì)輸出可以導(dǎo)入到Gephi中的邊文件和點(diǎn)文件(XX_Gephi_edge.csv、XX_Gephi_node.csv),可以導(dǎo)入到Gephi進(jìn)行調(diào)節(jié)圖的布局。
?
5、出版級(jí)圖形解讀
如下圖即為最后Gephi做出的圖:每個(gè)節(jié)點(diǎn)代表一個(gè)微生物的屬水平,顏色代表屬所在的門類,大小代表屬的相對(duì)豐度,兩個(gè)屬水平之間正相關(guān)用紅色連接,負(fù)相關(guān)用藍(lán)色連接。

ggClusterNet的包對(duì)關(guān)聯(lián)網(wǎng)絡(luò)的布局以及一些拓?fù)鋵W(xué)指數(shù)的計(jì)算都具有相應(yīng)的功能,如果想繪制出滿意的關(guān)聯(lián)網(wǎng)絡(luò)圖,就用多多探索,這里只是簡單的繪制出網(wǎng)絡(luò)圖。
?好了,這樣我們關(guān)聯(lián)網(wǎng)絡(luò)圖就完成了。小伙伴們?nèi)绻惺裁磫栴}就和小云討論吧~

