R,治世能臣;Cytoscape,亂世奸雄,兩位愛卿可否通力協(xié)作,助我順利畢業(yè)?然也!
最近在Cytoscape的mail-list上一個(gè)很熱門的話題就是如何在R中調(diào)用Cytoscape繪制復(fù)雜的生物網(wǎng)絡(luò),從而將R強(qiáng)大的統(tǒng)計(jì)功能,尤其是igraph,sna等復(fù)雜網(wǎng)絡(luò)分析包跟Cytoscape靈活的可視化復(fù)雜網(wǎng)絡(luò)分析功能及眾多插件結(jié)合在一起。昨天,Cytoscape的核心開發(fā)人員,UCSD的Keiichiro Ono在Cytoscape的wiki上發(fā)了一篇對(duì)此的簡(jiǎn)要教程,Cytoscape And R。
在R中調(diào)用Cytoscape繪圖,基本原理就是利用Cytoscape的RPC插件和Apache的XML RPC庫(kù)在本機(jī)上啟動(dòng)Cytoscape的RPC服務(wù),然后在R中用經(jīng)過修改的XMLRPC包訪問Cytoscape的RPC服務(wù),從而實(shí)現(xiàn)R和Cytoscape的交互。
1. 安裝Cytoscape RPC插件。
2. 安裝R的XMLRPC包。
sudo R CMD INSTALL XMLRPC_0.2-mod.zip
3. 啟動(dòng)Cytoscape,在plugin菜單下激活RPC插件,默認(rèn)端口是9000
4. 啟動(dòng)R,加載XMLRPC包和測(cè)試用的igraph包:
library(XMLRPC)library(igraph)
接下來,先通過xml.rpc在Cytoscape中新建一個(gè)網(wǎng)絡(luò),然后用igraph生成一個(gè)網(wǎng)絡(luò),并將此網(wǎng)絡(luò)傳給Cytoscape:
xml.rpc('http://localhost:9000', 'Cytoscape.createNetwork', 'R-Cytoscape Test')g1 <- barabasi.game(200)edgelist1 <- get.edgelist(g1)edgeIDs <- xml.rpc('http://localhost:9000', 'Cytoscape.createEdgesFromVector', edgelist1[,1], edgelist1[,2])
此時(shí),切換到Cytoscape,會(huì)看到一個(gè)紅點(diǎn)。那其實(shí)是一個(gè)有兩百個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò),只是沒有應(yīng)用任何layout而已。隨便選擇一個(gè)layout就能看到這個(gè)網(wǎng)絡(luò)了。
高級(jí)功能我也在研究中,上面這幾個(gè)Cytoscape的插件和R的包都還是bug無數(shù),大家使用的時(shí)候要隨時(shí)做好自己debug的準(zhǔn)備。
等修煉到一定水平再來更新這篇文章。
07-16-2010 Update:
有人放出了基于上述原理的R package,詳見這里:http://db.systemsbiology.net:8080/cytoscape/gaggle/test/cy2rpc/public/index.html
本文轉(zhuǎn)自:http://gossipcoder.com/?p=176
聯(lián)系客服