Rで解析:Entrezの操作が楽々です!「rentrez」パッケージ


投稿日: Rの解析に役に立つ記事 , ,

Entrezは論文のデータベースであるPubmedでおなじみのNational Center for Biotechnology Information (NCBI)が開発した検索システムです。あまりにも有名なのでEntrezの説明はしませんが、論文だけでなく、SNPも含めた遺伝子情報のデータベースもあり、J-STAGE、JDreamⅢともに重宝しています。

Entrezもそうですが、多くのウェブ上のデータベースはソフトウェアから操作するためのAPIを公開しています。APIを利用してデータを取得すると作業効率が格段に上昇します。

本パッケージはEntrezのAPIを操作してデータを取得するパッケージです。一瞬で、必要なデータを取得できます。

ただし、大量のデータを取得する行為は迷惑となりますので十分に注意してください。

過度なデータの収集は、あまり意味が無いと思います。人が処理できるデータ量は限界があります。また、アクセス遮断などの措置が取られる場合がありますのでご注意を。

パッケージのバージョンは0.4.2。実行コマンドはR version 3.2.2で確認しています。

パッケージのインストール

下記コマンドを実行してください。

#パッケージのインストール
install.packages("rentrez")

実行コマンド

詳細はコメント、パッケージヘルプを確認してください。

#パッケージの読み込み
library("rentrez")

#データベースの一覧を取得:entrez_absコマンド
entrez_dbs()
[1] "pubmed" "protein" "nuccore" "nucleotide" "nucgss"
[6] "nucest" "structure" "genome" "gpipe" "annotinfo"
[11] "assembly" "bioproject" "biosample" "blastdbinfo" "books"
[16] "cdd" "clinvar" "clone" "gap" "gapplus"
[21] "grasp" "dbvar" "epigenomics" "gene" "gds"
[26] "geoprofiles" "homologene" "medgen" "mesh" "ncbisearch"
[31] "nlmcatalog" "omim" "orgtrack" "pmc" "popset"
[36] "probe" "proteinclusters" "pcassay" "biosystems" "pccompound"
[41] "pcsubstance" "pubmedhealth" "seqannot" "snp" "sra"
[46] "taxonomy" "unigene" "gencoll" "gtr"

#データベース要約を表示:entrez_db_summaryコマンド
entrez_db_summary("gene")
DbName MenuName Description DbBuild
"gene" "Gene" "Gene database" "Build150922-0035m.1"
Count LastUpdate
"21688958" "2015/09/22 08:14"

#検索で使用できるオプションを表示:entrez_db_searchableコマンド
entrez_db_searchable("gene")
[1] ALL UID FILT TITL WORD ORGN MDAT CHR MV GENE ECNO MIM DIS ACCN UGEN PROP CDAT NCAC NUID
[20] PACC PUID PMID TID GO DOM DDAT CPOS GFN PFN GL XC GRP PREF AACC ASM

#キーワードで検索:entrez_searchコマンド
#termはEntrezの形式がそのまま使用できます
#データベースの指定:dbオプション
#結果取得数の指定:retmaxオプション
r_search <- entrez_search(db = "gene", term = "MTHFR AND Homo sapiens[ORGN]", retmax = NULL) r_search Entrez search result with 108 hits (object contains 20 IDs and no cookie) #データ構造の確認 str(r_search) List of 4 $ ids : chr [1:20] "7157" "348" "4524" "3569" ... $ count : chr "108" $ retmax: chr "20" $ file :Classes 'XMLInternalDocument', 'XMLAbstractDocument' <externalptr> - attr(*, "class")= chr [1:2] "esearch" "list" #検索結果の要約を取得:entrez_summarコマンド #idは取得結果とデータが格納されているリスト名の組み合わせ GeneResult <- entrez_summary(db = "gene", id = r_search$ids) $`7157` esummary result with 20 items: [1] uid name description status currentid [6] chromosome geneticsource maplocation otheraliases otherdesignations [11] nomenclaturesymbol nomenclaturename nomenclaturestatus mim genomicinfo [16] geneweight summary chrsort chrstart organism #以下略 #例えば一番目結果のdescriptionを表示 sapply(GeneResult, "[[", "description")[1] 7157 "tumor protein p53" ###パッケージ公式ページより##### #特定キーワードの年代別論文数を取得コマンドを一部改変 #serch_yearコマンドの作成 search_year <- function(year, term){ query <- paste(term, "AND (", year, "[PDAT])") entrez_search(db = "pubmed", term = query, retmax = 0)$count } year <- 2008:2014 papers <- sapply(year, search_year, term = "MTHFR AND Homo sapiens[ORGN]", USE.NAMES = FALSE) plot(year, papers, type = 'b', main = "MTHFR AND Homo sapiens[ORGN]:PAPERS", ylim = c(0, type.convert(max(papers))*1.2)) #特定キーワードの論文を取得し情報をまとめる SearchResult <- entrez_search(db = "pubmed", retmax = 10, term = "folic acid AND MTHFR") #ジャーナル名の取得 GetSummary <- entrez_summary(db="pubmed", id=SearchResult$ids) sapply(GetSummary, "[[", "title")[1] 26376686 "Unmetabolized Folic Acid in Prediagnostic Plasma and the Risk of Colorectal Cancer." #マークダウンしてHTMLテーブルで出力 #体裁は整えていません #entrez_summaryの結果はリストで返されます #通常のリストに対する操作でデータをいじれます cat(knitr::kable(sapply(GetSummary, "[[", "title"), row.names = TRUE, caption = "TEST table", col.names = c("TiTle"), format = "html"), file = "TEST.html", sep = "\n") [/code]


出力例

マークダウンしてHTMLテーブルで出力。体裁は整えていません。画像で紹介します。
pubTable


少しでも、あなたのウェブや実験の解析が楽になりますように!!

スポンサードリンク

スポンサードリンク