糖鎖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 が返る。
現状は、ここから 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