BH12.12/SPARQLthon/MBGD/sparqling

提供:TogoWiki

移動: 案内, 検索

目次

sparqing

コマンドラインSPARQLクライアント

コンセプト:なるべくタイピングを少なくしたい

インストール

基本的にはGitHubからダウンロードするだけ

  • sparqling をパスの通ったところにおさめる


全ての機能を使うためには、以下のプログラムが必要

  • グラフをpngに変換する機能
    • Raptorのrapperコマンド
    • GraphVizのdotコマンド
  • ローカルファイルに対して検索する機能
    • Jena ARQのsparqlコマンド

設定

~/.sparqling によく使うprefixを記述 (以下のような記述例をGitHubからダウンロード可能)

PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

# MBGD
PREFIX orth: <http://mbgd.genome.ad.jp/owl/ortholog.owl#>
PREFIX mbgd: <http://mbgd.genome.ad.jp/owl/mbgd.owl#>
PREFIX org: <http://mbgd.genome.ad.jp/rdf/genome/>
PREFIX chr: <http://mbgd.genome.ad.jp/rdf/chromosome/>
PREFIX graph: <http://mbgd.genome.ad.jp/rdf/2013-01/>
PREFIX orthGroups: <http://mbgd.genome.ad.jp/rdf/cluster/2013-01/>
PREFIX cluster: <http://mbgd.genome.ad.jp/rdf/cluster/2013-01/default/>
PREFIX eco: <http://mbgd.genome.ad.jp/rdf/gene/eco:>

# UniProt
PREFIX uniprot: <http://purl.uniprot.org/uniprot/>
PREFIX uniprotCore: <http://purl.uniprot.org/core/>
PREFIX taxon: <http://purl.uniprot.org/taxonomy/>
PREFIX uniprotDB: <http://purl.uniprot.org/database/>
PREFIX uniprotRefseq: <http://purl.uniprot.org/refseq/>

# NCBI
PREFIX protein: <http://www.ncbi.nlm.nih.gov/protein/>
PREFIX nuc: <http://www.ncbi.nlm.nih.gov/nucleotide/>
PREFIX nuccore: <http://www.ncbi.nlm.nih.gov/nuccore/>
PREFIX gene: <http://www.ncbi.nlm.nih.gov/gene/>
PREFIX pubmed: <http://www.ncbi.nlm.nih.gov/pubmed/>
PREFIX bioproject: <http://www.ncbi.nlm.nih.gov/bioproject/>
PREFIX ncbiTax: <http://www.ncbi.nlm.nih.gov/taxonomy/>

PREFIX obo: <http://purl.obolibrary.org/obo/>
PREFIX oboTax: <http://purl.org/obo/owl/NCBITaxon#>
PREFIX meo: <http://purl.jp/bio/11/meo/>
PREFIX lsdb: <http://purl.jp/bio/lsdb/>
PREFIX genomedb: <http://genome.db/sw/>
PREFIX uuid: <http://genome.db/uuid/>
PREFIX insdc: <http://insdc.org/owl/>
PREFIX faldo: <http://biohackathon.org/resource/faldo#>
PREFIX gtps: <http://gtps.ddbj.nig.ac.jp/feature/>
PREFIX idUniprot: <http://identifiers.org/uniprot/>
PREFIX pfam: <http://pfam.sanger.ac.uk/family/>


サーバー毎にaliasを作成しておく(シェルの設定)

alias mbgd='sparqling -s http://sparql.nibb.ac.jp/sparql'
alias togo='sparqling -s http://ep.dbcls.jp/sparql'
alias titech='sparqling -s http://evolve.bio.titech.ac.jp/sparql'
alias uniprot='sparqling -s http://beta.sparql.uniprot.org'

利用法

オプションを使った簡単な検索

主語を指定して、合致するトリプルを取得

mbgd -S eco:B0002

結果

<http://mbgd.genome.ad.jp/rdf/gene/eco:B0002>	<http://mbgd.genome.ad.jp/owl/mbgd.owl#geneDirection>	"1"^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://mbgd.genome.ad.jp/rdf/gene/eco:B0002>	<http://www.w3.org/2000/01/rdf-schema#seeAlso>	<http://www.ncbi.nlm.nih.gov/protein/NP_414543.1> .
<http://mbgd.genome.ad.jp/rdf/gene/eco:B0002>	<http://www.w3.org/2000/01/rdf-schema#seeAlso>	<http://gtps.ddbj.nig.ac.jp/feature/Ecol_K12_MG1655:ST179> .
<http://mbgd.genome.ad.jp/rdf/gene/eco:B0002>	<http://mbgd.genome.ad.jp/owl/mbgd.owl#locatedOn>	<http://mbgd.genome.ad.jp/rdf/chromosome/55> .
<http://mbgd.genome.ad.jp/rdf/gene/eco:B0002>	<http://www.w3.org/2000/01/rdf-schema#comment>	"fused aspartokinase I and homoserine dehydrogenase I"^^<http://www.w3.org/2001/XMLSchema#string> .
<http://mbgd.genome.ad.jp/rdf/gene/eco:B0002>	<http://www.w3.org/2000/01/rdf-schema#label>	"thrA"^^<http://www.w3.org/2001/XMLSchema#string> .
<http://mbgd.genome.ad.jp/rdf/gene/eco:B0002>	<http://mbgd.genome.ad.jp/owl/mbgd.owl#geneStart>	"343"^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://mbgd.genome.ad.jp/rdf/gene/eco:B0002>	<http://mbgd.genome.ad.jp/owl/mbgd.owl#geneEnd>	"2799"^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://mbgd.genome.ad.jp/rdf/gene/eco:B0002>	<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>	<http://mbgd.genome.ad.jp/owl/mbgd.owl#MbgdId> .
<http://mbgd.genome.ad.jp/rdf/gene/eco:B0002>	<http://www.w3.org/2000/01/rdf-schema#seeAlso>	<http://www.ncbi.nlm.nih.gov/protein/AAC73113.1> .
<http://mbgd.genome.ad.jp/rdf/gene/eco:B0002>	<http://www.w3.org/2000/01/rdf-schema#seeAlso>	<http://purl.uniprot.org/uniprot/P00561> .
<http://mbgd.genome.ad.jp/rdf/gene/eco:B0002>	<http://mbgd.genome.ad.jp/owl/ortholog.owl#organism>	<http://mbgd.genome.ad.jp/rdf/genome/eco> .

目的語を指定する場合

mbgd -O taxon:511145

主語と述語の組み合わせを指定する場合

mbgd -S eco:B0002 -P rdfs:seeAlso

グラフ名や、LIMITの指定も可能

mbgd -G graph:gene.ttl -L 10


-aオプションを付けると、~/.sparqling で定義されているprefixを利用して、結果を簡略化する

mbgd -S eco:B0002 -a

結果

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix orth: <http://mbgd.genome.ad.jp/owl/ortholog.owl#> .
@prefix chr: <http://mbgd.genome.ad.jp/rdf/chromosome/> .
@prefix eco: <http://mbgd.genome.ad.jp/rdf/gene/eco:> .
@prefix mbgd: <http://mbgd.genome.ad.jp/owl/mbgd.owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix protein: <http://www.ncbi.nlm.nih.gov/protein/> .
@prefix org: <http://mbgd.genome.ad.jp/rdf/genome/> .
@prefix gtps: <http://gtps.ddbj.nig.ac.jp/feature/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix uniprot: <http://purl.uniprot.org/uniprot/> .

eco:B0002	mbgd:geneDirection	"1"^^xsd:integer .
eco:B0002	rdfs:seeAlso	protein:NP_414543.1 .
eco:B0002	rdfs:seeAlso	gtps:Ecol_K12_MG1655:ST179 .
eco:B0002	mbgd:locatedOn	chr:55 .
eco:B0002	rdfs:comment	"fused aspartokinase I and homoserine dehydrogenase I"^^xsd:string .
eco:B0002	rdfs:label	"thrA"^^xsd:string .
eco:B0002	mbgd:geneStart	"343"^^xsd:integer .
eco:B0002	mbgd:geneEnd	"2799"^^xsd:integer .
eco:B0002	rdf:type	mbgd:MbgdId .
eco:B0002	rdfs:seeAlso	protein:AAC73113.1 .
eco:B0002	rdfs:seeAlso	uniprot:P00561 .
eco:B0002	orth:organism	org:eco .


データ統合

複数のサーバーに検索をかけて、結果をまぜてみる

(mbgd -S eco:B0002; togo -S uniprot:P00561) > merged.ttl

(N-Triples形式なので、結果をconcatenateするだけで、グラフがマージされたことになる)

ローカルファル検索

ローカルに保存したRDFファイルに対して、検索をかけることもできる

cat merged.ttl | sparqling -P rdfs:seeAlso

(この機能はJena ARQのsparqlコマンドに依存している。RDFファイルには、ttl等の拡張子が付いていることが必要)

SPARQLの様々な指定法

オプション指定による簡単な検索だけでなく、普通にSPARQLを書くこともできる。


SPARQLのコードをコマンドラインに書く

mbgd -e 'select * where  {org:eco orth:taxonomy ?tax . ?tax ?p ?o .}' 


SPARQLのコードをおさめたファイルがある場合

mbgd ortho.rq


標準入力からSPARQLを入力することもできるので

cat ortho.rq | mbgd

MacのクリップボードにSPARQLのコードを保存しておいて、標準入力に流し込むことなどもできる

pbpaste | mbgd

描画機能

rdf2pngで、RDFのグラフ構造を描画できる

cat out.ttl | rdf2png -o output.png

rdf2png -g オプションだと、その場でviewerを起動する(デフォルトでMacのopenコマンドか、ImageMagicのdisplayコマンド)

cat out.ttl | rdf2png -g

(rdf2pngは、Raptorのrapperコマンド、およびGraphVizのdotコマンドに依存している)

個人用ツール