CytoscapeとIPython Notebookの連携

Part 1: 基本機能の紹介

by Keiichiro Ono

  • Mail: kono at ucsd edu
  • Twitter: c_z

このノートブックの詳細はこちらの記事をお読みください。

初期設定

In [1]:
from py2cytoscape.data.cyrest_client import CyRestClient

cy = CyRestClient(ip='127.0.0.1', port=1234)

# 現在のセッションのクリア
cy.session.delete()

NetworkXによるスケールフリーネットワークの生成

In [2]:
import networkx as nx
g = nx.scale_free_graph(500)

各種統計量の計算

In [3]:
deg = nx.degree(g)
btw = nx.betweenness_centrality(g)

nx.set_node_attributes(g, 'degree', deg)
nx.set_node_attributes(g, 'betweenness', btw)

Cytoscapeで描画

In [4]:
g_cy = cy.network.create_from_networkx(g)

レイアウト

In [5]:
cy.layout.apply(name='kamada-kawai', network=g_cy)

スタイルの適用

In [6]:
directed = cy.style.create('Directed')
cy.style.apply(directed, network=g_cy)

見やすいようにエッジを束ねる

In [7]:
result = cy.edgebundling.apply(g_cy)

画像を取得する

PNG

In [13]:
network_png = g_cy.get_png()

from IPython.display import Image
Image(network_png)
Out[13]:

SVG

In [16]:
network_svg = g_cy.get_svg()

from IPython.display import SVG
SVG(network_svg)
Out[16]:
Creator: FreeHEP Graphics2D Driver Producer: org.freehep.graphicsio.svg.SVGGraphics2D Revision Source: Date: 2015年7月4日 23時56分36秒 PDT 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 2 1 0 0 0 0 1 0 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 1 0 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 2 1 0 1 0 9 8 7 6 5 4 3 2 1 0 0 0 1 0 0 0 0 0 0 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 3 2 1 0 0 0 0 0 0 1 0 0 0 10 9 8 7 6 5 4 3 2 1 0 0 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 4 3 2 1 0 0 0 0 0 0 1 0 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 2 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 5 4 3 2 1 0 3 2 1 0 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0