糖鎖情報のRDF連携について

提供:TogoWiki

2017年5月16日 (火) 02:33時点におけるTk-tk (トーク | 投稿記録)による版
移動: 案内, 検索

目次

糖鎖関連遺伝子のデータベース


UniProtとの連携を探る

例として、ST3GAL1を例として UniProt のRDFを見てみる。


Gene symbol を UniProt Accession にコンバートしてみる

  • IDをコンバートできるサイト
    • http://biodb.jp/
    • ID Converterで、HUGO gene symbol —> UniProt Accession ができる
  • GGDB の HUGO gene symbol から UniProt Accession へ変換してみる
    • ST3GAL1
      • --> Q11201 (homo sapiense)
  • 他の gene symbolからでも、変換してみる
    • FUT9
      • --> B4DEW1 (homo sapiense)
      • --> Q5Q0U2 (homo sapiense)
      • --> Q9BUV6 (homo sapiense)
      • --> Q9Y231 (homo sapiense)
  • gene symbolで、対応を取るだけなら、コンバーター使わなくても、SPARQLの文字列マッチでできるはず。


SPARQL クエリ

対応を取るための、sparql クエリをつくる。

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX up: <http://purl.uniprot.org/core/> 
PREFIX ggdb:  <http://purl.jp/bio/12/ggdb/2015/6/owl#> 
PREFIX edam:  <http://edamontology.org/> 
PREFIX skos:  <http://www.w3.org/2004/02/skos/core#> 

CONSTRUCT{
	?glycogene a ggdb:Glycogene.
	?glycogene ggdb:has_gene ?up_gene.	
	?up_gene a up:Gene.
}
WHERE{
	?glycogene a ggdb:Glycogene;
		ggdb:has_gene ?gene.

	?gene a edam:data2299;
		rdfs:label ?gene_name.

	SERVICE SILENT <http://sparql.uniprot.org> {
		?up_gene a up:Gene; 
			skos:prefLabel ?gene_name.
	}
}

クエリが正しいかどうか、未確認。。。

  • スクリーニングには、いいかもしれない
  • キュレーションとしての使用はできない

Federated query

2017/5/15記述

docker-virtuosoを使ってローカルで、federated queryを行った。

VirtuosoのConductorにある、ISQLフォームに以下を実行。

grant select on "DB.DBA.SPARQL_SINV_2" to "SPARQL";
grant execute on "DB.DBA.SPARQL_SINV_IMP" to "SPARQL";


UniProtのエンドポイントで使えるクエリを拾ってきたので、以下のクエリを実行。

SELECT *
WHERE {
  SERVICE <http://sparql.uniprot.org/sparql> {
    <http://purl.uniprot.org/uniprot/P38398> ?p ?o .
  }
}


結果、エンドポイントからの検索結果が表示された。

p	o
http://www.w3.org/1999/02/22-rdf-syntax-ns#type	http://purl.uniprot.org/core/Protein
http://www.w3.org/2000/01/rdf-schema#seeAlso	http://purl.uniprot.org/mim/114480
http://www.w3.org/2000/01/rdf-schema#seeAlso	http://purl.uniprot.org/mim/167000
http://www.w3.org/2000/01/rdf-schema#seeAlso	http://purl.uniprot.org/mim/604370
http://www.w3.org/2000/01/rdf-schema#seeAlso	http://purl.uniprot.org/mim/614320
http://www.w3.org/2000/01/rdf-schema#seeAlso	http://purl.uniprot.org/intact/P38398
http://www.w3.org/2000/01/rdf-schema#seeAlso	http://purl.uniprot.org/iptmnet/P38398 
...

GGDBのRDFをアップロード

2017/5/15記述

GGDB(FUT9)のRDFをcURLを使って、ローカルのVirtuosoにアップロードする。

まずは、GGDB(FUT9)のRDFをダウンロード

$ wget http://acgg.asia/ggdb2/gg008.ttl


TTLをcURLで、ローカルのVirtuosoへアップロード (PUT)

参考:https://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtGraphProtocolCURLExamples

$ curl --digest --user dba:dba --verbose --url "http://localhost:8890/sparql-graph-crud-auth?graph-uri=http://rdf.glycoinfo.org/ggdb/fut9" -T gg008.ttl 

RDFが入った模様

$ curl --verbose --url "http://localhost:8890/sparql-graph-crud?graph-uri=http://rdf.glycoinfo.org/ggdb/fut9"
*   Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 8890 (#0)
> GET /sparql-graph-crud?graph-uri=http://rdf.glycoinfo.org/ggdb/fut9 HTTP/1.1
> Host: localhost:8890
> User-Agent: curl/7.51.0
> Accept: */*
> 
< HTTP/1.1 200 OK
< Server: Virtuoso/07.20.3217 (Linux) x86_64-unknown-linux-gnu  
< Connection: Keep-Alive
< Date: Mon, 15 May 2017 08:08:48 GMT
< Accept-Ranges: bytes
< Content-Type: text/turtle; charset=UTF-8
< Content-Length: 36092
< 
@prefix rdf:	<http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix up:	<http://purl.uniprot.org/core/> .
<http://purl.uniprot.org/taxonomy/9606>	rdf:type	up:Taxon .
@prefix rdfs:	<http://www.w3.org/2000/01/rdf-schema#> .
<http://purl.uniprot.org/taxonomy/9606>	rdfs:label	"Homo sapiens" ;
	rdfs:seeAlso	<http://identifiers.org/taxonomy/9606> .
<http://acgg.asia/ggdb2/img/structure/175_JCGG-STR029404.png>	rdfs:label	"175_JCGG-STR029404.png" .
...

rdfs:labelの"FUT9"を取り出す

2017/5/15記述

GGDBのRDFに記述されている"rdfs:label"から、"FUT9"をSPARQLで取り出す

以下のクエリで"FUT9"を取得。

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX up: <http://purl.uniprot.org/core/> 
PREFIX ggdb:  <http://purl.jp/bio/12/ggdb/2015/6/owl#> 
PREFIX edam:  <http://edamontology.org/> 
PREFIX skos:  <http://www.w3.org/2004/02/skos/core#> 
PREFIX sio: <http://semanticscience.org/resource/>

select distinct *
from <http://rdf.glycoinfo.org/ggdb/fut9>
where{
	?glycogene a ggdb:Glycogene;
		ggdb:has_gene ?gene.
	?gene sio:SIO_000008 ?gene_name.
	?gene_name a edam:data_2299.
	?gene_name rdfs:label ?gene_name_label.
}

以下が、結果。

 glycogene  gene	gene_name	gene_name_label 
 http://acgg.asia/ggdb2/gg008  http://acgg.asia/ggdb2/gg008#gene  http://acgg.asia/ggdb2/gg008#genename  "FUT9" 
個人用ツール