AnnotationDbi

遺伝子のアノテーションは Ensembl などの公共データベースを通してファイルとしてダウンロードして利用できる。しかし、R / Biocondcutor を利用した解析では、ダウンロードしたファイルを利用するよりも Bioconductor のパッケージとして配布されているアノテーションを利用すると便利である。

Bioconductor で取り扱っているアノテーションは以下のように分類できる。また、Bioconductor に登録されているアノテーションパッケージは Bioconductor AnnotationData Packages で確認できる。

生物種レベルのアノテーション(OrgDb)

生物種レベルのアノテーションパッケージは、org.Hs.eg.db のように「org.種名」で登録されている。例えば、ヒトのアノテーションを利用するときは他のパッケージと同様に library を利用して呼び出せばよい。また、利用できるアノテーションを columns 関数で確認できる。この例では、Entrez Gene ID, Ensembl Gene ID, GO などが利用できる。

library(org.Hs.eg.db)

columns(org.Hs.eg.db)
##  [1] "ENTREZID"     "PFAM"         "IPI"          "PROSITE"      "ACCNUM"
##  [6] "ALIAS"        "CHR"          "CHRLOC"       "CHRLOCEND"    "ENZYME"
## [11] "MAP"          "PATH"         "PMID"         "REFSEQ"       "SYMBOL"
## [16] "UNIGENE"      "ENSEMBL"      "ENSEMBLPROT"  "ENSEMBLTRANS" "GENENAME"
## [21] "UNIPROT"      "GO"           "EVIDENCE"     "ONTOLOGY"     "GOALL"
## [26] "EVIDENCEALL"  "ONTOLOGYALL"  "OMIM"         "UCSCKG"

keytypes(org.Hs.eg.db)
##  [1] "ENTREZID"     "PFAM"         "IPI"          "PROSITE"      "ACCNUM"
##  [6] "ALIAS"        "ENZYME"       "MAP"          "PATH"         "PMID"
## [11] "REFSEQ"       "SYMBOL"       "UNIGENE"      "ENSEMBL"      "ENSEMBLPROT"
## [16] "ENSEMBLTRANS" "GENENAME"     "UNIPROT"      "GO"           "EVIDENCE"
## [21] "ONTOLOGY"     "GOALL"        "EVIDENCEALL"  "ONTOLOGYALL"  "OMIM"
## [26] "UCSCKG"

指定した遺伝子のアノテーションデータを取得してみる。遺伝子 ENSG00000004478 の Entrez Gene ID, GO, KEGG パスウェイの情報を取得する。上で見た keytypes 関数の実行結果に表示される文字列が、検索条件の指定に用いる項目である。

res <- select(org.Hs.eg.db,
              keys = "ENSG00000004660",
              keytype = "ENSEMBL",
              columns = c("ENSEMBL", "ENTREZID", "GO", "PATH"))
res
##           ENSEMBL ENTREZID         GO EVIDENCE ONTOLOGY  PATH
## 1 ENSG00000004660    84254 GO:0004683      IEA       MF 04920
## 2 ENSG00000004660    84254 GO:0005515      IPI       MF 04920
## 3 ENSG00000004660    84254 GO:0005516      IEA       MF 04920
## 4 ENSG00000004660    84254 GO:0005524      IEA       MF 04920
## 5 ENSG00000004660    84254 GO:0005634      IEA       CC 04920
## 6 ENSG00000004660    84254 GO:0005829      TAS       CC 04920
## 7 ENSG00000004660    84254 GO:0006468      IEA       BP 04920
## 8 ENSG00000004660    84254 GO:0007268      TAS       BP 04920

keys 引数に遺伝子名からなるベクトルを渡すこともできる。

システム生物学レベルのアノテーション(GO.db)

Gene Ontology (GO) 関連のアノテーションとして GO.db が用意されている。GO term の番号と term や親子関係が保存されている。(詳細な使い方

library(GO.db)
columns(GO.db)
## [1] "GOID"       "TERM"       "ONTOLOGY"   "DEFINITION"

特定の GO term の番号について、その term とオントロジーを取得する例。

goid <- c("GO:0004683", "GO:0005524", "GO:0007268")
res <- select(GO.db,
              keys = goid,
              keytype = "GOID",
              columns = c("GOID", "TERM", "ONTOLOGY"))
res
##         GOID                                         TERM ONTOLOGY
## 1 GO:0004683 calmodulin-dependent protein kinase activity       MF
## 2 GO:0005524                                  ATP binding       MF
## 3 GO:0007268                        synaptic transmission       BP

トランスクリプトームレベルのアノテーション(TxDb)

トランスクリプトームレベルのアノテーションは TxDb.Hsapiens.UCSC.hg38.knownGene のように「TxDb」から始めている。(詳細な使い方

library(TxDb.Hsapiens.UCSC.hg38.knownGene)
columns(TxDb.Hsapiens.UCSC.hg38.knownGene)
##  [1] "CDSID"      "CDSNAME"    "CDSCHROM"   "CDSSTRAND"  "CDSSTART"
##  [6] "CDSEND"     "EXONID"     "EXONNAME"   "EXONCHROM"  "EXONSTRAND"
## [11] "EXONSTART"  "EXONEND"    "GENEID"     "TXID"       "EXONRANK"
## [16] "TXNAME"     "TXTYPE"     "TXCHROM"    "TXSTRAND"   "TXSTART"
## [21] "TXEND"

特定の遺伝子の情報を取得する例。


id <- select(org.Hs.eg.db,
             keys = c("ENSG00000004660", "ENSG00000007314"),
             keytype = "ENSEMBL",
             columns = c("ENSEMBL", "ENTREZID"))
id
##           ENSEMBL ENTREZID
## 1 ENSG00000004660    84254
## 2 ENSG00000007314     6329

res <- select(TxDb.Hsapiens.UCSC.hg38.knownGene,
              keys = id[, 2],
              keytype = "GENEID",
              columns = c("GENEID", "TXSTART", "TXEND", "TXTYPE"))
res
##   GENEID TXTYPE  TXSTART    TXEND
## 1  84254   <NA>  3860323  3890743
## 2  84254   <NA>  3860323  3893043
## 3  84254   <NA>  3865157  3893043
## 4   6329   <NA> 63938554 63972918

mat <- merge(id, res, by.x = 2, by.y = 1)
mat
##   ENTREZID         ENSEMBL TXTYPE  TXSTART    TXEND
## 1     6329 ENSG00000007314   <NA> 63938554 63972918
## 2    84254 ENSG00000004660   <NA>  3860323  3890743
## 3    84254 ENSG00000004660   <NA>  3860323  3893043
## 4    84254 ENSG00000004660   <NA>  3865157  3893043