TCGA表达矩阵行名一键转换
2023-04-24 本文已影响0人
小洁忘了怎么分身
直接说答案,新版的tinyarray里面加了一个函数,trans_exp_new,pia的以下就转换成功,不只是TCGA的,任何以ensembleid为行名的矩阵都可以转换,注意数据结构得是矩阵哦。
1.读取数据
随便拿一个例子,xena里的一个CHOL数据,在这里下载:
https://gdc-hub.s3.us-east-1.amazonaws.com/download/TCGA-CHOL.htseq_counts.tsv.gz
dat = read.delim("TCGA-CHOL.htseq_counts.tsv.gz",check.names = F,row.names = 1)
dat = as.matrix(dat)
dat[1:4,1:4]
#> TCGA-ZD-A8I3-01A TCGA-W5-AA2U-11A TCGA-W5-AA30-01A
#> ENSG00000000003.13 12.359475 11.274378 12.32559
#> ENSG00000000005.5 1.000000 1.000000 0.00000
#> ENSG00000000419.11 10.244364 9.357552 10.68387
#> ENSG00000000457.12 9.558421 8.438792 11.37341
#> TCGA-W5-AA38-01A
#> ENSG00000000003.13 13.010178
#> ENSG00000000005.5 1.000000
#> ENSG00000000419.11 10.728771
#> ENSG00000000457.12 9.022368
2.表达矩阵行名ID转换
#install.packages("tinyarray")
library(tinyarray)
exp = trans_exp_new(dat)
#> Warning in AnnoProbe::annoGene(rownames(exp), ID_type = "ENSEMBL"): 6.54% of
#> input IDs are fail to annotate...
exp[1:4,1:4]
#> TCGA-ZD-A8I3-01A TCGA-W5-AA2U-11A TCGA-W5-AA30-01A TCGA-W5-AA38-01A
#> DDX11L1 0.000000 0.000000 0.000000 1.000000
#> WASH7P 6.357552 3.459432 7.199672 5.807355
#> MIR6859-1 1.000000 0.000000 3.584963 1.000000
#> MIR1302-2HG 0.000000 0.000000 0.000000 0.000000
总数六万,少掉6%根本不叫事。