- 拆分视图
-
引用
Narges Rezaie, Farilie Reese, Ali Mortazavi, PyWGCNA: a Python package for weighted gene co-expression network analysis, , Volume 39, Issue 7, July 2023, btad415, https://doi.org/10.1093/bioinformatics/btad415
-
Share Icon
共享
摘要
加权基因共表达网络分析(WGCNA)经常用于识别在许多RNA-seq样本中共表达的基因模块。然而,目前的R实现很慢,不是设计用于比较多个WGCNA网络之间的模块,其结果可能很难解释和可视化。我们引入了PyWGCNA Python包,该包旨在从大型RNA-seq数据集中识别共表达模块。PyWGCNA比WGCNA的R版本和几个额外的下游分析模块相比,使用GO、KEGG和REACTOME进行功能富集分析,蛋白质-蛋白质相互作用的模块间分析,以及多个共表达模块相互比较和/或外部基因列表,如来自单细胞的标记基因。
我们将PyWGCNA应用于来自MODEL-AD的两个不同的大脑块状RNA-seq数据集,以识别与基因型相关的模块。我们将生成的模块相互比较,以找到在数据集中显著重叠的模块形式的共享共表达式签名。
适用于Python 3的PyWGCNA库可在pyPi上获得,网址为pypi.org/project/PyWGCNA,GitHub上为github.com/mortazavilab/PyWGCNA。本文基础数据可在GitHub上获得,网址为github.com/mortazavilab/PyWGCNA/tutorials/5xFAD_paper。
1 简介
加权基因共表达网络分析(WGCNA)是一种广泛用于描述大量样本中基因相关模式的方法(Langfelder和Horvath,2008年)。WGCNA可用于查找高度相关基因的模块,总结模块,将模块彼此以及外部特征联系起来,并计算模块成员资格。相关网络促进了基于网络的基因筛选方法,可用于识别候选生物标志物或治疗靶点。这些方法已成功应用于许多生物环境,如癌症、小鼠遗传学和人类数据分析。WGCNA软件包(Langfelder和Horvath 2008)以流行的R语言实现。随着测序数据集越来越大、越来越复杂,WGCNA的可扩展实现非常重要。
我们引入了PyWGCNA,它旨在在Python中原生执行WGCNA和下游分析任务(图1A)。PyWGCNA支持对R中时间或内存低效的大型高维基因或转录表达数据集的共表达网络分析。PyWGCNA可以直接在共表达模块上执行功能富集分析,包括基因本体(GO)、KEGG和REACTOME,以表征每个模块的功能活动。PyWGCNA还支持添加或删除数据,以便在有新样本可用或需要取出时迭代改进网络建设。最后,PyWGCNA可以相互比较来自多个网络的共表达模块,以评估模块的可重现性,或与来自scRNA-seq簇的标记基因进行比较,以评估每个模块的功能活性或细胞类型特异性。我们展示了PyWGCNA使用阿尔茨海默氏病(AD)的5xFAD和3xTg-AD小鼠模型和匹配的WT小鼠识别MODEL-AD(www.model-ad.org)的批量RNA-seq中与基因型相关的共表达模块的效用。
2 材料和方法
2.1 识别共表达式模块
2.1.1 PyWGCNA对象的数据预处理和初始化
PyWGCNA对象存储用户指定的网络参数,如网络类型和主要输出,如邻接矩阵。PyWGCNA可以从csv、tsv或AnnData(Virshup等人,2021年)格式的数据初始化。我们建议事先预处理和规范输入基因或转录表达数据,包括任何必要的批次校正。关于每个基因或样本的基因/记录表达数据和元数据以AnnData格式存储在对象中。PyWGCNA可以删除过于稀疏的基因/转录或样本和低表达的基因/转录,以及基于分层聚类和用户定义阈值的异常样本。
2.1.2 查找共表达式模块
PyWGCNA遵循与参考WGCNA R包相同的方法,仅在默认参数选择方面有所不同。首先,PyWGCNA通过从预处理的表达数据中计算每对基因/转录符之间的相关性来构建共表达矩阵。然后,它构建了一个基于软功率阈值相关矩阵的共表达式网络,然后计算拓扑重叠矩阵以产生最终网络。最后,PyWGCNA通过分层聚类网络和执行动态树切割来识别基因/转录脚本的共表达模块。
2.1.3 共表达模块的下游分析和可视化
PyWGCNA为协表达模块的下游分析和可视化提供了几个选项。它可以执行模块-特征相关性,计算和总结跨样本元数据类别的模块特征基因表达,检测每个模块中的拥抱基因,并使用GO、KEGG和REACTOME(Gillespie等人,2022)等数据库通过GSEApy(Fang等人,2023)和BioMart(Cunningham等人)在每个模块中执行功能富集分析。2022)。PyWGCNA还可以使用STRING数据库(Szklarczyk等人)恢复每个模块中已知和预测的蛋白质-蛋白质相互作用。2021)。这些分析选项中的每一个都带有易于使用的绘图工具来可视化结果。其他绘图工具包括交互式模块网络可视化,以及选择在每个模块中显示的基因的选项。
2.2 评估PyWGCNA对象或单单元数据之间的共表达模块重叠
PyWGCNA可以通过计算Jaccard相似度系数和对象之间每对模块的常见基因比例来比较来自多个PyWGCNA对象的共表达模块。使用Fisher的精确测试来评估重叠的统计意义。使用相同的策略,PyWGCNA可以找到共表达模块和不同基因列表之间的重叠,例如来自单细胞RNA-seq的标记基因,这可以揭示每个共表达模块的细胞类型特异性。在这两种情况下,这些测试的结果都可以使用PyWGCNA轻松可视化(图1A)。
3个结果
为了比较PyWGCNA的性能和WGCNNA的R参考,我们使用了来自ENCODE门户(www.encodeproject.org)的100个样本的基因级(来自批量短读RNA-seq)和转录级(来自批量长读RNA-seq)表达数据集的表达数据。我们制作了15个子集数据集,其中减少了基因或转录物的数量,以计算运行时如何随着特征数量的增加而变化。对于每个子集,我们在相同数量的CPU(32核)和内存分配(300 GB)上各运行了三次PyWGCNA和R WGCNA。我们发现,虽然两个软件包的性能相似,高达16000个基因,但PyWGCNA在更大的数据集上的速度是两倍。此外,我们能够使用PyWGCNA识别96000个转录的模块,但由于内存限制,我们无法使用相同的数据集在R中计算共表达式网络(图1B)。
然后,我们将PyWGCNA应用于5xFAD小鼠模型的皮层和海马体的192个散装RNA-seq样本,并在四岁(4岁、8岁、12岁和18个月)的C57BL/6J小鼠中都匹配(Forner等人。2021)。PyWGCNA恢复了17个与年龄、基因型、组织和性别相关的基因共表达模块。珊瑚模块与5xFAD基因型(P值<0.05)的年龄进展密切相关,如模块特征基因表达所示(图1C),而白色模块在两种基因型中与海马体显著相关(图1D)。5xFAD珊瑚模块包含1335个基因,这些基因在与免疫反应和中性粒细胞激活相关的GO术语中显著丰富(图1E)。该模块包括众所周知的微胶质激活基因,如Cst7、Tyrobp和Trem2。相比之下,5xFAD白色模块(435个基因)富含GO术语,如纤纤运动、组织和组装(图1F)。
我们还将PyWGCNA应用于来自3xTg-AD小鼠模型的38个散装RNA-seq海马雌性样本,并在三个年龄段(4、12和18个月)匹配WT小鼠(Javonillo等人。2022)。这项分析得出了17个与年龄或基因型相关的模块。深灰色模块(380个基因)与3xTg-AD基因型小鼠和18个月的时间点密切相关。GO分析显示,该模块还显著丰富了与中性粒脱粒和与Csf1、Tyrobp和Trem2等基因的免疫反应相关的基因。
为了评估5xFAD和3xTg-AD实验中发现的模块之间的相似性,我们使用PyWGCNA进行模块重叠测试。我们发现了几个具有显著重叠的模块,这些模块也因类似功能而丰富(图1G和H)。不出所料,根据其功能丰富,5xFAD珊瑚模块和3xTg-AD深灰色模块彼此显著重叠,这表明这些模块中的共表达网络在两个家庭AD鼠标模型中保守。3xTg-AD白色模块(434个基因)与18个月的样本有很强的相关性,并且也富含丝管运动。该模块与5xFAD白色模块显著重叠(图1H)。
4 摘要
我们基于WGCNA的原始R实现开发了一个Python软件包。PyWGCNA能够处理更大的数据集,并提供一组额外的文档良好的功能。分析和可视化工具有几个额外的下游功能,用于结果,如功能富集分析和识别蛋白质-蛋白质相互作用,以及多个PyWGCNA网络或任何其他基因列表之间的多种方式比较。例如,PyWGCNA Jaccard基于相似性的基因列表重叠测试允许将特定细胞类型与单个模块相关联,以进一步解释这些模块的可能功能。我们预计,随着数据集数量的指数增长,此类比较分析将增长。我们希望这个软件包将填补Python生物信息学社区的空白。
作者贡献
A.M.和N.R.设计了这项研究;A.M.、N.R.和F.R.写了这篇文章。N.R.写了包裹和文档。
利益冲突
没有申报。
资金
这项工作得到了美国国立卫生研究院[U54 AG054349 to A.M.]的支持。