最近收到的反馈:
查了一下这篇文章,居然被举报违规,咱也不知道为什么设置一个一块钱的付费就违规了,可能是举报的人真的差这一块钱吧。
江湖险恶,人心难测嘛。人人都躲不过社会的毒打呀。
为了不影响大家的使用,说一下解决的办法:
读取一个tcga的表达矩阵
exp = read.table("TCGA-CHOL.htseq_counts.tsv.gz",check.names = F,row.names = 1,header = T)
dim(exp)
## [1] 60488 45
head(rownames(exp))
## [1] "ENSG00000000003.13" "ENSG00000000005.5" "ENSG00000000419.11"
## [4] "ENSG00000000457.12" "ENSG00000000460.15" "ENSG00000000938.11"
可以看到行名是带有版本号的ENSEMBL id。转换成symbol有好多种方法,介绍一下我用的两种:
1.用AnnoProbe的annoGene函数转换
这个函数是比较新的基因注释函数,用起来也比较简单。推荐这个方法。
library(stringr)
library(AnnoProbe)
rownames(exp) = str_split(rownames(exp),"\\.",simplify = T)[,1];head(rownames(exp))
## [1] "ENSG00000000003" "ENSG00000000005" "ENSG00000000419"
## [4] "ENSG00000000457" "ENSG00000000460" "ENSG00000000938"
re = annoGene(rownames(exp),ID_type = "ENSEMBL");head(re)
## Warning in annoGene(rownames(exp), ID_type = "ENSEMBL"): 6.54% of
## input IDs are fail to annotate...
## SYMBOL biotypes ENSEMBL
## 1 DDX11L1 transcribed_unprocessed_pseudogene ENSG00000223972
## 2 WASH7P unprocessed_pseudogene ENSG00000227232
## 3 MIR6859-1 miRNA ENSG00000278267
## 4 MIR1302-2HG lncRNA ENSG00000243485
## 6 FAM138A lncRNA ENSG00000237613
## 7 OR4G4P unprocessed_pseudogene ENSG00000268020
## chr start end
## 1 chr1 11869 14409
## 2 chr1 14404 29570
## 3 chr1 17369 17436
## 4 chr1 29554 31109
## 6 chr1 34554 36081
## 7 chr1 52473 53312
library(tinyarray)
exp1 = trans_array(exp,ids = re,from = "ENSEMBL",to = "SYMBOL")
exp1[1:4,1:4]
## TCGA-ZD-A8I3-01A TCGA-W5-AA2U-11A TCGA-W5-AA30-01A
## DDX11L1 0.000000 0.000000 0.000000
## WASH7P 6.357552 3.459432 7.199672
## MIR6859-1 1.000000 0.000000 3.584963
## MIR1302-2HG 0.000000 0.000000 0.000000
## TCGA-W5-AA38-01A
## DDX11L1 1.000000
## WASH7P 5.807355
## MIR6859-1 1.000000
## MIR1302-2HG 0.000000
dim(exp1)
## [1] 56514 45
2.用基于gtf文件的trans_exp函数
这个函数是我写的,原理是利用了TCGA使用的那个旧版本的genecodev22版本的gtf文件,如果想要实现一对一的转换,一个基因都不少,那用原版是比较好的。但是v22已经是2014年的版本了,有些基因早已经被移除掉了。时间越往后,过时就越久,还是用方法1比较好一些。提供做法:
library(tinyarray)
exp2 = trans_exp(exp)
exp2[1:4,1:4]
## TCGA-ZD-A8I3-01A TCGA-W5-AA2U-11A TCGA-W5-AA30-01A
## TSPAN6 12.359475 11.274378 12.32559
## TNMD 1.000000 1.000000 0.00000
## DPM1 10.244364 9.357552 10.68387
## SCYL3 9.558421 8.438792 11.37341
## TCGA-W5-AA38-01A
## TSPAN6 13.010178
## TNMD 1.000000
## DPM1 10.728771
## SCYL3 9.022368
2.2.8版本的tinyarray里将会多一个函数,trans_exp_new,用比较新的方法来转,更新好了后面会在简书、 语雀和公众号里都说一声。
网友评论