BioWiki

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

ncbiのwebサービス [2013/01/31 05:38] (現在)
ライン 1: ライン 1:
 +======NCBIのWebサービス======
  
 +E-Utilitiesを使うことで、アプリケーションでNCBIのデータベースを活用できる。
 +
 +[[http://​www.ncbi.nlm.nih.gov/​entrez/​query/​static/​eutils_help.html]]
 +
 +SOAPサービスも利用できるようになった。
 +
 +[[http://​eutils.ncbi.nlm.nih.gov/​entrez/​query/​static/​esoap_help.html]]
 +
 +BLASTのAPIは、
 +  *[[http://​www.ncbi.nlm.nih.gov/​blast/​Doc/​urlapi.html]]
 +  *[[NCBI Blast API]]
 +
 +
 +
 +=====NCBIとのやりとりの流れ=====
 +ESearchとEFetchを用いる場合は次のような流れになる。
 +
 +^ ^  クライアント ​ | ^  NCBI  ^
 +^1|  検索クエリの送信 ​ |->| |
 +^2| |<​-| ​ セッションの作成と送信 ​ |
 +^3|  セッションXMLの受信と解析 ​ | | |
 +^4|  検索結果の要求を送信 ​ |->| |
 +^5| |<​-| ​ 検索結果XMLの送信 ​ |
 +^6|  検索結果XMLの受信と利用 ​ | | |
 +
 +  *ESearch URL <​code>​http://​www.ncbi.nlm.nih.gov/​entrez/​eutils/​esearch.fcgi</​code>​
 +  *EFetch URL <​code>​http://​www.ncbi.nlm.nih.gov/​entrez/​eutils/​efetch.fcgi</​code>​
 +
 +
 +
 +
 +
 +
 +======XMLのススメ======
 +PHPやPerlなどで使い捨てるプログラムならテキストやhtmlベースでデータを取得してもいいが、理想的には、XMLデータをSOAPクライアントで取得し、保持するクラスを作っておく方が応用が利く。
 +
 +XMLの定義はDTDファイルとして公開されているから、それを元にクラスは作成できる。
 +
 +  *Base http://​www.ncbi.nlm.nih.gov/​entrez/​query/​DTD/​nlmmedline_070101.dtd
 +  *PubMed http://​www.ncbi.nlm.nih.gov/​entrez/​query/​DTD/​pubmed_070101.dtd
 +
 +次の3つのクラスを作っておけばどのデータベース(nucleotid,​ taxonomy,​pubmed etc.)にも対応できるので便利。
 +
 +  -DocSum : ESummaryで取得するエントリの概要データ構造
 +  -EFetchResult : EFetchで取得するエントリ情報データ構造
 +  -ESearchResult : ESearchで取得する検索結果の情報データ構造
 +
 +
 +{{tag>​NCBI データベース}}