【问题标题】:Passing a javascript JSON string to locally installed Cytoscape Software将 javascript JSON 字符串传递给本地安装的 Cytoscape 软件
【发布时间】:2020-06-17 06:42:51
【问题描述】:

我正在尝试了解 Cytoscape 自动化,以便将浏览器应用程序与 Cytoscape 桌面软件进行通信。 cyBrowser 在我阅读时可能很有用。我的目的是将一个 json 字符串从浏览器应用程序传递给 cytoscape。如https://github.com/cytoscape/cytoscape-automation/wiki/App-Developers:-Adding-Automation-to-Web-Pages 所示,以下可能有用,但是,我手头有一个字符串(不是服务器端 url)。

<input type="button" class="btn btn-primary" onclick="cybrowser.executeCyCommand('network load url url=http://nrnb.org/data/2017_keserci_biorxiv.xgmml');" value="Load network in Cytoscape">

此外,我无法找到与上述命令类似的特定文档以在 cyBrowser 中使用(请原谅我的天真,我仍然在研究 cyRest API)。我的要求不限于以上,我更希望从 cytoscape 软件中获取网络名称并在浏览器应用程序中使用它们,以及在浏览器应用程序中使用它们的边缘列表数据的可能性。所以基本上尝试建立双向通信。

如果我能很好地理解 API 可能会很容易,但考虑到在 cyREST API 上工作的初学者性质,我很荣幸能够在正确的方向上获得一些帮助。

谢谢

【问题讨论】:

    标签: cytoscape


    【解决方案1】:

    这里有几件事在起作用。首先,cybrowser.executeCommand() 不通过 CyREST——它使用命令语法。要查看可用的命令,您可以打开 Cytoscape 的命令窗口并键入“help”以查看命名空间(例如“network”)和“help namespace”以查看命令(例如“help network”)。在您的情况下,确实没有一个好的命令可以直接将 JSON 字符串发送到 Cytoscape。您需要使用较低层的 REST 调用来执行此操作。另一方面——这是一个好主意,可能我们可以实施。肯定有从 Cytoscape 获取边缘和节点列表的命令,因此您可以轻松地将它们嵌入到您的 Javascript 应用程序中。此外,还有一些命令可以创建网络并向该网络添加节点和边缘,这可能是您此时需要从 JSON 字符串构建网络的方式。

    【讨论】:

    • 嗨滑板车,感谢您的友好回复。我能够在 cybrowser.executeCyCommandWithResults() 中使用 cyREST 命令 API,并设法通过获取边缘和网络的属性命令来完成这项工作。一旦被理解,API 对于与语言无关的通信确实非常有用。现在我使用 ajax 将 json 保存到服务器,然后通过 API(网络加载 url)将其传递给 cytoscape。直接向 Cytoscape 发送 JSON 字符串/对象的选项对于绕过服务器端进程的额外步骤非常有用。期待
    • 你好 Scooter,有没有一个选项可以为 CyBrowser 预设一个默认 url,而从 Cytoscape 调用它?如果可用,我可以将其作为单独的问题发布...非常感谢
    猜你喜欢
    • 1970-01-01
    • 2018-11-25
    • 2019-02-05
    • 2016-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-04
    相关资源
    最近更新 更多