Entrezは論文のデータベースであるPubmedでおなじみのNational Center for Biotechnology Information (NCBI)が開発した検索システムです。あまりにも有名なのでEntrezの説明はしませんが、論文だけでなく、SNPも含めた遺伝子情報のデータベースもあり、J-STAGE、JDreamⅢともに重宝しています。
Entrezもそうですが、多くのウェブ上のデータベースはソフトウェアから操作するためのAPIを公開しています。APIを利用してデータを取得すると作業効率が格段に上昇します。
本パッケージはEntrezのAPIを操作してデータを取得するパッケージです。一瞬で、必要なデータを取得できます。
ただし、大量のデータを取得する行為は迷惑となりますので十分に注意してください。
パッケージのバージョンは1.2.3。実行コマンドはR version 4.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: gene
MenuName: Gene
Description: Gene database
DbBuild: Build230112-2235m.1
Count: 63762982
LastUpdate: 2023/01/13 17:52
#検索で使用できるオプションを表示:entrez_db_searchableコマンド
entrez_db_searchable("gene")
Searchable fields for database 'gene'
ALL All terms from all searchable fields
UID Unique number assigned to a gene record
FILT Limits the records
TITL gene or protein name
WORD Free text associated with record
ORGN scientific and common names of organism
MDAT The last date on which the record was updated
CHR Chromosome number or numbers; also 'mitochondrial', 'unknown' properties
MV Chromosomal map location as displayed in MapViewer
GENE Symbol or symbols of the gene
ECNO EC number for enzyme or CAS registry number
MIM MIM number from OMIM
DIS Name(s) of diseases associated with this gene. When available, OMIM name will be used
ACCN Nucleotide or protein accession(s) associated with this gene
UGEN UniGene cluster number for this gene
PROP Properties of Gene record
CDAT The date on which this record first appeared
NCAC nucleotide accessions of sequences
NUID nucleotide uids of sequences
PACC protein accessions
PUID protein uids
PMID PubMed ids of accessions linked to the record
TID taxonomy id
GO Gene Ontology
DOM Domain Name
DDAT The date on which the record was discontinued
CPOS Chromosome base position
GFN Gene full name
PFN Protein full name
GL Gene length
XC Exon count
GRP Relationships for this gene
PREF Preferred symbol of the gene
AACC Assembly accession
ASM Assembly name
EXPR Gene expression
#キーワードで検索: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 196 hits (object contains 20 IDs and no web_history object)
Search term (as translated): MTHFR[All Fields] AND "Homo sapiens"[Organism]
#データ構造の確認
str(r_search)
List of 5
$ ids : chr [1:20] "7157" "348" "7124" "7422" ...
$ count : int 196
$ retmax : int 20
$ QueryTranslation: chr "MTHFR[All Fields] AND \"Homo sapiens\"[Organism]"
$ 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:2022
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]
36637428
#"Methylenetetrahydrofolate reductase deficiency and high dose FA
#supplementation disrupt embryonic development of energy balance and metabolic
#homeostasis in zebrafish."
#作業フォルダにマークダウンして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")
出力例
マークダウンしてHTMLテーブルで出力。体裁は整えていません。画像で紹介します。

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