首页 文章

使用R和Cytoscape进行大规模社交网络可视化的内存问题

提问于
浏览
2

我对R比较新,我正试图解决以下问题:

我使用32位版本的R工作在Windows 7企业版平台上,在我的机器上有大约3GB的RAM . 我有大规模的社交网络数据(约7,000个顶点和c.3万个边缘),这些数据当前存储在我的SQL数据库中 . 我设法将这些数据(省略顶点和边缘属性)拉入R数据帧,然后拉入igraph对象 . 为了进一步分析和可视化,我现在想用RCytoscape将这个igraph推入Cytoscape . 目前,我的方法是将igraph对象转换为graphNEL对象,因为RCytoscape似乎适用于此对象类型 . (igraph绘图功能太慢,缺乏进一步的分析功能 . )

不幸的是,在运行此脚本时,我总是遇到内存问题 . 它以前曾在较小的网络上工作过 .

有没有人知道如何解决这个问题?或者,您是否可以推荐任何其他可与R配合使用的可视化和分析工具,并且可以处理如此大规模的数据?

任何帮助将非常感激 . 非常感谢提前!

最好的,伊格纳西奥

2 回答

  • 1

    很抱歉花了几天时间回复你 .

    我刚刚进行了一些测试

    1)在R 2)中创建邻接矩阵然后从矩阵3)创建R graphNEL(可选)添加节点和边缘属性4)创建,显示和布置CytoscapeWindow,并重新绘制

    (all times are in seconds)
    
    nodes   edges  attributes? matrix    graph   cw    display   layout  redraw   total
      70      35       no       0.001    0.001   0.5      5.7      2.5    0.016    9.4
      70       0       no       0.033    0.001   0.2      4.2      0.5    0.49     5.6
     700     350       no       0.198    0.036   6.0      8.3      1.6    0.037   16.7
    1000     500       no       0.64     0.07   12.0      9.8      1.8    0.09    24.9
    1000     500      yes       0.42    30.99   15.7     29.9      1.7    0.08    79.4
    2000    1000       no       3.5      0.30   73.5     14.9      4.8    0.08    96.6
    2500    1250       no       2.7      0.45  127.1     18.3     11.5    0.09   160.7
    3000    1500       no       4.2      0.46  236.8     19.6     10.7    0.10   272.8
    4000    2000       no       8.4      0.98  502.2     27.9     21.4    0.14   561.8
    

    令我完全惊讶和懊恼的是,'cw'(new.CytoscapeWindow方法)有一个指数减速 - 根本没有任何意义 . 可能是你的记忆力耗尽与此有关,并且可以解决 .

    我将探讨这个问题,并可能在下周进行修复 .

    那么,您是否知道可以直接从邻接矩阵创建graphNEL?

    g = new ("graphAM", adjMat = matrix, edgemode="directed")
    

    感谢Ignacio,感谢您提供最实用的报告 . 我早就应该做这些计时测试了!

    • 保罗
  • 0

    我使用Cytoscape已经有一段时间了,所以我不确定该怎么做,但manual表示你可以使用"Table Import"功能将文本文件用作输入 .

    igraph 中,您可以使用 write.graph() 函数以多种方式导出图形 . 这样您就可以避免转换为 graphNEL 对象,这可能足以使内存不足 .

相关问题