2012-04-11 103 views
2

我是比較新的R和正在試圖解決以下問題:內存問題,使用大型社交網絡的可視化R和Cytoscape的

我在Windows 7企業版平臺上工作與R的32位版本 並且在我的機器上有大約3GB的RAM。我有大規模的社交網絡數據(約7,000個頂點和約30,000個邊),它們當前存儲在我的SQL數據庫中的爲 。我設法將這個數據 (省略了頂點和邊的屬性)放入一個R數據幀中,然後把這個數據寫入一個igraph對象中。爲了進一步分析和可視化,我現在想使用RCytoscape將此圖形推入Cytoscape。 目前,我的方法是將圖形對象轉換爲 graphNEL對象,因爲RCytoscape似乎適用於此對象 類型。 (igraph繪圖功能太慢並且缺少進一步分析功能。)

不幸的是,運行此腳本時,我總是遇到內存問題。它以前與較小的網絡一起工作。

有沒有人有關於如何解決這個問題的想法?或者你可以推薦任何其他的可視化和分析工具,它們可以很好地運行於R,並且可以處理這樣的大規模數據?

任何幫助將不勝感激。非常感謝!

最佳,伊格納西奧

回答

0

它已經有一段時間,因爲我用Cytoscape的,所以我不完全知道如何做到這一點,但manual狀態,你可以使用「表導入」功能,使用文本文件作爲輸入。

igraph中,您可以使用write.graph()函數以多種方式導出圖形。通過這種方式,您可以規避必須轉換爲graphNEL對象,該對象可能足以不會耗盡內存。

+0

非常感謝你們兩位。我期待着Paul的解決方案,如果它不起作用,我將不得不通過SQL插件直接將數據導入到Cytoscape ...最好的,Ignacio – user1326028 2012-04-19 19:19:24

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,爲您提供最有幫助的報告。我應該很早以前完成這些時序測試!

  • 保羅
+0

非常感謝你們倆。我期待着Paul的解決方案,如果它不起作用,我將不得不通過SQL插件直接將數據導入Cytoscape ... Best,Ignacio – user1326028 2012-04-19 19:20:01