NICOLSON的个人博客分享 http://blog.sciencenet.cn/u/NICOLSON

博文

综合利用igraph-Gephi-Cytoscape进行微生物群落的共现网络分析

已有 20719 次阅读 2020-5-11 14:54 |个人分类:网络分析|系统分类:科研笔记

综合利用igraph-Gephi-Cytoscape进行微生物群落的共现网络分析

 

 

第一步:利用R软件中igraph包进行网络构建

https://blog.csdn.net/woodcorpse/article/details/78737867

 

# 安装需要的包,默认不安装,没安装过的请取消如下注释

install.packages("igraph")

install.packages("psych")

install.packages("Hmisc") 


加载包

library(igraph)

library(psych)

library(Hmisc)

 

# 读取otu-sample矩阵,行为sample,列为otu

otu = read.table("FH100.txt", head=T, row.names=1)

 

# 输入文件FH100.txt格式

1.png

 

# 计算少量样品OTU间两两相关系数矩阵

 occor = corr.test(otu,use="pairwise",method="spearman",adjust="fdr",alpha=.05)

 occor.r = occor$r # 取相关性矩阵R

 occor.p = occor$p# 取相关性矩阵p

 

 

# 计算大量OTU间两两相关系数矩阵

#occor<-rcorr(as.matrix(otu),type = "spearman")

#occor.r = occor$r # 取相关性矩阵r

#occor.p = occor$P # 取相关性矩阵P值, P大写!

#Multiple testing correction using Benjamini-Hochberg standard false discovery rate correction ("FDR-BH")

#occor.p<-p.adjust(occor.p, method="BH")

 

# 确定物种间存在相互作用关系的阈值,将相关性R矩阵内不符合的数据转换为0

occor.r[occor.p>0.05|abs(occor.r)<0.6] = 0

 

#保存相关性结果

write.csv(occor.r," FH100_r.occor.0.05.0.6.csv")

write.csv(occor.p," FH100_p.occor.0.05.0.6.csv")


# 构建igraph对象

igraph = graph_from_adjacency_matrix (occor.r, mode="undirected", weighted=TRUE, diag=FALSE)

igraph

 

# igraph weight属性赋值到igraph.weight

igraph.weight = E(igraph)$weight

 

# 简单出图

# 设定随机种子数,后续出图都从同一随机种子数出发,保证前后出图形状相对应

set.seed(123)

plot(igraph, main="Co-occurrence network",vertex.frame.color=NA, vertex.label=NA, edge.width=1, vertex.size=5, edge.lty=1, edge.curved=TRUE, margin=c(0,0,0,0))

 

#统计正相关和负相关

sum(igraph.weight>0)# number of positive correlation

sum(igraph.weight<0)# number of negative correlation

 

#选择GraphML格式导出:

write_graph(igraph, " FH100.graphml","graphml")

 

 

#CK随机网络的构建

g <- erdos.renyi.game(100, 359, "gnm") #构建与100个点359个边的随机网络

 

#计算随机生成10000次指定网络节点数与网络边数随机网络的Average path length(APL)平均值和标准差

apl<-mean(replicate(10000, average.path.length(erdos.renyi.game(100, 359, "gnm"))))

apl

apl.sd<-sd(replicate(10000, average.path.length(erdos.renyi.game(100, 359, "gnm"))))

apl.sd

 

 

#计算随机生成10000次指定网络节点数与网络边数随机网络的聚集系数(Clustering coefficient)平均值和标准差

cc<-mean(replicate(10000, transitivity(erdos.renyi.game(100, 359, "gnm"))))

cc

cc.sd<-sd(replicate(10000, transitivity(erdos.renyi.game(100, 359, "gnm"))))

cc.sd

 

#计算随机生成10000次指定网络节点数与网络边数随机网络的modularity(M)平均值和标准差

f <- function() {

    g <- erdos.renyi.game(100, 359, "gnm")

    fc <- cluster_fast_greedy(g, weights=NULL)

    modularity(g, membership(fc))

}

 

mo<-mean(replicate(10000, f()))

mo

mo.sd<-sd(replicate(10000, f()))

mo.sd

 


第二步:利用Gephi软件进行可视化

 

将生成的"FH100.graphml"网络,导入Gephi,在数据资料界面,分别导出点文件和边文件,进行编辑,如下

 

点文件:

2.png

 

边文件:

3.png

 

将编辑后的点文件和边文件重新导入Gephi文件,在预览界面,选择布局(一般选择Fruchterman Reingold),设置节点大小(以丰度Abundance或度Degree为指标)和颜色(以门Phylum或模块Modularity为指标),设置边的颜色(正负PN),并点击应用,在界面右侧的统计中点击运行;

4.png

 

 

在预览界面设置边的颜色(选择original)、粗细(调整Max. rescaled weight),显示标签等,更换参数需时时刷新,并导出图片。

5.png

 

 

 

 

第三步:利用Cytoscape软件进行ZP值、度分布等计算

http://blog.sciencenet.cn/blog-3334560-1174680.html

http://www.iasi.cnr.it/~dsantoni/GIANT/giant.html

 

6.png

Cumbo et al. (2014) GIANT: A Cytoscape Plugin for Modular Networks. Plos One 9 e105001

 

7.png

Jiang et al. (2016) Crop rotations alter bacterial and fungal diversity in paddy soils across East Asia. Soil Biology & Biochemistry 95 250-261.

 

 

整理好网络TXT文件:

8.png

 

打开CytoscapeFile-Import-Network-File...,选择网络TXT文件,设置source nodetarget node

9.png

 

然后打开Apps -- GIANT对话框,导入当前网络(1),选择构建Cluster2),利用MCL反复构建Cluster3),计算(4),关闭MCL窗口后,计算(5)。

10.png

 

结果如下图所示,可将结果导出

11.png

 

 

 

 




https://blog.sciencenet.cn/blog-2675068-1232690.html

上一篇:2014 Environmental Microbiology: 全球污水处理厂活性污泥中细菌组装的分类相关性
下一篇:2004--Clostridium straminisolvens sp.nov.,一种从纤维素降解菌群中分离的中度嗜热
收藏 IP: 124.16.173.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-25 19:31

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部