糖鎖を登録する際、構造を分析して関連しているデータをRDF化しています。糖鎖構造コンポーネント(単糖、残基、リンケージ)のRDF形式を説明します。
処理フロー
- 糖鎖が登録されると、まずWURCSシーケンスに変換します。
- Accession numberが付く(単糖、糖鎖どちらも)
- WurcsRDFのMSライブラリーが単糖と構造データのRDF生成します。
- 単糖かどうかを判定します。
- 単糖であれば単糖の登録、糖鎖であればに糖鎖の登録に移動
- 単糖の場合、単糖であれば、Componentを作成していません。(Cardinalityは1)
単糖判定
WURCSの文字列に対して前方一致で判定(”WURCS=2.0/1,1,0/”)
単糖の登録アウトライン
単糖(WURCS-MS-RDFに入っている)をGlyTouCanに登録するフロー。詳細は下記の通り。
- 単糖はglycan:saccharideのサブクラス、glycan:monosaccharideタイプを付けする
- monosaccharideタイプ別のReadableNameを取得
- 取得する方法
- monosaccharideDB http://www.monosaccharidedb.org/remote_access.action#conversion
- glycanformatconverter https://bitbucket.org/glycosw/glycanformatconverter
- 取得する方法
- monosaccharide_aliasにインサート、glycan:monosaccharideにリンク
糖鎖の登録アウトライン
糖鎖をGlyTouCanに登録するフロー。詳細は下記の通り。
- 糖鎖に含まれている単糖をループしてResidueGenerator(残基?)を実行します:
- 単糖のWURCSを取得・生成
- 単糖を糖鎖として登録 (最初の処理フローに戻る)
- 登録した単糖のAccession numberを取得
- Componentの作成
- 糖鎖に登録された単糖のAcc#をひも付ける
- Cardinalityの計算
- どのタイプに絞る?
- Top Pageの単糖数
関係しているRDF
<glycan:Saccharide>
a glycan:Saccharide #or
glycan:has_component <glycan:Component>
<glycan:Monosaccharide>
a glycan:Monosaccharide #Saccharideのサブクラス
sio:has-component-part <wurcs:Monosaccharide>
glycan:has_alias <glycan:MonosaccharideAlias>
<glycan:Component>
a glycan:Component
glycan:has_cardinality integer
# 今までのMonosaccharideSparqlを再利用
glycan:has_monosaccharide <glycan:monosaccharide>
<wurcs:Monosaccharide>
a wurcs:Monosaccharide ;
wurcs:has_basetype <http://rdf.glycoinfo.org/glycan/wurcs/2.0/Basetype/u2122h_2%2ANCC%2F3%3DO> ;
wurcs:has_MOD <http://rdf.glycoinfo.org/glycan/wurcs/2.0/MOD/1-5>
wurcs:has_MOD ; <http://rdf.glycoinfo.org/glycan/wurcs/2.0/MOD/2%2ANCC%2F3%3DO>
wurcs:has_SC ; <http://rdf.glycoinfo.org/glycan/wurcs/2.0/SkeletonCode/a2122h>
wurcs:has_anomeric_position 1 ;
wurcs:has_anomeric_symbol "x"^^<http://www.w3.org/2001/XMLSchema#string> ;
wurcs:has_ring <http://rdf.glycoinfo.org/glycan/wurcs/2.0/MOD/1-5> .
is_type1 true/false
glycan:has_alias <glycan:MonosaccharideAliasURI>
sio:is-component-part-of <glycan:MonosaccharideURI>
<glycan:MonosaccharideAlias>
a glycan:monosaccharide_alias
glycan:is_monosaccharide <glycan:Monosaccharide> ;
glycan:has_monosaccharide_notation_scheme glycan:monosaccharide_notation_scheme_carbbank
glycan:has_alias_name "Gal-ol"
<glycan:MonosaccharideAlias>
a glycan:monosaccharide_alias
glycan:is_monosaccharide <glycan:Monosaccharide> ;
glycan:has_monosaccharide_notation_scheme glycan:monosaccharide_notation_scheme_iupac ;
glycan:has_alias_name "Gal-ol" .
WURCS MSが生成する単糖のRDF
WURCS-MS-RDFのライブラリーにある、WURCSシーケンスら単糖データの新しいRDFを生成。
<wurcs:Monosaccharide>
a wurcs:Monosaccharide ;
wurcs:has_basetype <http://rdf.glycoinfo.org/glycan/wurcs/2.0/Basetype/u2122h_2%2ANCC%2F3%3DO> ;
wurcs:has_MOD <http://rdf.glycoinfo.org/glycan/wurcs/2.0/MOD/1-5>
wurcs:has_MOD ; <http://rdf.glycoinfo.org/glycan/wurcs/2.0/MOD/2%2ANCC%2F3%3DO>
wurcs:has_SC ; <http://rdf.glycoinfo.org/glycan/wurcs/2.0/SkeletonCode/a2122h>
wurcs:has_anomeric_position 1 ;
wurcs:has_anomeric_symbol "x"^^<http://www.w3.org/2001/XMLSchema#string> ;
wurcs:has_ring <http://rdf.glycoinfo.org/glycan/wurcs/2.0/MOD/1-5> .
is_type1 true/false
<wurcs:Monosaccharide>
URIのサンプル
<http://rdf.glycoinfo.org/glycan/wurcs/2.0/Monosaccharide/Aad211d2h-2a_2-6_5%2ANCC%2F3%3DO>
バッチ更新
大量の構造データ(アップロード、GlyTouCanクライアント)の場合、バッチプロセスを実行して更新できます。
コンポーネントと単糖は上記と同様、更新されます。
詳細は開発者用のドキュメントに記載されています。
糖鎖の登録
ResidueGenerator
単糖と関連しているコンポーネントのRDFを作成します。
単糖を取得するSPARQL設計中 :
SELECT ?monosaccharide
WHERE {
?monosaccharide a wurcs:Monosaccharide
# ?monosaccharide noc:is_type 2
# ?monosaccharide noc:is_modified false
?monosaccharide noc:wurcs_sequence ?sequence
}
各単糖を登録
上記のwurcs:MonosaccharideのURIから、残機データを生成:
http://rdf.glycoinfo.org/glycan/wurcs/2.0/Monosaccharide/Aad211d2h-2a_2-6_5%2ANCC%2F3%3DO
の
http://rdf.glycoinfo.org/glycan/wurcs/2.0/Monosaccharide/
部分をカット
Aad211d2h-2a_2-6_5%2ANCC%2F3%3DO
WURCSをs生成
WURCS=2.0/1,1,0/Aad211d2h-2a_2-6_5%2ANCC%2F3%3DO/1
単糖情報から、単糖のWURCSを取得して、GlycoRDF:Monosaccharideとして登録します。(Saccharideのサブクラス)
a Monosaccharide
をつけて、登録処理おわりましたら、Accession#を取得できます。
String id = glycanProcedure.register("monosaccharide WURCS string");
Accession#から、上記glycan:Monosaccharide
と連携します。
Cardinalityの計算
単糖の登録フローにより、glycan:monsaccharide_aliasが作成されます。
SELECT ?monosaccharide count(distinct ?residue) as ?cardinality
WHERE {
?SaccharideURI a glycan:saccharide .
?monosaccharide a wurcs:Monosaccharide .
?monosaccharide noc:is_type 2 .
#?monosaccharide noc:is_modified false
#?monosaccharide noc:wurcs_sequence ?sequence
}
Componentを作成
INSERT {
GRAPH <http://rdf.glycoinfo.org/component> {
<SaccharideURI> glycan:has_component <ComponentURI> .
<ComponentURI> a glycan:component .
glycan:has_monosaccharide_alias <wurcs:Monosaccharide>
glycan:has_cardinality integer .
}
}
<SaccharideURI>
と<ComponentURI>
はもとの糖鎖のAccession番号から生成できます。
単糖の登録
単糖として認識され、特別な処理されます。 glycan:saccharideではなく、monosaccharideのタイプを付けする。
a glycan:monosaccharide
monosaccharideタイプ別のReadableNameを取得]
monosaccharideDB
現時点、msDBのRDFには問題があり、保留。
glycanformatconverter
Monosaccharide alias name
monosaccharide_aliasにインサート、glycan:monosaccharideにリンク
新しいGRAPHに、MsDBかWC-WFWから取得したalias nameをインサート。
GRAPH <http://rdf.glytoucan.org/ms/aliasname>
をベースにする
MonosaccharideDBから取得場合:
GRAPH <http://rdf.glytoucan.org/ms/aliasname/MonosaccharideDB>
WURCSのResidue文字列でRDFを取得: http://www.monosaccharidedb.org/rdf/monosaccharide.action?name=Aad211d2h-2a_2-6_5%2ANCC%2F3%3DO
MonosaccharideDBから取得したRDFをGRAPHに登録します。もしRDFに問題ありましたら、MonosaccharideDBに相談する必要があります。
monosaccharideDB に接続できない場合、無視する
WURCS2IUPACから取得場合:
INSERT {
GRAPH <http://rdf.glytoucan.org/ms/aliasname/glycanformatconverter>
{
<Monosaccharide alias> a glycan:monosaccharide_alias ;
glycan:is_monosaccharide <wurcs:Monosaccharide> ;
glycan:has_monosaccharide_notation_scheme glycan:monosaccharide_notation_scheme_iupac ;
glycan:has_alias_name "Gal-ol" .
} #### <a name="LinkingToWurcsRdf"></a>Monosaccharide情報をwurcsのMS(新しいオントロジー?)と連携します。 ```
GlycoRDF:monosaccharide sio:has-component-part wurcs:Monosaccharide
wurcs:Monosaccharide sio:is-component-part-of GlycoRDF:monosaccharide ```
Lewis Y G00052MOのサンプル
Glycan Entryで単糖と他のデータを表示する。