点击上方蓝色「宏基因组」关注我们!专业干货每日推送!

原文为自自Microbial association network construction tutorial http://psbweb05.psb.ugent.be/conet/microbialnetworks/index.php

简介Introduction

本文提供MENA, LSA, SparCC和 CoNet四种网络构建方法,作者为CoNet作者。由宏基因组公众号翻译整理,并补充及更新部分程序参数。
说明:计算过程在Ubuntu16.04系统的服务器,没服务器的伙伴可以使用QIIME提供的虚拟机;网络可视化在Win10上安装Cytoscape展示及导出。

必须软件Prerequisites

  • 最新版Windows版 Cytoscape下载并安装  http://www.cytoscape.org/

  • 在Cytoscape的App Manager中安装CoNet和CytoCluster http://systemsbiology.vub.ac.be/conet

  • 注册MENA web server: http://129.15.40.240/mena/

  • 安装LSA http://hallam.microbiology.ubc.ca/fastLSA/install/index.html

    cd /mnt/bai/public/bin
    wget http://hallam.microbiology.ubc.ca/fastLSA/resources/fastLSALinux.tar.gz
    tar xvzf fastLSALinux.tar.gz
    cd fastLSALinux
    g++ fastLSA.cpp pnorm.cpp lsaPack.cpp thread.cpp lsaParse.cpp -o fastLSA -pthread
  • Spacc安装 https://bitbucket.org/yonatanf/sparcc

    cd /mnt/bai/public/bin
    wget https://bitbucket.org/yonatanf/sparcc/get/05f4d3f31d77.zip
    unzip yonatanf-sparcc-05f4d3f31d77.zip
    mv yonatanf-sparcc-05f4d3f31d77 sparcc
  • 注册在线微生物管理平台Qiita: microbial study management platform https://qiita.ucsd.edu/ # username: woodcorpse@163.com

  • 安装biom: include by QIIME,末安装可先参考安装QIIME

  • 安装R包igraph用于可视化SparCC结果

    sudo R
    source("https://bioconductor.org/biocLite.R")
    biocLite("igraph")

示例数据 Data

Environmental Microbiology 12(11), 2998-3006 (2010).
http://psbweb05.psb.ugent.be/conet/microbialnetworks/files.php

# 进入工作目录下载相关文件
cd /mnt/bai/yongxin/test/microbial_network
# 下载OTU表
wget http://psbweb05.psb.ugent.be/conet/microbialnetworks/documents/arctic_soils.biom
# 下载实验设计文件mapping file
wget http://psbweb05.psb.ugent.be/conet/microbialnetworks/documents/arctic_soils_mapping_file.txt
# 转换biom为txt,并带物种信息
biom convert -i arctic_soils.biom -o arctic_soils1.txt --to-tsv --header-key taxonomy
# 筛选SampleID和pH值列,并去掉第一行#号
cut -f 1,20 arctic_soils_mapping_file.txt|sed 's/#//g' > arctic_soils_features1.txt
# 用qiime script / R过滤OTU表中每行reads count > 20的OTU,并不需要物种信息,作为另三个软件的输入
filter_otus_from_otu_table.py -n 20 -i arctic_soils.biom -o arctic_soils_filter.biom
biom convert -i arctic_soils_filter.biom -o arctic_soils_filter.txt --to-tsv## 或下载转换和筛选好的OTU table和实验设计
# 下载预转换的biom为txt格式,带物种信息,并筛选部分结果及调整格式,conet输入文件,与biom转换的结果一致
wget http://psbweb05.psb.ugent.be/conet/microbialnetworks/documents/arctic_soils.txt
# 过滤reads count > 20的OTU,且无物种注释,过滤掉的count求和归为summed-nonfeat-rows行。该文件做为其它软件输入
wget http://psbweb05.psb.ugent.be/conet/microbialnetworks/documents/arctic_soils_filtered.txt
# 过滤的mapping file,对OTU表对应,conet输入
wget http://psbweb05.psb.ugent.be/conet/microbialnetworks/documents/arctic_soils_features.txt

MENA

http://129.15.40.240/mena/  自己注册个新用户

  • 上传数据:Upload your dataset, arctic_soils_filtered.txt

  • 构建网络:Construct the network, 选择数据submit,参数为1,keep blank, do not take alogarithm,其它为默认,Submit

  • 查看结果:回主界面,点击Search datasets and networks,每个有项目名、参数和最右边有运行状态,done为完成;点结果列表的名字可看结果,选择不同参数构建网络 Constrcut the netowrk;

  • 分析网络:Analyze the networks — Network reports,点击每项按默认参数执行; 如Global Network properties,网络属性,如边、点数据信息;Individual nodes’ centrality为每个点的属性,如node.degree, Clustering.Coefficient;Module Separation and modularity calculation

  • 可视化:分析网络中的可视化,可以在线简单成像,也可下载cytoscape格式sif文件及边点注释文件本地分析;并替换所有_为-,替换np为pp,便于后期与Conet比较

    sed -i 's/_/-/g' * # replace all underscores by dashes in the sif file as well as in the node attribute
    sed -i 's/np/pp/g' arctic\ 0.540.sif # replace all instances of np by pp in the sif file
  • Cytoscapes分析:打开软件

  1. 打开网络文件 File — Import — Network — File — arctic 0.540.sif;

  2. 打开点属性 File->Import->Table->File — node attribution文件;

  3. 布局设置 Layout->yFiles Layouts->Organic;

  4. 设置颜色 style,在样式右链下前头中选择 new style,输入名字如“mena”,再设置Fill color的Map选项,Column选择No. module按模块编号上色,Mapping type选择Discrete Mapping,再手动调置每一类的颜色。

  5. 导出位图和矢量图;File - Export - Network view as Graph - 分别选择pdf和png保存,png大小为200%,dpi=300;但有时图像尺寸会有问题,需要用AI调整PDF,再输出png或tiff;调整后结果如下:保存至本地。

LSA

LSA是本地相似分析(local similarity analysis)的缩写。主要研究网络在时间序列上的变化。本测试数据没有时间序列,只演示软件使用,详细见文章。

  • 运行程序,计算网络

    /mnt/bai/public/bin/fastLSALinux/fastLSA -i arctic_soils_filtered.txt -o arctic_soils_lsa.txt -d 3 -a 0.01 > lsa.log
    # d代表时间序列的最大延迟,a代表显著性阈值
  • Cytoscape可视化

  1. 打开arctic_soils_lsa.txt网络文件,选择index1为source node,index2为target node,其它默认为边属性,确定;

  2. 自动调整布局:Layout->yFiles Layouts->Organic

  3. 形状设置:建立LSA样式;我们设置的d延迟有三级,可以选择边Edge的源键头形状Source Arrow Shape的Map属性,Column选择按lag分类,类型为Discrete,再设置各种箭头形状;

  4. 保存session为LSA,导出PDF名为LSA,建议先调整大小显示整个网络,默认输出显示区域;File - Export - Network view as Graph - PDF;再用AI调整大小、位置,最后导出PNG;

SparCC

网络接口工具,对数据组成的的鲁棒性更强(0和极大值处理更好);

# 计算相关系数 Compute correlations
python /mnt/bai/public/bin/sparcc/SparCC.py arctic_soils_filtered.txt -i 10 --cor_file=arctic_soils_sparcc.txt > sparcc.log # -i 是迭代次数并求平均# 重采样 Compute bootstraps
python /mnt/bai/public/bin/sparcc/MakeBootstraps.py arctic_soils_filtered.txt -n 100 -t boot_#.txt -p Resamplings/# 对采样计算相关系数,方法默认SparCC,支持pearson, spearman和kendall
mkdir Bootstraps
for i in `seq 0 99`
dopython /mnt/bai/public/bin/sparcc/SparCC.py Resamplings/boot_$i.txt -i 10 -a SparCC --cor_file=Bootstraps/sim_cor_$i.txt >> sparcc.log
done# 计算Pvalue Compute p-values
python /mnt/bai/public/bin/sparcc/PseudoPvals.py arctic_soils_sparcc.txt Bootstraps/sim_cor_#.txt 10 -o sparcc_pvals_two_sided.txt -t 'two_sided'  >> sparcc.log

相关系数矩阵结果使用R可视化,本地或Rstudio服务器

setwd("/mnt/bai/yongxin/test/microbial_network/")
# load R graph library igraph
library(igraph)
pvals=read.table("sparcc_pvals_two_sided.txt",header=TRUE,sep="\t")
pvals.mat=pvals[,2:ncol(pvals)]
# set p-values of 0 to a non-zero, small p-value so we can take the logarithm
pvals.mat[pvals.mat==0]=0.000000001
# convert into significance
sig.mat=-1*log10(pvals.mat)
# remove all edges with significance below 1
sig.mat[sig.mat<1]=0
sig.mat=as.matrix(sig.mat)
# convert adjacency matrix into a graph
sparcc.graph=graph.adjacency(sig.mat,mode="undirected")
# display the graph
layout=layout.spring
plot(sparcc.graph, layout=layout) # Spring layout was removed, we use Fruchterman-Reingold instead.

CoNet

提供组合式(ensemble-based)的网络构建,例如其结合了多种相似计算方法。组合式方法和重启计算技术可以减少计算偏差,在作者文章中有详细说明 PLoS Computational Biology 8 (7), e1002606。自从作者写了本套教程,CoNet相比其它软件被更广泛的使用。

  1. 基本配置 Basic configuration
    打开Cytoscape,在APPs菜单中选择CoNet插件即可进入程序主界面;可以手动按步配置参数,也可以在参数文件在修改再加载;我选择了后者,参数模板为 conet-permut-settings.txt ,下载后用文本编辑器(如Ultraedit, Editplus)修改,只要个性input,randscorefile和features(1.11中变更为metadata)文件的完整路径和文件名,它们分别为otu-table, 排序输出文件名和属性值(可选),我们这里使用自己实验的文件,或用前目数据准备阶段我们通过原始OTU表和Mapping file筛选的结果文件arctic_soils1.txt和arctic_soils_features1.txt(我计算的输入文件添加了1与作者提供的区别开来,作者提供了输入文件,但是没有提供获得这两个文件的过程,我根据作者描述的过程,设计和shell脚本重现了作者的输入文件方法供参考)。直接用setting load按扭,加载参数文件,并点apply应用即可,并关闭菜单。

  2. 排列 Permutation
    点GO开始计算网络和Paramutation文件(结果为什么没有网络和Paramutation文件也0值,可能是配置文件中输入输出路径或文件名错误,重新检查并加载或手动选择输入输出文件),成功会生成有点边网络数据,如果图像不可见,可以个性样式style和布局Layout-YFile Layout-Organic显示出来。保存新版1.1.1参数(作者1.0b4版本差别较大,如参数名feature更为metadata,文件只有名没有路径)至文件conet-permut.cfg。生成了252个点,9741个边的网络;

  3. 重抽样Bootstrapping
    下载conet-boot-settings.txt修改方法同permut,加载,运行,另存配置conet-boot.cfg。生成了204个点,1719个边的网络;

  4. 从随机文件恢复网络Restore network from random files
    下载 conet-restore-settings.txt修改方法同permut,加载,运行,另存1.11配置conet-restore.cfg。生成了199个点,1721个边的网络;

  5. 可视化Visualization
    Layout->yFiles Layouts->Organic,自动布局;CoNet使用的样式是软件自定义的cooccurrence_0,正负相关分别为绿和红;可以按Column选项中的分类学kindom, class, family, genus、丰度abundance、点的连线度degree、标签label上色,如Node - Fill Color - Map - Column(选择分类学纲上色class) - Map type (非连续颜色Discrete Mapping) - 手动选择每一种class的颜色。
    保存session为conet,导出PDF名为conet,建议先调整大小显示整个网络,默认输出显示区域;File - Export - Network view as Graph - PDF;再用AI调整大小、位置,最后导出PNG;

网络分析 Network analysis

  1. 比较Conet与MENA的一致性
    保存Conet为sif格式:File - Export - NetWork - conetNetwork.sif;
    修改其格式与MENA一致便于比较:用Editplus打开conetNetwork.sif,用正则表达式替换\t\t为\tpp\t;
    使用Cytoscape打开:Import - Network - File打开,
    比较点和边:Tools - Merge - 选择两网络添加至右边,选择Intersect,再点Merge; 看到只有62个点和16条边重合,重合的边极少?

  2. 全局网络分析 Global network analysis
    Tools->Network Analyzer->Network Analysis->Analyze network,选择默认的无向网络undirected,确定,可获得网络的属性的面板,包括网络参数、密度、样式路径长度和簇系数、节点度分布、节点特异属性(such as 离心率eccentricity and 中介中心性betweenness centrality)

  3. 中心节点Hub nodes
    分析后的网络点有很多属性,按degree排序即可找到中心节点,本数据为Acidobacteria。

  4. 网络聚类Network clustering
    基因表达网络中,簇用来预测未知功能的基因,与表达相似基因功能相近。微生物相关网络可以发现相似的生活方式。
    先选择正相关的边:从Cytoscape选择,没成功;CoNet输出的为正相关网络,方法链接也没説具体操作;
    打开Apps - CytoCluster,选择 OH-PIN algorithm ,点Analyze current network。结果显示在另一个面板上,有一些clusters,按由大到小排列。比如我们想分析第一个cluster的物种属性,选择cluster1,点Creat sub-network,可查看该子网按之前物种颜色分类的结果。

  5. 联合环境因素分析  Neighbors of environmental parameter
    选择pH点(没找到?),再点邻近的点,可找到相pH正或负相关的OTU

结论 Conclusions

  1. 网络是精糙无标度(适应结点度分布的权力法则)和小世界(路径长度短特点);

  2. 如果只看正相关边,网络分为两个主要的簇,由不同的分类学群主载;

  3. 如果看pH值的邻近节点,发现两个负相关的簇:一个与pH正相关,另一个相反;
    对于生物学观点,全局网络属性意义不大。然而,网络形成两个物种分类学特异的簇,暗示苔原土壤存在两个不同的微生物群落。人类也观察到在肠道和阴道中有明显不同的微生物群落。可变的微生物群落是有争意的,因为不清楚群落是否真的不同,还是梯度的渐变。我们可以接受这两种差点,因为有一些部分是重叠的。
    当探索临近的pH结点,我们看到Solibacteres和Acidobacteria在其中一个正相关簇中占主导,并与pH呈负相,意味着它们喜欢酸性环境。我们看到另一个簇中Chloracidobacteria和Alphaproteobacteria占主导,且与pH正相关。这些微生物更喜欢基础环境。
    结论是土壤pH驱动微生物群落改变。与数据原文结论一致。
    此外,我们还发现了更细分类单元与pH的相关性。如Acidobacteria门中的Chloracidobacteria纲与pH正相关,是该门中的特异的纲。结果可以根据pH反苔原土壤中的主要细菌门类。

名词解释 Resources

  1. CoNet无向网络:为什么CoNet返回的是无向网络用于选择配置。答案是所有5个选择相似、不相似和相关测量是不对称的,相似的A与B与B与A是相同的。

  2. CoNet和Cytoscape中心节点的检测:找有最多正或负相关边的节点,在Node table中,点Degree即按其排序,找到最多度的点。

  3. 从随机千分文件中恢复CoNet网络 Restore the CoNet network from random score files:为了基于之前计算好的permutations and bootstraps文件而生成网络。

  4. 正相关边的聚类:为什么只聚类正相关的边,因为我们感兴趣在一起的物种共有一些特征。大部分聚类算法不能区分正或负相关的边,负相关的也会聚类在一起。

  5. Cytoscape中选择正相关边:Select -> Use filter(找不到?), choose “edge.interactionType” as column and click “Add”. Select “copresence” and click “Apply Filter”. Go to Select -> Nodes and click “Nodes connected by selected edges”. Go to File -> New -> Network and click “From selected nodes, selected edges”. Finally, layout the network (e.g. Layout->yFiles Layouts-> Organic).

猜你喜欢

10000+:菌群分析 宝宝与猫狗 梅毒狂想曲 提DNA发Nature Cell专刊 肠道指挥大脑

系列教程:微生物组入门 Biostar 微生物组  宏基因组

专业技能:学术图表 高分文章 生信宝典 不可或缺的人

一文读懂:宏基因组 寄生虫益处 进化树

必备技能:提问 搜索  Endnote

文献阅读 热心肠 SemanticScholar Geenmedical

扩增子分析:图表解读 分析流程 统计绘图

16S功能预测   PICRUSt  FAPROTAX  Bugbase Tax4Fun

在线工具:16S预测培养基 生信绘图

科研经验:云笔记  云协作 公众号

编程模板: Shell  R Perl

生物科普:  肠道细菌 人体上的生命 生命大跃进  细胞暗战 人体奥秘

写在后面

为鼓励读者交流、快速解决科研困难,我们建立了“宏基因组”专业讨论群,目前己有国内外3000+ 一线科研人员加入。参与讨论,获得专业解答,欢迎分享此文至朋友圈,并扫码加主编好友带你入群,务必备注“姓名-单位-研究方向-职称/年级”。PI请明示身份,另有海内外微生物相关PI群供大佬合作交流。技术问题寻求帮助,首先阅读《如何优雅的提问》学习解决问题思路,仍末解决群内讨论,问题不私聊,帮助同行。

学习16S扩增子、宏基因组科研思路和分析实战,关注“宏基因组”

点击阅读原文,跳转最新文章目录阅读

微生物相关网络构建教程:MENA, LSA, SparCC和CoNet相关推荐

  1. 微生物相关网络构建教程中文Microbial association network construction tutorial

    原文为自Microbial association network construction tutorial http://psbweb05.psb.ugent.be/conet/microbial ...

  2. 微生物网络构建原理: SparCC, MENA, LSA, CoNet

    主要参考这个网站,是由CoNet的作者写的(点阅读原文直达). http://psbweb05.psb.ugent.be/conet/microbialnetworks/index.php Micro ...

  3. 【生物信息学】基于SparCC, MENA, LSA, CoNet构建微生物相互作用网络

    基于SparCC, MENA, LSA, CoNet构建微生物相互作用网络 背景介绍 网络推断技术用于宏基因组学及其存在的问题 实现方法和工具 SparCC MENA LSA CoNet SPIEC- ...

  4. SparCC的微生物网络构建示例

    SparCC的微生物网络构建示例 续前文"微生物共发生网络",本篇继续简介SparCC的网络构建方法. 基于高通量测序的技术,例如16S rRNA分析,为阐明天然微生物群落的复杂结 ...

  5. SPIEC-EASI的微生物网络构建示例

    SPIEC-EASI的微生物网络构建示例 续前文"微生物网络",本篇继续简介SPIEC-EASI的网络构建方法. 16S rRNA测序技术为揭示了微生态系统中的系统发育和微生物种群 ...

  6. ISME:微生物网络构建与分析面临的挑战

    关注我们 一起探索微生物领域的奥妙 摘要 微生物网络作为当下一种流行的数据分析方法被广泛应用于微生物群落研究.虽然目前已有许多并不断有新的微生物网络构建方法被开发出来,但与数据预处理.混杂因素.网络评 ...

  7. New Phytologist:生态中心张丽梅组-宿主选择效应塑造作物微生物组群落构建及网络复杂度...

    宿主选择效应塑造作物微生物组群落构建及网络复杂度 Host selection shapes crop microbiome assembly and network complexity New P ...

  8. 《企业网络构建与安全管理教程》上册

    <企业网络构建与安全管理项目教程>上册 近些年来,职业教育工作坚持"以服务为宗旨,以就业为导向"的办学方针,面向社会.面向市场办学,转变传统的以课堂和学校为中心的人才培 ...

  9. JIPB:白洋组综述根系微生物组群落构建及其对植物适应性的贡献

    根系微生物组:群落构建及其对植物适应性的贡献 The root microbiome: Community assembly and its contributions to plant fitnes ...

最新文章

  1. mongodb android,如何在Android中连接到MongoDB数据库?
  2. 数据仓库与数据挖掘的一些基本概念
  3. python导出数据找不到csv_找不到Python/CSV文件
  4. Rancher 2.0正式发布:简化、加速企业Kubernetes落地
  5. spark java8 scala_在 Ubuntu16.04 中搭建 Spark 单机开发环境 (JDK + Scala + Spark)
  6. bootstraptable获得所有行_郎酒领衔,2020“川酒全国行”首站香满花城
  7. 小网站asp好还是php好,网站程序是asp好还是php好,哪个更利于优化?
  8. c51单片机蜂鸣器程序C语言响,单片机蜂鸣器响生日快乐编程程序
  9. C++11新宠-Lambda函数学习
  10. 微软披露首个由中国发现的蠕虫级漏洞 奇安信代码安全实验室获致谢
  11. 在xcode6.1和ios10.10.1环境下实现app发布
  12. 统计整数的各位数字和
  13. 代码整洁之道——9、格式化
  14. python 安卓库_Python 开发安卓Android及IOS应用库Kivy安装尝试
  15. 国内社交网络信息开放平台汇总
  16. 邮编查询经纬度_行政区划省市区邮编区号拼音经纬度全面标准数据库 每月更新...
  17. demonstration记忆_单词记忆法
  18. ffmpeg MP3转wav
  19. Netty(四十一) - 心跳(heartbeat)源码剖析
  20. c语言错误1083,没有混音设备可用,启动Windows Audio服务时错误1083

热门文章

  1. 为什么分布式一定要有消息队列?
  2. 大数据开发源码视频今日免费送!
  3. 谷歌内部考核制度OKR是怎么样的?你会用OKR吗?
  4. 我们软件是如何保障用户数据安全的?
  5. 使用OKR管理好团队这四个高深的技巧要明白
  6. matlab算法开发与C++调用
  7. C++调用Python
  8. mysql字符集6_【mysql】6 字符集
  9. ci持续集成工程师前景_持续集成CI---失败原因
  10. Linux中的文件系统和磁盘管理