API世界最大の臨床試験データベースのClinicalTrials.govのAPI利用法についてまとめました。参考ClinicalTrials.govとはわかりやすい説明があったので引用します。通じて、現在行われている治験及び臨床研究に関する情報を提供しているデータベースです。2000年2月に開設され、その後、FDAに医薬品を申請するために該当する臨床試験を事前登録することが義務化されました。2009年には日本を含む172か国で実施された76,000件以上の試験が登録されており、世界最大級の臨床試験登録サイトを構成してます。318,025件の試験が登録されています。引用元の情報からだいぶ増えていますね。https://clinicaltrials.gov/ct2/resources/trends簡単にどんなサービスか紹介します。疾患名やその他のキーワード、国などの条件を入力して検索します。https://clinicaltrials.gov/するとこのように検索結果のリストが表示されます。Titleを開くと詳細説明だったり、試験のデザインだったり、要するに細かい情報が盛りだくさんです。https://clinicaltrials.gov/ct2/show/NCT03752268?cond=cancer&rank=1https://clinicaltrials.gov/ct2/show/NCT03752268?cond=cancer&rank=1これがClinicalTrials.govです。製薬企業の開発部門の方達が治験をデザインする際によく使うそうです。僕は基礎研究系だったのでこれまで使ったことはありませんでした。APIさてClinicalTrials.govには2種類のAPIがあります。簡単にいうと古いのと新しいのです。古い方は設計がかなり謎で、規格化するために新しい方を作っているみたいですが、ベータ版なのでバグがあるかもしれません。利用規約についてはこちらを参照ください。検索結果のURLは以下の形になっています。https://clinicaltrials.gov/ct2/results?<CONDITION>この「results?」を「results/download_fields?」にすることで検索条件を使い回しつつ、その検索結果をダウンロードすることができます。https://clinicaltrials.gov/ct2/results/download_fields?cond=moyamoyaこのAPIだけオプションが豊富で、以下の4つが指定できます(細かい条件はこちら)。チャンク(down_countと合わせて小分けに取得できる)例えば以下のように指定することで、ダウンロード数を最大10、全てのフィールドをXML形式で取得することができます。URLは以下の形です。https://clinicaltrials.gov/ct2/show/<ID>こちらは末尾に「displayxml=true」というパラメータをつければXMLで表示できます。これをお好きな方法でダウンロードすればよろし、です。https://clinicaltrials.gov/ct2/show/NCT03478891?displayxml=truehttps://clinicaltrials.gov/ct2/show/NCT03478891?displayxml=true検索結果に出てきた報告書をまとめて上記の組み合わせで検索結果と個別の報告書を取得することができるようになりました。いって検索→ID取得→報告書ダウンロードというのはまだるっこしいです。実は検索結果をまとめてダウンロードという方法もあります。検索結果の取得の時は「results/download_fields?」としましたが、それを「results/download_studies?」にすると検索結果のリストに含まれる試験の報告書が取得できます。こちらのAPIはdown_chunkオプションしか設定できないようでした。10,000件ずつXMLをzipファイルでダウンロードするようです。(当然ヒット数が10,000未満ならその数で頭打ち)(公式は説明とExampleが一致していないようなのでわかりやすい表記をしました。どちらでも動きます)まとめるとこんな感じ。目的にもよりますが、以下のフィールド情報なら検索結果のリストで取得できるのでこれで十分かもしれません。resutls/download_studiesは多少使い勝手が悪そうです。https://clinicaltrials.gov/ct2/results全ての報告書ちなみに全ての報告書(XML)のzipファイルをダウンロードするエンドポイントも用意されています。超巨大ファイルとのことなのでうっかりクリックしないようにリンクは無効にしておきます。ヘッダー情報によると圧縮ファイルの大きさは1.45GBほどですが、展開したらどれほどになるかわかりません。API繰り返しになりますが、BETA版ということに留意ください。APIを置き換えるそうです(いつになるかは不明)。APIには以下の2つの種類があります。一つのfiledの情報(一気に全データを取得できる)ここでは3種類のQueryを解説します。expression)と取得範囲の指定が基本です。いずれのQueryも検索式で条件を指定し、それにヒットしたもののうち一部を範囲指定で取ってくるのが共通の流れです。cancerなど)を検索式に使いたい場合は「+」で繋ぐようにしましょう(lung+cancer)。具体的に見ていきます。Queryは以下のようにexprで検索式を指定します。https://clinicaltrials.gov/api/query/full_studies?expr=moyamoyaデフォルトでは1件だけXML形式で返ってきます。以下のようにNStudiesFoundに検索ヒット数が、FullSyudyListの子要素に1件ごとのデータが格納されています。https://clinicaltrials.gov/api/query/full_studies?expr=moyamoyaFullStudy/Structの中身は主にProtocolSectionとDerivedSectionに2分されます。DerivedSectionは疾患の親要素や子要素などが書かれています。関心を注ぎたいのはProtocolSectionで、こちらには治験の詳細情報が記載されています。https://clinicaltrials.gov/api/query/full_studies?expr=moyamoya構造の定義はこちらにあります。max_rnkを指定することで範囲指定で複数の結果を取得(最大100件)、fmtを指定することでJSONで取得することができます。https://clinicaltrials.gov/api/query/full_studies?expr=moyamoya&min_rnk=1&max_rnk=3https://clinicaltrials.gov/api/query/full_studies?expr=moyamoya&min_rnk=1&max_rnk=31~3件をJSONで取得。Queryは一部のfieldsが必要な時に使います。デフォルトで20件、範囲指定で最大1,000件同時に取得できます。JSON以外にCSVを選択できます。こんな感じです先ほどのFullSyudyListの代わりにStudyFieldsListに個別のデータが格納されています。https://clinicaltrials.gov/api/query/study_fields?expr=moyamoya&fields=NCTId,Condition,BriefTitlehttps://clinicaltrials.gov/api/query/study_fields?expr=moyamoya&fields=NCTId,Condition,BriefTitleそれぞれのStudyFieldsは指定したfieldsのみ含まれるのでだいぶスッキリしました。欲しい情報が決まっている時にはこれで十分そうです。https://clinicaltrials.gov/api/query/study_fields?expr=moyamoya&fields=NCTId,Condition,BriefTitle指定できるfieldのリストはこちらをご確認ください。全部で300超のfieldがあります。Queryは1つのfieldだけを指定します。https://clinicaltrials.gov/api/query/field_values?expr=moyamoya&field=NCTId返ってくるデータの数に限度はなくて、範囲を指定しないと全て返ってきます。試しにcancerで検索したら70,000件返ってきました。ところで検索式そんな感じ。expression(検索式)の方かもしれません。id)31280967の論文はClinicalTrials.govにリンクを持ちます。termsを使ってPUBMED-IDSで絞り込み検索できることがわかります。https://clinicaltrials.gov/search/term=31280967%20%5BPUBMED-IDS%5D#以下の記述を見るに他にも対象を指定する形での検索が可能のようです。[area]」の形で特定のフィールドに対して検索をかけることができます。ClinicalTrials.govの登録データ名との紐付けがされています。Participants」を選んだ時でヒット数が異なるのが気になります。https://clinicaltrials.gov/ct2/results?term=Female+%5BGender%5Dhttps://clinicaltrials.gov/ct2/results?cond=&term=&cntry=&state=&city=&dist=&Search=Search&gndr=Female適当なareaを入力するとエラーが出るんですが、正しいareaリストを教えてくれるわけでは無い。NameにPUBMED-IDS無い以上、あれは完全に網羅してないものってことなんでしょうが、ちょっともやもやが残る。所感ベータ版だけあって、新しい方もそこまで使いやすくはない。termsの活用方法がよくわからない。technology.。