生信分析、meta分析、数据挖掘
TCGA、GEO、SEER、Oncomine

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

今天是生信星球陪你的第224天


   大神一句话,菜鸟跑半年。我不是大神,但我可以缩短你走弯路的半年~

   就像歌儿唱的那样,如果你不知道该往哪儿走,就留在这学点生信好不好~

   这里有豆豆和花花的学习历程,从新手到进阶,生信路上有你有我!

今天澳门回归19周年,致敬!

正题,最近跟芯片杠上了。

都知道寡核苷酸芯片一个基因可以对应多个探针,最近发现复杂到超乎想象:探针与基因的关系是多对多,探针与序列的关系也是多对多!

我在学习这个流程:芯片的探针ID找到基因名-基于R语言-一文就够
跑了好几个平台,流程一切顺利。但昂飞的芯片却甚是诡异:
(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

隔壁生信技能树公益视频合辑(学习顺序是linux,r,软件安装,geo,小技巧,ngs组学!)

国内看B站,教学视频链接:https://m.bilibili.com/space/338686099 
国外看YouTube,教学视频链接:https://m.youtube.com/channel/UC67sImqK7V8tSWHMG8azIVA/playlists 

友情链接:

生信工程师入门最佳指南
学徒培养

资料大全


点击底部的“阅读原文”,获得更好的阅读体验哦?

初学生信,很荣幸带你迈出第一步。

我们是生信星球,一个不拽术语、通俗易懂的生信知识平台。由于是2018年新号,竟然没有留言功能。需要帮助或提出意见请后台留言、联系微信或发送邮件到[email protected],每一条都会看到的哦~




赞(0) 打赏
未经允许不得转载:医学SCI科研之家 » 基因芯片:探针与基因并非一一对应,而是多对多
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

meta分析、生信分析

meta、生信交流群综合科研交流群