BrainStarsデータベースAPI実装
提供:TogoWiki
目次 |
BrainStarsデータベースAPI実装
BrainStarsデータベース
- 成体マウスの脳51領域の発現データベース
- http://brainstars.org/
- Affymetrix Mouse Genome 430 2.0 で測定
- Web APIインタフェース実装中
BH10.10ログ
提案された実装案等
- Dashcode 3 で同じインタフェースが再構成できるようなAPI設計
- TogoWS 風の REST URI インタフェース.http://..../search/(keyword), http://..../search/(keyword)/count 等
- 参考: http://togows.dbcls.jp/site/ja/rest.html http://hackathon2.dbcls.jp/wiki/GuidelineForWebService
- 検索結果に応じてHTTPエラーコード(404 not found 等) をはく
- 目標 http://brainstars.org/search/receptor/1,10 や http://brainstars.org/search/receptor/count などでアクセス可能にする(こっそりとdone)
- RDF/XML での出力
- XML形式ならRDFにしておくと,自動的に他のリソースと連携できそう.
- YAML いらない
- YAMLの位置は中途半端(サポートの広さではJSONが,規格のしっかりさではXMLが勝る)
- 残してもいいが,ドキュメントの準備が大変になる.
- rubyのYAMLパーザは遅い
- 表のTab区切り形式や,IDリストでの出力サポート
- 割と評価が高い(cut-paste で BioMart などの他のサービスに入力できる)
ウェブサービスAPIクライアント案
- プローブセット毎の発現をブラウズするアプリ。
- フィルタリングパス:High/Low選択 => 組織選択 => プローブセット選択 =>
- キーワード検索パス:キーワード入力検索 =>プローブセット選択 =>
Dashcode でつくってみた
http://skitch.com/nakao/dhic4/brainstars-dashcode
- データソースを動的に設定することが必要だが、そこまではわからなかった。
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
- "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
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")
第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 で書きなおす
- エラー処理をまじめにやる
- ちゃんとパッケージ化する