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の使い方の解説を書いたので試してみてください→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

GammaでPowerPointスライド作成

文章からPowerPointのスライドを作成してくれるGammaというAIサイト (https://gamma.app/ja)もかなりすごいです。たとえば、”Important points of literature search for systematic reviews.”と書き込むだけで、”システマティックレビューにおける文献検索の重要性”というタイトルで8枚のスライドを作ってくれました。タイトルを「システマティックレビューにおける文献検索のキーポイント」に書き換えたり、その他一部修正しましたが、自分で図を描くことを考えると非常に効率的です。

また、MapifyというAIサイト(https://mapify.so/ja)は動画ファイルからマインドマップを作成してくれます。例えば、私のIZ statの動画「診療ガイドライン作成におけるシステマティックレビュープロセスのエッセンス」からPowerPointのスライド「システマティックレビューのプロセス」を作成してみました。やはりある程度の手直しが必要でしたが、非常に効率的です。(無料の範囲ではスライド枚数に制限があります。)

IZ stat(https://www.youtube.com/channel/UCqzzJbfQwKDvValptCAM4gg
「診療ガイドライン作成におけるシステマティックレビュープロセスのエッセンス」(https://youtu.be/dEqvQg1ljI4)

作成したPPTのファイルはこちらです:
「システマティックレビューにおける文献検索のキーポイント」 Link
「システマティックレビューのプロセス」 Link

Napkin aiを用いたSRのための文献検索解説書作成

Cochrane Handbook for Systematic Reviews of Interventions. v.6.5 LinkのChapter 4は文献検索に関する内容です。文献検索について、Mandatory必須の作業として以下の項目が挙げられています。(一つはHighly desirableです)。

C19: Planning the search (Mandatory)
C24: Searching general bibliographic databases and CENTRAL (Mandatory)
C25: Searching specialist bibliographic databases (Highly desirable)
C27: Searching trials registers (Mandatory)
C30: Searching reference lists (Mandatory)
C26: Searching for different types of evidence (Mandatory)
C32: Structuring search strategies for bibliographic databases (Mandatory)
C33: Developing search strategies for bibliographic databases (Mandatory)
C35: Restricting database searches (Mandatory)
C48: Examining errata (Mandatory)
C37: Rerunning searches (Mandatory)
C36: Documenting the search process (Mandatory)
C42: Collating multiple reports (Mandatory)
C40: Excluding studies without useable data (Mandatory)
C39: Making inclusion decisions (Mandatory)
C41: Documenting decisions about records identified (Mandatory)

日本語にすると:
システマティックレビューのための文献検索
検索の計画 (必須)
一般書誌データベースおよび CENTRAL の検索 (必須)
専門書誌データベースの検索 (極めて望ましい)
臨床試験登録の検索 (必須)
参考文献リストの検索 (必須)
さまざまなタイプのエビデンスの検索 (必須)
書誌データベースの検索戦略の構築 (必須)
書誌データベースの検索戦略の開発 (必須)
データベース検索を制限すること (必須)
誤りの訂正報告を調べること (必須)
検索を再実行すること (必須)
検索プロセスを文書化すること (必須)
複数のレポートの照合(必須)
使用可能なデータがない研究の除外(必須)
組み入れの決定(必須)
特定された記録に関する決定の文書化(必須)

この日本語のテキストをNapkin ai (https://www.napkin.ai/)で図入りの解説書を作成してみました。PDFファイルとして出力できます。図はその最初の部分です。(Napkinは現時点でベータ版で無料で使えます。)

PDFファイルはこちらです。Link

一部手直ししましたが、分かりやすい解説書ができたと思います。図はNapkinが作成してくれたもので、解説の部分もそうです。このような図を自分で描くとなると結構大変だと思いますが、あっという間にできました。図柄の変更や、細部の修正もブラウザー上でできます。

これぐらいのレベルだと、このPDFファイルをプレゼンテーションにも使えそうです。