LoginSignup
1
1

More than 5 years have passed since last update.

RCSB PDB の search API を使う

Last updated at Posted at 2015-10-24

初めに

http://www.rcsb.org/pdb/software/rest.do の、Advanced Search を使おうとして少しはまったのでメモ。

用途

PDBコードとかタンパク質のシーケンスとかを入れると、マッチしたPDBへのリンクを返してくれたりする。

基本的な使い方

http://www.rcsb.org/pdb/rest/search に、以下の様な xml を HTTP POST するだけ。認証とかは不要。

<orgPdbQuery>
<queryType>org.pdb.query.simple.SequenceQuery</queryType>
<sequence>VLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHFDLSHGSAQVKGHGKKVADALTNAVAHVDDMPNALSALSDLHAHKLRVDPVNFKLLSHCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVLTSKYR</sequence>
<searchTool>blast</searchTool>
<sequenceIdentityCutoff>70</sequenceIdentityCutoff>
</orgPdbQuery>

こんな感じでマッチしたPDBコード一覧が返ってくる。

1A00:1 1A01:1 1A0U:1 1A0Z:1 1A3N:1 1A3O:1 1A9W:1 1ABW:1 1ABY:1 1AJ9:1 1B86:1 1BAB:1 1BBB:1 1BIJ:1 1BUW:1 (中略) 6HBW:1

ハマったこと

以下の2点を守らないと、トップページ?のHTMLが返ってくる。

  • POSTするxmlは、実際にはこんな感じでエンコードしないといけない。

%3CorgPdbQuery%3E%0D%0A%3CqueryType%3Eorg.pdb.query.simple.SequenceQuery%3C%2FqueryType%3E%0D%0A%3Csequence%3EVLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHFDLSHGSAQVKGHGKKVADALTNAVAHVDDMPNALSALSDLHAHKLRVDPVNFKLLSHCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVLTSKYR%3C%2Fsequence%3E%0D%0A%3CsearchTool%3Eblast%3C%2FsearchTool%3E%0D%0A%3CsequenceIdentityCutoff%3E70%3C%2FsequenceIdentityCutoff%3E%0D%0A%3C%2ForgPdbQuery%3E

  • そのことをHTTPのヘッダに書いてやらないといけない。
content-type : application/x-www-form-urlencoded; charset=UTF-8

終わりに

xmlをエンコードするとかWebAPIでは常識なんでしょうか…。
だいぶ使う人が限られるAPIだとは思いますが、そのへんのこともわかりやすく書いておいて欲しかった…。
(もし書いてあったら教えて下さい)

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1