Googleスプレッドシートを使ってPubMedからダウンロードした文献を管理する

前回の投稿「文献管理・選定作業のためのExcelの使用法」では主にMicrosoft Excelを用いる操作について紹介しましたが、Googleスプレッドシートを使っても同じことができます。Googleのアカウントを設定して、GmailやGoogleドライブ使っている人は多いと思います。Excelで作成したファイルをGoogleスプレッドシートでそのまま開くことができます。Chrome BookやiPad、Android OSのタブレットでも動くかもしれません。

ファイルを共有して複数の人が共同で作業するには、OneDrive、Googleドライブ、DropBox、その他のクラウドサービスが使えますが、今回紹介する方法は共同作業に向いているかもしれません。

解説のビデオを作りました。音声なしで、説明がテロップで出てきます。

文献管理・選定作業のためのExcelの使用法

電子ファイル化が進んだ科学論文

現在、科学論文はすべてPDFあるいはHTML形式で電子ファイル化されていると考えられる。さらに、インターネット関連の技術、ウェブ関連の技術が進歩し、読みたい論文を手元に置く必要性が次第に低くなってきていると言える。

医学論文のデータベースとしてPubMed(Medline)、Embase医学中央雑誌などがあり、文献検索はこれらのウェブサイトに接続し、検索式を送信することで、結果を手元に得られる。また、GoogleGoogle ScholarあるいはBingのようなインターネット検索サービスも科学論文を対象にしており、上記の医学文献データベースを介さず検索することも可能である。また、Cochrane Central Register of Controlled Trials (CENTRAL)はランダム化比較試験の研究論文を検索する際には必要となる。

一方フルテキストは各ジャーナルの出版社のサーバに電子ファイルとして置かれており、オンラインで料金を支払えば、すぐ全文を閲覧でき、一部は無料で全文を閲覧できる。Open Accessが拡大するに従い、著者が一定の料金を支払うことで、読者は無料で全文を読める論文が増えてきている。

PubMed検索結果のCSVファイルとしてのダウンロード

PubMedで検索を実行後、引き出された文献リストをCSV形式でファイルとしてダウンロードすることができる。図1に示すように、文献リストの上にあるSaveボタンをクリックし、Selection:をAll results、Format:をCSVに設定して、Create fileボタンをクリックする。通常のファイルを保存するためのダイアログボックスが出てくるので、適当なファイル名をつけて保存する。デフォルトではcsv-検索式からの語句 set.csvのようなファイル名が付けられているので、そのファイル名でよければ、そのまま保存操作を行うこともできる。

ダウンロードが終了するとブラウザーの左下にダウロードしたファイルを開くためのリンクが出てくるので、それをクリックするとExcelがインストールしてあるPCであれば、ファイルをすぐに開くことができる。

図1.PubMedのSave citations to file. 検索結果の全文献の情報をダウンロードするためには、Selection:でAll resultsに設定する。Format:はCSVに設定する。

保存したファイルをExcelで開くと、最初にExcelのファイル形式で保存するようにというメッセージが出るので(図2)、名前を付けて保存ボタンをクリックし、(あるいはファイルメニューから名前を付けて保存)、たとえばxlsx形式で保存しなおす。図3に保存の際のダイアログボックスを示す。

図2.PubMedからダウンロードしたCSVファイルをExcelで開いた状態。
図3.Excelで開いたCSVファイルをxlsx形式で保存する。ファイルの種類(T):でExcelブック(`xlsx)を選ぶ。

このダウンロードしたファイルには、図2の1行目を見るとわかるように、PMID    Title    Authors    Citation    First Author    Journal/Book    Publication Year    Create Date    PMCID    NIHMS ID    DOIの情報が含まれている。

PMIDはPubMedに収載されている文献に付与されているユニークな番号である。PMID番号[uid]あるいはPMID番号[pmid]でPubMedを検索するとその論文ひとつがAbstract形式で表示される。さらに、下記の様にPubMedのURL+?term=PMID番号[uid]をブラウザーのアドレス欄に入力して送信することでもその文献情報を開くことができる。医学中央雑誌(医中誌Web https://demo.jamas.or.jp/)もOpen URLに対応したAPIを公開されるということなので、同じ手法が使えるようになるかもしれない。

DOIはDigital Object Identifierのことで、すべての論文にユニークな番号あるいは記号が付けられ、それをThe DOI® System (https://doi.org/) が管理している。URLとして、https://doi.org/+DOIを入力することで直接その文献情報をブラウザーで開くことができる。PubMed検索結果には、ほとんどの文献にDOIの情報が付けられている。

ExcelでのHYPERLINKの作り方

PubMedからダウンロードした検索結果のデータに、PubMedのデータベースのそれぞれの文献へのリンクとDOIへのリンクを設定して、クリックするだけで、それぞれの情報がブラウザーで開かれるようにすることができる。PubMedではPMIDによってAbstract形式のページが、DOIでは各ジャーナルの出版社のサイトのその論文の情報を開くことができる。

ここで紹介する方法は、マクロあるいはBASICのプログラムは使用しておらず、WindowsでもMacでも動作し、MacではExcelではなくNumbersでも動作する。ブラウザーはWindowsではEdgeあるいはChrome、MacではSafariあるいはChromeで動作する。NumbersでCSVファイルを開く際には、区切りがコンマであることを指定する。

そのためには、ExcelのHYPERLINK関数を利用する。たとえば、以下のスクリプトをセルP2に書き込んであると、セルP2をクリックすると、セルA2にあるPMIDをPubMed側に送信し、PubMedのページが開かれ、そのPMIDの論文がAbstract形式で表示される。図2からわかるように、PubMedからCSV形式でダウンロードしたファイルでは、カラムAにPMIDが含まれている。

=IF(A2<>””,HYPERLINK(“https://pubmed.ncbi.nlm.nih.gov/?term=”&A2&”[uid]”),””)

DOIの場合は、以下のようなスクリプトがセルQ2に書き込んであると、セルQ2をクリックするとDOIのウェブサイトを介して、セルK2のDOI情報から、それぞれの出版社の該当する論文の情報が開かれる。図2からわかるように、PubMedからCSV形式でダウンロードしたファイルでは、カラムKにDOIが含まれている。

=IF(K2<>””,HYPERLINK(“https://doi.org/”&K2),””)

方法1

さて、PubMedからCSV形式でダウンロードしたファイルをxlsx形式で保存した後、著者が作成した、excel_add_link_pubmed_doi.xlsx(https://info.zanet.biz/dl/tools/excel_add_link_pubmed_doi.xlsxからダウンロード可)をExcelで開いて、図4の様にセルL1からセルS2の範囲を選択し、コピー操作(Ctr+C)を行い、PubMedからダウンロードしたファイルの方に戻り、そのセルL1を選択して、貼り付ける(Ctr+V)。貼り付けた状態を図5に示す。

図4.excel_add_link_pubmed_doi.xlsxファイルを開いて、セルL1からS2を選択したところ。
図5.excel_add_link_pubmed_doi.xlsxファイルのセルL1からS2をコピーしてPubMedからダウンロードしたファイルをExcelのxlsx形式にしたファイルのセルL1に貼り付けた状態。2行目の文献情報からPMIDおよびDOIのリンクが作成されている。

次に、セルL2からS2を選択して、コピーし(Ctr+C)、セルL3から下の方へ、文献の数分選択し、貼り付け操作を行う(Ctr+V)。すると、図6のようになる。

図6.文献数分セルL2からS2の内容をコピーして、3行目以下の文献情報を含むすべての行に貼りつけた状態。

方法2

もう一つの方法は、著者が作成した、excel_add_link_pubmed_doi.xlsx(https://info.zanet.biz/dl/tools/excel_add_link_pubmed_doi.xlsxからダウンロード可)をテンプレートとして用いる方法である。このファイルをExcelで開いて、PubMedからダウンロードしたCSVファイルをExcelで開いて、カラムAからカラムKまでの文献数分のセルの範囲をコピーして、テンプレートに戻って、同じカラムAからカラムKの範囲に貼り付ける。このテンプレートのExcelシートでは1000件の文献、すなわち、行1001まで、カラムLからカラムSに必要なスクリプトを入力済みなので、カラムAからカラムKまでデータを貼り付けると即座に図6と同じ状態になる。データを貼り付けたら、別名で保存し、以後の操作を行う。1000件以上の文献がある場合は、セルL2からS2までの範囲をコピーしてセルP1002以下に必要な数分貼り付ける。

また、先にテンプレートのExcelファイルのコピーをフォルダー内あるいはデスクトップ上で作成し、ファイル名を目的に応じて変更して、それを開いて、貼り付け操作を行う方法をとることもできる。

なお、PubMedからダウンロードしたCSVファイルをExcelで開いて、カラムAからKをすべて選択して(カラム名のAからKを左クリックしながら選択する)、テンプレートに戻って、セルA1を選択して貼り付けを実行する方法でも同じ結果が得られる。図7に一例を示す。

この方法2を用いる場合は、あらかじめテンプレートのファイルのコピーを作り、ファイル名を変更し、それを開いた状態で、PubMed検索を行い、CSVファイルのダウンロードが終了したら、ブラウザーの左下に表示されるリンクをクリックし、(Excelがインストールされている場合)、ダウンロードファイルを開き、カラムAからKまでを選択し、テンプレートのコピーに戻り、セルA1を選択して貼り付けを実行(Ctr+V)するのが一番速い方法かもしれない。

図7.PubMedからダウンロードしたCSVファイルをデータをコピー・貼り付けで取り込む。右側が、CSVファイルをExcelで開き、カラムAからKを選択した状態。この状態で、コピー操作(Ctr+C)を行い、右側のテンプレートのコピーのファイルのセルA1を選択して、貼り付け操作(Ctr+V)を行う。結果は図6と同じになる。

Hyperlinkの使い方

PMIDはカラムA、DOIはカラムKの同じ行のセルの値を相対参照してHYPERLINKを設定しているので、カラムのコピー・ペーストあるいはセルのコピー・ペーストで位置関係が変わる場合は、書き直す必要がある。これらのHyperlinkが設定されているセルはそのままクリックすると、ブラウザーで目的の文献情報が開かれるが、セルのスクリプトを確認したい場合は、ShiftキーとCtrキーの両方を押しながら、クリックする。

一度PubMedでその文献情報を開いて、そこからFull textへリンクをたどることもできるし、PubMed CentralにあるFull textへのリンクをたどることもできる。

インターネットに接続された状態で、カラムPのセルをクリックすると、PubMedが開かれ、その行の文献がブラウザーで表示される(図8)。

図8.PMIDからPubMedの該当文献を開いた場合。Abstractまで読むことができる。

また、カラムQのセルをクリックするとその行の論文が出版社のサイトが開かれて表示される(図9)。空欄のセルはDOIが設定されていない論文である。

図9.DOI情報で出版社の該当文献を開いた場合。Full textが公開されている場合、ここで読むことができる。

文献選定作業

このExcelのシートでは、文献の選定作業をサポートするため、評価者が採用、不採用、保留の判定結果を残せるようにしている。カラムLあるいはNのセルは0と入力すると不採用でセルの色はなし、2と入力すると採用でセルの色を緑、1と入力すると保留でセルの色は薄青になる。セルをクリックするとプルダウンメニューが表示されるので、そこから選択することもできるが、直接値を入力することもできる。0, 1, 2以外の値を入力するとエラーメッセージが表示される。

また、選定の理由などをコメントとしてコメント欄に入力することもできる。

選定の判断は、上記のHyperlinkを利用して、文献情報を閲覧しながら、行うことができる。

2名分の評価を入力できるようにしてあるので、評価者2名がそれぞれ選定作業を行い、それを照合することも容易になると考えられる。図10に一例を示す。さらに、Excelのユーザ設定の並べ替えの機能を用いて、評価者1>評価者2 PMID>の優先度で並べ替えを行えば、上の方に選定された文献が集まるはずである。図10に並べ替えのキーの設定の例を示す。それぞれが別ファイルで作業をした場合、文献の順序は変更しないようにし、評価者の該当するカラム、コメントのカラムをコピーして一本化すればいい。

図10.Excelの並べ替えとフィルターを用いて選定作業をサポートする。行番号1の上の部分をクリックして、データ全体を選択した状態で、データメニューをクリックして、中央部分にある並べ替えのボタンをクリックし、図のように、並べ替えの設定を行う。+レベルの追加をクリックして、3つのカラムをキーとして設定し、その優先度は評価者1>評価者2>PMIDとする。
図11.並べ替えの結果。評価者1と2が採用と判定した文献が容易にわかり、連続した行に集めることができる。

書誌情報の取得と利用

カラムRには全著者名を含む書誌情報、カラムSは第一著者のみを含む書誌情報を含んでいる。以下のような形式である。それぞれのセルを選択して、Wordなどに貼り付けることができる。複数のセルを選択して貼り付けることもできる。セルを選択した際には、記述されているスクリプトが表示されるが、コピー・貼り付け操作を行った場合は、内容=文献情報が得られる。

Schmid P, Rugo HS, Adams S, Schneeweiss A, Barrios CH, Iwata H, Diéras V, Henschel V, Molinero L, Chui SY, Maiya V, Husain A, Winer EP, Loi S, Emens LA; IMpassion130 Investigators. Atezolizumab plus nab-paclitaxel as first-line treatment for unresectable, locally advanced or metastatic triple-negative breast cancer (IMpassion130): updated efficacy results from a randomised, double-blind, placebo-controlled, phase 3 trial. Lancet Oncol. 2020 Jan;21(1):44-59. doi: 10.1016/S1470-2045(19)30689-8. Epub 2019 Nov 27.

Schmid P, et al: Atezolizumab plus nab-paclitaxel as first-line treatment for unresectable, locally advanced or metastatic triple-negative breast cancer (IMpassion130): updated efficacy results from a randomised, double-blind, placebo-controlled, phase 3 trial. Lancet Oncol. 2020 Jan;21(1):44-59. doi: 10.1016/S1470-2045(19)30689-8. Epub 2019 Nov 27.

この形式はPubMedで、CSV形式でダウンロードした場合の形式のままであり、形式を変更したい場合、自分でExcel Visual Basicでプログラムを記述するか、もし一文献ずつの作業でもいいのであれば、PubMedのCiteの機能を利用することもできる。上記のPubMedへのHyperlinkで該当する文献を開き、右の上の方にあるCiteボタンをクリックし、Format:から用いたいフォーマットを選択し、Copyボタンをクリックして、クリップボード経由で得ることができる。現在のところ、以下の5種類のフォーマットが使用可能である。いずれのフォーマットもDOI情報あるいはリンク情報を含めていることが注目される。

NLM

Stellon AJ, Hegarty JE, Portmann B, Williams R. Randomised controlled trial of azathioprine withdrawal in autoimmune chronic active hepatitis. Lancet. 1985 Mar 23;1(8430):668-70. doi: 10.1016/s0140-6736(85)91329-7. PMID: 2858619.

AMA

Stellon AJ, Hegarty JE, Portmann B, Williams R. Randomised controlled trial of azathioprine withdrawal in autoimmune chronic active hepatitis. Lancet. 1985 Mar 23;1(8430):668-70. doi: 10.1016/s0140-6736(85)91329-7. PMID: 2858619.

APA

Stellon, A. J., Hegarty, J. E., Portmann, B., & Williams, R. (1985). Randomised controlled trial of azathioprine withdrawal in autoimmune chronic active hepatitis. Lancet (London, England)1(8430), 668–670. https://doi.org/10.1016/s0140-6736(85)91329-7

MLA

Stellon, A J et al. “Randomised controlled trial of azathioprine withdrawal in autoimmune chronic active hepatitis.” Lancet (London, England) vol. 1,8430 (1985): 668-70. doi:10.1016/s0140-6736(85)91329-7

NLM

Stellon AJ, Hegarty JE, Portmann B, Williams R. Randomised controlled trial of azathioprine withdrawal in autoimmune chronic active hepatitis. Lancet. 1985 Mar 23;1(8430):668-70. doi: 10.1016/s0140-6736(85)91329-7. PMID: 2858619.

最後に

以上述べたように、PubMedからCSV形式で検索結果をダウンロードし、Excelで開き、Excelのさまざまな機能を利用することで、文献選定、文献管理が容易になるであろう。

文献の選定作業を終えたのち、ExcelのシートにPICOおよびコメント欄のカラムを追加して、Abstract tableの作成へと連続的に作業を進めることもできるであろう。

PubMedはE-utilitiesが用意されており、データベースに直接検索式を送信し、結果を直接引き出すことができるように設計されている。この場合は、PubMedのウェブページを開くことなく、検索結果を得られる。著者は、これを利用した、pmSearchというウェブサイト(https://stat.zanet.biz/sr/pmsearch.htm) を開設しているが、各種検索フィルターの利用、検索式作成のサポート、文献選定作業をサポートできるRecordと呼ぶHTMLファイルの作成などの機能を用意してある。興味がある人は試してみていただきたい。


SUCRA (Surface Under the Cumulative Ranking Curves)

SUCRAはNetwork Meta-analysisの結果について治療効果の順位を表す一つの指標です。累積順位曲線下面積という意味になります。それぞれの治療について累積順位確率を縦軸に順位を横軸にして描かれる曲線下の面積になるということです。

Network Meta-analysisでは3つ以上の治療法について比較することができ、その結果の一つとして 順位確率が得られます。また、統合値には間接比較の情報も取り込まれまれていますので、理論的にはペア比較のみの通常のメタアナリシスよりより確実性の高い結果が得られます。あくまで理論的にはです。

順位確率は一つの治療選択肢が1位、2位、3位…それぞれの順位になる確率を表すものです。 もしK個の治療が比較されたとすると、一つの治療について順位1からKまでの順位確率の総和は1.0になります。また それぞれの順位について全ての治療について順位確率の総和を求めるとやはり1.0になります。SUCRAはこれら順位確率の値から計算されます。

その治療法が1位になる確率、すなわち順位確率が2位以下の治療法と比べて、大きな差がある場合は、1位になる確率だけをみて、最善の治療法を選択しても問題はないと考えれらます。しかし、1位になる順位確率が次善の治療法と近い値の場合には、2位になる順位確率も考慮したほうが良いだろうということは直感的に理解できます。さらに、3位、4位、…の順位確率も全体を考慮しようとすると、SUCRAになります。

文献) Salanti G, Ades AE, Ioannidis JP: Graphical methods and numerical summaries for presenting results from multiple-treatment meta-analysis: an overview and tutorial. J Clin Epidemiol 2011;64:163-71. PMID: 20688472

下の図に 上記のSalanti Gらの論文からその計算方法を一つの例とともに示します。1位からK-1位までの累積順位確率の総和をK-1で割り算することによりSUCRAの値が得られます。SUCRAは値が100%の治療は最善であり、値が0の治療は最悪の治療と解釈されます。その値の順序は治療効果の順序を表しています。ここでは、SUCRAの値を%で表しています。計算式は図1にある通りで、順位確率から累積順位確率を求め、それらの総計をK-1で割り算するだけです。

図1.SUCRA計算例。データはSalanti G 2011より引用。

図1のSURCAをグラフ表示すると、以下のようなグラフになります。

図2.SUCRA曲線グラフ。曲線下の面積がSUCRAになる様に、横軸は順位に∔0.5した値のところにプロットされています。最下位のところはどの治療もすべて1.0になります。

SUCRAの計算式を見ると、K-順位の値を順位確率で重みづけして、合計値を求め、最大値が100、最小値が0になるように標準化しているだけなことがわかります。K-順位の値は、1位が最大で、最下位が最小になります。

SUCRAの意味を考えてみることにします。わかりやすくするために、4頭の競走馬がそれぞれ1位から4位になる確率がわかっていて、それぞれの順位の賞金が決まっている場合、どれくらいのリターンが得られといえるか考えてみます。図3にデータを示します。

図3.競走馬4頭のの獲得金額の予想。

順位確率の値は、図1の場合と同じにしました。ざっと眺めると、1位の確率が一番高いのは競走馬2です。競走馬4が最下位の確率が一番高いこともわかります。

まず左側の順位確率にそれぞれの賞金の額を掛け算した値を計算します。たとえば、競走馬1は25, 12.5, 7.5, 0となります。もし競走馬1が1位になったら、100万円の賞金が獲得できるわけですが、1位の確率は0.25なので、100×0.25=25万円が現在の価値です。もし2位になったら50万円の賞金が獲得できるわけですが、2位の確率は0.25なので、50×0.25=12.5万円が現在の価値です。3位、4位も同様に計算します。

確率で考えるとわかりにくい場合は、次のように考えてみてください。この表に示す競走馬1の場合、これらの確率で起きる事象を何回も繰り返すと、例えば、100万回繰り返すと、1位になるのが25万回、2位になるのが25万回、3位になるのが25万回、4位になるのが25万回にになるはずです。多項分布に従うので、回数が少ないともっとばらつきますが、100万回も繰り返せば、まずこうなるでしょう。さて、100万回競走馬1にかけた場合、獲得賞金の平均は、(100×25万+50×25万+30×25万+0×25万)/(25万+25万+25万+25万)=45万円です。

分かりやすくするために、100万回繰り返した場合を考えて計算しましたが、もともと順位確率を競走馬それぞれで合計すると1.0になるので、単純に先に計算した順位確率で重みづけした賞金金額を合計する、つまり25+12.5+7.5+0 = 45万円が競走馬1の予想獲得金額、いいかえると現在の価値となります。

さらに、予想される最高獲得金額は1位になった場合の、100万円、最小獲得金額は4位になった場合の0円なので、これら最大値、最小値を用いて標準化してみます。図3の右下の標準化賞金のところに書いてある計算式で計算します。つまり、予想獲得金額から最小値を引き算した値を、最大値から最小値を引き算した値で割り算し、%にするため100を掛け算します。この値は、最大で100、最小で0となります。各競走馬の標準化賞金を見ると、競走馬2が70万円で最高になります。この例では、1位の賞金が100、4位の賞金が0にしてあるので、平均賞金と標準化賞金が同じ額になっています。

それでは、賞金金額を先ほどのSUCRA計算時に使ったK-順位の値に置き換えて同じように計算してみます。1位から4位までの価値を3,2,1,0と設定することになります。平均価値は上記の平均賞金、標準化価値は同じく標準化賞金と同じ計算法です。

図4.SUCRA計算と同じ値を価値の大きさとした場合。

標準化価値はSUCRAと同じ値になります。SUCRAの計算はそれぞれの順位の価値をそれぞれの順位になる確率で重みづけした平均値と同じだということがわかります。それでは、なぜ、価値を3,2,1,0にする必要があるのでしょう?これを4,3,2,1に変えて同じ計算をやってみます。

図5.価値の値を変更。ただし、順序は同じで間隔も同じ。

標準化価値の値は全く同じです。SUCRAの計算はこのやり方でも算出できることがわかります。つまり、順序が同じで、間隔が同じ値を設定すると、SUCRAの値が計算できるということです。それでは、価値の値を100,80,60,40にしたらどうなるでしょうか。

図6.価値の値を絶対値は違うが順序は同じで間隔は一定の値にした場合。

図6の示すように、標準化価値はSUCRAと全く同じ値です。

それでは、順序は同じだが、間隔は異なる値を価値に設定したらどうなるか見てみましょう。

図7.順序は同じだが、間隔は異なる場合。

標準化価値は違う値になります。ただし、上下関係は変わりません。SUCRAは順位だけを問題にしているので、図1に示すような計算でいいのですが、1位と2位になった場合の絶対効果の大きさは違います。もしその治療が2位になったら、他の治療が1位になり、その治療のほうが効果が大きいはずです。

もし、各治療の絶対効果の大きさをK-順位のかわりに用いたら、順位は同じになりますが、それぞれの治療で得られるであろう絶対効果の大きさは異なる印象を与えかもしれません。たとえば、図7に示す例では、標準化する前の平均価値はSUCRAでは1位になる治療2が85、同じく2位になる治療3が80で大きな差は無いと思われます。

また、標準化する前の平均価値は最下位の価値を0にする場合と、そうでない場合で異なってきます。SUCRAは最下位を0にするので、それがプラセボや無治療であればいいのかもしれませんが、アクティブな治療の場合は、平均価値を0にすることに違和感があります。

順序変数は間隔が同じでないということがここには表れているとも言えます。順位は順序変数である、つまり1位と2位の間隔と2位と3位の間隔は必ずしも同じではないということです。

さて、GRADE approachではネットワークメタアナリシスのSoF (Summary of Findings) tableにはSUCRAを記述する欄があります。したがって、SURCRAの計算が必要になります。

文献)Yepes-Nuñez JJ, Li SA, Guyatt G, Jack SM, Brozek JL, Beyene J, Murad MH, Rochwerg B, Mbuagbaw L, Zhang Y, Flórez ID, Siemieniuk RA, Sadeghirad B, Mustafa R, Santesso N, Schünemann HJ: Development of the summary of findings table for network meta-analysis. J Clin Epidemiol 2019;115:1-13. PMID: 31055177

MacでR, JAGS, rjagsを使うNetwork meta-analysisをやってみる

Rはフリーの統計解析プラットフォームおよびプログラミング言語ですが、今は相当普及していて、アカデミアでも、使っている人が大勢いると思います。The Comprehensive R Archive NetworkではWindows版のみならずMac版、Linux版が提供されています。普段Windows10のノートPCを使うことが多いのですが、周りにはMacを使う人も多く、私自身も以前はMacを主に使っていました。今も時々iMacを使うことがあります。しばらくMacでRを使うことはなかったのですが、今日はMacでRの最新バージョンをインストールして、さらにXQuartzをインストールし、Bayesian推定に使われるJAGS (Just Another Gibbs Sampler)をインストールし、Rのパッケージであるrjagsgemtcをインストールして、動かして見ました。

Network meta-analysisネットワークメタアナリシスにはすでに紹介したことのある、OpenBUGSが使われる事が多いのですが、ネットワークメタアナリシス用のRのパッケージであるgemtcとpcnetmetaはRからrjagsを介してJAGSを動かしてMarkov Chain Monte Carlo (MCMC) simulationを実行するようになっています。gemtcはコントラストベースcontrast-basedのネットワークメタアナリシス、pcnetmetaはアームベースarm-basedのネットワークメタアナリシスができるRのパッケージです。

rjagsとJAGSを使う事で、WindowsだけでなくMacでも同じようにデータ解析ができるというのが最大の利点だろうと思います。OpenBUGSはもともとWinBUGSと呼ばれていたもので、Windowsでしか動きませんが、JAGSは同じコードがMacでもWindowsでも動くので、Macの利用者のことを考えてこのような選択になったのだろうと思います。Windowsであれば、RからOpenBUGSを動かしてデータのやり取りをするにはBRugsというパッケージがあります。

Mac用のRはR-4.0.0.pkgでバージョンは4.0.0になっています(2020.5.22時点)。CRANのメインページから左サイドバーのMirrorsを開き、Japanのサイトのいずれかを選びます。Download R for (Mac) OS Xのページを開き、R-4.0.0.pkgをダウンドードして他のMac用ソフトと同じようにインストールします。続いて、同じページにあるXQuartzのリンクを開き、XQuartz-2.7.22.dmgをダウンロードしてインストールします。

JAGSは上記のリンクを開いて、Downloadsの項のfiles pageのリンクを開き、JAGSのリンクを開き、4.xを開き、MacOSを開いて、JAGS-4.4.0.dmgをダウンロードしてインストールします。JAGSはRとは独立したソフトウェアです。

これで後はRを起動して、Rのパッケージでであるrjagsとgemtcをインストールします。個別に、自分でRの”パッケージとデータ”メニュー から”パッケージインストーラ”を選んで、そこからインストールすることもできますし、以下のスクリプトをRのファイルメニューから新規文書で開かれるエディタに貼り付けて実行(command+return)することでもインストールする事ができます。その行にカーソルを置いてcommand+returnで実行されます。(Windowsだとctrl+rまたは実行ボタン)。packneed=c( )のパッケージ名を変更する事で他のパッケージのインストールにも使えます。

packneed=c(“gemtc”,”rjags”);current=installed.packages();addpack=setdiff(packneed,rownames(current));url=”https://cran.ism.ac.jp/”;if(length(addpack)>0){install.packages(addpack,repos=url)};if(length(addpack)==0){print(“Already installed.”)}

ここではuseRsで私が紹介しているgemtcを動かすスクリプトを実行した結果を示します。”#4. GeMTCを用いるベイジアンネットワークメタアナリシス”のScriptをクリックして出てくるバーのD:の右の四角をクリックするとクリップボードに内容がコピーされるので、Excelを開いて貼り付け、データを確認して下さい。サンプルデータの形式でデータを用意すれば、(上が二値変数、下が連続変数のデータサンプルです)。二値変数アウトカムでも連続変数アウトカムでもどちらも解析可能です。効果指標の値が小さいほうが望ましい場合は、上の#4-1のScript、値が大きい方が望ましい場合は、下の#4-2のScriptを使います。W:がWindows用、M:がMac用のスクリプトになっています。

この例は連続変数のアウトカムで、下のサンプルデータを用いています。Node-splittingモデルのプロットも出力するので、直接比較と間接比較の効果推定値のインコヒレンスincoherenceの評価がやりやすくなると思います。

自分でデータを用意するときは、Excelで同じ形式で用意し、データ範囲を選択し(この例ではセルA1からM11)、コピー操作をしてから、Rに戻り以下のいずれかのスクリプトを実行します(エディターのスクリプト上にカーソルを置いて、command+enterを押す)。上のスクリプトは値が小さい方が望ましい効果指標の場合、下のスクリプトは値が大きい方が望ましい効果指標の場合です。これらのスクリプトはuseRsでScriptをクリックして出てくるバーのM:の右の四角をクリックするとクリップボードにコピーされます。(Windowsの場合はW:の右の四角をクリックします)。

exdat=read.delim(pipe(“pbpaste”),sep=”\t”,header=TRUE);source(“http://zanet.biz/med/stat/ma/nma_gemtc_simpleL.R”)

exdat=read.delim(pipe(“pbpaste”),sep=”\t”,header=TRUE);source(“http://zanet.biz/med/stat/ma/nma_gemtc_simpleH.R”)

これらのスクリプトでは、私が利用しているウェブサーバーに置いてあるスクリプトのファイルをsource( )関数で読み込んで実行することでクリップボードにコピーされたデータに対して、データ処理、解析が行われるようになっています。スクリプトのファイルはhttpプロトコールでインターネットを介してダウンロードされ、そのままRで実行されます。Rは自分のPCに置かれているスクリプトファイルだけでなく、インターネットを介し別のサーバーに置かれているスクリプトを実行できる仕組みがあり、またデータもそのような仕組みで取り扱え、遠隔での共同作業がやりやすいようになっている点が素晴らしいと思います。

最後に、二値変数のアウトカムの場合のデータサンプルとそのネットワークグラフを示します。

解析データは1行に一つの硏究のデータが含まれています。データの内t[,1], t[,2], t[,3]には治療番号のデータが入力されています。治療番号1が参照治療comparatorになります。必要に応じて、カラムや行を増やして使う事ができますna[]は治療アーム数です。

上の例では、2行目と3行目の研究は3アームで同時に3つの治療が比較されたランダム化比較試験です。それ以外の研究は2アームなのでt[,3]はNAになっています。行3,と行22の2つの研究は治療2と3を直接比較した研究です。治療2と3を治療1を介して間接比較できる研究は治療1と3を直接比較した行2, 4〜10, 13〜15, 18〜21の15研究と治療1と治療2を直接比較した行11,12,17の3研究があります。これら治療1と2の直接比較と治療2と3の直接比較から得られる効果推定値を差を求めることで、治療2と3の間接比較の効果推定値が得られることになります。そして、これら直接比較の効果推定値と間接比較の効果推定値の一致の程度を評価する事が必要になるので、ネットワークメタアナリシスに基づくエビデンスの確実性の評価は作業量が多くなり大変です。

ネットワークグラフで閉じられたループがあると、直接比較の効果推定値だけでなく間接比較の効果推定値が得られる事がわかります。この例では、2と3を結ぶ線より、3と1を結ぶ線が太く、そこに多くの研究がある事が示されています。2と1を結ぶ線もあるので、2と3を比較する間接比較のデータが得られ、2と3を比較するネットワーク効果推定値には間接比較のデータがかなり影響するであろうと考えられます。実際、Node-splittingモデルのプロットを見ると、3 vs 2のnetwork estimateはindirectのestimateの影響で、オッズ比が0.93 (0.22-3.9)から1.4 (0.63-3.3)と大きな値になっています。

なお、この解析結果は#4-1のデータを#4-2のスクリプトで解析したものです。つまり、オッズ比の値が大きい方が望ましい結果です。Rankogramを見ると、治療4が最も治療効果が高い確率が最も高い事が言えます。しかし、上のNode-splittingモデルの4 vs 3の比較を見ると、間接比較の点推定値がかなり大きく、直接比較との間の検定ではP=0.0819ですが、バイアス、非直接性、非移行性intransitivityなどによって偏りが生じている可能性をチェックする必要があると言えます。

このようにネットワークメタアナリシスに基づくエビデンスの確実性の評価はかなりの作業量が必要となる事がわかります。ネットワークがもっと大きく、複雑になるとペア比較の数も多くなり、ネットワークの構造が複雑になり、間接比較と直接比較の効果推定値を比較する事も大変な作業になります。