糖鎖API標準化部分の実装

提供:TogoWiki

移動: 案内, 検索

目次

WGGDS のプロトコルの実装計画

Substructure search (部分構造検索)

URL: http://togows.dbcls.jp/wggds/kegg-glycan/substructure

(1) POSTするデータ:

<?xml version="1.0" encoding="UTF-8"?>
<query completeInformation="false" reducingEnd="true" terminal="false" exactMatch="true" otherResidues="true"
      ignoreReducingAlditol="false" format="xml">
   <GlydeII>
   ...
   </GlydeII>
</query>

(2) TogoWS から KEGG の SOAP を実行する

XML をパースして KEGG に検索する際のパラメータ(引数)等を抽出する。

KEGG の SOAPメソッドは search_glycans_by_kcam(string:kcf, string:program, string:option, int:offset, int:limit)

 string:kcf:<GlydeII>...</GlydeII> の部分を perlの変換スクリプトで glydeII->kcf に変換する。
             変換方法は、あとで決める
 string:program:入力XMLのexactMatch="true"ならば "ungapped" を指定
                 入力XMLのexactMatch="false"ならば "gapped"  を指定
 string:options:入力XMLのデータによらず、"local" を指定
 int:offset:POSTの場合、どのように指定するか決める必要がある
 int:limit:同上

(3) KEGG の結果を変換し、ユーザに返すデータを作成する

KEGG からは ArrayOfStructureAlignment が返る。

例)http://togows.dbcls.jp/provider-checker/output/20101001-094003/kegg/kegg/java/search_glycans_by_kcam.out

現状は、ここから target_id(gl番号)を取り出す。

completeInformation="true" ならば、それに対応する KCF を取得することになる。

ユーザに返すデータ:

入力XMLのcompleteInformation="false"ならば

<?xml version="1.0" encoding="UTF-8"?>
<queryResult id="name_of_the_list" baseURL="http://togows.dbcls.jp/wggds/kegg-glycan/" namespace="namespace_of_the_database">
    <structure id="carbNxxx" url=""/>
    <structure id="carbNxyx" url=""/>
</queryResult>

idはTogoWS側でつけて、あとでそのIDで結果を取り出せるように、結果をキャッシュする。

namespaceは "kegg-glycan"

urlはその構造を表示するWebページのURL

入力XMLのcompleteInformation="true"ならば

<?xml version="1.0" encoding="UTF-8"?>
<queryResult id="name_of_the_list" baseURL="http://togows.dbcls.jp/wggds/kegg-glycan/" namespace="namespace_of_the_database"
            glydeVersion="1.0">
   <structure id="carbNxxx" url="">
       <GlydeII>
           ...
       </GlydeII>
       <biologicalSource>
           <biologicalContext>
               <taxonomy ncbiId="" name=""></taxonomy>
               <tissueTaxonomy meshId="" name="" ></tissueTaxonomy>
           </biologicalContext>
       </biologicalSource>    
   </structure>    
</queryResult>
<GlydeII>...</GlydeII> の作成手順

(1) KEGG の結果 gl番号 から KCF を取得する。(KEGGのAPIにあるはず)

(2) KCF から glydeII に変換する: perlを直接実行か TogoWS の convert を使うか?

<biologicalSource>
   <biologicalContext>
       <taxonomy ncbiId="" name=""></taxonomy>
       <tissueTaxonomy meshId="" name="" ></tissueTaxonomy>
   </biologicalContext>
</biologicalSource>    

の部分は、書かなくて良い。

(4) (3) で作ったデータをユーザに返す。終わり。


Composition Search (組成での検索)

http://togows.dbcls.jp/wggds/kegg-glycan/composition

入力XML

<?xml version="1.0" encoding="UTF-8"?>
<query completeInformation="false" allowOtherResidues="true" format="xml">
   <component minValue="0" maxValue="2" carbbank_name="b-D-GlcpNAc"/>
   <component minValue="3" maxValue="6" carbbank_name="?-D-Manp"/>
</query>

KEGG の SOAP API は search_glycans_by_composition(string:composition)

入力 XML のcarbbank_name の minValue から maxValue の組み合わせの数だけ

入力 XML から string:composition の文字列を作成し、

search_glycans_by_composition(string:composition) を呼ぶ(実行する)。

検索した結果に重複がある場合にどうするか?

KEGG からは、ArrayOfstringが返る。

例)

gl:G01244
gl:G02810
gl:G04562
gl:G04692
gl:G04735
gl:G04736
gl:G05506
gl:G06374
gl:G12015
gl:G12018
gl:G12150
gl:G12165
gl:G12166
gl:G12841

ユーザに返すデータは substructure と同じ考え方で良い。



Mass Search (質量での検索)

http://togows.dbcls.jp/wggds/kegg-glycan/mass

入力XML

<?xml version="1.0" encoding="UTF-8"?>
<query completeInformation="false" mass="960.2" interval="300.0" ppm="true"
      persubstitution="none" monoisotopic="true" format="xml"/>

KEGG の SOAP API は search_glycans_by_mass(float:mass, float:range)

float:mass 入力XMLのmass属性の値

float:range 入力XMLのinterval属性の値

KEGG からは、ArrayOfstring が返る。

例)

gl:G00791
gl:G01864
gl:G01865
gl:G01871
gl:G05140


ID list Search (IDのリストからの構造検索)

http://togows.dbcls.jp/wggds/kegg-glycan/id_list

入力XML

<?xml version="1.0" encoding="UTF-8"?>
<query namespace="namespace_of_the_database" glydeVersion="1.0" format="xml">
   <structure id="carbNxxx"/>
   <structure id="carbNxxx"/>
   <structure id="carbNxxx"/>
</query>

1) structure の id属性は gl番号 なので、KEGG API から gl番号に対応する KCF を取得する。

2) KCF を glydeII に変換してユーザに返す。



List Operation (論理演算)

http://togows.dbcls.jp/wggds/kegg-glycan/list_operation

■ 優先順位最低


糖鎖構造の変換

KCF <-> GlydeII

KCF -> GlydeII ができました!

URL:http://togows2.dbcls.jp/convert/kcf.glydeii

KCFの構造をGlycomeDBのBioMobyサービスを実行し、結果を返す


GlydeII -> KCF ができました!

テスト:http://togows2.dbcls.jp/convert/glydeii.kcf

GlydeIIの構造をPerlのプログラム(By木下)で変換する

成果リスト

  • convert/kcf.glydeii 及び convert/glydeii.kcf が完成した
  • substructure, composition, mass, id list検索は一応完成しました!あとは検索結果をプロトコールの形式に合わせて返すこと

TODO

  • TogoWSに JCGGDB のウェブサービスの構築
  • 他の糖鎖変換ツールの実装
    • LINUCS <-> KCF
    • IUPAC -> KCF