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テーブルで出力。体裁は整えていません。画像で紹介します。
少しでも、あなたのウェブや実験の解析が楽になりますように!!