いろいろ倉庫

KNIME、EXCEL、R、Pythonなどの備忘録

【R】ホモログを調べてみたかった

・お題:ヒト遺伝子のマウスホモログを探してみたい。

 

・共通祖先由来の遺伝子や形態をホモログと呼ぶらしい。また、種分化の際に分岐したホモログをオルソログと呼ぶらしい。言葉の定義がややこしい。以下参考。

bio-and.info

 

・ヒトでいう●●という遺伝子のマウス版が★★だ、という場合、★★は●●のホモログ(厳密にはオルソログっぽいが、自信がないのでホモログと呼ぶ)になるらしい。なんとなくbiomaRtを使えば調べられそうだと思ってググってみると、確かにできるっぽい。

www.rdocumentation.org

・試すとエラーが出た。

> human <- useMart("ensembl", dataset = "hsapiens_gene_ensembl")
Ensembl site unresponsive, trying asia mirror
Ensembl site unresponsive, trying useast mirror
> mouse <- useMart("ensembl", dataset = "mmusculus_gene_ensembl")

> getLDS(attributes = c("hgnc_symbol", "chromosome_name", "start_position"),
+        filters = "hgnc_symbol",
+        values = "TP53",
+        mart = human,
+        attributesL = c("chromosome_name", "start_position"),
+        martL = mouse)
Error: biomaRt has encountered an unexpected server error.
Consider trying one of the Ensembl mirrors (for more details look at ?useEnsembl)

 

・このエラーはQAサイトで報告されており、解決しているらしい。useMart関数でhostを指定すると動くらしい。

support.bioconductor.org

> human <- useMart("ensembl", dataset = "hsapiens_gene_ensembl", host = "https://dec2021.archive.ensembl.org/")
> mouse <- useMart("ensembl", dataset = "mmusculus_gene_ensembl", host = "https://dec2021.archive.ensembl.org/")

> getLDS(attributes = c("hgnc_symbol", "chromosome_name", "start_position"),
+        filters = "hgnc_symbol",
+        values = "TP53",
+        mart = human,
+        attributesL = c("chromosome_name", "start_position"),
+        martL = mouse)

 

・確かに動いたので、複数の遺伝子でやってみる。

> getLDS(attributes = c("external_gene_name"),
+        filters = "external_gene_name",
+        values = c("SPIB", "CD86", "TNF", "LFNG", "PIM1", "TLR1", "BCL6", "ARHGAP11B"),
+        mart = human,
+        attributesL = c("external_gene_name"),
+        martL = mouse)

 

・この一番下のARHGAP11Bという遺伝子は、ヒトにしかない遺伝子として知られている。正確には、マウスにも存在するRHGAP11Aという遺伝子から派生されてできた遺伝子らしい。最初のホモログ参考サイトでいうところの、パラログ(?)に相当すると考えられる。ホモログを検索したいという意味ではあっていたのだけれど、私のイメージ的には厳密にはオルソログを調べたかった。

・先のトラブルシューティングのQAサイトの下の方に、biomaRtを使わないオルソログの調べ方がついていたので、そっちでやってみたい。各ライブラリのインストールは割愛。

> library(Orthology.eg.db)
> library(org.Hs.eg.db)
> library(org.Mm.eg.db)

> fun <- function(gns){
+   egs <- mapIds(org.Hs.eg.db, gns, "ENTREZID", "SYMBOL")
+   mapped <- select(Orthology.eg.db, egs, "Mus.musculus", "Homo.sapiens")
+   mapped$MUS <- mapIds(org.Mm.eg.db, as.character(mapped$Mus.musculus),  "SYMBOL", "ENTREZID")
+   mapped
+   }

> genes <- c("SPIB", "CD86", "TNF", "LFNG", "PIM1", "TLR1", "BCL6", "ARHGAP11B")
> fun(genes)
'select()' returned 1:1 mapping between keys and columns
'select()' returned 1:1 mapping between keys and columns

・こちらではイメージ通りの結果が返ってきた。

・パッケージの特徴や原理を知り、用途に応じたパッケージを選択することが求められる。うーーーーーーーーーーーーーむ…。。

 

 

おわり