BrainStarsデータベースAPI実装

提供:TogoWiki

(版間での差分)
移動: 案内, 検索
(提案された実装案等)
(Rインタフェース (dritoshi 神戸一人Hackathon))
 
(間の20版分が非表示)
1行: 1行:
-
== BrainStarsデータベースAPI実装 ==
+
= BrainStarsデータベースAPI実装 =
-
=== 提案された実装案等 ===
+
== BrainStarsデータベース ==
 +
* 成体マウスの脳51領域の発現データベース
 +
* http://brainstars.org/
 +
* Affymetrix Mouse Genome 430 2.0 で測定
 +
* Web APIインタフェース実装中
 +
** 例: http://brainstars.org/marker/high/LS?content-type=application/json
 +
 +
= BH10.10ログ =
 +
 +
== 提案された実装案等 ==
 +
 +
* Dashcode 3 で同じインタフェースが再構成できるようなAPI設計
* TogoWS 風の REST URI インタフェース.http://..../search/(keyword), http://..../search/(keyword)/count 等
* TogoWS 風の REST URI インタフェース.http://..../search/(keyword), http://..../search/(keyword)/count 等
-
** 参考: http://togows.dbcls.jp/site/ja/rest.html
+
** 参考: http://togows.dbcls.jp/site/ja/rest.html http://hackathon2.dbcls.jp/wiki/GuidelineForWebService
** 検索結果に応じてHTTPエラーコード(404 not found 等) をはく
** 検索結果に応じてHTTPエラーコード(404 not found 等) をはく
 +
** 目標 http://brainstars.org/search/receptor/1,10 や http://brainstars.org/search/receptor/count などでアクセス可能にする(こっそりとdone)
* RDF/XML での出力
* RDF/XML での出力
 +
** XML形式ならRDFにしておくと,自動的に他のリソースと連携できそう.
* YAML いらない
* YAML いらない
 +
** YAMLの位置は中途半端(サポートの広さではJSONが,規格のしっかりさではXMLが勝る)
 +
** 残してもいいが,ドキュメントの準備が大変になる.
 +
** rubyのYAMLパーザは遅い
 +
* 表のTab区切り形式や,IDリストでの出力サポート
 +
** 割と評価が高い(cut-paste で BioMart などの他のサービスに入力できる)
 +
 +
== ウェブサービスAPIクライアント案 ==
 +
* プローブセット毎の発現をブラウズするアプリ。
 +
* フィルタリングパス:High/Low選択 => 組織選択 => プローブセット選択 =>
 +
* キーワード検索パス:キーワード入力検索 =>プローブセット選択 =>
 +
 +
=== Dashcode でつくってみた ===
 +
http://skitch.com/nakao/dhic4/brainstars-dashcode
 +
 +
* データソースを動的に設定することが必要だが、そこまではわからなかった。
 +
 +
[[ファイル:BrainStars -Dashcode-.jpg]]
 +
 +
== BH10.10でできたこと ==
 +
 +
=== Search API  http://brainstars.org/search ===
 +
TogoWS like なインタフェース ([.拡張子]による出力形式の指定には未対応.出力形式は &content-type=application/json 等で指定)
 +
* 検索例
 +
** "receptor" にヒットしたエントリの ID (probe set ID) のリストを返すAPI(default:text/plain) http://brainstras.org/search/receptor
 +
** "receptor" にヒットしたエントリの個数を返すAPI(default:text/plain) http://brainstars.org/search/receptor/count
 +
** "receptor" にヒットしたエントリの,10番めから5個のIDリストを返すAPI(default:text/plain) http://brainstars.org/search/receptor/10,5
 +
 +
=== marker 検索 API http://brainstars.org/marker ===
 +
countだけ新規実装.TogoWS like なインタフェースとは否互換.要検討
 +
* 検索例
 +
** 検索のカテゴリー(high=特定領域でのみ発現上昇,low=特定領域でのみ発現減少) を返すAPI http://brainstars.org/marker
 +
** high で検索できる脳領域のリストを返す API(default:text/html) http://brainstars.org/marker/high
 +
** "LS" で発現上昇しているエントリの情報を返す API(default:text/html) http://brainstars.org/marker/high/LS
 +
*** json の場合は,http://brainstars.org/marker/high/LS?content-type=application/json
 +
** "LS" で発現上昇しているエントリの個数を返す API(default:text/plain) http://brainstars.org/marker/high/LS/count
 +
 +
=== エントリ取得 API http://brainstars.org/probeset ===
 +
今までどおり.
 +
* 検索例
 +
** 1450371_at のエントリ取得 http://brainstars.org/probeset/1450371_at
 +
*** jsonの場合は http://brainstars.org/probeset/1450371_at?content-type=application/json
 +
 +
== Rインタフェース (dritoshi 神戸一人Hackathon) ==
 +
RCurl と rjson が必要
 +
 +
http://fg.cdb.riken.jp/brainstars10.10.r
 +
 +
# Search API
 +
a <- getBrainStarsSearch("receptor/10,5")
 +
a <- getBrainStarsSearch("receptor/count")
 +
 +
# Marker API
 +
r.json <- getBrainStarsMarker("high/LS/count")
 +
 +
# Expression API
 +
expression <- getBrainStarsExpression("1439627_at")
 +
 +
# Graph API
 +
getBrainStarsFigure("1439627_at", "exprgraph")
 +
[[ファイル:1439627 at.exprgraph.png]]
 +
 +
第2引数は "exprgraph", "exprmap", "switchgraph", "switchhist", "switchmap" などのグラフタイプが選べる。Affymetrix ID + Graph Type + ".png" でグラフが保存される。
 +
 +
 +
使いかた
 +
> source("http://fg.cdb.riken.jp/brainstars10.10.r")
 +
> a <- getBrainStarsSearch("receptor/count")
 +
Loading required package: RCurl
 +
Loading required package: bitops
 +
Downloading...
 +
Done.
 +
> a
 +
[1] "1985"
 +
 +
ToDo
 +
*json か R のデータ構造を選べるようにする
 +
*Unit test を書く
 +
*S4 class で書きなおす
 +
*エラー処理をまじめにやる
 +
*ちゃんとパッケージ化する
[[Category:bh10.10]]
[[Category:bh10.10]]

2010年10月22日 (金) 08:03時点における最新版

目次

BrainStarsデータベースAPI実装

BrainStarsデータベース

BH10.10ログ

提案された実装案等

ウェブサービスAPIクライアント案

  • プローブセット毎の発現をブラウズするアプリ。
  • フィルタリングパス:High/Low選択 => 組織選択 => プローブセット選択 =>
  • キーワード検索パス:キーワード入力検索 =>プローブセット選択 =>

Dashcode でつくってみた

http://skitch.com/nakao/dhic4/brainstars-dashcode

  • データソースを動的に設定することが必要だが、そこまではわからなかった。

BrainStars -Dashcode-.jpg

BH10.10でできたこと

Search API http://brainstars.org/search

TogoWS like なインタフェース ([.拡張子]による出力形式の指定には未対応.出力形式は &content-type=application/json 等で指定)

marker 検索 API http://brainstars.org/marker

countだけ新規実装.TogoWS like なインタフェースとは否互換.要検討

エントリ取得 API http://brainstars.org/probeset

今までどおり.

Rインタフェース (dritoshi 神戸一人Hackathon)

RCurl と rjson が必要

http://fg.cdb.riken.jp/brainstars10.10.r

# Search API
a <- getBrainStarsSearch("receptor/10,5")
a <- getBrainStarsSearch("receptor/count")
# Marker API
r.json <- getBrainStarsMarker("high/LS/count")
# Expression API
expression <- getBrainStarsExpression("1439627_at") 
# Graph API
getBrainStarsFigure("1439627_at", "exprgraph")

1439627 at.exprgraph.png

第2引数は "exprgraph", "exprmap", "switchgraph", "switchhist", "switchmap" などのグラフタイプが選べる。Affymetrix ID + Graph Type + ".png" でグラフが保存される。


使いかた

> source("http://fg.cdb.riken.jp/brainstars10.10.r")
> a <- getBrainStarsSearch("receptor/count")
Loading required package: RCurl
Loading required package: bitops
Downloading...
Done.
> a
[1] "1985"

ToDo

  • json か R のデータ構造を選べるようにする
  • Unit test を書く
  • S4 class で書きなおす
  • エラー処理をまじめにやる
  • ちゃんとパッケージ化する
個人用ツール