`

Cytoscape 3 Simple App 开发(转载)

阅读更多

    历经磨难,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

分享到:
评论

相关推荐

    appstore:Cytoscape App Store Web应用程序代码

    Cytoscape App Store 是用于托管的 Web应用 如果您想了解管理程序,代码库简介并查看完整的测试协议,请访问App Store Wiki页面: : 请注意,App Store也可以部署为Docker容器。 要了解更多信息,请访问: : 。 ...

    Cytoscape3_5_0Manual.pdf

    Cytoscape是一款图形化显示网络并进行分析和编辑的软件,它支持多种网络描述格式,也可以用...Cytoscape还能够为网络添加丰富的注释信息,并且可以利用自身以及第三方开发的大量功能插件,针对网络问题进行深入分析。 

    Cytoscape_3_6_1_macos.dmg

    Cytoscape_3_6_1_macos

    Cytoscape 3.7.2 windows系统

    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...

    Cytoscape3.7.1安装包

    Cytoscape是一个专注于开源网络可视化和分析的软件。它的核心是提供基础的功能布局和查询网络,并依据基本的数据的结合成可视化网络。Cytoscape源自系统生物学,用于将生物分子交互网络与高通量基因表达数据和其他的...

    RCy3:由Cytoscape开发人员社区重新设计和协作维护的新版RCy3

    我们从RCy3的主要重构开始,其中包括: 与graphNEL对象模型的独立性统一的函数和参数名称支持Cytoscape命令对Cytoscape应用程序的更好支持请参阅以获取完整的发行说明与CyREST和Cytoscape服务模型协调开发 与其他...

    Cytoscape使用方法(正式版本)_Cytoscape_

    Cytoscape2.6 使用手册值得学习!

    网络图cytoscape.js

    制作网络图谱使用的第三方库cytoscape.js。Web开发,运用cytoscape.js绘制图像,读取json文件

    cytoscape mannual

    是网络结构软件cytoscape的详细说明

    cytoscape-d3:D3.js 对 Cytoscape 3 的支持

    Cytoscape 到 D3.js 导出器 发布历史 2014 年 9 月 28 日 - 版本 1.0.2 发布。 仅小修复(无新功能)。 2014 年 9 月 15 日 - 版本 1.0.1 发布。 当用户选择网络和视图时,节点位置 (x, y) 将作为节点属性添加。 这...

    Cytoscape_3_7_2_windows_64bit.exe

    在写文章的过程中,我们经常需要对蛋白互作...为大家介绍一种可以对网络图进行自定义绘制的软件:Cytoscape,它是一款图形化显示网络并进行编辑和分析的软件,可以对获得的蛋白-蛋白互作网络图进行修改和进一步分析。

    cytoscape教程

    cytoscape教程,简单协助应用该教程进行绘图,可将可视化图片设置成想要的效果,易学实用。

    ThematicMapApp:专题地图 Cytoscape App

    专题地图应用专题地图 Cytoscape App

    cytoscape简单操作

    cytoscape绘制网络图中的一些简单操作,自己在做项目中摸索的,仅供参考

    Cytoscape_3_2_1_windows_64bit.exe

    CYTOSCAPE软件资源,能熟练完成PPI,网络药理学等绘制。

    知识图谱可视化之cytoscape.js构建知识图谱项目源码

    项目主要介绍cytoscape.js的使用方法: 1)构建静态html文件进行图谱展示 2)使用Python的django框架进行开发,并将后台业务逻辑生成的数据传送到前端js中进行展示,实现动态图谱构建,满足工程实际需要。 动态与...

    Cytoscape_3_2_1_windows_64bit.rar

    cytoscape就给我们提供了一种这种分子地图的可能性,即蛋白互作网络,当然这种网络可以由多种定义形式来产生,比如染色体物理位置,比如共表达性质等;也可以产生多种排布形式(看个人需要)。

    cytoscape.js

    制作网络图谱使用的第三方库cytoscape.js,包括cytoscape的语法及小案例。

Global site tag (gtag.js) - Google Analytics