R语言做生信RNA-seq

基因芯片:探针与基因并非一一对应,而是多对多

2018-12-20  本文已影响27人  小洁忘了怎么分身

最近跟芯片杠上了。
都知道寡核苷酸芯片一个基因可以对应多个探针,最近发现远没有那么简单。

我在做这个流程:https://mp.weixin.qq.com/s/wGdweBW3EszRA-OI5whq7w
而昂飞的芯片甚是诡异:
(1)一个探针名称对应一组序列 (诡异)
(2)一个探针对应多个基因(一般诡异)
(3)一条序列对应多个探针(诡异但最后没影响)
(4)一个基因也对应多个探针(相对正常)
说明一点:同一探针名虽然对应一组序列,但这组序列是有共同点的:都对应着同样的基因。举个栗子。一个探针对应着16条序列,对应着两个基因,其实是每条序列都对应着这两个基因。
以HG133plus2为例,从官网下载的序列信息表格文件有60万行,实际上探针应该是有五万多个!下载地址:http://www.affymetrix.com/analysis/downloads/data/HG-U133_Plus_2.probe_tab.zip

#读取(记得解压)
library(tidyverse)
id2sequence<- read.csv('HG-U133_Plus_2.probe_tab',sep = "\t")[1,5]
colnames(id2sequence) <- c('ID','SEQUENCE')
#先看下表格一共有多少行,有多少探针名,有多少不同序列
 raw = nrow(id2sequence)#604258
 n_probe = nrow(count(id2sequence,ID))#54675
 n_sequence = nrow(count(id2sequence,SEQUENCE))#594532

寻找一下探针序列数的规律:x <- count(count(id2sequence,ID),n)

双重count,可以看到绝大多数的探针有11条序列。所以说昂飞的芯片探针命名,真的是按组。。。

探针数与geo数据库表格的行数相同,说明没有问题。但序列数不等于行数,第一个想法是有重复行,经验证并没有。这就说明有的序列在a组探针中有,在b组探针中也有,我抽取了一条出现3次的序列来看,他分别对应了三个探针名,然后从注释文件中找,确实对应着相同的基因。
AAAAATGCTTTTATCTTGCTATAGA
214774_x_at ENSG00000103460
215108_x_at ENSG00000103460
216623_x_at ENSG00000103460
然而,以第一个为例,在lo中搜索, 发现这个探针其他的序列也是对应着这个基因。



因此,序列重复是不影响注释结果的。
但是跑完流程后的lo数据框有55万行,显然是有很多重复的对应关系。所以,只要把探针id和基因id都一致的行作为重复行,只保留一行就可以了。
去重复的代码是:
lo_dup=lo[!duplicated(lo[,c(6,12)]),] #行数由552760变为 62501

上一篇下一篇

猜你喜欢

热点阅读