0

我使用内置导出器从 Cytoscape 3.1 BETA 3 将蛋白质-蛋白质网络导出到 JSON ( cyjs ) 文件。我尝试使用 Cytoscape.js 库将此cyjs文件导入 Web 应用程序,但失败了。

我昨天在这里阅读了 gcpdev 提出的问题(Exporting and importing JSON data to Cytoscape.js),但这对我没有帮助。

导入的 JavaScript 库:jQuery-1.11、Cytoscape.js、Arbor、Arbor-tween。我的代码是:

<script type="text/javascript">

$('#cy').cytoscape({
  layout: {
    name: 'arbor',
    liveUpdate: true, 
  },

   ready: function(){

     window.cy = this;
     var jsonfile = "src/inside_sc.cyjs";

     $(document).ready(function() {

       $.getJSON(jsonfile, function(json) {
         cy.add( JSON.parse( json ) );
       });

     });

   }
});

</script>

我总是在 Chrome 控制台上收到这样的错误消息:

Uncaught SyntaxError: Unexpected token o      index.html:38
  (anonymous function)                        index.html:38
  j                                           jquery-1.11.0.min.js:2
  k.fireWith                                  jquery-1.11.0.min.js:2
  x                                           jquery-1.11.0.min.js:4
  b                                           jquery-1.11.0.min.js:4

其中index.html是我的文件,而 line:38 是:

 cy.add( JSON.parse( json ) );

我收到与更改相同的错误消息。如果我添加一些样式和基本节点和边缘,也不起作用,也$.parseJSON()不起作用。

我试图将此行更改为cy.add( json );结果与上面提到的问题相同:

 An element must be of type `nodes` or `edges`; you specified `undefined`
 Uncaught TypeError: Cannot read property 'single' of undefined

当我尝试向控制台显示 JSON 信息时,就像console.log( json );它正常工作一样。

我的脚本有什么问题?我应该怎么办?

4

1 回答 1

2

据我所知,从 Cytoscape-desktop 导出的 JS 并不是cy.add()init 选项的替代品。您需要检查 Cytoscape-desktop 生成的文件,并在 init 选项 ( options.elements) 中指定 JSON 中元素的路径。

于 2014-02-11T16:21:44.047 回答