GEO数据中探针ID的转换
在使用GEO数据的过程中,经常会遇到表达矩阵是探针ID不是我们分析所需要的gene symbol,这时候就需要去对表达数据的探针ID进行转换。接下来我们我们以GSE63067为数据为例进行数据探针ID转换。
#01
下载GEO数据,提取表达矩阵,观察表达矩阵中行名
是否为探针ID。
> eSet <- getGEO("GSE63067",
'.', =
F) =
> exp <- exprs(eSet[[1]])
4,1:4] :
GSM1539877 GSM1539878 GSM1539879 GSM1539880
1007_s_at 2.871410 2.852016 2.765939 2.872312
1053_at 2.680588 2.688279 2.527078 2.625285
117_at 2.835742 3.029779 2.774594 2.981834
121_at 2.916225 2.871338 2.852980 2.804634
通过查看我们发现该表达矩阵的行名为1007sat,1053at,117at,它们是探针ID,不是gene symbol。
#02
下载GPL数据,用AnnoProbe提取探针信息
> library(AnnoProbe)
AnnoProbe::idmap("GPL570",type = 'soft') =
//49.235.27.111/GEOmirror/GPL/GPL570_soft.rda' :
Content type 'application/octet-stream' length 295573 bytes (288 KB)
downloaded 288 KB
> head(idprob)
ID symbol
1 1007_s_at DDR1 /// MIR4640
2 1053_at RFC2
3 117_at HSPA6
4 121_at PAX8
5 1255_g_at GUCA1A
6 1294_at MIR5193 /// UBA7
通过命令我们可以查看提取的idprob文件中每个探针ID都有对应的gene symbol,idprob文件的ID列正好与第一步中表达矩阵的行名一致接下来就可以进行ID转换了。
#03
使用探针ID信息进行基因注释,即探针ID转换
> expr_1 <- filterEM(exp1,id_prob )
input expression matrix is 54675 rows(genes or probes) and 18 columns(samples).
input probe2gene is 54675 rows(genes or probes)
after remove NA or useless probes for probe2gene, 54675 rows(genes or probes) left
There are 54675 of 54675 probes can be annotated.
output expression matrix is 23521 rows(genes or probes) and 18 columns(samples).
> expr_1[1:4,1:4]
GSM1539877 GSM1539878 GSM1539879 GSM1539880
ZZZ3 2.767478 2.673070 2.872924 2.851977
ZZEF1 2.921419 2.880373 2.803486 2.900011
ZYX 3.212532 3.162545 2.950402 3.020136
ZYG11B 3.160104 3.161922 3.325905 3.241667
通过查看生成的expr_1文件,现在的表达矩阵的行名已经变成了gene symbol,至此探针ID转换就完成了。
推荐阅读