簡體   English   中英

使用 biomaRt 將 Ensembl ID 轉換為基因名稱

[英]convert Ensembl ID to gene name using biomaRt

我有一個名為kidney_ensembl的數據集,我需要將 Ensembl ID 轉換為基因名稱。

我正在嘗試下面的代碼,但它不起作用。 有人可以幫助我嗎?

我知道有類似的問題,但他們沒有幫助我。 非常感謝!

從 Ensembl 基因 ID 轉換為不同的標識符

如何將 Ensembl ID 轉換為 R 中的基因符號?

library(tidyverse)
kidney <- data.frame(gene_id = c("ENSG00000000003.10","ENSG00000000005.5",
"ENSG00000000419.8","ENSG00000000457.9","ENSG00000000460.12")
)
#kidney <- read_delim("Desktop/kidney_ensembl.txt", delim = "\t")

if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")

library("biomaRt")

mart <- useDataset("hsapiens_gene_ensembl", useMart("ensembl"))
genes <-  kidney$gene_id
gene_IDs <- getBM(filters= "ensembl_gene_id", attributes= c("ensembl_gene_id","hgnc_symbol"),
              values = genes, mart= mart)

kidney_final <- left_join(kidney, gene_IDs, by = NULL)

biomart 部分工作,它是你的左連接失敗,因為沒有公共列,gene_IDs 在“ensembl_gene_id”下有 ensembl id,而你的腎臟 dataframe 在“gene_id”下有它。

您還需要檢查它們是 gencode 還是 ensembl。 Gencode ids 通常有一個.[number] 例如,ENSG00000000003.10,在 ensembl 數據庫中它是 ENSG00000000003。

library("biomaRt")
library("dplyr")

kidney <- data.frame(gene_id = 
c("ENSG00000000003.10","ENSG00000000005.5",
"ENSG00000000419.8","ENSG00000000457.9","ENSG00000000460.12"),
vals=runif(5)
)
#make this a character, otherwise it will throw errors with left_join
kidney$gene_id <- as.character(kidney$gene_id)
# in case it's gencode, this mostly works
#if ensembl, will leave it alone
kidney$gene_id <- sub("[.][0-9]*","",kidney$gene_id)

mart <- useDataset("hsapiens_gene_ensembl", useMart("ensembl"))
genes <-  kidney$gene_id
gene_IDs <- getBM(filters= "ensembl_gene_id", attributes= c("ensembl_gene_id","hgnc_symbol"),
              values = genes, mart= mart)

left_join(kidney, gene_IDs, by = c("gene_id"="ensembl_gene_id"))

          gene_id      vals hgnc_symbol
1 ENSG00000000003 0.2298255      TSPAN6
2 ENSG00000000005 0.4662570        TNMD
3 ENSG00000000419 0.7279107        DPM1
4 ENSG00000000457 0.3240166       SCYL3
5 ENSG00000000460 0.3038986    C1orf112

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM