美文网首页学习生信
基因名称的转换

基因名称的转换

作者: 生信小鹏 | 来源:发表于2020-05-30 17:07 被阅读0次

    从TCGA获得的数据名称为ensemble ID,这对于后续分析是不方便的,我们需要把ensemble ID 转换成gene symbol 和gene ID。可以使用以下几种方法进行转换。

    1. 使用gtf文件进行转换

    1.1 下载gtf文件

    1.2 制作R可读的gtf文件

    R读取gtf文件可使用rtracklayer::import 函数读取

    if(!require("rtracklayer")) BiocManager::install("rtracklayer") #安装rtracklayer package
    gtf1 <- rtracklayer::import('Homo_sapiens.GRCh38.94.chr.gtf')
    gtf_df <- as.data.frame(gtf1)
    

    读取过程时间比较长,这是一个270万行,27列的文件。读取不易,将其保存为Rdata格式,可以方便以后其他数据的分析。

    save(gtf_df,file = "gtf_df.Rdata")
    

    探究一下gtf文件当中到底有哪些信息

    > colnames(gtf_df)
     [1] "seqnames"                 "start"                    "end"                      "width"                   
     [5] "strand"                   "source"                   "type"                     "score"                   
     [9] "phase"                    "gene_id"                  "gene_version"             "gene_name"               
    [13] "gene_source"              "gene_biotype"             "transcript_id"            "transcript_version"      
    [17] "transcript_name"          "transcript_source"        "transcript_biotype"       "tag"                     
    [21] "transcript_support_level" "exon_number"              "exon_id"                  "exon_version"            
    [25] "protein_id"               "protein_version"          "ccds_id"                 
    

    这些信息中,我们需要的一般为 typegene_biotype用来筛选需要的基因类型,再加gene_name用于后期基因名称的对应,即转换为gene symbol。

    2. 利用 AnnotationDbi package进行ID转换

    差异结果最终依然使用ensemble ID进行表示,后续就可以按照如下的方法进行转换。

    library(AnnotationDbi)
    library(org.Hs.eg.db)
    res$symbol <- mapIds(org.Hs.eg.db,
                         keys=res$gene_id,
                         column="SYMBOL",
                         keytype="ENSEMBL",
                         multiVals="first")
    res$entrez <- mapIds(org.Hs.eg.db,
                         keys=res$gene_id,
                         column="ENTREZID",
                         keytype="ENSEMBL",
                         multiVals="first")
    

    3. 利用clusterprofiler package进行基因ID转换

    可以说 clusterprofiler 这个R包确实很全面厉害,不仅能做富集分析,GSEA分析,还能有这种基因名称转换功能,而且其富集画图功能确实很赞。从原理上,其实使用的依然是2 当中的package,但是也算是一个集合吧。
    转换代码如下:

    library(org.Hs.eg.db)
    keytypes(org.Hs.eg.db)
    ids <- bitr(x, fromType="SYMBOL", toType=c("UNIPROT", "ENSEMBL"), OrgDb="org.Hs.eg.db")
    head(ids)
    

    其实这个package不仅仅能够转换基因名,还能够对kegg通路的名称进行转换,也可以对富集后的结果进行转化,使其转变为可读模式的基因名称,而不是编码代号,可以说是一个实用的工具。示例代码如下

    library(org.Hs.eg.db)
    library(clusterProfiler)
    
    data(geneList, package="DOSE")
    de <- names(geneList)[1:100]
    x <- enrichKEGG(de)
    ## The geneID column is ENTREZID
    head(x, 3)
    
    y <- setReadable(x, OrgDb = org.Hs.eg.db, keyType="ENTREZID")
    ## The geneID column is translated to symbol
    head(y, 3)
    

    参考文章及书目
    clusterProfiler: universal enrichment tool for functional and comparative study
    https://mp.weixin.qq.com/s/7BBJGTlOa5i6YPMlrRqw2w

    相关文章

      网友评论

        本文标题:基因名称的转换

        本文链接:https://www.haomeiwen.com/subject/dmqhzhtx.html