Hatena::Grouplifesciencedb

ゲノム周辺 このページをアンテナに追加 RSSフィード

2010-01-30

TogoWS REST API JSON 形式の利用例

|  TogoWS REST API JSON 形式の利用例 - ゲノム周辺 を含むブックマーク はてなブックマーク -  TogoWS REST API JSON 形式の利用例 - ゲノム周辺  TogoWS REST API JSON 形式の利用例 - ゲノム周辺 のブックマークコメント

TogoWS REST APIJSON 形式の出力形式に対応しています。これを利用するとかんたんにウェブページにデータを追加表示できます。この利用例では、HTML書類にレンダリング時にAjaxで取得したPubMedアブストラクトのデータを表示します。

REST APIJSON 形式

PubMed アブストラクトのタイトルの取得 URI は次のようになります。ti フィールドがタイトルです。

その返り値

["From genomics to chemical genomics: new developments in KEGG."]

この返り値JSONJavaScriptで値としてつかうには eval を使用します。TogoWS REST APIJSON 形式を利用する際に配列の一個目の要素を取り出す必要があります。

var data = eval(ti_in_json)[0]

図はイメージ

次のようなウェブページを、TogoWS からデータ取得し作成できます。JavaScript による Ajax でデータは JSON 形式としてクロスドメインに取得されて、そのまま DOM 操作で表示しています。表示しているデータは、タイトル(ti)、著者(au)、書誌情報(so)、アブストラクト(ab)、MeSHターム(mh)です。

http://img.skitch.com/20100130-1xar76tyru7m6waqssdxmw2h3m.jpg


HTML ソース

Ajaxprototype.js をつかいます。

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html><head>
<title></title>
<script src="http://genome.kazusa.or.jp/javascripts/prototype.js" type="text/javascript"></script>
</head>
<body>
<div id='ti'></div>
<div id='au'></div>
<div id='so'></div>
<hr/>
<div id='ab'></div>
<hr/>
<div id='mh'></div>
<hr/>
<script type="text/javascript">
var ti = function(transport) {
  if (transport.responseText !== undefined) {
    $('ti').innerHTML = "<h1>" + eval(transport.responseText)[0] + '</h1>'
}
}
var so = function(transport) {
  if (transport.responseText !== undefined) {
    $('so').innerHTML = eval(transport.responseText)[0]
  }
}
var au = function(transport) {
  if (transport.responseText !== undefined) {
    $('au').innerHTML = eval(transport.responseText)[0].replace(/\n/g, ', ')
  }
}
var ab = function(transport) {
  if (transport.responseText !== undefined) {
    $('ab').innerHTML = eval(transport.responseText)[0];
  }
}
var mh = function(transport) {
  if (transport.responseText !== undefined) {
    var data = eval(transport.responseText)[0]
    data.each(function(e, i) {
      $('mh').innerHTML = $('mh').innerHTML + '<li>' + e + '</li>'
    })
  }
}
function failure(transport) {  alert(transport.responseText); }

new Ajax.Request("http://togows.dbcls.jp/entry/ncbi-pubmed/16381885/ti.json", { onSuccess: ti,  onFailure: failure})
new Ajax.Request("http://togows.dbcls.jp/entry/ncbi-pubmed/16381885/so.json", { onSuccess: so,  onFailure: failure})
new Ajax.Request("http://togows.dbcls.jp/entry/ncbi-pubmed/16381885/ab.json", { onSuccess: ab,  onFailure: failure})
new Ajax.Request("http://togows.dbcls.jp/entry/ncbi-pubmed/16381885/au.json", { onSuccess: au,  onFailure: failure})
new Ajax.Request("http://togows.dbcls.jp/entry/ncbi-pubmed/16381885/mh.json", { onSuccess: mh,  onFailure: failure})
</script>
</body> </html>

まとめ

  • TogoWS REST APIJSON 形式を Ajax で利用する例です。
  • 返り値は配列がいっこ余分にみえます。
  • PubMed アブストラクトから書誌情報とMeSHタームだけを表示するページをつくりました。
  • PMID だけを持っているページに、その文献のタイトルを表示追加するのは簡単なお仕事です。
トラックバック - http://lifesciencedb.g.hatena.ne.jp/nakao_mitsuteru/20100130

2009-04-18

TogoWS のデータベース名の扱いの変更

|   TogoWS のデータベース名の扱いの変更 - ゲノム周辺 を含むブックマーク はてなブックマーク -   TogoWS のデータベース名の扱いの変更 - ゲノム周辺   TogoWS のデータベース名の扱いの変更 - ゲノム周辺 のブックマークコメント

TogoWS REST APIデータベース名の扱いが変更されました。

screenshot


データベース名のところにクエリを受けているサイト名が追加されました。pubmedデータベース名)は、ncbi(サイト名)の検索機能(EUtils)を利用しているので、ncbi-pubmed という名前になります。いままでの名前空間では、名前の衝突がおこっていたので、それを解決するために、検索(search)や取得(entry)の経由先サイト名を追加しました。

例:

利用可能な名前空間のリストは、entry と search のコマンドURLから取得できます。カラムは名前空間エイリアスです。エイリアスがあるものはそれも利用可能です。


エントリ取得であつかっている名前空間 http://togows.dbcls.jp/entry/

$ curl http://togows.dbcls.jp/entry/
ncbi-genbank	genbank
ncbi-pubmed	pubmed
ebi-embl	embl
ebi-uniprot	uniprot
ddbj-ddbj	ddbj
ddbj-dad	dad
pdbj-pdb	pdb
kegg-compound	compound
kegg-drug	drug
kegg-enzyme	enzyme
kegg-genes	genes
kegg-glycan	glycan
kegg-orthology	orthology
kegg-reaction	reaction
kegg-pathway	pathway

検索であつかっている名前空間 http://togows.dbcls.jp/search/

$ curl http://togows.dbcls.jp/search/
ncbi-genbank	genbank
ncbi-pubmed	pubmed
ncbi-books
ncbi-cancerchromosomes
ncbi-cdd
ncbi-domains
ncbi-gap
ncbi-gds
ncbi-gene
ncbi-genome
ncbi-genomeprj
ncbi-gensat
ncbi-geo
ncbi-homologene
ncbi-journals
ncbi-mesh
ncbi-ncbisearch
ncbi-nlmcatalog
ncbi-nuccore
ncbi-nucest
ncbi-nucgss
ncbi-nucleotide
ncbi-omia
ncbi-omim
ncbi-pcassay
ncbi-pccompound
ncbi-pcsubstance
ncbi-pmc
ncbi-popset
ncbi-probe
ncbi-protein
ncbi-proteinclusters
ncbi-pubmed
ncbi-snp
ncbi-structure
ncbi-taxonomy
ncbi-toolkit
ncbi-unigene
ncbi-unists
ebi-embl	embl
ebi-uniprot	uniprot
ebi-2can
ebi-arrayexpress-experiments
ebi-arrayexpress-genes
ebi-arrayexpress-repository
ebi-astd
ebi-biomodels
ebi-chebi
ebi-ebiweb_staff
ebi-emblcds
ebi-embldeleted
ebi-emblnew_ann_con
ebi-emblnew_con
ebi-emblnew_standard
ebi-emblnew_wgs
ebi-emblrelease_ann_con
ebi-emblrelease_con
ebi-emblrelease_standard
ebi-emblrelease_wgs
ebi-ensembl
ebi-go
ebi-groups
ebi-intact-experiments
ebi-intact-interactions
ebi-intact-interactors
ebi-integr8
ebi-intenz
ebi-interpro
ebi-mainweb
ebi-medline
ebi-msdchem
ebi-msdpdb
ebi-patentdb
ebi-pride
ebi-reactome
ebi-resid
ebi-sbo
ebi-taxonomy
ebi-uniparc
ebi-uniprot
ebi-uniref100
ebi-uniref50
ebi-uniref90
kegg-compound	compound
kegg-drug	drug
kegg-enzyme	enzyme
kegg-genes	genes
kegg-glycan	glycan
kegg-orthology	orthology
kegg-reaction	reaction
kegg-pathway	pathway

entry と search で利用可能なデータベースが異なるのは、元サイトでエントリ取得機能と検索機能を提供しているか否かに依存しています。


まとめ

  1. TogoWS REST APIデータベース名の取り扱いが変更されてました。
  2. 「サイト名-データベース名」が名前空間になります。
  3. クエリ無しで HTTP GET するとあつかえる名前空間が取得できます。

JasonSailtJasonSailt2017/01/25 04:22изготовление блокнотов с логотипом http://wkrolik.com.ua/products/buklety

トラックバック - http://lifesciencedb.g.hatena.ne.jp/nakao_mitsuteru/20090418