affymatrix探针转换 | GPL5175探针对应的基因转换

一般情况下,有一些比较成熟的对应平台的注释数据集的R包。但是这个注释平台,我在Bioconductor上找了一圈都没有找到。只能通过最原始也最可靠的方法,从GEO数据集上去下载这部分的注释文件。以下展示全过程。

我要检查的数据平台是:GPL5157。
数据集的注释集链接为:https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GPL5175

在这里插入图片描述这个注释数据集比较难弄的地方在于,它的基因集注释的不太好。没有比较直接的可供提取的genesample的信息;在gene assignment那边,对于gene的注释也不是特别的完整,各个label之间对的很整齐。

在这里插入图片描述(原来是我快捷键弄错了。切换输入法,使用win+空格)

最近依旧是不得不点击下载full table。
文件并不大,只有83.3Mb。

接下来,我们对该文件进行读取,提取探针与基因之间的一一对应关系。
将该文件命名为:GPL5175-probe-annonation.txt用于下游分析。


  • 这里遇到了一个问题,我怎样都没有想明白!
    就是今天最主要的任务是要进行探针转换的,但是读取注释文件的时候,原始文件有3万多行,但是真的用table读的时候,就只有1万五千行,究竟是发生了什么?是不是数据本身最大的容量就是1万多行。装不了更大的。
    我的猜想是对的,当我换用fread()读取,一切正常了。

又遇到了新的问题:这个平台的作者太不知道与人方便了。gene id不唯一,不好提取一一对应关系。
现在看看别人是怎么使用这个数据的。
别人是基于探针的染色体好,和基因组的gtf文件匹配,然后得到对应的基因的信息,但是我觉得这个太没有效率。于是还是继续沿用作者给出的探针ID对应匹配上的gene的名字。


library(data.table)
probe<-fread("GPL5175-probe-annonation.txt")
#col.names=paste0('V', seq_len(ncol)
#好像是probe这个文件读取不全
#这个数据文件本事很多行,但是哪些是和我们的数据对应的呢?
dim(subdata)
#我接下来需要获取的是这17565个probe的基因注释信息
head(cellTypePEM)
interest_probe<-rownames(cellTypePEM)
length(interest_probe)
length(intersect(probe$ID,interest_probe))
probe_gene<-subset(probe,probe$ID%in%interest_probe,select=c(ID,gene_assignment))
dim(probe_gene)#为什么筛掉了那么多#将近一半#这下对了
head(probe_gene)
library(stringr)
gene_anno<-as.data.frame(str_split_fixed(probe_gene$gene_assignment,"//",n=2))
gene_anno2<-as.data.frame(cbind(probe_gene$ID,gene_anno$V1))
dim(gene_anno2)
write.csv(gene_anno2,"probe_anno.csv")
colnames(gene_anno2)<-c("ID","anno")
cellTypePEM2<-cbind(rownames(cellTypePEM),cellTypePEM)
colnames(cellTypePEM2)[1]<-"ID"
merge_data<-merge(cellTypePEM2,gene_anno2)
#rownames(merge_data)<-merge_data$anno
#haorongyidaozhiyibule,youchucuole,juewang
##看看unique有多少?
table(merge_data$anno)
#这里还是想知道有没有漏掉的情况
#
#要对数据进行筛选,这228个还是可以接受的
#去除有重复的行
merge_data2<-merge_data[!duplicated(merge_data$anno),]
rownames(merge_data2)<-trimws(merge_data2$anno, which = c("both", "left", "right"), whitespace = "[ \t\r\n]")
#grep("^EN",merge_data2$anno,value = T)
#这个就验证了其实Id中也还是有ENST的基因的
grep("--",merge_data2$anno,value = F)
merge_data3<-merge_data2[,c(-1,-16)]
#到这里ID转换就基本结束了

这给我带来的启示如下:
(1)之后判断与gene的位置关系的时候,以转录本作为主要的研究对象,提取转录本(基因名),将其与咱们的这个基因一一对应。

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值