SPARQLthon/glycan/wurcsRDF

提供:TogoWiki

2015年2月13日 (金) 10:44時点におけるIssaku (トーク | 投稿記録)による版
(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内, 検索

目次


WURCS RDF

  • 目的: 糖鎖構造の線形文字列表記であるWURCSをRDFで記述し、糖鎖構造をSPARQLで検索できるようにする。
  • 糖鎖構造をWURCSで表現した例
GlyTouCan:G00219DOの糖鎖構造をWURCSで表現すると、

WURCS RDF.png

G97690MSのWURCS-RDFサンプル

#WURCS=2.0/2,4,3/[h5122h-2b_2-5][22122h-1a_1-5]/1-2-1-1/a2-b1_b6-c2_c1-d2
#G97690MS

# Saccharide
<http://rdf.glycoinfo.org/glycan/G97690MS>
	a	glycan:saccharide ;
	glycan:has_glycosequence	<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs> .

# Glycosequence
<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs>
	a glycan:glycosequence ;
	glycan:in_carbohydrate_format   glycan:carbohydrate_format_wurcs ;
	wurcs:has_uniqueRES <http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/uniqueRES/1> ;
	wurcs:has_uniqueRES <http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/uniqueRES/2> ;
	wurcs:has_root_RES <http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/RES/a> ;
	glycan:has_sequence "WURCS=2.0/2,4,3/[h5122h-2b_2-5][22122h-1a_1-5]/1-2-1-1/a2-b1_b6-c2_c1-d2"^^xsd:string ;
	wurcs:has_monosaccharide	<http://rdf.glycoinfo.org/glycan/wurcs/2.0/monosaccharide/h5122h-2b_2-5> ;
	wurcs:has_monosaccharide	<http://rdf.glycoinfo.org/glycan/wurcs/2.0/monosaccharide/22122h-1a_1-5> ;
	wurcs:has_LIN <http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/LIN/a2-b1> ;
	wurcs:has_uniqueLIN <http://rdf.glycoinfo.org/glycan/wurcs/2.0/uniqueLIN/1-2> ;
	wurcs:has_LIN <http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/LIN/b6-c2> ;
	wurcs:has_uniqueLIN <http://rdf.glycoinfo.org/glycan/wurcs/2.0/uniqueLIN/2-6> ;
	wurcs:has_LIN <http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/LIN/c1-d2> ;
	wurcs:has_uniqueLIN <http://rdf.glycoinfo.org/glycan/wurcs/2.0/uniqueLIN/1-2> ;
	owl:sameAs	<http://rdf.glycoinfo.org/glycan/wurcs/WURCS%3D2.0%2F2%2C4%2C3%2F%5Bh5122h-2b_2-5%5D%5B22122h-1a_1-5%5D%2F1-2-1-1%2Fa2-b1_b6-c2_c1-d2> .

<http://rdf.glycoinfo.org/glycan/wurcs/2.0/uniqueLIN/1-2>
	a wurcs:uniqueLIN ;
	wurcs:has_LIN <http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/LIN/a2-b1> .
<http://rdf.glycoinfo.org/glycan/wurcs/2.0/uniqueLIN/2-6>
	a wurcs:uniqueLIN ;
	wurcs:has_LIN <http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/LIN/b6-c2> .
<http://rdf.glycoinfo.org/glycan/wurcs/2.0/uniqueLIN/1-2>
	a wurcs:uniqueLIN ;
	wurcs:has_LIN <http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/LIN/c1-d2> .

# uniqueRES
<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/uniqueRES/1>
	a	wurcs:uniqueRES ;
	wurcs:is_monosaccharide	<http://rdf.glycoinfo.org/glycan/wurcs/2.0/monosaccharide/h5122h-2b_2-5> ;
	wurcs:has_skeleton_code	<http://rdf.glycoinfo.org/glycan/wurcs/2.0/SkeletonCode/h5122h> ;
	wurcs:has_anomeric_symbol	"b"^^xsd:string ;
	wurcs:has_anomeric_position	"2"^^xsd:integer ;
	wurcs:has_MOD	<http://rdf.glycoinfo.org/glycan/wurcs/2.0/MOD/2-5> .

<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/uniqueRES/2>
	a	wurcs:uniqueRES ;
	wurcs:is_monosaccharide	<http://rdf.glycoinfo.org/glycan/wurcs/2.0/monosaccharide/22122h-1a_1-5> ;
	wurcs:has_skeleton_code	<http://rdf.glycoinfo.org/glycan/wurcs/2.0/SkeletonCode/22122h> ;
	wurcs:has_anomeric_symbol	"a"^^xsd:string ;
	wurcs:has_anomeric_position	"1"^^xsd:integer ;
	wurcs:has_MOD	<http://rdf.glycoinfo.org/glycan/wurcs/2.0/MOD/1-5> .

# RES
<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/RES/a>
	a	wurcs:RES ;
	wurcs:is_uniqueRES	<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/uniqueRES/1> ;
	wurcs:has_LIN	<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/LIN/a2-b1> .

<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/RES/b>
	a	wurcs:RES ;
	wurcs:is_uniqueRES	<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/uniqueRES/2> ;
	wurcs:has_LIN	<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/LIN/a2-b1> ;
	wurcs:has_LIN	<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/LIN/b6-c2> .

<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/RES/c>
	a	wurcs:RES ;
	wurcs:is_uniqueRES	<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/uniqueRES/1> ;
	wurcs:has_LIN	<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/LIN/b6-c2> ;
	wurcs:has_LIN	<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/LIN/c1-d2> .

<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/RES/d>
	a	wurcs:RES ;
	wurcs:is_uniqueRES	<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/uniqueRES/1> ;
	wurcs:has_LIN	<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/LIN/c1-d2> .

# LIN
<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/LIN/a2-b1>
	a	wurcs:LIN ;
	wurcs:has_GLIP	<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/GLIP/a2> ; 
	wurcs:has_GLIP	<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/GLIP/b1> . 

<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/LIN/b6-c2>
	a	wurcs:LIN ;
	wurcs:has_GLIP	<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/GLIP/b6> ; 
	wurcs:has_GLIP	<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/GLIP/c2> . 

<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/LIN/c1-d2>
	a	wurcs:LIN ;
	wurcs:has_GLIP	<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/GLIP/c1> ; 
	wurcs:has_GLIP	<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/GLIP/d2> . 

# GLIP
<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/GLIP/a2>  
	a	wurcs:GLIP ;
	wurcs:has_RES	<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/RES/a> ; 
	wurcs:has_SC_position	"2"^^xsd:integer .
<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/GLIP/b1>  
	a	wurcs:GLIP ;
	wurcs:has_RES	<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/RES/b> ; 
	wurcs:has_SC_position	"1"^^xsd:integer .

<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/GLIP/b6>  
	a	wurcs:GLIP ;
	wurcs:has_RES	<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/RES/b> ; 
	wurcs:has_SC_position	"6"^^xsd:integer .
<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/GLIP/c2>  
	a	wurcs:GLIP ;
	wurcs:has_RES	<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/RES/c> ; 
	wurcs:has_SC_position	"2"^^xsd:integer .

<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/GLIP/c1>  
	a	wurcs:GLIP ;
	wurcs:has_RES	<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/RES/c> ; 
	wurcs:has_SC_position	"1"^^xsd:integer .
<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/GLIP/d2>  
	a	wurcs:GLIP ;
	wurcs:has_RES	<http://rdf.glycoinfo.org/glycan/G97690MS/wurcs/2.0/RES/d> ; 
	wurcs:has_SC_position	"2"^^xsd:integer .

SPARQL検索

糖鎖構造検索 (2/13 山田)

  • 糖鎖構造をSPARQLで検索するためのデータセットの作成
    • GlyTouCanの糖鎖RDFから、モチーフを下記のSPARQLで取得
PREFIX glycan: <http://purl.jp/bio/12/glyco/glycan#>

SELECT DISTINCT str (?id ) str ( ?seq )
FROM <http://rdf.glytoucan.org>
FROM <http://www.glycoinfo.org/graph/wurcs/0.4>
FROM <http://rdf.glytoucan.org/sequence/wurcs>
WHERE { 
  ?glycan a glycan:glycan_motif. 
  ?glycan glycan:has_glycosequence ?gseq .
  ?gseq glycan:has_sequence ?seq .
  ?gseq glycan:in_carbohydrate_format glycan:carbohydrate_format_wurcs .
  ?glycan glytoucan:has_primary_id ?id .  
}
ORDER BY ?glycan
PREFIX glycan: <http://purl.jp/bio/12/glyco/glycan#>
SELECT DISTINCT str (?id ) str ( ?wurcs ) str( ?glycoct )
FROM <http://rdf.glytoucan.org>
FROM <http://www.glycoinfo.org/graph/wurcs/0.4>
FROM <http://rdf.glytoucan.org/sequence/wurcs>
WHERE { 
?glycan a glycan:glycan_motif.
?glycan glytoucan:has_primary_id ?id .  
?glycan glycan:has_glycosequence ?gseq1, ?gseq2.
?gseq1 glycan:has_sequence ?wurcs .
?gseq1 glycan:in_carbohydrate_format glycan:carbohydrate_format_wurcs .
?gseq2 glycan:has_sequence ?glycoct .
?gseq2 glycan:carbohydrate_format_glycoct_condensed glycan:carbohydrate_format_glycoct .
}
ORDER BY ?glycan
    • 取得したWURCSを含むタブ区切りテキストデータからWURCS-RDFを生成(Java)
    • ローカルのVirtuoso7.1 
      <http://www.glycoinfo.org/graph/wurcs/motif/0.4.1>
       にいれた。
    • 今後、このモチーフデータを用いてSPARQLによる糖鎖検索の検証を行いたい。

検索に利用したRDFデータ生成

  1. GlycomeDB [1]からGlycoCT形式の糖鎖構造をダウンロード
  2. GlycoCT形式の糖鎖構造データをWURCS2.0形式へ変換(変換用に開発したソフトを使用)
  3. WURCS2.0解析・WURCS-RDF生成
    1. WURCS2.0解析は、現在開発中であり繰り返し構造などはRDFへ反映されていない。(2015.1.16 山田)
  4. Virtuoso7.1へ作成したデータを取り込む


WURCS-RDFのGraph IRI ( 2015年1月16日 )

graph : http://www.glycoinfo.org/graph/wurcs


glycan:saccharideの数

結果:35999

DEFINE sql:select-option "order"
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX glycan: <http://purl.jp/bio/12/glyco/glycan#> 
PREFIX glytoucan:  <http://www.glytoucan.org/glyco/owl/glytoucan#>
PREFIX wurcs: <http://www.glycoinfo.org/glyco/owl/wurcs#> 

SELECT count(distinct ?glycan) as ?total 
FROM <http://www.glycoinfo.org/graph/wurcs>
WHERE {
?glycan a glycan:saccharide .
 } 


WURCSの数

結果:35911

DEFINE sql:select-option "order"
PREFIX glycan: <http://purl.jp/bio/12/glyco/glycan#> 

SELECT count(distinct ?seq) as ?total 
FROM <http://www.glycoinfo.org/graph/wurcs>
WHERE {
?gseq glycan:has_sequence ?seq .
 } 


monosaccharideの数

結果:2000

DEFINE sql:select-option "order"
PREFIX wurcs: <http://www.glycoinfo.org/glyco/owl/wurcs#> 

SELECT count(distinct ?mono) as ?total 
FROM <http://www.glycoinfo.org/graph/wurcs>
WHERE {
?s wurcs:is_monosaccharide ?mono .
 }

SkeletonCodeの数

結果:499

DEFINE sql:select-option "order"
PREFIX wurcs: <http://www.glycoinfo.org/glyco/owl/wurcs#> 

SELECT count(distinct ?skeleton_code) as ?total 
#SELECT distinct ?skeleton_code
FROM <http://www.glycoinfo.org/graph/wurcs>
WHERE {
?s wurcs:has_skeleton_code ?skeleton_code .
 }

modificationの数

結果:167

DEFINE sql:select-option "order"
PREFIX wurcs: <http://www.glycoinfo.org/glyco/owl/wurcs#> 

SELECT count(distinct ?mod) as ?total 
#SELECT distinct ?mod
FROM <http://www.glycoinfo.org/graph/wurcs>
WHERE {
?s wurcs:has_MOD ?mod .
 }


部分構造検索のSPARQLの例

G00055MO.png

Galβ1-4GlcNAcの構造を持つ糖鎖を検索

DEFINE sql:select-option "order"
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX glycan: <http://purl.jp/bio/12/glyco/glycan#> 
PREFIX glytoucan:  <http://www.glytoucan.org/glyco/owl/glytoucan#>
PREFIX wurcs: <http://www.glycoinfo.org/glyco/owl/wurcs#> 

SELECT ?glycan
FROM <http://www.glycoinfo.org/graph/wurcs>
WHERE {
  ?glycan glycan:has_glycosequence ?gseq .
  ?gseq wurcs:has_uniqueRES ?uRES1, ?uRES2 .
  # Gal
  ?uRES1 wurcs:is_monosaccharide <http://rdf.glycoinfo.org/glycan/wurcs/2.0/monosaccharide/12112h-1b_1-5> .
  # GlcNAc
  ?uRES2 wurcs:is_monosaccharide <http://rdf.glycoinfo.org/glycan/wurcs/2.0/monosaccharide/12122h-1b_1-5_2*NCC%2F3%3DO> .

 ?gseq wurcs:has_LIN ?LIN1 .
  ?LIN1 wurcs:has_GLIP ?GLIP1, ?GLIP2 .

  ?GLIP1 wurcs:has_SC_position 1 .
  ?GLIP1 wurcs:has_RES ?RES1 .
  ?RES1 wurcs:is_uniqueRES ?uRES1 .

  ?GLIP2 wurcs:has_SC_position 4 .
  ?GLIP2 wurcs:has_RES ?RES2 . 
  ?RES2 wurcs:is_uniqueRES ?uRES2 .
 } limit 100


Galβ1-4GlcNAcの構造を持つ糖鎖をカウントする

結果:7731/35999

DEFINE sql:select-option "order"
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX glycan: <http://purl.jp/bio/12/glyco/glycan#> 
PREFIX glytoucan:  <http://www.glytoucan.org/glyco/owl/glytoucan#>
PREFIX wurcs: <http://www.glycoinfo.org/glyco/owl/wurcs#> 

SELECT count(distinct ?glycan) as ?total 
FROM <http://www.glycoinfo.org/graph/wurcs>
WHERE {
  ?glycan glycan:has_glycosequence ?gseq .
  ?gseq wurcs:has_uniqueRES ?uRES1, ?uRES2 .
  ?uRES1 wurcs:is_monosaccharide <http://rdf.glycoinfo.org/glycan/wurcs/2.0/monosaccharide/12112h-1b_1-5> .
  ?uRES2 wurcs:is_monosaccharide <http://rdf.glycoinfo.org/glycan/wurcs/2.0/monosaccharide/12122h-1b_1-5_2*NCC%2F3%3DO> .

 ?gseq wurcs:has_LIN ?LIN1 .
  ?LIN1 wurcs:has_GLIP ?GLIP1, ?GLIP2 .

  ?GLIP1 wurcs:has_SC_position 1 .
  ?GLIP1 wurcs:has_RES ?RES1 .
  ?RES1 wurcs:is_uniqueRES ?uRES1 .

  ?GLIP2 wurcs:has_SC_position 4 .
  ?GLIP2 wurcs:has_RES ?RES2 . 
  ?RES2 wurcs:is_uniqueRES ?uRES2 .
 }