KEGGREST パッケージは R を利用して、KEGG ウェブサイトにあるパスウェイデータを検索したり、取得したりすることのできる Bioconductor パッケージである。KEGGREST パッケージと同じ機能を持つ KEGG.db や KEGGSOAP パッケージは、データが古いままになっているため、特別な理由がない限り KEGG.db や KEGGSOAP を利用しないほうがいい。
library(KEGGREST)
KEGG で取り扱える生物種
KEGG には多くの生物種に対してアノテーションされている。具体的な生物種は http://rest.kegg.jp/list/organism で確認できる。リンク先は以下のように、タブ区切りのテキスト形式となっている。左から生物種の ID、生物種のコード、学名、系統の順で記載されている。とくに、2 列目の生物種を表すコードが重要で、KEGGREST の関数を利用する際に、この生物種コードを渡す必要がある。
T01001 hsa Homo sapiens (human) Eukaryotes;Animals;Vertebrates;Mammals
T01005 ptr Pan troglodytes (chimpanzee) Eukaryotes;Animals;Vertebrates;Mammals
T02283 pps Pan paniscus (bonobo) Eukaryotes;Animals;Vertebrates;Mammals
T02442 ggo Gorilla gorilla gorilla (western lowland gorilla) Eukaryotes;Animals;Vertebrates;Mammals
T01416 pon Pongo abelii (Sumatran orangutan) Eukaryotes;Animals;Vertebrates;Mammals
T03265 nle Nomascus leucogenys (northern white-cheeked gibbon) Eukaryotes;Animals;Vertebrates;Mammals
簡単な例として、ヒトの遺伝子に関係するパスウェイの ID とパスウェイの名前をすべて取得するには以下のようにする。
hsa.kegglist <- keggList("hsa")
## hsa:440034
## "DKFZp686K1684; uncharacterized LOC440034"
## hsa:100287010
## "uncharacterized LOC100287010"
## hsa:100506548
## "uncharacterized LOC100506548"
## hsa:100288846
## "uncharacterized LOC100288846"
## hsa:222029
## "DKFZp434L192; uncharacterized protein DKFZp434L192"
## hsa:284581
## "uncharacterized LOC284581"
特定のパスウェイの検索
あるパスウェイの ID を与えて、その名前、定義や関連遺伝子名などを検索するときに keggGet
関数を利用する。検索結果はリスト形式で返される(検索キーワードが 1 つの場合でも)。
hsa10458 <- keggGet("hsa:10458")
names(hsa10458[[1]])
## [1] "ENTRY" "NAME" "DEFINITION" "ORTHOLOGY" "ORGANISM"
## [6] "PATHWAY" "BRITE" "POSITION" "MOTIF" "DBLINKS"
## [11] "STRUCTURE" "AASEQ" "NTSEQ"
hsa10458[[1]]$ENTRY
## CDS
## "10458"
hsa10458[[1]]$NAME
## [1] "BAIAP2, BAP2, FLAF3, IRSP53"
hsa10458[[1]]$DEFINITION
## [1] "(RefSeq) BAI1-associated protein 2"
hsa10458[[1]]$DBLINK
## [1] "NCBI-GI: 222080100" "NCBI-GeneID: 10458"
## [3] "OMIM: 605475" "HGNC: 947"
## [5] "HPRD: 05686" "Ensembl: ENSG00000175866"
## [7] "Vega: OTTHUMG00000177698" "UniProt: Q9UQB8"
hsa10458[[1]]$NTSEQ
## A DNAStringSet instance of length 1
## width seq
## [1] 1605 ATGTCTCTGTCTCGCTCAGAGGAGATGCACCGGC...ACCAACGACAGGTCTGCCCCCCTCCTCAGCTGA
hsa10458[[1]]$AASEQ
## A AAStringSet instance of length 1
## width seq
## [1] 534 MSLSRSEEMHRLTENVYKTIMEQFNPSLRNFIAM...LDDYGARSMSRNPFAHVQLKPTVTNDRSAPLLS
全パスウェイのデータを取得
ある生物種の全パスウェイを取得して、遺伝子 ID から KEGG パスウェイへマッピングしたり、KEGG パスウェイから遺伝子 ID にマッピングしたりすることができるようになる。ここでは、シロイヌナズナの遺伝子 ID (TAIR)とパスウェイのマッピング例を取り上げる。
まずは KEGG パスウェイから TAIR ID を引く例を示す。
kegg2tair <- keggLink("ath", "pathway")
keggid <- gsub("path:", "", names(kegg2tair))
keggid.uniq <- unique(keggid)
KEGG2TAIR <- vector("list", length(keggid.uniq))
names(KEGG2TAIR) <- keggid.uniq
for(i in 1:length(KEGG2TAIR)) {
KEGG2TAIR[[i]] <- as.character(gsub("ath:", "", kegg2tair[keggid == keggid.uniq[i]]))
}
query <- c("ath00514", "ath04122")
res <- KEGG2TAIR[query]
res
## $ath00514
## [1] "AT1G17270" "AT1G53770" "AT3G04240" "AT5G50420"
##
## $ath04122
## [1] "AT1G01290" "AT1G16460" "AT1G51310" "AT1G76170" "AT1G79230" "AT2G31955"
## [7] "AT2G43760" "AT2G44270" "AT2G45695" "AT3G61113" "AT4G10100" "AT4G35910"
## [13] "AT5G55130" "AT5G65720"
as.character(unlist(res))
## [1] "AT1G17270" "AT1G53770" "AT3G04240" "AT5G50420" "AT1G01290" "AT1G16460"
## [7] "AT1G51310" "AT1G76170" "AT1G79230" "AT2G31955" "AT2G43760" "AT2G44270"
## [13] "AT2G45695" "AT3G61113" "AT4G10100" "AT4G35910" "AT5G55130" "AT5G65720"
TAIR ID から KEGG パスウェイを引く例。
tair2kegg <- keggLink("pathway", "ath")
tairid <- gsub("ath:", "", names(tair2kegg))
tairid.uniq <- unique(tairid)
TAIR2KEGG <- vector("list", length(tairid.uniq))
names(TAIR2KEGG) <- tairid.uniq
for(i in 1:length(TAIR2KEGG)) {
TAIR2KEGG[[i]] <- as.character(gsub("path:", "", tair2kegg[tairid == tairid.uniq[i]]))
}
query <- c("AT5G61760", "AT5G58330")
res <- TAIR2KEGG[query]
res
## $AT5G61760
## [1] "ath00562" "ath01100" "ath04070"
##
## $AT5G58330
## [1] "ath00620" "ath00710" "ath01100" "ath01200"
as.character(unlist(res))
## [1] "ath00562" "ath01100" "ath04070" "ath00620" "ath00710"
## [6] "ath01100" "ath01200"