Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
cyREST入門
第46回R勉強会@東京(#TokyoR)
2015/2/21
@sato_mitsunori
~RとCytoscapeのAPI連携~
mitsunori.sato@gmail.com
佐藤 満紀
2015.02.21 第46回R勉強会@東京(#TokyoR) 2
自己紹介
• 名前 佐藤 満紀(@sato_mitsunori)
• 出身 山形県 酒田市
• 仕事 花王株式会社
マーケティング部門でデータ分析
• 趣味 スキー
今シーズン...
2015.02.21 第46回R勉強会@東京(#TokyoR) 3
http://www.slideshare.net/keiono/1-92015-43373668
2015.02.21 第46回R勉強会@東京(#TokyoR) 4
と、いうことは!
と
毛玉クラスタの皆様は
是非試してほしい
しかも、マシン間で!!
の連携!
2015.02.21 第46回R勉強会@東京(#TokyoR) 5
えっ
Cytoscape知らない?
2015.02.21 第46回R勉強会@東京(#TokyoR) 6
Cytoscape
2015.02.21 第46回R勉強会@東京(#TokyoR) 7
s
http://dig.do/cytoscape.org
2015.02.21 第46回R勉強会@東京(#TokyoR) 8
これを描くのです
2015.02.21 第46回R勉強会@東京(#TokyoR) 9
Cytoscapeの準備
• Cytoscape ※3.1以上
http://www.cytoscape.org/
ダウンロードしてインストール
• cyREST ※Cytos...
2015.02.21 第46回R勉強会@東京(#TokyoR) 10
Appのインストール
最新でない場合もある
プロキシ環境の場合は
表示されないことも
http://apps.cytoscape.org/apps/cyrest
からダウンロ...
2015.02.21 第46回R勉強会@東京(#TokyoR) 11
インストールされたApp
インストールされたApp
2015.02.21 第46回R勉強会@東京(#TokyoR) 12
API動作確認
• http://localhost:1234/v1
Cytoscape起動状態で
• netstat -an
プロトコル ローカル アドレス 外部アドレス ...
2015.02.21 第46回R勉強会@東京(#TokyoR) 13
いよいよRから描くよ
2015.02.21 第46回R勉強会@東京(#TokyoR) 14
基本的な流れ
1. graphオブジェクト準備
2. graph → JSON 変換
レイアウト適用4. レイアウト変更
グラフデータ受信
POST
3. JSONデータ送信...
2015.02.21 第46回R勉強会@東京(#TokyoR) 15
Rコード
# 1. graphオブジェクト準備
library(igraph)
g <- barabasi.game(1000, directed=FALSE)
# 2. g...
2015.02.21 第46回R勉強会@東京(#TokyoR) 16
描けました
2015.02.21 第46回R勉強会@東京(#TokyoR) 17
プロキシ環境のあなたは
devtools::source_url(
"https://raw.githubusercontent.com/idekerlab/cy-rest-...
2015.02.21 第46回R勉強会@東京(#TokyoR) 18
画像の保存だってできます
GET(paste(
"http://localhost:1234/v1/networks/", toString(network.suid),
"...
2015.02.21 第46回R勉強会@東京(#TokyoR) 19
全然違う!
http://dig.do/cytoscape.org
2015.02.21 第46回R勉強会@東京(#TokyoR) 20
スタイルも変えなくちゃ
2015.02.21 第46回R勉強会@東京(#TokyoR) 21
スタイルの変え方
1. デフォルトでインストールされている
スタイルを適用する
2. スタイルを作る
これ→
これ適用してみます→
2015.02.21 第46回R勉強会@東京(#TokyoR) 22
スタイルの適用
# 5. スタイルの適用
GET(paste(
“http://localhost:1234/v1/apply/styles/Universe/”, toSt...
2015.02.21 第46回R勉強会@東京(#TokyoR) 23
デフォルトのスタイル
スタイルの一覧を取得してみる
適用するスタイル名に空白がある場合
http://localhost:1234/v1/styles
["Big Label...
2015.02.21 第46回R勉強会@東京(#TokyoR) 24
スタイルの変え方
1. デフォルトでインストールされている
スタイルを適用する
2. スタイルを作る
これ→
これ適用してみます→
2015.02.21 第46回R勉強会@東京(#TokyoR) 25
スタイル作成・適用の流れ
1. スタイル名
2. デフォルト
スタイル適用
POST
3. マッピング
4. JSON作成
スタイル受信5. JSON送信
6. スタイル変更...
2015.02.21 第46回R勉強会@東京(#TokyoR) 26
こんな感じ
# 6.1. スタイル作成
style.name = "MyStyle1"
# 6.2. デフォルト
# network
def.background.color...
2015.02.21 第46回R勉強会@東京(#TokyoR) 27
APIのドキュメント
http://keiono.github.io/cy-rest/
2015.02.21 第46回R勉強会@東京(#TokyoR) 28
足りてない部分もあるので
2015.02.21 第46回R勉強会@東京(#TokyoR) 29
リバースエンジニアリング?
http://localhost:1234/v1/styles/default/defaults
取得したJSON
Send
2015.02.21 第46回R勉強会@東京(#TokyoR) 30
がんばったら結構似てきた
http://dig.do/cytoscape.org
# グラフ生成
library(igraph)
g <- static.power.law....
2015.02.21 第46回R勉強会@東京(#TokyoR) 31
RPubsにコードあります
http://rpubs.com/sato_mitsunori/60966
2015.02.21 第46回R勉強会@東京(#TokyoR) 32
ハマリポイント1
> res <- POST(url="http://localhost:1234/v1/networks", body=cygraph, encode="j...
2015.02.21 第46回R勉強会@東京(#TokyoR) 33
ハマリポイント2
> GET(paste("http://localhost:1234/v1/apply/layouts/force-directed/", toString...
2015.02.21 第46回R勉強会@東京(#TokyoR) 34
なんかカクカクしてる?
Show Graphics Details
するとキレイになる
cyREST入門~RとCytoscapeのAPI連携~
Upcoming SlideShare
Loading in …5
×

cyREST入門~RとCytoscapeのAPI連携~

7,626 views

Published on

第46回R勉強会@東京(#TokyoR)で発表した資料です。

Published in: Technology
  • Sex in your area is here: ❶❶❶ http://bit.ly/2u6xbL5 ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating for everyone is here: ❤❤❤ http://bit.ly/2u6xbL5 ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Looking For A Job? Positions available now. FT or PT. $10-$30/hr. No exp required. ♣♣♣ http://t.cn/AieXS5j0
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes.........ACCESS WEBSITE Over for All Ebooks ..... (Unlimited) ......................................................................................................................... Download FULL PDF EBOOK here { https://urlzs.com/UABbn } .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

cyREST入門~RとCytoscapeのAPI連携~

  1. 1. cyREST入門 第46回R勉強会@東京(#TokyoR) 2015/2/21 @sato_mitsunori ~RとCytoscapeのAPI連携~ mitsunori.sato@gmail.com 佐藤 満紀
  2. 2. 2015.02.21 第46回R勉強会@東京(#TokyoR) 2 自己紹介 • 名前 佐藤 満紀(@sato_mitsunori) • 出身 山形県 酒田市 • 仕事 花王株式会社 マーケティング部門でデータ分析 • 趣味 スキー 今シーズンの滑走日数はまだ1日
  3. 3. 2015.02.21 第46回R勉強会@東京(#TokyoR) 3 http://www.slideshare.net/keiono/1-92015-43373668
  4. 4. 2015.02.21 第46回R勉強会@東京(#TokyoR) 4 と、いうことは! と 毛玉クラスタの皆様は 是非試してほしい しかも、マシン間で!! の連携!
  5. 5. 2015.02.21 第46回R勉強会@東京(#TokyoR) 5 えっ Cytoscape知らない?
  6. 6. 2015.02.21 第46回R勉強会@東京(#TokyoR) 6 Cytoscape
  7. 7. 2015.02.21 第46回R勉強会@東京(#TokyoR) 7 s http://dig.do/cytoscape.org
  8. 8. 2015.02.21 第46回R勉強会@東京(#TokyoR) 8 これを描くのです
  9. 9. 2015.02.21 第46回R勉強会@東京(#TokyoR) 9 Cytoscapeの準備 • Cytoscape ※3.1以上 http://www.cytoscape.org/ ダウンロードしてインストール • cyREST ※Cytoscape App あとで説明 • Java 7 or 8 Cytoscape 3.2.1 から Java8対応
  10. 10. 2015.02.21 第46回R勉強会@東京(#TokyoR) 10 Appのインストール 最新でない場合もある プロキシ環境の場合は 表示されないことも http://apps.cytoscape.org/apps/cyrest からダウンロード済のJARファイルを選択しても良い
  11. 11. 2015.02.21 第46回R勉強会@東京(#TokyoR) 11 インストールされたApp インストールされたApp
  12. 12. 2015.02.21 第46回R勉強会@東京(#TokyoR) 12 API動作確認 • http://localhost:1234/v1 Cytoscape起動状態で • netstat -an プロトコル ローカル アドレス 外部アドレス 状態 TCP 0.0.0.0:1234 0.0.0.0:0 LISTENING OK {"apiVersion":"v1","numberOfCores":8,"memoryStatus":{"usedMemor y":92,"freeMemory":1870,"totalMemory":1963,"maxMemory":27618}} OK JSON表示されました cyREST 0.9.7から 他PCとの連携も可か?
  13. 13. 2015.02.21 第46回R勉強会@東京(#TokyoR) 13 いよいよRから描くよ
  14. 14. 2015.02.21 第46回R勉強会@東京(#TokyoR) 14 基本的な流れ 1. graphオブジェクト準備 2. graph → JSON 変換 レイアウト適用4. レイアウト変更 グラフデータ受信 POST 3. JSONデータ送信 GET network ID
  15. 15. 2015.02.21 第46回R勉強会@東京(#TokyoR) 15 Rコード # 1. graphオブジェクト準備 library(igraph) g <- barabasi.game(1000, directed=FALSE) # 2. graph → JSON 変換 library(RJSONIO) library(httr) devtools::source_url( "https://raw.githubusercontent.com/idekerlab/cy-rest-R/develop/toCytoscape.R" ) cygraph <- toCytoscape(g) # 3. JSONデータ送信 res <- POST(url=“http://localhost:1234/v1/networks”, body=cygraph, encode="json") network.suid <- unname(fromJSON(rawToChar(res$content))) # 4. レイアウト変更 GET(paste( “http://localhost:1234/v1/apply/layouts/force-directed/”, toString(network.suid), sep="")) グラフオブジェクトからJSONに変換する関数 Cytoscape開発コアメンバーの大野さんが 準備してくれました。 ここはレイアウトアルゴリズム名 グラフオブジェクト生成
  16. 16. 2015.02.21 第46回R勉強会@東京(#TokyoR) 16 描けました
  17. 17. 2015.02.21 第46回R勉強会@東京(#TokyoR) 17 プロキシ環境のあなたは devtools::source_url( "https://raw.githubusercontent.com/idekerlab/cy-rest-R/develop/toCytoscape.R" ) set_config(use_proxy(url="http://xxx", port=yyy, username=“uuu", password=“ppp")) devtools::source_url( "https://raw.githubusercontent.com/idekerlab/cy-rest-R/develop/toCytoscape.R" ) reset_config() # プロキシ設定を戻す reset_config()重要です!
  18. 18. 2015.02.21 第46回R勉強会@東京(#TokyoR) 18 画像の保存だってできます GET(paste( "http://localhost:1234/v1/networks/", toString(network.suid), "/views/first.png?h=1200", sep=""), write_disk("hoge.png", overwrite=TRUE)) 画像の高さ ※横は自動 png <- content(GET( paste("http://localhost:1234/v1/networks/", toString(network.suid), "/views/first.png?h=600", sep=""))) plot(0:1, 0:1, type="n", xaxt="n", yaxt="n", bty="n", xlab=NA, ylab=NA) rasterImage(png, 0, 0, 1, 1) 出力ファイル名 Plotsパネルに出してみた
  19. 19. 2015.02.21 第46回R勉強会@東京(#TokyoR) 19 全然違う! http://dig.do/cytoscape.org
  20. 20. 2015.02.21 第46回R勉強会@東京(#TokyoR) 20 スタイルも変えなくちゃ
  21. 21. 2015.02.21 第46回R勉強会@東京(#TokyoR) 21 スタイルの変え方 1. デフォルトでインストールされている スタイルを適用する 2. スタイルを作る これ→ これ適用してみます→
  22. 22. 2015.02.21 第46回R勉強会@東京(#TokyoR) 22 スタイルの適用 # 5. スタイルの適用 GET(paste( “http://localhost:1234/v1/apply/styles/Universe/”, toString(network.suid), sep="")) ここはスタイル名 こんな感じになりました!
  23. 23. 2015.02.21 第46回R勉強会@東京(#TokyoR) 23 デフォルトのスタイル スタイルの一覧を取得してみる 適用するスタイル名に空白がある場合 http://localhost:1234/v1/styles ["Big Labels","default","BioPAX","Solid", "default black","Directed","Minimal","Nested Network Style", "Universe","Sample1","Ripple","BioPAX_SIF"] 空白は%20に置換しましょうね ex) "Big Labels" GET(paste( “http://localhost:1234/v1/apply/styles/Big%20Labels/”, toString(network.suid), sep="")) ここはスタイル名
  24. 24. 2015.02.21 第46回R勉強会@東京(#TokyoR) 24 スタイルの変え方 1. デフォルトでインストールされている スタイルを適用する 2. スタイルを作る これ→ これ適用してみます→
  25. 25. 2015.02.21 第46回R勉強会@東京(#TokyoR) 25 スタイル作成・適用の流れ 1. スタイル名 2. デフォルト スタイル適用 POST 3. マッピング 4. JSON作成 スタイル受信5. JSON送信 6. スタイル変更 GET list形式 → JSO
  26. 26. 2015.02.21 第46回R勉強会@東京(#TokyoR) 26 こんな感じ # 6.1. スタイル作成 style.name = "MyStyle1" # 6.2. デフォルト # network def.background.color <- list( visualProperty = "NETWORK_BACKGROUND_PAINT", value = "#000000" ) # Node def.node.color <- list( visualProperty = "NODE_FILL_COLOR", value = "#FFFFFF" ) # Edge def.edge.color <- list( visualProperty = "EDGE_STROKE_UNSELECTED_PAINT", value = "#FFFFFF" ) defaults <- list( def.background.color, def.node.color, def.edge.color) # 6.3. マッピング V(g)$degree <- degree(g) # 次数(ノードに接するエッジの数) min.degree = min(V(g)$degree) max.degree = max(V(g)$degree) point1 = list( value=min.degree, lesser= "1.0", equal="1.0", greater="1.0") point2 = list( value=max.degree, lesser="100.0", equal="100.0", greater="1.0") node.size.continuous.points = list(point1, point2) node.size = list( mappingType="continuous", mappingColumn="degree", mappingColumnType="Double", visualProperty="NODE_SIZE", points = node.size.continuous.points ) mappings = list(node.size) # 6.4. スタイルjson作成 style <- list(title = style.name, defaults = defaults, mappings = mappings) style.JSON <- toJSON(style) # 6.5. スタイルjson送信 POST(url="http://localhost:1234/v1/styles", body=style.JSON, encode = "json") # 6.6. スタイル変更 GET(paste("http://localhost:1234/v1/apply/styles", style.name, toString(network.suid),sep="/")) 全体の背景色 ノードの色 エッジの色 次数のmin,max 次数の値に応じた ノードの大きさ
  27. 27. 2015.02.21 第46回R勉強会@東京(#TokyoR) 27 APIのドキュメント http://keiono.github.io/cy-rest/
  28. 28. 2015.02.21 第46回R勉強会@東京(#TokyoR) 28 足りてない部分もあるので
  29. 29. 2015.02.21 第46回R勉強会@東京(#TokyoR) 29 リバースエンジニアリング? http://localhost:1234/v1/styles/default/defaults 取得したJSON Send
  30. 30. 2015.02.21 第46回R勉強会@東京(#TokyoR) 30 がんばったら結構似てきた http://dig.do/cytoscape.org # グラフ生成 library(igraph) g <- static.power.law.game(no.of.nodes=10000, no.of.edges=30000, 2.3, 2.4)
  31. 31. 2015.02.21 第46回R勉強会@東京(#TokyoR) 31 RPubsにコードあります http://rpubs.com/sato_mitsunori/60966
  32. 32. 2015.02.21 第46回R勉強会@東京(#TokyoR) 32 ハマリポイント1 > res <- POST(url="http://localhost:1234/v1/networks", body=cygraph, encode="json") > 赤になっている → 右クリックで create view すれば良い 何も出ない! 大きなグラフの場合に なることがあります # create view を実行するAPI POST(paste("http://localhost:1234/v1/networks/", toString(network.suid), "/views", sep=""))
  33. 33. 2015.02.21 第46回R勉強会@東京(#TokyoR) 33 ハマリポイント2 > GET(paste("http://localhost:1234/v1/apply/layouts/force-directed/", toString(network.suid), sep="")) Response [http://localhost:1234/v1/apply/layouts/force-directed/88116] Date: 2015-02-21 11:24 Status: 500 Content-Type: text/html;charset=ISO-8859-1 Size: 1.03 kB > レイアウトが適用されない 大きなグラフの場合に なることがあります メニュー → Layout → お好みのレイアウト で対応
  34. 34. 2015.02.21 第46回R勉強会@東京(#TokyoR) 34 なんかカクカクしてる? Show Graphics Details するとキレイになる

×