【问题标题】:Entrez gene IDs from gene list using biomaRt使用 biomaRt 从基因列表中获取 Entrez 基因 ID
【发布时间】:2018-11-16 14:09:27
【问题描述】:

我正在尝试将基因名称列表转换为 entrez 基因 ID。

现在我有这个:

>library(biomaRt)    
>ensembl <- useMart("ensembl", dataset = "hsapiens_gene_ensembl")
>mapping <- getBM(attributes=c('ensembl_gene_id','ensembl_transcript_id',
                          'entrezgene', 'hgnc_symbol'),mart = ensembl)

这将创建一个包含 entrez 基因 ID 和名称的表。但是如何根据我的基因列表过滤掉 ID?

这是基因名称列表的示例: Gene names

它只是一个 excel 文件,总共有几百个基因名称。

希望有人可以帮助我!

【问题讨论】:

    标签: r biomart


    【解决方案1】:

    数据

    创建一个基因名称向量:

    mygenes <- c("TNF", "IL6", "IL1B", "IL10", "CRP", "TGFB1", "CXCL8")
    

    从 BioMart 检索信息:

    library(biomaRt)
    
    hsmart <- useMart(dataset = "hsapiens_gene_ensembl", biomart = "ensembl")
    
    hsmart
    
    # Object of class 'Mart':
    #   Using the ENSEMBL_MART_ENSEMBL BioMart database
    #   Using the hsapiens_gene_ensembl dataset
    

    将基因名称映射到 Ensembl 基因 id、转录本 id、entreze id

    为此,您不需要将整个数据库转换为相应 id 的表。使用filter = "hgns_symbol" 作为getBM() 调用的参数,将根据您作为values 函数的values 参数提供的基因名称对数据库进行子集:

    mapping <- getBM(
      attributes = c('ensembl_gene_id', 'ensembl_transcript_id', 'entrezgene', 'hgnc_symbol'), 
      filters = 'hgnc_symbol',
      values = mygenes,
      mart = hsmart
    )
    

    这为您的基因提供了 43 条记录:

    mapping %>%
      arrange(hgnc_symbol, ensembl_gene_id, ensembl_transcript_id, entrezgene)
    
    #   ensembl_gene_id ensembl_transcript_id entrezgene hgnc_symbol
    #1  ENSG00000132693       ENST00000255030       1401         CRP
    #2  ENSG00000132693       ENST00000368110       1401         CRP
    #3  ENSG00000132693       ENST00000368111       1401         CRP
    #4  ENSG00000132693       ENST00000368112       1401         CRP
    #5  ENSG00000132693       ENST00000437342       1401         CRP
    #
    #   ............................................................
    #
    #39 ENSG00000228321       ENST00000412275       7124         TNF
    #40 ENSG00000228849       ENST00000420425       7124         TNF
    #41 ENSG00000228978       ENST00000445232       7124         TNF
    #42 ENSG00000230108       ENST00000443707       7124         TNF
    #43 ENSG00000232810       ENST00000449264       7124         TNF
    

    【讨论】:

    • 感谢您的回答!但是,有没有办法将基因名称列表转换为向量,而不是手动输入列表?
    • 我不确定我是否理解正确,@Laurent。您的意思是,如何将您的 excel 文件中的基因名称转换为 R 中的向量?
    • 没关系。我在一个 excel 文件中设置了基因名称并将其保存为 .txt 我使用这一行来读取 .txt 文件: mygenes
    • 我需要知道的。您可以使用 readxl (readxl.tidyverse.org) 或使用 xlsx (cran.r-project.org/web/packages/xlsx/index.html) 包将您的 excel 文件读入 R。最后一个允许您阅读(和编写)您的 Excel 书的单独工作表。之后通过数据的常规子集化(并且,恐怕在readxl的情况下不列出),您可以将其转换为向量,或者直接使用带有您的基因名称的特定列的内容作为getBM()的查询。
    • entrezgene 已更改为 entrezgene_id
    猜你喜欢
    • 2016-11-10
    • 2012-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-23
    • 1970-01-01
    • 2017-05-20
    相关资源
    最近更新 更多