历经磨难,Cytoscape终于迎来了3.0的发布。API完全不兼容了,各种插件必须要升级才能在3.0中运行。
追随乔大爷的脚步,Cytoscape 3.0的插件(plug-in)改名叫应用(app),还开了一个App Store。看看Cytoscape的红火,各行各业都是打造产业链和共赢的生态环境才能获得大的成功,互联网如此,移动设备如此,生命科学也是如此。不仅仅是API的变动,开发方式也发生了巨大的改变。为了一定程度上的兼容性,Cytoscape 3.0中的应用分为两种:
- 简单应用(simple App):基本等同于以前2.X版本中的插件,开发方式基本一致;
- 套装应用(Bundle App):基于OGSi的应用,可以为其他应用提供API、不会出现库的版本冲突等。
先说说简单应用的开发,给个最简单的例子,例子来自Creating a Simple Cytoscape 3 App,稍作修改和说明。
这个简单应用有两个类:
- HideSingletonNodesApp:应用的入口,必须继承AbstractCySwingApp。
这个类的代码如下,保存到HideSingletonNodesApp.java文件:
import org.cytoscape.app.swing.AbstractCySwingApp; import org.cytoscape.app.swing.CySwingAppAdapter; public class HideSingletonNodesApp extends AbstractCySwingApp { public HideSingletonNodesApp(CySwingAppAdapter adapter) { super(adapter); adapter.getCySwingApplication() .addAction(new MenuAction(adapter)); } }
- MenuAction类:在Cytoscape的Select菜单中加入菜单项,实现隐藏孤立点(跟其他所有点都不相连的点)功能:
这个类的代码如下,保存到MenuAction.java文件:
import java.awt.event.ActionEvent; import org.cytoscape.app.CyAppAdapter; import org.cytoscape.application.CyApplicationManager; import org.cytoscape.application.swing.AbstractCyAction; import org.cytoscape.model.CyEdge; import org.cytoscape.model.CyNetwork; import org.cytoscape.model.CyNode; import org.cytoscape.view.model.CyNetworkView; import org.cytoscape.view.presentation.property.BasicVisualLexicon; public class MenuAction extends AbstractCyAction { private final CyAppAdapter adapter; public MenuAction(CyAppAdapter adapter) { super("Hide unconnected nodes", adapter.getCyApplicationManager(), "network", adapter.getCyNetworkViewManager()); this.adapter = adapter; setPreferredMenu("Select"); } public void actionPerformed(ActionEvent e) { final CyApplicationManager manager = adapter.getCyApplicationManager(); final CyNetworkView networkView = manager.getCurrentNetworkView(); final CyNetwork network = networkView.getModel(); for (CyNode node : network.getNodeList()) { if (network.getNeighborList(node, CyEdge.Type.ANY).isEmpty()) networkView.getNodeView(node).setVisualProperty( BasicVisualLexicon.NODE_VISIBLE, false); } networkView.updateView(); } }
这个简单应用的代码就是这样。接下来还需要一个文件描述应用的基本情况,供Cytoscape在加载应用时读取。这个文件是app-manifest:
1
2 3 4 5 |
Cytoscape-App-Version: 0.1
Cytoscape-App-Name: HideSingletonNodesApp Cytoscape-App: HideSingletonNodesApp Cytoscape-App-Works-With: 3.0 Cytoscape-API-Compatibility: 3.0 |
第一行是应用的版本号,第二行是应用名称,第三行是应用入口类,接下来是应用运行的Cytoscape版本。Cytoscape网站上给出的教程中的文件到此就结束了。但这样得到的应用加载时会保存,提示缺少第5行这样的信息,即应用所兼容的API版本。
把上述三个文件放到同一个目录下,下载Cytoscape3-api.jar放到同一目录下,编译打包:
1
2 |
javac -cp Cytoscape3-api.jar *.java
jar cfm HideSingletonNodesApp.jar app-manifest *.class |
在当前目录下得到的HideSingletonNodesApp.jar。到Cytoscape中,Apps -> App Manager -> Install from File .. ,安装这个Jar文件。安装后可以在Currently Installed中看到应用的基本信息,在Select菜单的最下面可以看到Hide unconnected nodes菜单项。
就现在Cytoscape的应用情况来看,大部分的应用按照Simple App的形式开发就足够了。但诸如MCODE之类准官方的应用都迁移到了套装应用的模式上,这是未来的趋势。但相互之间API的依赖,会不会陷入Linux库依赖一样的情况?毕竟,Cytoscape不是给计算机玩家用的,很多用户是生物医学的人,简单易用直观是才是王道。
迫于用户反馈,我们的插件也得升级了。ClusterViz发布三年,没发文章,倒是被人用在了一些大项目中,还发了NG之类的好文章;发了文章的一些东西反倒是没人用。这跟Journal of Statistical Software能成为影响因子最高的统计学期刊或许是一个道理:show me the codes!
注:原文地址:http://gossipcoder.com/?p=1376
参考链接:http://opentutorials.cgl.ucsf.edu/index.php/Tutorial:Creating_a_Simple_Cytoscape_3_App
相关推荐
Cytoscape App Store 是用于托管的 Web应用 如果您想了解管理程序,代码库简介并查看完整的测试协议,请访问App Store Wiki页面: : 请注意,App Store也可以部署为Docker容器。 要了解更多信息,请访问: : 。 ...
Cytoscape是一款图形化显示网络并进行分析和编辑的软件,它支持多种网络描述格式,也可以用...Cytoscape还能够为网络添加丰富的注释信息,并且可以利用自身以及第三方开发的大量功能插件,针对网络问题进行深入分析。
Cytoscape_3_6_1_macos
Cytoscape is an open source software platform for visualizing molecular interaction networks and biological pathways and integrating these networks with annotations, gene expression profiles and other...
Cytoscape是一个专注于开源网络可视化和分析的软件。它的核心是提供基础的功能布局和查询网络,并依据基本的数据的结合成可视化网络。Cytoscape源自系统生物学,用于将生物分子交互网络与高通量基因表达数据和其他的...
我们从RCy3的主要重构开始,其中包括: 与graphNEL对象模型的独立性统一的函数和参数名称支持Cytoscape命令对Cytoscape应用程序的更好支持请参阅以获取完整的发行说明与CyREST和Cytoscape服务模型协调开发 与其他...
Cytoscape2.6 使用手册值得学习!
制作网络图谱使用的第三方库cytoscape.js。Web开发,运用cytoscape.js绘制图像,读取json文件
是网络结构软件cytoscape的详细说明
Cytoscape 到 D3.js 导出器 发布历史 2014 年 9 月 28 日 - 版本 1.0.2 发布。 仅小修复(无新功能)。 2014 年 9 月 15 日 - 版本 1.0.1 发布。 当用户选择网络和视图时,节点位置 (x, y) 将作为节点属性添加。 这...
在写文章的过程中,我们经常需要对蛋白互作...为大家介绍一种可以对网络图进行自定义绘制的软件:Cytoscape,它是一款图形化显示网络并进行编辑和分析的软件,可以对获得的蛋白-蛋白互作网络图进行修改和进一步分析。
cytoscape教程,简单协助应用该教程进行绘图,可将可视化图片设置成想要的效果,易学实用。
专题地图应用专题地图 Cytoscape App
cytoscape绘制网络图中的一些简单操作,自己在做项目中摸索的,仅供参考
CYTOSCAPE软件资源,能熟练完成PPI,网络药理学等绘制。
项目主要介绍cytoscape.js的使用方法: 1)构建静态html文件进行图谱展示 2)使用Python的django框架进行开发,并将后台业务逻辑生成的数据传送到前端js中进行展示,实现动态图谱构建,满足工程实际需要。 动态与...
cytoscape就给我们提供了一种这种分子地图的可能性,即蛋白互作网络,当然这种网络可以由多种定义形式来产生,比如染色体物理位置,比如共表达性质等;也可以产生多种排布形式(看个人需要)。
制作网络图谱使用的第三方库cytoscape.js,包括cytoscape的语法及小案例。