Closed okbp closed 5 years ago
有効なPubMed IDをftpサイトから取得し、ローカルDBに保持する方向で検討
PubMedのFTPサーバの運用についてはREADME.txtに記載されているftp://ftp.ncbi.nlm.nih.gov/pubmed/baseline/README.txt
年に一度(12月頃)、最新データのXMLファイルが"baseline"というディレクトリで公開される。2018版であれば0001.xml〜0972.xmlまでにファイル分割されている。 ftp://ftp.ncbi.nlm.nih.gov/pubmed/baseline/
baseline以降の日次更新の内容が"updatefiles"というディレクトリで公開される。新規追加、更新、削除の情報が記載されている。 ftp://ftp.ncbi.nlm.nih.gov/pubmed/updatefiles/
//updatefiles(日次更新)の削除タグ. baselineは削除分は予め除かれている模様
</PubmedArticle>
<DeleteCitation>
<PMID Version="1">23203860</PMID>
<PMID Version="1">23203861</PMID>
削除IDについては、以下のファイルにも過去の削除PubMedIDが列挙されている ftp://ftp.ncbi.nlm.nih.gov/pubmed/deleted.pmids.gz
DBCLSでも最新PubMedデータを日次ダウンロードしてDBにロードしているらしく、無効IDの判定は以下サービスでも行えそうであるとのこと。
http://tm.dbcls.jp/medline/{PubMed_ID}
有効なPubMedIDの場合はコンテンツ(text)が返ってきて、存在しないIDの場合は空(実際は改行文字0A
DBCLSの山本さんに以下確認済み
サービス停止時期が遺伝研サービスと揃うとのことで、ローカルにPubMedIDデータを持つのとあまり遜色ないため利用したい。
E-utilities on the UNIX Command Line を使うのをお勧めされました。 archive-pubmed -pathとパイプ処理を組み合わせるだけで日次更新やパースも手間なく実現できそうです。
medline用データベースは日次更新で最新のPubMedの情報が取得でき、前日更新のデータも取れることを確認した。
ただ、日次更新の削除については反映されていないようで、最近(最長1年)削除されたPubMedIDが残っている模様(山本さんに確認依頼中)。
削除済みIDリストが日次で更新されるので、これを元にチェックを追加することも可能。 ftp://ftp.ncbi.nlm.nih.gov/pubmed/deleted.pmids.gz
@tfuji ありがとうございます。Entrez Directも考えたのですが、日次更新で削除された分のIDが取得できないかなと断念しました。 最新データを取得する方法を調べたら、山本さんが既に全く同じ方法でデータ取得してサービス運用されているということでしたので、できれば流用させてもらいたいと考えています。 「できるだけネットワークを経由せずローカルに持ちたい」という要件からは外れますが、サービス停止期間は同じですのであまり問題は出ないかなと考えていまして、後ほど質問表で確認させて頂きます。
調査ありがとうございます。validator以外にも使う可能性のあるリソースなので、取得方法案の提示をお願いします。
medline用データベースで日次削除分が反映されていないバグを直した、と山本さんから連絡あり。medlineで前日までのPubMedIDの妥当性を検証可能な状態になった。
NCBI e-utilitiesで当該pubmed_idを引数にESummaryをリクエストして、結果が返されれば有効IDであると判定 ソースコード
アクセス制限により数秒かかってしまっている。
DBCLSが運用しているmedline(API)でもpubmed_idの有効無効は判定可能なため、e-utilitiesの使用はやめてこれを利用する。日次更新しているため最低前々日までのPubMedの情報が同期されている。
有効なIDの場合は以下のURLで結果が得られる。
http://tm.dbcls.jp/medline/1
無効なIDの場合は空データが返される。
http://tm.dbcls.jp/medline/999999999
pubmed 同期の遅延はほとんど問題ないと思いますし、DBCLS サービスを流用する方がメリットが大きいと思います。
Validator 1.0.9としてリリース済み
症状
eUtilitiesを使ったPubMed IDの妥当性検証を必要とするサンプルについて、Validation速度が著しく低下した(時期不明)。2-3秒だったものが13-15秒ほど掛かっている。
検証
eUtilitiesAPI(API key使用)に限らず、単なるHTMLコンテンツのダウンロードにも時間がかかる。 NCBI以外のサイトの応答は問題ない。またDDBJ以外の環境からNCBIにアクセスしても問題はない。