SPARQLthon/integbio

提供:TogoWiki

移動: 案内, 検索

目次

NBDC RDF Portal

NBDC RDF Portalは、RDF形式の生命科学データベースを集積したポータルサイト

課題

汎用ツールやスタンザ経由でSPARQLが実行できない(解決済み)

原因:エンドポイントからのレスポンスヘッダーContent-type(MIME)が適切ではなく、ツール側でパース出来ない。リクエストのAcceptヘッダーを返している?
現状:

application/sparql-results+json, application/sparql-results+xml, text/boolean, text/tab-separated-values;p=0.8, text/csv;p=0.2, */*;p=0.1;charset=UTF-8

修正:各仕様を参照json

(jsonの場合) application/sparql-results+json

検証コード(ruby)
sparql-client (1.99.0)を使用。integbioエンドポイントの場合は結果をパース出来ずにretがnilになる

require 'sparql/client'

#client = SPARQL::Client.new("http://dbpedia.org/sparql")
client = SPARQL::Client.new("http://integbio.jp/rdf/sparql")
sparql = "SELECT * WHERE { ?s ?p ?o } LIMIT 10"
ret = client.query(sparql)
p ret

エンドポイントのCORSが許可されていないため、js(ajax)でのSPARQLが実行できない。(解決済み)

ブラウザでSPARQLを記述した際、SPARQLコードのコピペができない(ブラウザ依存?)

GROUP_CONCATが使用できない

GROUP_CONCATを使用すると、アクセスエラーが発生する。エラーが発生するクエリ
尚、"GROUP_CONCA"までだと、文法エラーになる。

グラフ構成

トリプル数:3,575,560,021(約36億) [グラフ構成]

スタンザ

FAMSBASE GPCR

PDBの29エントリ(ただしPDBj側にないIDも含まれている?).1つのPDBエントリに2〜5万程度のモデリングエントリが紐づいている。

他のデータセットとの接続

可視化

3Dmol.jsで可視化予定。
View機能(3Dmolサーバ)を使用するためには、FAMSBASEのサーバにあるpdbファイルアクセスをCORS許可する必要がある。
そうでなければ、スタンザ運用と同じドメインのサーバに3Dmolサーバ(Node.js)を立てる

課題

  • PDBエントリの表現はPDB IDにチェインが付いたURLで表現されているため、PDBjのRDFとはリンクできない。PREFIXも異なる
PDBj : <http://rdf.wwpdb.org/pdb/3OE8>
FAMSBASE: <http://identifiers.org/pdb/3OE8_A>
  • reference(xref)のURIは独自PREFIXなので、他と繋がらない。型もついていないので、リンク先DBがリストアップできない。
NCBI protein(gene) エントリ表現
identifiers.org : <http://identifiers.org/refseq/XP_002817212.1> または <http://identifiers.org/ncbiprotein/XP_002817212.1>
PAMSBASE: <http://purl.jp/bio/01/famsbase/ref_XP_002817212.1>
  • 構造可視化のサービス選定(3Dmolの場合にはアプリ構成を検討)


PDBj

UniProtIDとの対応は多対多。

他のデータセットとの接続

ontologyの"link_to_XXXX"プロパティ一覧 ()内は一意なエントリ数

pdbml (107345) <ftp://ftp.wwpdb.org/pub/pdb/data/structures/all/XML/2qyq.xml.gz>
pdbml_noatom (107345) <ftp://ftp.wwpdb.org/pub/pdb/data/structures/all/XML-noatom/2qyq-noatom.xml.gz>
pdbml_extatom (107345) ftp://ftp.wwpdb.org/pub/pdb/data/structures/all/XML-extatom/2qyq-extatom.xml.gz>
pdb (76876) <http://rdf.wwpdb.org/pdb/2QYU>
pdb_split (232) <http://rdf.wwpdb.org/pdb/1CRP>
pubmed (46915) <http://www.ncbi.nlm.nih.gov/pubmed/17912370>
sequence_db(0)
uniprot(35007) <http://purl.uniprot.org/uniprot/P29198>
genbank (1184) <http://www.ncbi.nlm.nih.gov/nuccore/X14553>
embl (0)
doi (47696) <http://dx.doi.org/0.1007/s007750050251>
taxonomy (0)
taxonomy_source (4787) <http://purl.uniprot.org/taxonomy/9606>
taxonomy_host (242) <http://purl.uniprot.org/taxonomy/562>
enzyme (2851) <http://purl.uniprot.org/enzyme/3.4.13.20>
go (0)
chem_comp (18551) <http://rdf.wwpdb.org/cc/ALA>

クエリ

UniProtIDに紐づくPDB一覧

PREFIX PDBo: <http://rdf.wwpdb.org/schema/pdbx-v40.owl#>
PREFIX up: <http://purl.uniprot.org/uniprot/>

SELECT ?pdb_id ?method ?resolution 
 (GROUP_CONCAT(?chain ; separator="/") AS ?chain_chars)
 (MIN(?begin) AS ?begin_pos) (MAX(?end) AS ?end_pos)
FROM <http://rdf.integbio.jp/dataset/pdbj>
WHERE {
 ?pdb_str PDBo:link_to_uniprot up:P00533 .
 ?pdb_str PDBo:of_datablock ?pdb .
 ?str_ref PDBo:reference_to_struct_ref ?pdb_str .
 ?str_ref PDBo:struct_ref_seq.pdbx_strand_id ?chain .
 ?pdb PDBo:has_exptlCategory/PDBo:has_exptl/PDBo:exptl.method ?method .
 OPTIONAL {
   ?pdb PDBo:has_refineCategory/PDBo:has_refine/PDBo:refine.ls_d_res_high ?resolution .
 }
 ?str_ref PDBo:struct_ref_seq.db_align_beg ?begin .
 ?str_ref PDBo:struct_ref_seq.db_align_end ?end .
 BIND (replace(STR(?pdb), "http://rdf.wwpdb.org/pdb/", "") AS ?pdb_id)
} GROUP BY ?pdb_id ?method ?resolution ORDER BY ?pdb_id

課題

  • PDBエントリの一部のチェインにUniProtIDが紐づく場合の表示方法の検討 1MOXのA/B鎖
  • アミノ酸配列を範囲指定すると構造の一部分を強調表示する方法の検討 1YCR(B)19-25の範囲指定
個人用ツール