前言
寄生(Parasitism)是两种生物之间的一种“消费者—资源”的关系,即寄生虫(Parasite)和它的宿主(Host)。
寄生虫生活在宿主的身上或体内,依赖宿主提供营养和庇护;而宿主则在许多方面受到伤害,例如暴露于许多传染病的威胁之下,因为寄生虫通常是很多病原体的载体。
近年来,网络分析(Network Analysis)技术越来越广泛地应用在寄生性疾病的传播以及生物灭绝、入侵或迁移等对生态系统稳定性的研究中。这些研究的范围取决于涉及到的地区大小、宿主/寄生虫的种类多少等。
图技术利用其对高维数据建模的能力,能自然地反映实体之间是如何网络化的,从而使事物具备了高度的可解释性,大大加速对各项科学研究的辅助工作。
01| 技术革新
寄生虫的问题,尽管对肉眼来说是“不可见”的,但寄生虫的物种数量非常庞大,它们之间的无数互动都会大大地影响众多的宿主物种。这种复杂性对于宿主 — 寄生虫群落的研究提出了非常大的挑战。
痛点:多样性带来的困境
研究生态系统的传统方法是实验和理论数学模型。这些早期的努力在一定程度上有助于描述网络结构。
然而,要用它们来进一步描述相互作用所产生的影响几乎是不可能的,更不用说是需要在不断变化的情景下做出预测了。由于寄生虫的丰富性和宿主范围的不断增长,这使得寄生虫学的研究在计算上也极具挑战性。
解决:利用网络分析技术
利用网络分析技术,可以通过描述网络结构中宿主和寄生虫之间的相互作用,揭示和洞察出它们之间潜在的复杂关系。
网络分析最早在社会网络研究中得到了很好的发展,并已被借用到包括生态学和生物应用在内的许多领域。
它有一个坚实而通用的工具包,能利用网络的潜在特征,如中心性、相似性、模块度、连通性、嵌套性等,来执行深入的描述和预测任务。
02 | 流行病的预防
许多在人类身上出现的新发传染病(Emerging Infectious Diseases, EID)起源于动物。一些研究表明,我们更容易受到来自近亲的交叉感染。
人类中一些最有害的疾病可能是由灵长类动物传播的,如恶性疟疾、黄热病和艾滋病毒等。[1] 因此,密切关注非人类的灵长类动物,尤其是那些处于中心位置的灵长类动物,可能有助于抵御新的流行病。此用例说明了如何使用图算法来帮助加速(增强)EID 的研究。
算法:中心性
作为一种经典的网络衡量标准,中心性(Centrality)能够从不同的角度来揭示网络中实体的重要性。
在灵长类动物 — 寄生虫网络(Primate-Parasite Network)中,处于中心位置的宿主可能是那些——
(a)携带寄生虫最多的;
(b)在控制寄生虫传播中发挥了重要作用的;
(c)具有最大传递影响的宿主。
这些考虑因素能对应于明确的中心性指标:
(a)度中心性[2]
(b)中介中心性[3]
(c)特征向量中心性[4]
如果读者不太熟悉这些度量标准,可以参考附加到每个算法名称的 Ultipa 算法文档链接:【www.ultipa.cn/document/ultipa-graph-analytics-algorithms】
构建:灵长类动物 — 寄生虫网络
以下演示的“灵长类动物 — 宿主数据集”是从GMPD[5] 下载的,其中包含217个灵长类宿主节点[6] (@host)和820个寄生虫节点(@parasite),还有3,587条边[7] (@hasHost)从寄生虫指向它们各自的宿主。
图1:宿主和寄生虫之间的关系
我们观察到,大多数寄生虫具有多个宿主,每个宿主也可能有多个寄生虫。对于有同一寄生虫的每两个宿主,我们将它们连接在一起(@shareParasites边)并将它们之间共有的寄生虫数量记录为权重(weight),如下图所示:
图2:两个宿主间有相同寄生虫的示例——无向边
在嬴图中,每条边都需要有方向。由于@shareParasites是双向的关系,我们在有相同寄生虫的每对宿主间插入两个方向不同、但权重相同的边。
图3:两个宿主间有相同寄生虫的示例——有向边
通过这种方式,我们另外向网络插入了总共15,436条@shareParasites边。
寻找:居于中心位置的灵长类动物
我们将这个网络导入嬴图Manager 中并运行上述三种中心性算法,旨在找到前10个重要的宿主。比较结果可以看到,度中心性和特征向量中心性捕获了非常相似的重要宿主,而中介中心性与它们的相关性较低。在实际应用中,生态学家要么根据一些特定的关注点选择单一的中心性进行测量,要么在分析其相关性后通过组合不同指标的结果来获取一个综合输出。
(a)使用度中心性算法计算在每个宿主上发现的寄生虫数量。这个指标虽然很简单,但清楚地反映了每个宿主接触的寄生虫的范围。
图4:在嬴图Manager 中计算度中心性最高的十个宿主
上面的截图显示了感染最多种类寄生虫的前10个宿主,找出它们只需要在嬴图Manager 中写2个UQL 命令,第一个algo( )命令运行度中心性算法,第二个find().nodes()命令通过内部ID(UUID)查询出宿主节点,最后以表的形式返回宿主的外部ID(即ID,通常更易读)和计算出的节点度,便于下游任务(如果有)进一步的使用。
(b)使用中介中心性算法来衡量一个宿主位于任何其他两个宿主之间通过@shareParasite边形成的最短路径中的概率。它描述了宿主作为网络中其他宿主之间寄生虫共享/传播的“桥梁”角色的重要性。
图5:在嬴图Manager中计算中介中心性最高的10个宿主
上面的截图是前10个起到媒介或桥梁作用的宿主,这可以作为进一步调查的良好指标。
请注意:中介中心性算法相较于度中心性算法,其复杂度是指数级增加的,因此更具挑战性。但是该算法可以在较小的数据集上运行,或指示算法进行采样计算来提速(计算复杂度更低)。当然,也可以通过密集地并行技术来加速,这正是嬴图在向量化计算和存储接近计算(以及无索引邻接数据结构)的架构上所做的。
(c)在特征向量中心性算法的假设中,宿主的中心性不仅取决于它连接了多少个宿主,还取决于它连接的宿主有多重要。它提供了比度中心性更复杂的视图,同时在数量与质量之间做了平衡。
03|写在最后
将网络分析应用到疾病传播,为研究人员的科研探索提供了非常重要的辅助,同时也对人类健康提供更多的了解。嬴图支持复杂的网络拓扑建模,可以轻松地处理物种和交互多样性。同时,我们痴迷于强劲的核心算力、灵活的查询模式以及丰富的算法库。嬴图随时准备好协助全球生态学家揭开更多关于自然和生命的神秘面纱。
文/Pearl C
注释:
[1] J. Gómez, C. Nunn, M. Verdúc, Centrality in primate–parasite networks reveals the potential for the transmission of emerging infectious diseases to humans (2013) .
[2] 度中心性
[3] 中介中心性
[4] 特征向量中心性
[6] 节点:点 (Node),代表真实世界中的实体,即图论中的顶点 (vertex),在嬴图系统中也称作节点。
[7] 边:边 (Edge),代表真实世界中实体间的关系,即连接两个节点的边。嬴图系统中的边均为有向边。边的两个端点可以相同也可以不相同,相同时边称为自环边(Loop)。