RDFストア間データ連結フレームワークの開発およびオーソログ解析への適用
千葉啓和
基礎生物学研究所©2015 千葉啓和(基礎生物学研究所）licensed under CC表示2.1日本

National Institute for Basic Biology背景と目的•バイオデータベースのRDF化が進んでいる– インターネット上の分散データベースが実現しつつある•

SPARQLクライアントが未成熟なため、問い合わせる際の作業効率が低い– 特に、RDFストア間でのデータ連結はやりにくい• RDFストアに効率よく問い合わせを行うための枠組みを開発– 複数のエンドポイントへのアクセスにも対応•

オーソログ情報を利用した遺伝子情報の統合的解析の試み

National Institute for Basic Biology

通常のSPARQL実行方法
SPARQLエンドポイントにアクセス
SPARQLのコードを打ち込む

tax:511145 を主語とするトリプルを探す

単純な処理にも煩雑な操作が必要
検索結果を利用した解析がしにくい
National Institute for Basic Biology

SPANG: a command-line client
supporting query generation
for distributed SPARQL endpoints• コマンドによってSPARQLを動的に生成– 典型的コードパターンの生成– prefix宣言の生成→ 基本的な問い合わせ作業を効率化• 複数のSPARQLクエリを組み合わせることが可能– クエリ毎にプロセスを生成– プロセス間通信により他の処理と組み合わせる→ SPARQLコードのモジュール化による運用性の向上
National Institute for Basic Biology

SPANGを利用した問い合わせ
UNIXコマンドライン> spang nibb -S tax:511145

National Institute for Basic Biology

SPANGを利用した問い合わせ
UNIXコマンドライン> spang nibb -S tax:511145
SPARQLエンドポイント（ニックネームはURLに置換）

http://sparql.nibb.ac.jp/sparql

National Institute for Basic Biology

エンドポイント定義ファイル

SPANGを利用した問い合わせ
UNIXコマンドライン> spang nibb -S tax:511145
SPARQLエンドポイント（ニックネームはURLに置換）

http://sparql.nibb.ac.jp/sparql
tax:511145を主語に持つトリプルを取得するSPARQLを自動生成
PREFIX tax: <http://purl.uniprot.org/taxonomy/>
SELECT ?p ?o
WHERE {
tax:511145 ?p ?o}National Institute for Basic Biology

エンドポイント定義ファイル

SPANGを利用した問い合わせ
UNIXコマンドライン> spang nibb -S tax:511145
SPARQLエンドポイント（ニックネームはURLに置換）

http://sparql.nibb.ac.jp/sparql

エンドポイント定義ファイル

tax:511145を主語に持つトリプルを取得するSPARQLを自動生成

prefix定義ファイル

PREFIX tax: <http://purl.uniprot.org/taxonomy/>
SELECT ?p ?o
WHERE {
tax:511145 ?p ?o}

クエリに含まれる tax:を認識して対応する
prefix宣言を追加

National Institute for Basic Biology

PREFIX orth: <http://purl.jp/bio/11/orthPREFIX uniprot: <http://purl.uniprot.org…

SPANGを利用した問い合わせ
UNIXコマンドライン> spang nibb -S tax:511145
SPARQLエンドポイント（ニックネームはURLに置換）

http://sparql.nibb.ac.jp/sparql

エンドポイント定義ファイル

tax:511145を主語に持つトリプルを取得するSPARQLを自動生成

prefix定義ファイル

PREFIX tax: <http://purl.uniprot.org/taxonomy/>
SELECT ?p ?o
WHERE {tax:511145 ?p ?o}

クエリに含まれる tax:を認識して対応する
prefix宣言を追加

PREFIX orth: <http://purl.jp/bio/11/orth
PREFIX uniprot: <http://purl.uniprot.org…

SPARQLエンドポイントにHTTPリクエストを送信、得られたレスポンスを整形して表示
National Institute for Basic Biology

SPANGを利用した問い合わせ
UNIXコマンドライン> spang nibb -S tax:511145
標準出力<http://www.w3.org/1999/02/22-rdf-syntax-ns#type><http://purl.uniprot.org/core/Taxon><http://www.w3.org/2000/01/rdf-schema#subClassOf><http://purl.uniprot.org/taxonomy/83333><http://purl.uniprot.org/core/otherName>"Escherichia coli MG1655"<http://purl.uniprot.org/core/otherName>"Escherichia coli str. K12 substr. MG1655"<http://purl.uniprot.org/core/otherName>"Escherichia coli str. MG1655"<http://purl.uniprot.org/core/otherName>"Escherichia coli strain MG1655"<http://purl.uniprot.org/core/partOfLineage>"0"^^<http://www.w3.org/2001/XMLSchema#integer><http://purl.uniprot.org/core/reviewed> "0"^^<http://www.w3.org/2001/XMLSchema#integer><http://purl.uniprot.org/core/scientificName>"Escherichia coli str. K-12 substr. MG1655"<http://www.w3.org/2004/02/skos/core#narrowerTransitive><http://purl.uniprot.org/taxonomy/1208340><http://www.w3.org/2004/02/skos/core#narrowerTransitive><http://purl.uniprot.org/taxonomy/1385755><http://www.w3.org/2004/02/skos/core#narrowerTransitive><http://purl.uniprot.org/taxonomy/694514><http://www.w3.org/2004/02/skos/core#narrowerTransitive><http://purl.uniprot.org/taxonomy/694515><http://www.w3.org/2004/02/skos/core#narrowerTransitive><http://purl.uniprot.org/taxonomy/694516><http://www.w3.org/2004/02/skos/core#narrowerTransitive><http://purl.uniprot.org/taxonomy/694517><http://www.w3.org/2004/02/skos/core#narrowerTransitive><http://purl.uniprot.org/taxonomy/694518><http://www.w3.org/2004/02/skos/core#narrowerTransitive><http://purl.uniprot.org/taxonomy/694519><http://www.w3.org/2004/02/skos/core#narrowerTransitive><http://purl.uniprot.org/taxonomy/694520><http://www.w3.org/2004/02/skos/core#narrowerTransitive><http://purl.uniprot.org/taxonomy/694521><http://www.w3.org/2004/02/skos/core#narrowerTransitive><http://purl.uniprot.org/taxonomy/694522><http://www.w3.org/2004/02/skos/core#narrowerTransitive><http://purl.uniprot.org/taxonomy/694523><http://www.w3.org/2004/02/skos/core#narrowerTransitive><http://purl.uniprot.org/taxonomy/694524><http://www.w3.org/2004/02/skos/core#narrowerTransitive><http://purl.uniprot.org/taxonomy/694525

National Institute for Basic Biology

SPANGを利用した問い合わせ
UNIXコマンドライン> spang nibb -S tax:511145 -a
prefix定義を利用し、省略形に変換

prefix定義ファイル

rdf:typeup:Taxon
rdfs:subClassOf tax:83333
up:otherName"Escherichia coli MG1655"
up:otherName"Escherichia coli str. K12 substr. MG1655"
up:otherName"Escherichia coli str. MG1655"
up:otherName"Escherichia coli strain MG1655"
up:partOfLineage"0"^^xsd:integer
up:reviewed"0"^^xsd:integer
up:scientificName"Escherichia coli str. K-12 substr. MG1655"
skos:narrowerTransitive tax:1208340
skos:narrowerTransitive tax:1385755
skos:narrowerTransitive tax:694514
skos:narrowerTransitive tax:694515
skos:narrowerTransitive tax:694516
skos:narrowerTransitive tax:694517
skos:narrowerTransitive tax:694518
skos:narrowerTransitive tax:694519
skos:narrowerTransitive tax:694520
skos:narrowerTransitive tax:694521
skos:narrowerTransitive tax:694522
skos:narrowerTransitive tax:694523
skos:narrowerTransitive tax:694524
skos:narrowerTransitive tax:694525

National Institute for Basic Biology

SPANGを利用した問い合わせ
主語と述語を指定した場合> spang nibb -S tax:511145 -P up:otherName"Escherichia coli MG1655""Escherichia coli str. K12 substr. MG1655""Escherichia coli str. MG1655""Escherichia coli strain MG1655"> spang nibb -S tax:511145 -P rdfs:subClassOf+/up:scientificName"Proteobacteria""Gammaproteobacteria""cellular organisms""Bacteria""Enterobacteriaceae""Escherichia""Escherichia coli""Escherichia coli (strain K12)""Enterobacteriales"

National Institute for Basic Biology

SPANGを利用した問い合わせ
UNIXコマンドライン> spang nibb -O tax:511145 -a
目的語を指定した場合
tax:694525
tax:694517
tax:694532
tax:694524…

rdfs:subClassOf tax:511145 .
rdfs:subClassOf tax:511145 .
rdfs:subClassOf tax:511145 .
rdfs:subClassOf tax:511145 .

National Institute for Basic Biology

SPANG：その他の主なオプション> spang nibb -G
GRAPH句を生成する→RDFストア内のグラフ一覧を取得できる> spang nibb -F mbgdr:default -L 10
FROM句を生成して 出力行数を制限（LIMIT 10）
グラフを限定> spang nibb -F mbgdr:default -N
FROM句を生成して 出力行数を数える（COUNT関数）
グラフを限定> spang nibb -F mbgdr:default -f json
出力フォーマットの指定
tsv, json, n-triples (nt), turtle (ttl), rdf/xml (rdfxml), n3, xml, html
National Institute for Basic Biology

SPANG：その他の主なオプション> spang nibb -F mbgdr:default -N -q
内部的に自動生成されたSPARQLを出力して終了
PREFIX mbgdr: <http://mbgd.genome.ad.jp/rdf/resource/>
SELECT COUNT(*)
FROM mbgdr:default
WHERE {?s ?p ?o}National Institute for Basic Biology

SPANG：その他の主なオプション> spang nibb -F mbgdr:default -N -q
内部的に自動生成されたSPARQLを出力して終了
PREFIX mbgdr: <http://mbgd.genome.ad.jp/rdf/resource/>
SELECT COUNT(*)
FROM mbgdr:default
WHERE {?s ?p ?o}

出力されたSPARQLを保存、編集して再実行することも可能> spang nibb ./query.rq
SPARQLファイルのパスを指定
National Institute for Basic Biology

SPANGを利用した問い合わせ（推論）UNIXコマンドライン> spang nibb -S tax:511145 -P rdfs:label -i ontologies -aSPARQL

オントロジーを利用した推論を、RDFストア(Virtuoso)内で有効にする

define input:inference "ontologies"

階層構造

rdfs:label

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX tax: <http://purl.uniprot.org/taxonomy/>
SELECT ?o
WHERE {tax:511145 rdfs:label ?o}rdfs:subClassOf
up:nameup:scientificName

結果"Escherichia coli MG1655""Escherichia coli str. K-12 substr. MG1655""Escherichia coli str. K12 substr. MG1655""Escherichia coli str. MG1655""Escherichia coli strain MG1655"

National Institute for Basic Biology

up:otherName

SPARQLライブラリを共有する機能• ローカルなSPARQLライブラリを構築できる(System-wide) SPANG_DIR/query/*(User-specific) ~/.spang/query/*> spang nibb count_graphs.rq

ローカルのライブラリから見つける> spang nibb count_graphs.rqは省略可能• 公開ライブラリをネットワーク越しに呼び出せる> spang nibb http://purl.org/net/spang/library/count_graphs クエリを取得するURI> spang nibb lib:count_graphs

National Institute for Basic Biology

prefixを使って省略できる

SPARQLクエリの汎用性を高める仕組み• 引数を受け取ることができる> spang nibb count_graph mbgdr:default
与えられたグラフのトリプル数をカウントする• 標準入力を受け取ることができる> spang nibb get_orthologs rpoB | spang uniprot get_annotation> spang nibb get_orthologs rpoB | spang uniprot -S 1 -P rdfs:label
基生研にアクセスして、オーソログ遺伝子リストを取得する(UniProt ID)

UniProtにアクセスして、UniProt IDに対して付けられたアノテーションを取得する

National Institute for Basic Biology

SPANGを利用したSPARQLの組み合わせ
UNIXコマンドライン> spang uniprot get_uniprot eggnog:COG0527 | spang nibb uniprot_orthologs

UniProt IDを取得するSPARQL
テンプレート

MBGDクラスターを取得する
SPARQLテンプレート

PREFIX up: <…………>
SELECT …
WHERE {…
…
…
…
…
…
}

eggNOGクラスターに対応するMBGD
クラスター

入力パラメータの埋め込み$1 ;…
…P00532…
…
…
…

PREFIX orth: <…
SELECT … …
WHERE {…
…
…
VALUES (?s){ $STDIN }…
}標準入力を通じて、クエリ間で変数のバインディングを受け渡す

National Institute for Basic Biology……6300………………
………………
………………

1

SPANG 公開URL: http://purl.org/net/spang

ヘルプページ（Wiki）

利用可能なSPARQLのライブラリ
利用可能なRDF
グラフの可視化

National Institute for Basic Biology