0

无法使用 biomaRt 包从 Entrez ID 获取基因符号相关

该代码的工作原理很吸引人,但我想将其保存到我当前的CSV 文件中,而不仅仅是“查看”它(添加一个额外的列也可以完成这项工作,我得到了超过 65k 个 ID)

library(biomaRt)
marts <- listMarts()
ensembl <- useMart("ensembl")
datasets <- listDatasets(ensembl)
ensembl=useDataset("hsapiens_gene_ensembl",mart=ensembl)
attributes <- listAttributes(ensembl)
my_ids <- read.csv("LUADhtseq.csv")
ensembl = useEnsembl(biomart="ensembl", dataset="hsapiens_gene_ensembl")
results_end_1 <- getBM(attributes = c("ensembl_gene_id","external_gene_name"), values = my_ids, mart = ensembl )
View(results_end_1)
4

1 回答 1

1

您正在取回 ensembl 中的所有条目,您需要合并:

my_ids = data.frame(ids=c("ENSG00000130203","ENSG00000136717","ENSG00000186868"))

df = merge(my_ids,results_end_1,by.x="ids",by.y="ensembl_gene_id")
df
              ids external_gene_name
1 ENSG00000130203               APOE
2 ENSG00000136717               BIN1
3 ENSG00000186868               MAPT

或者您需要设置“过滤器”选项以获取 my_ids 中的条目:

out <- getBM(attributes = c("ensembl_gene_id","external_gene_name"), 
values = my_ids, mart = ensembl,filters="ensembl_gene_id")

  ensembl_gene_id external_gene_name
1 ENSG00000130203               APOE
2 ENSG00000136717               BIN1
3 ENSG00000186868               MAPT

你可以写:

write.csv(out,"out.csv",row.names=FALSE,quote=FALSE)
于 2020-02-19T16:50:42.043 回答