Co-occurrence网络图绘制教程(附详细代码)

Co-occurrence网络图绘制教程(附详细代码)

前段时间阅读微生物生态学的文章总能看见有关co-occrrence这类的网络图,用来表示ARG的潜在宿主。例如下面这张图:

在这里插入图片描述

第一次看到这张图的时候感觉好厉害的,后来自己到处问问也打听到了相关的绘制方法。方法有很多种,但是本文用的就是R和Gephi。之前见《宏基因组》公众号中也出过相关的教程,但是好像很多人做到一半就卡壳了。之前也尝试去复现了一下,发现没有成功。后来自己整理了一下这个过程,主要分为两个部分:1、使用R语言获得网络图源数据;2、使用Gephi对得到的图形源数据进行可视化。

R语言计算网络图源数据

code读入data的样式(行表示不同的样本,列表示不同种类的属级微生物):

在这里插入图片描述

完整code:

data <- read.csv('data.csv',row.names=1)#读入数据
speciesandgene <- t(combn(colnames(data),2))#得到所有属级微生物的排列组合结果即为两列数据
library(Hmisc)#使用Hmisc包
randp <- rcorr(as.matrix(data),type = 'pearson')#使用rcorr函数计算相关系数,至于为什么使用这个包详见这篇博客https://blog.csdn.net/yangqijia1/article/details/119874420?spm=1001.2014.3001.5502
r <- randp$r#得到相关系数的矩阵
p <- randp$P
r[!lower.tri(r,diag = F)] <- NA#获取下三角矩阵并把对角线的值去掉
r <- matrix(c(r))
r <- matrix(r[complete.cases(r),])#把相关系数矩阵转化为一列数据
p[!lower.tri(p,diag = F)] <- NA#P值的处理过程和R一致,最后得到一列数据
p <- matrix(c(p))
p <- matrix(p[complete.cases(p),])
res <- cbind(speciesandgene,r,p)#把第二行的结果(所有的微生物排列组合结果)和相关系数值、P值组合在一起
res <- subset(res,res[,3]>=0.6&res[,4]<=0.05)#按照一定的阈值对结果进行筛选
write.csv(res,file = 'res.csv',row.names = F)#把结果导出为csv格式的表格

以上code得到的未筛选结果(第一二列对应不同微生物的排列组合结果,第三列为相关系数值,第四列为P值):

在这里插入图片描述

最后就是利用得到这个数据进行可视化即可

Gephi软件进行可视化

Gephi软件的可视化教程详见B站:https://www.bilibili.com/video/BV1cB4y1N77j/,各位有问题可以B站后台私信up主。

  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 23
    评论
### 回答1: co-occurrence network分析是一种基于共现关系构建网络的方法,用于研究多个元素之间的关系。该方法可以应用于各种领域,如社交网络、生物学、文本分析等。通过分析元素之间的共现频率和模式,可以揭示它们之间的关联性和结构特征,进而帮助我们理解复杂系统的运作机制和演化规律。 ### 回答2: Co-occurrence network分析是一种常用于语言学、社会学、生态学等领域的分析方法,用于研究大量数据集中不同单元(如词语、物种、人物等)之间的相互关系。该方法基于单元之间出现的频率和共现情况,将它们构建成网络模型,从而揭示单元之间的联系和特征。 该分析方法的基本步骤包括:定义单元、确定共现关系、构建网络和进一步分析。在第一步中,需要确定研究的单元,对于语言学的研究就可以是单词或者短语,对于生态学的研究就可以是物种。在第二步中,根据数据集中单元的共现情况,可以采用不同的计算方法来确定单元之间的关系,如用余弦相似度、相关系数或者Jaccard相似性等方法计算它们之间的相似程度。在第三步中,将计算得到的结果构建成网络,单元作为节点,并且根据相似性建立节点之间的联系。在第四步中,可以进一步对网络进行可视化分析和统计分析,以揭示单元之间的重要性、物种的多样性和生态系统的稳定性等。 使用co-occurrence network分析方法可以为研究者提供重要的信息,帮助他们发现隐藏在大量数据背后的规律和关系。例如,在语言学的研究中,可以通过分析不同单词之间的共现关系,研究语境的影响和语言演化,识别文化信息和语言隐喻等;在生态学的研究中,可以探索物种之间的相互作用和稳定性,预测生态系统的响应和演变等。 总之,co-occurrence network分析是一种有效的工具,可以帮助研究者发现单元之间的关系,探索数据集中的隐含规律,为不同领域的研究提供新的方法和思路。 ### 回答3: Co-occurrence network分析是一种用于探索元素之间关联性的数据建模技术。该技术将元素之间的共存关系作为网络中的节点链接起来,以发现元素之间的相互作用和关联。这种方法适用于多个学科领域中的许多应用,例如社交网络分析、自然语言处理、生态学和医疗研究等。在社交网络分析中,Co-occurrence network分析可以揭示社区的结构和相互之间的关联。在自然语言处理方面,Co-occurrence network分析可以帮助发现不同词语之间的关联,以及这些关联如何在一段文本中相互作用,帮助识别命名实体。在生态学研究中,可以利用Co-occurrence network分析查看物种之间的相互依赖性,特别是在食物网和生态系统方面。在医疗研究领域,Co-occurrence network分析可用于研究不同疾病和症状之间的关联,以及在药物治疗上的相互作用。 Co-occurrence network分析的基本步骤包括: 1. 收集数据:Co-occurrence network分析的第一步是收集数据,通常是从一个大型数据集中收集数据,这个数据集可以是文本、社交媒体上的评论、生态学野外调查或医疗病例等。 2. 数据预处理:在建立Co-occurrence network之前,必须对数据进行预处理。这包括去除停用词、标点符号、数字、特殊字符等。它还可能需要进行词形变化处理、词干提取和LEMMA等。 3. 构建Co-occurrence matrix:构建Co-occurrence matrix是Co-occurrence network分析的关键步骤之一。这个矩阵记录了元素之间的共存关系,其中每个元素可以是物种、单词或其他类型的元素。矩阵的每层键代表一个元素,每个值表示该元素和其他元素之间的共现次数。 4. 计算相关性/相似性:在构建Co-occurrence matrix之后,利用协方差的方法计算相关性矩阵或利用余弦相似度方法计算文本的相似度。 5. 可视化:最后使用网络分析工具对Co-occurrence network进行可视化展示,以便用户更好地理解各元素之间的关系。 总之,Co-occurrence network分析是一种有用的方法,它能够帮助解析和发掘不同类型的数据及元素之间的关系,为一系列应用领域提供了一种简单而有效的方法来分析数据和发现知识。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨杨杨杨杨齐家

孩子想喝冰红茶/(ㄒoㄒ)/~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值