1、第 i 页目 录摘 要 .iiiABSTRACT .iv第一章 综述 .1第一节 边预测的用途 .1第二节 基于相似性的边预测方法 .2一、 局部信息下的相似性分析 .2二、 路径基础上的相似性分析 .2三、 随机游走中的相似性分析 .3第三节 Cytoscape 简介 .4第四节 论文结构 .5第二章 Cytoscape 插件开发简介 .6第一节 Cytoscape 的软件结构 .6第二节 Cytoscape 二次开发 .7一、 Cytoscape 编程控制 .8二、 Cytoscape 插件开发 .9第三章 预测算法及其实现 .17第一节 预测算法实现 .17第二节 Cytoscape 边
2、预测功能实现 .18第三节 Cytoscape 预测功能展示 .19第四节 算法评价 .20第四章 边预测实验 .22第一节 真实网络导入 .22第二节 预测插件应用及结果 .23第三节 预测结果分析 .26总 结 .28参考文献 .30附 录 .32第 ii 页附录 A .32附录 B.55第 iii 页摘 要在大数据时代,网络建模成为数据处理的一项重要手段。而边预测作为处理网络的有效方式也逐渐受到更多的关注。边预测是指在网络中,通过已知的网络信息,例如节点,边或网络结构等,来对网络中存在性不明的边进行预测 6。边预测既能解决生物网络中实验方向不明朗的问题,又能在数据缺失或难以集全的情况下较
3、为精确地对研究社会网络进行研究分析。同时还能纠正网络中错误连边,完成网络结构重组。而 Cytoscape 作为一项重要的网络处理软件,既能对网络进行可视化处理,又能对网络进行集成分析,已在各种复杂网络分析处理和可视化领域应用中占据十分重要的地位。但是,边预测作为网络处理的强大手段,目前Cytoscape 仍然缺乏通用的预测插件,因此,本文以 Cytoscape 为软件平台,基于共同邻居的边预测算法,实现了符合 OSGi 标准的 Cytoscape 插件,总结了Cytoscape 第三方开发接口和插件开发流程,为开发通用的 Cytoscape 边预测插件包提供了参考。关键词:边预测;Cytosc
4、ape;插件;相似性第 iv 页ABSTRACTIn the era of big data, network modeling becomes one of these important methods. And edge prediction draws more attention as a valid way of handling network. Edge prediction means to predict whether an unknown edge exits or not in the network with information in the network l
5、ike node, edge or structure. Edge prediction can help to solve the problem that biological experiments do not have a clear direction when explore the inner patterns, analyze the social network accurately without complete data, correct the wrong link in the network and rebuild it. And Cytoscape is a
6、software of network handling, which can visualize the network as well as carry out integrated analysis for it. Therefore it plays an important role in the complicated network analysis and visual application field. However, Cytoscape has various functions, but it cannot do the job like edge predictio
7、n. Nowadays, edge prediction can be realized through programmed algorithm, its visual result is not so good though, and theres no universal app with the function of prediction in Cytoscape. Therefore, in this article, we finished an Cyto-app which fits the standard of OSGi with the algorithm based o
8、n common neighbors where Cytoscape was taken as the software platform. Besides, we conclude the process of how to take use of Cytoscape developing port and create a Cyto-app which provides reference to develop a universal Edge-Prediction jar package.KEY WORDS: edge prediction, Cytoscape, plug-in, Si
9、milarity analysis第 1 页第一章 综述第一节 边预测的用途边预测是指在网络中,通过已知的网络信息,例如节点,边或者是网络结构等,来对网络中存在性不明的边进行预测。该预测包含两层概念,一是评估未知边存在的可能性,另一个则是预测已知尚未存在的边将来产生链接的可能性。因此,边预测问题成了各个领域不同科学家视线的聚焦点。首先,边预测在实际应用领域具有十分重大的价值。例如,生物研究领域的各种生物分子交互网络、代谢网络中,需要通过大量的实验,并依赖其结果才能对网络进行内在规律揭示和分析。而网络内的内部相互作用归根到底就是节点之间的连接关系。 然而,巨大的生物网络在实验中显露出来的仅仅是网
10、络中相当小的一部分。仅以蛋白质网络为例研究其交互作用,就人类本身我们认识到的竟只有 0.3%。即使是简单生物酵母菌的蛋白质相互作用,仍有 80%不被人类所掌握。如果在此类实验中,仅仅依靠庞大的实验数量进行枚举式的研究,那么,揭示其网络中边的存在性需要的将是无比巨大的实验成本与资源。但是,能在已知的网络中找到合理精确的边预测算法,以此进行边预测,并利用预测结果引导实验方向,将有可能极大的在减少实验数量的同时提高实验的成功率,这不仅能很大程度上节省实验消耗,还能大大地加快研究进程。其次,社会网络研究分析过程中会出现数据缺失或难以集全的问题,此时,边预测又将展现它在保证精确性前提下辅助分析网络结构的
11、强大能力。除此之外,边预测还能帮助分析并演化网络。举个简单例子,在当下迅速发展并深受民众喜爱的社交在线网络中,边预测可以基于用户已有的好友网络分析出整个网络中未成为该用户好友单应该彼此相识的使用者,并将此结果推荐给该用户,以此演化社交在线网络。此外,边预测仍有其他诸多作用,它方法和理论同样可被节点类型预测所借鉴,它可以用以验证已存在边的准确性,并以此清除错误链接,并完成网络的结构优化和重组。例如在一些实验中,不同的数据可能引导出矛盾的结果,边预测为我们清除不恰当数据提供快捷准确的途径。第 2 页第二节 基于相似性的边预测方法一、 局部信息下的相似性分析局部信息下的相似性分析,是指运用只需要通过
12、部分节点信息便可运算得到的相似性指标进行边预测分析。这类指标的优势在于复杂程度低,可运用于规模过大的应用网络。但因其依赖的信息量有限,预测精度相对于一些全局性的指标而言显得不够高。最简单常用的方法是基于共同邻居的边预测分析。共同邻居一般称为 CN,全称 Common neighbor ,是局部信息下最简单的相似性参数。CN 相似性在某种程度上又被称为结构等价,即,若两个节点具有较多的共同邻居,则这两个节点相似。由此可见,CN 关注的更多地是两个节点存在的环境是否相同。在边预测的应用 CN 有其必要的前提假设,即若两个节点的共同邻居越多,它们之间存在连边的可能性越大。CN 指标的定义如下:对于网
13、络的节点 ,定义其邻居集合为集合 ,则两个节点 和 的相xv)(xxvy似性就定义为它们的共同邻居数 1,即0 (1.2.1)|ysxy在 CN 指标的基础上,考虑共同邻居的度的影响便有了 AA 指标(Adami-Adar指标) 。它的主要思想是度不同的共同邻居对节点的影响不同,度高的共同邻居会比度小的造成更大的影响。因此,基于共同邻居度的大小,AA 赋予每个节点一个权重,该权重大小是该节点度取对数后求倒数。另一个与 AA 指标近似的指标是 RA 指标,即资源分配指数 10,灵感来源于网络资源分配过程。在网络中,没有边存在的节点间的资源交互需要以共同邻居作为媒介,我们假设每个节点拥有一个单位的
14、资源并平均分给它的邻居,则可定义两个节点的相似性为两个节点共同邻居数量的倒数。二、 路径基础上的相似性分析局部信息下的相似性分析计算复杂程度低,但由于依赖信息有限,导致相似性分数分布太集中,使节点之间的差异性不明显,造成预测精度稍低。因此,在局部共同邻居之后,又出现了依赖于局部路径的相似性分析。周涛等经过研究,在考虑共同邻居的同时,又引入三阶路径因素,提出局部路径指标并定义为(1.2.2)3AS第 3 页其中, 为可调节的参数,A 为邻接矩阵。S 的值越大,边存在的可能性越大 1。此外,还有另一个指标 Katz 指标,它将所有的路径及其长度纳入考虑了范围。同时,在该指标假设了路径越短对边存在性
15、的影响越大。同时,Katz 指标对于不同长度的路径分别赋予不同的权重,当然,长度越短,权重越高 8。它定义如下:(1.2.3) 321| xyxyxyllxyxy AApathss 其中 是可调节的参数,| |表示的则是两节点间长度为 L 的路径数量,当其收敛时,该定义简化为(I 为单位矩阵) (1.2.4)AIs1)(另一个路径基础上的相似性指标是 LHN- ,该指标的基本思想是在一般等价的基础上提出的。一般等价是指,若两节点具有相似的邻居节点,则这两个节点相似。与结构等价不同,这并不要求两个节点拥有共同邻居。它的最终定义式(1.2.5)111)(2DAIDMs其中 M 代表网络的总边数,
16、是邻接矩阵 A 最大的特征值,D 代表度矩阵,1I 为单位矩阵, 为可调节的参数 17。三、 随机游走中的相似性分析假设在网络中有一个对象在节点间随机地、没有规律地移动,那么在移动过程中,会产生一些例如节点间距离的数据,基于这些数据,产生了对应的相似性指标。ACT 指数,是基于平均通信时间的相似性指标,它的值由对象在两个节点间的游走平均步数决定,假设对象从节点 x 随机游走到节点 y 的平均所需步数为m(x,y),则节点 x,y 之间的平均通信时间为 m(x,y)与 m(y,x)的和 11。当平均通信时间越小时,两个节点之间的相似程度越高。因此,ACT 指数被定义为(1.2.6)),(1xym
17、xSACTxyCos+指标,即余弦相似度指标,它基于马氏距离来进行向量相似性的分析。马氏距离常用于描述两个向量之间的差异度,且当其中的协方差矩阵恰好是一个第 4 页单位矩阵是,就相当于是欧式距离。而节点可用向量将其在欧式几何空间中表达。因此,令节点 x 在欧式几何空间中的坐标向量为 ,可以将余弦相似性定义 18x为(1.2.7)|cosyxTxy此外,基于全局范围的随机游走中的相似性指标还有 RWR 指标及 SimRank 指标等。RWR 指标基于假设对象在每次随机游走的过程中,都有一定返回起点的概率。它将从节点 x 到达节点 y 的概率与从节点 y 游走到 x 的概率和作为相似性程度指标。S
18、imRank 指标则考虑两个分别以节点 x、节点 y 为起点的两个对象在相遇前走过的距离。第三节 Cytoscape 简介Cytoscape 是一个开源的软件平台,它可以将分子的交互作用网络和生物路径进行可视化处理,并运用注释、基因表达配置文件以及其他形态的数据对网络进行集成分析。虽然 Cytoscape 最初是为了生物科学研究而设计产生,但是,当下,Cytoscape 的应用领域已不局限与生物范围,它在各种复杂网络分析处理和可视化领域应用中占据十分重要的地位。Cytoscape 的核心提供了一些基本的操作来对数据进行交互、分析和可视化。除此之外,其他一些 Cytoscape 本身不具备的操作
19、可以通过插件的方式导入其中。插件可以被应用于网络分析、分子分布分析、新布局设计、新支持类型添加、脚本处理以及数据库连接。同时,Cytoscape 的使用者可以通过基于 Java技术的开源 CYtoscape 用户界面发展Cytoscape 的诸多功能,而 Cytoscape 的插件开发社区正在进一步壮大。目前,Cytoscape 已存在可实现各类功能的插件,而这些插件在 Cytoscape 插件商城都有收录。Cytoscape 3 具有模块化架构,是目前较为主流的 Cytoscape 版本。考虑其长期可维护性,它已基本取代了 Cytoscape2.x 系列版本。该版本添加了包括新用户接口、新式
20、可视化函数、随意的命令行分布以及多样化的翻译引擎等新功能。直到 2014 年 11 月,Cytoscape 社区还在紧张的从 2.x 版本向 3.x 版本进化,而插件开发人员正努力使 2.x 版本的 Cytoscape 插件能适应 3.x 及以后版本。第 5 页第四节 论文结构本文主要阐述了 Cytoscape 插件开发方法以及边预测方法及算法实现。并以OSGi 为框架,利用 Eclipse 完成插件编程并最终导入 Cytoscape,完成图形化的关联关系预测。本文主要有五章。第一章是综述,主要边预测的用途以及对 Cytoscape 的基本情况进行简介,简要描述研究的方向。并综述边预测方法,介
21、绍了当前边预测领域所常用而且较为简单的边预测的方法,主要描述在边预测过程中所利用的指标,及采用相应指标所基于的假设。第二章着眼于 Cytoscape 的软件结构,分析其中各个模块的作用及内部的编程控制,描述各类 Cytoscape 操作所基于的代码基础。同时介绍了两种Cytoscape 插件实现的方法,并按步骤完成了简单的隐藏插件。第三章重点讲解了如何利用边预测的相似性指标完成边预测算法,并以第二章完成的简单插件为基础框架,实现 Cytoscape 的边预测功能插件。并利用 AUC指标对算法进行评价。第四章是插件应用实验,通过引入真实网络,对其隐藏的必要边进行预测,通过将预测结果与现实结果相对
22、比,分析算法的利弊。第五章对全文进行总结第 6 页第二章 Cytoscape 插件开发简介第一节 Cytoscape 的软件结构Cytoscape 3.0 致力于模块化结构建设。该结构中,应用程序由一系列的jar 文件组成,每个 jar 文件包含完整定义的程序的函数子集。该面向对象的设计基于 OSGi 服务器模型,将应用程序编程接口及其实现分别打包进不同的 jar文件。而其目的是提供一系列定义了公共 Cytoscape 程序设计的接口。每个应用程序编程接口的 jar 文件都会包含对应的完全由私人的代码构成的执行 jar 文件。执行 jar 文件中会提供接口 jar 文件中定义的服务器接口。该方
23、法能实现给定编程接口中不同执行 jar 文件的快速替换。同时,它还清晰地对公共的代码和私人的代码进行分类从而让开发者知道哪些代码能被改变而哪些不能。Cytoscape 核心组件包含了多种多样的模块,每个模块中都封装了关键的函数。当前,这些模块主要有数据模型、视图模型、任务执行、映射、事件处理、输入输出、布局、应用结构、描述、会话、网络服务、应用程序、实用模块。每个提到的模块都包含独立的编程接口及实现的 jar 文件 Cytoscape 主要支持网络和表两种数据类型,在数据模型模块中,其中网最基本的接口是 CyNetwork,可以此对网及边和节点进行必要的操作。视图模块中的核心接口是Visual
24、Property,它为 Cytoscape 控制了了对视图变量的操作,例如节点颜色、隐藏节点等。Cytoscape 3 的核心模块是任务执行模块,任务接口主要的两个函数时 run()和 Cancel(),用以确定一项操作的执行与否。输入输出模块控制着Cytoscape 与环境的交互,可确定数据的输入输出、及数据类型等。布局模块抽象出了一些一般化的网络布局操作,它能分析一个网络并以网络布局的放肆提供结果。应用结构模块主要由两部分组成,一部分用以保证任何可行的 OSGi bundle 都能被用作插件,另一部分则是简单的插件程序接口,用以满足非 OSGi规范的插件。描述模块的编程接口非常简化,只具有三个初级的接口分别用以允许翻译引擎的创建、翻译引擎支持格式的描述以及翻译引擎使用记录的管理。会话模块包含了对对话框进行操作的所有必要的接口,可实现对话框的关闭、对话框中内容存储、导入等一系列功能。网络服务模块主要管理 Cytoscape 联网操作,