PubMedのアブストラクトの取得
NCBIのeUtils経由で、PubMedにクエリを投げてxmlを取得しました。
eUtils
PubMedやGenBankなどのデータベースから、検索結果が膨大になるxmlを取得する場合、NCBIに何度もアクセスすることになります。そのような場合に利用するサイトがeUtilsです。
作業
PubMedのアブストラクトのxmlを取得するために行ったのは、以下の二つの行程です。
1.EsearchにPubMedのクエリを投げ、取得したxmlから検索に必要なID、クエリを取得。
2.取得したIDなどの情報をクエリとし、EFetchから論文のアブストラクトが書かれたxmlファイルを取得。
Javaのプログラムで作成し、パッケージは java.net.* と java.io.* を使用しました。
EFetch
順番が前後しますが、まずは作業工程2から。
検索クエリからアクセスするアドレスを作成し、そこに書かれていることをファイルに書き込んでいきます。
http://eutils.ncbi.nlm.nih.gov/corehtml/query/static/efetchlit_help.htmlのExampleにクエリとその結果のアドレスの例が書かれています。
今回はEsearchで検索クエリのIDを取得し、そのIDをEFetchに投げます。そのために指定する必要があるのは、retmax、retstart、query_key、WebEnvです。retstartは検索結果の上から何件目から結果を取得するか、retmaxは一度に取得する件数を、query_keyとWebEnvはESearchで取得した検索IDの指定ができます。
ESearch
次に作業工程1です。
http://eutils.ncbi.nlm.nih.gov/corehtml/query/static/esearch_help.htmlのExamplesにアクセスするアドレスの例が書いてあります。EFetchに投げるクエリに必要なQueryKeyやWebEnvを抽出するために、xml形式で取得し、
あとは取得した文字列を使って上記のEFetchにアクセスするアドレスを作成して、xmlファイルに書き込みます。