Excelファイルをドラグアンドドロップでメタアナリシスを実行するウェブページ

メタアナリシスのためのデータをExcelで用意し、そのファイルをドラグアンドドロップすると、メタアナリシスを実行し、Forest plotとFunnel plotを作成するウェブページを作りました。

解析はJavaScriptで作成したコードで行っており、MathライブラリとjStatライブラリを用いています。インターフェース関連でjQueryも用いています。

メタアナリシスはInverse-variance method分散逆数法、ランダム効果モデルによる方法で、研究間の分散はRestricted Maximum Likelihood (REML)法(Viechtbauer W 2005)を用いています。

ExcelシートはMindsのテンプレートをそのまま用いて、データを入力します。図1は介入研究用(RoB2)の例です。介入、対照、アウトカムの欄にはデータを入力する必要があります。さらに、研究コード、リスク人数と書いてあるデータの部分、そして効果指標のタイプは設定する必要があります。

図1. Mindsの評価シート(介入研究RoB2用)。この例では、メタアナリシスの結果のデータも入力済み。

必要なデータを入力したらファイルを保存します。

ブラウザで次のウェブページを開いてください。Meta-analysis IZ mi

図2.Meta-analysis IZ miのウェブページ。

右の円が描かれているエリアにExcelのファイルをドラグアンドドロップすると、すぐ上のドロップダウンメニューにシート名の一覧が表示されるので、メタアナリシスの対象のシートを選択し、その左のDo Meta-analysisのボタンをクリックしてください。Forest plotとFunnel plotが表示されます。また、結果の数値データが上のテキストエリアに書き込まれます。

Do Meta-analysisの実行直後は、各研究の効果指標と95%信頼区間、統合値と95%信頼区間の値がクリップボードに格納されているので、Excelシートの効果指標(値)のセルに貼り付けることができます。図1の例であれば、セルU12を選択して貼り付けます。

Forest plotとFunnel plotは右クリックして保存したり、コピーして貼り付けたりできます。数値データは必要に応じて、Copy to Clipboardボタンをクリックして、クリップボード経由でExcelシートに貼り付けられます。

図3.Meta-analysis IZ izのメタアナリシス実行結果。

Meta-analysis IZ miはRoB2用のシートだけでなく、それ以外のシートにも対応しています。効果指標のタイプは、二値変数アウトカムのRR, OR, RD、ハザード比HR、連続変数アウトカムのMD, SMDに対応しています。評価シートの効果指標(種類)でタイプを設定してください。

使用法の解説動画はこちらです (YouTube Link)。

ここで紹介した、Mindsの評価シートに対応しているのが、Meta-analysis IZ miですが、メタアナリシスだけで十分な場合は、別のフォーマットでExcelファイルを用意してMeta-analysis IZ izを使うこともできます。こちらは、REML法とDerSimonian-Laird法の指定ができます。

サンプルデータを入力したMindsの評価シートのファイルとMeta-analysis IZ iz用のサンプルデータを入力したファイルはこちらでダウンロードできます。右クリックして保存してから使用してください。

minds-sample-rob2.xlsx
iz-meta-sample.xlsx

メタアナリシスの際に用いている計算式について詳細を知りたい人は、Deeks J and Higgins JPT 2010を参照してください。この解説の時点では、研究間の分散の計算はDerSimonian-Laird法を用いていますが、最近RevManでもREML法も選択できるようになったようです。McKenzie J, Veroniki AAの解説を参照してください。

文献:
Viechtbauer W: Bias and Efficiency of Meta-Analytic Variance Estimators in the Random-Effects Model. Journal of Educational and Behavioral Statistics
Fall 2005, Vol. 30, No. 3, pp. 261–293. Link

Viechtbauer W氏のR package metafor Link The metafor Package: A Meta-Analysis Package for R. Link

Deeks J and Higgins JPT: Statistical algorithm in Reveiw Manager 5. 2010. Link

McKenzie J, Veroniki AA: Introduction to new random-effects methods in RevMan. Link 解説スライド

Excelのデータからそのままメタアナリシス:Meta-analysis IZ exと評価シートへの実装

Excelで一定の形式でデータを入力して、アドインメニューからDo Meta-analysisをクリックすると、ブラウザが開かれ、Forest plot、Funnel plot、結果の数値データが表示されるMeta-analysis IZ exというExcel bookを作りました。インターネットに接続された環境で使用します。

VBAで書かれたプロブラムで、メタアナリシスに必要なデータを結合して、GETメソッドで送信し、PHPのプログラムで受信し、JavaScriptのプログラムで解析して、ブラウザに結果を表示します。Forest plot、Funnel plotは右クリックしてコピーしたりPENGファイルとして保存できます。

VBAのプロブラムを動かすには、Excelでマクロが動作する設定にする必要があります。必要な場合、Excelファイルを開いてから、ファイルメニュ–>オプション–>トラストセンター–>トラストセンターの設定(T)…ーー>マクロの設定–>VBAマクロを有効にするをチェックしてください。一度閉じて、再度開いてください。このマクロに関する設定は、他のExcelファイルに対しても適用されるので、他のExcelファイルでマクロが付いている場合も、無条件にマクロが実行可になります。セキュリティ上は、電子署名されたマクロを除き、VBAマクロを無効にする(G)の設定が望ましいので、さまざまなソースのExcelファイルを使用する方は、あとで設定をそのように変更してください。

このExcel bookのファイル名は2025_meta-analysis_ex.xlsmです。下記のLinkからダウンロードして、ダウンロードしたファイルを開いてください。上記のごとく、最初に、マクロを有効化して使用してください。

また、Mindsの評価シートをBookとしてまとめた、2025_excel_book_for_sr.xlsmというファイルと、そこから必要なシートをコピーして、システマティックレビューに使用するシートを集めたBookを各自作るための2025_My_SR Book.xlsmというファイルも入れてあります。システマティックレビュー用の評価シートに必要なデータを入力後、アドインメニューからMeta-analysis → Do Meta-analysisをクリックするとブラウザが開かれ、結果が表示されます。これらのBookの評価シートは、Rのパッケージmetafor, forestpolotを用いて、Rで動作するメタアナリシスを行うのスクリプトも含んでいるのでRを使ってメタアナリシスをすることもできますし、後述するMeta-analysis IZ rというウェブツールを使ってメタアナリシスをすることもできます。

Link: 2025_meta-analysis_ex.zip
2025.2.2 より前にダウンロードされた方、一部修正しましたので再度ダウンロードしてください。ZIPファイルから外に保存してから使ってください。

ここからは、2025_meta-analysis_ex.xlsmについての解説です。最初のシートに使い方の解説があります。二値変数アウトカムの場合、リスク比、オッズ比、リスク差、生存分析の場合、ハザード比、連続変数アウトカムの場合は、平均値差、標準化平均値差を扱えます。

図 Meta-analysis IZ exの最初のシート。

それぞれのシートにはサンプルデータが入力されているので、自分のデータに書き換えて使用してください。

また、シートの任意のセルを選択した状態で、Shift keyを押しながら、Do Meta-analysisをクリックするとその場所に二値変数アウトカム用のデータ入力フレームワークが作成されます。Altキーを押しながら同様の操作でハザード比用、Shift keyとAltキーの両方を押しながら同様の操作をすると連続変数アウトカム用のデータ入力フレームワークが作成されます。それらの位置にデータを入力して、それに対してメタアナリシスを実行する場合は、authorのセルを選択してから、Do Meta-analysisをクリックしてください。その範囲のデータでメタアナリシスを実行します。新規に追加したシートでも同じことができます。デフォルトの位置はセルB3です。新規に追加したシートではまずそこにフレームワークを作成して、使用しましょう。

メタアナリシスの方法は、分散逆数法Inverse-variance method、ランダム効果モデルRandom-effects model、研究間の分散の計算はRestricted Maximum Likelihood (REML)法またはDerSimonian -Laird法です。Rのパッケージのmetaforと同じ結果が得られることを確認してあります。

DerSimonian -Laird法は古典的な方法でRevManはこの方法を用いています。REMLとDerSimonian -Lairdはほぼ同じ結果になりますが、数値は若干異なり、REMLの方をデフォルトにしています。

このExcel bookを用いると、データをコピーしてウェブサイトに貼り付けて、解析するというステップがワンステップで済みます。

YouTubeチャンネルIZ statで解説動画をアップロードしました。Link

Meta-analysis IZ rというメタアナリシスのためのウェブツールでも同じJavaScriptのプログラムで解析しています。Meta-analysis IZ rはこちらのLinkです。

参照リンク:
Rのメタアナリシス用のパッケージ by Viechtbauer W Link

Viechtbauer W (2010). “Conducting meta-analyses in R with the metafor package.” Journal of Statistical Software36(3), 1–48.  Link

Cochrane RevManの統計学的手法 Deeks JJ and JPT Higgins: Statistical algorithms in Review Manager 2022. PDF

RISmedを用いたPubMed検索

RISmedはPubMed検索のためのRのパッケージです。作者はStephanie Kovalchik氏です。ASReview https://asreview.nl/ を用いた文献選定の際には、Title, Abstractのデータを用います。書誌情報と合わせて、これらのデータを含むExcelファイル、またはCSVあるいはRISファイルを用意する必要があります。その際に、RISmedを使うのがひとつの方法です。

PubMedではGETメソッドで直接データベースにアクセスして、検索結果をダウンロードできるe-utilitiesというサービスがあります。MeSHへのAutomatic Term Mappingは適用されません。https://www.ncbi.nlm.nih.gov/books/NBK25501/

それを利用するRのパッケージです。pmSearchも同じサービスを利用しています。

RISmedとtcltk2のパッケージをThe Comprehensive R Archive Network (CRAN)(https://cran.r-project.org/)からRにインストールしておきます。tcltk2は検索結果をCSVファイルとして保存する際のインターフェースとして用います。
Stephanie Kovalchik: RISmed https://cran.r-project.org/web/packages/RISmed/index.html
Philippe Grosjean: tcltk2 https://cran.r-project.org/web/packages/tcltk2/index.html

パッケージがまだインストールされていない場合は、以下のスクリプトをRで実行してください。
#Install the packages.
packneed=c(“RISmed”,”tcltk2″);current=installed.packages();addpack=setdiff(packneed,rownames(current));url=”https://ftp.yz.yamagata-u.ac.jp/pub/cran/”;if(length(addpack)>0){install.packages(addpack,repos=url)};if(length(addpack)==0){print(“Already installed.”)}

以下のRでスクリプトを実行すると検索結果をCSVファイルとして保存できます。SearchWordsと言う変数に検索式search queryを格納しますので、””で囲んであるところを書き換えて使用してください。すべてを選択して、実行すると、ファイル保存のダイアログまで実行されます。ResultsData=EUtilsGet(Results, type=”efetch”, db=”pubmed”)の実行に時間がかかります。

保存したCSVファイルを直接開くのではなく、Excelを起動して、データメニューからテキストまたはCSVファイルからインポートします。元のファイルはUTF-8でエンコードされており、Shift JISがデフォルトのExcelでは文字化けするので、そのような手順を取ります。ファイル保存の際は.xlsxにすることもできます。

また、CSVファイルはテキストファイルなので、Notepad++ https://notepad-plus-plus.org/ などで一度開いて、エンコーディングをUTF-8-BOMに変換するとExcleで直接開いても文字化けしません。

図 Excleで取り込んで.x.sxファイルとして保存したPubMed検索結果。

以下にR用のスクリプトを示します。
library(“RISmed”)
library(“tcltk2”)

#Make a search query for PubMed. Write your query in ” “.

SearchWords=”(junior doctor OR young doctor OR resident physician OR intern) AND mindfulness AND humans[mh] AND (english[la] OR japanese[la]) AND hasabstract[tw] AND 2024[dp]”

#Connect and retrieve a list of PubMed IDs. You can change retmax and set years asmindate=2000, maxdate=2024, retmax=2000

Results=EUtilsSummary(SearchWords, type=”esearch”, db=”pubmed”, retmax=2000)

#Show the number of citations retrieved and get title, abstract and other data. This step takes time.

QueryCount(Results)
ResultsData=EUtilsGet(Results, type=”efetch”, db=”pubmed”)

#Make publication year list.

year=YearEntrez(ResultsData)

#Make a list of authors (Last name + initials) for each citation and a list of reference id (first author + year).

au=Author(ResultsData)
refn=length(au)
auv=rep(“”,refn)
refidv=rep(“”,refn)
for(i in 1:refn){
authors=cbind(au[[i]]$LastName,au[[i]]$Initials)
ma=nrow(authors)
authors[1,]
paste(authors[1,1],authors[1,2])

aul=””
for(j in 1:ma){
aut=paste(authors[j,1],authors[j,2])
aul=paste(aul,aut,sep=”, “)
}
aul=substr(aul,3,nchar(aul))
auv[i]=aul
refidv[i]=paste(authors[1,1],authors[1,2],year[i])
}

#Make citation list. No formatting. Including DOI information.
refer=Citations(ResultsData)

cite=rep(“”,refn)
for(i in 1:refn){
cite[i]=refer[[2]][[i]]
}

#Create a data frame of PMID, Reference_ID,Citation,Year, Title,Abstract. Citation format is not modified.

pubmed_data=data.frame(‘PMID’=PMID(ResultsData),’Reference_ID’=refidv,’Citation’=cite, ‘Year’=YearEntrez(ResultsData), ‘Title’=ArticleTitle(ResultsData), ‘Abstract’=AbstractText(ResultsData))

#Save the frame work as a CSV file with a save file dialogue. Add file extension “.csv”.

filnam=tclvalue(tkgetSaveFile(initialfile=”export.csv”,filetypes=”{{CSV Files} {.csv}} {{All files} *}”));if(filnam!=”.csv”){write.csv(pubmed_data,filnam,row.names=FALSE)}

#Do not open the file directly to avoid character encoding trouble. Launch Excel, then from Data menu use import text/csv file.
#The saved file is a text file with UTF-8. You can change encoding from UTF-8 to UTF-8-BOM using Notpad++, and you can directly open the file with Excel without garbles.

ASReview(エイエスレビュー)を用いた文献選定

システマティックレビューの際には、Clinical Question (CQ), Healthcare Question (HcQ), Health Question (HQ)に回答するために必要な文献を検索しますが、数百、数千という数の候補文献から、目的に合う文献を選定する作業は時間と労力を要します。

Large Language Model (LLM)を用いたArtificial Intelligence (AI)で、例えばChatGPT turboが有用だという報告もありますが、現時点では、ハルシネーションの問題など、全面的に頼れるところまで来ていないと思います。

一方で、機械学習で標的文献サンプルRelevantとそれ以外Irrelevant文献を分類する方法を用いたASReviewは高性能で時間と労力がセーブできます。実際の文献選定のプロセスを支援する方式です。

ASReviewの使い方の解説を書いたので試してみてください[2024.11.23 Exportについての解説を追加しました]→ASReviewを用いた文献検索 PDF ASReviewへのリンクは文献欄に付けてあります↓

ASReviewはPythonというプログラミング言語を用いていますが、ユーザインタフェースはブラウザで、非常に使いやすくなっています。また、データ管理はクラウドではなく、ローカルなので、自分の作成したデータの漏洩の心配はありません。

文献
Yao X, Kumar MV, Su E, Flores Miranda A, Saha A, Sussman J: Evaluating the efficacy of artificial intelligence tools for the automation of systematic reviews in cancer research: A systematic review. Cancer Epidemiol. 2024;88:102511. doi: 10.1016/j.canep.2023.102511 PMID: 38071872

ASReview  https://asreview.nl/

van Dijk SHB, et al: Artificial intelligence in systematic reviews: promising when appropriately used. BMJ Open. 2023;13:e072254. doi: 10.1136/bmjopen-2023-072254 PMID: 3741964

Oami T, Okada Y, Nakada TA: Performance of a Large Language Model in Screening Citations. JAMA Netw Open 2024;7:e2420496. doi: 10.1186/s13643-018-0707-8 PMID: 38976267

Oami T, Okada Y, Sakuraya M, Fukuda T, Shime N, Nakada TA: Efficiency and Workload Reduction of Semi-automated Citation Screening Software for Creating Clinical Practice Guidelines: A Prospective Observational Study. J Epidemiol 2024;34:380-386. doi: 10.1002/cesm.12021 PMID: 38105001

Cowie K, Rahmatullah A, Hardy N, Holub K, Kallmes K: Web-Based Software Tools for Systematic Literature Review in Medicine: Systematic Search and Feature Analysis. JMIR Med Inform. 2022;10:e33219. doi: 10.2196/33219 PMID: 35499859

Cierco Jimenez R, Lee T, Rosillo N, Cordova R, Cree IA, Gonzalez A, Indave Ruiz BI: Machine learning computational tools to assist the performance of systematic reviews: A mapping review. BMC Med Res Methodol. 2022;22:322. doi: 10.1186/s12874-022-01805-4 PMID: 36522637