SPARQLthon/glycan/wurcsRDF
提供:TogoWiki
目次 |
WURCS RDF
- 目的: 糖鎖構造の線形文字列表記であるWURCSをRDFで記述し、糖鎖構造をSPARQLで検索できるようにする。
- 糖鎖構造をWURCSで表現した例
- GlyTouCan:G00219DOの糖鎖構造をWURCSで表現すると、
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データ生成
- GlycomeDB [1]からGlycoCT形式の糖鎖構造をダウンロード
- GlycoCT形式の糖鎖構造データをWURCS2.0形式へ変換(変換用に開発したソフトを使用)
- WURCS2.0解析・WURCS-RDF生成
- WURCS2.0解析は、現在開発中であり繰り返し構造などはRDFへ反映されていない。(2015.1.16 山田)
- 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の例
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 . }