我对R来说比较新,我正试图解决以下问题:
我使用32位版本的R工作在Windows 7企业版平台上 我的机器上有大约3GB的RAM。我有大规模的社交 网络数据(约7,000个顶点和c.30,000个边缘) 目前存储在我的SQL数据库中。我已设法提取这些数据 (省略顶点和边缘属性)然后进入R数据帧 成igraph对象。为了进一步分析和可视化,我会 现在想用RCytoscape将这个igraph推入Cytoscape。 目前,我的方法是将igraph对象转换为 graphNEL对象,因为RCytoscape似乎适用于此对象 类型。 (igraph绘图功能太慢而且缺乏 进一步的分析功能。)
不幸的是,我在运行时经常遇到内存问题 脚本。它之前曾在较小的网络上工作过。
有没有人知道如何解决这个问题?或者你可以 推荐任何其他可行的可视化和分析工具 用R和可以处理如此大规模的数据?
非常感谢任何帮助。非常感谢提前!
Best,Ignacio
答案 0 :(得分:1)
很抱歉花了几天时间回复你。
我刚刚进行了一些测试
1)在R中创建邻接矩阵 2)然后从矩阵创建R graphNEL 3)(可选地)节点&边缘属性被添加 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,感谢您提供最实用的报告。我很久以前就应该做这些计时测试了!
答案 1 :(得分:0)
我使用Cytoscape已经有一段时间了,所以我不确定如何做,但manual表示您可以使用“表格导入”功能将文本文件用作输入。
在igraph
中,您可以使用write.graph()
函数以多种方式导出图表。通过这种方式,您可以避免必须转换为graphNEL
对象,这可能足以使内存不足。