首页 > 解决方案 > 如何使用 cytoscape java api 添加节点属性?

问题描述

我正在尝试使用 java API 做一个 cytoscape 应用程序,所以,基于cytoscape github(示例创建网络)中的示例,我正在做类似的事情

    // Create an empty network
    CyNetwork myNet = cnf.createNetwork();
    myNet.getRow(myNet).set(CyNetwork.NAME,
                  namingUtil.getSuggestedNetworkTitle("My Network"));

    // Add two nodes to the network
    CyNode node1 = myNet.addNode();
    CyNode node2 = myNet.addNode();

    // set name for new nodes
    myNet.getDefaultNodeTable().getRow(node1.getSUID()).set("name", "Node1");
    myNet.getDefaultNodeTable().getRow(node2.getSUID()).set("name", "Node2");

    // Add an edge
    myNet.addEdge(node1, node2, true);

但是,当我尝试做类似的事情时

    myNet.getDefaultNodeTable().getRow(node1.getSUID()).set("name", "Node1");
    myNet.getDefaultNodeTable().getRow(node1.getSUID()).set("symbol", "other string");

我收到一条错误消息,提示“java.lang.IllegalArgumentException:列 'symbol' 尚不存在”

那么,任何人都可以指导我正确地向节点添加属性吗?

非常感谢

标签: javaapicytoscape

解决方案


答案是按如下方式创建列

myNet.getDefaultNodeTable().createColumn("symbol", String.class, false);

推荐阅读