基因名称的转换

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

1. 使用gtf文件进行转换

1.1 下载gtf文件

  • 登录http://asia.ensembl.org/index.html
  • image.png
  • image.png
  • image.png
  • image.png

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

你可能感兴趣的:(基因名称的转换)