打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
第二个万能芯片探针ID注释平台R包

整合全部表达芯片平台的soft文件并且提取基因symbol和探针对应关系

前面我们提到过表达芯片探针注释的3种方法,参见:第一个万能芯片探针ID注释平台R包, 并且帮助大家搞定了第一种bioconductor包的方法,大家无需下载几十个bioconductor包,然后自己一个个提取基因信息,我全部为大家做好啦,也就是 idmap1 这个目前host在GitHub的R包:

  • https://github.com/jmzeng1314/idmap1

现在我们来说说第二个万能芯片探针ID注释平台包。一定要跟我们的 idmap1 区分开来哦,那个idmap1仅仅是把bioconductor里面有的37个芯片平台整合了一下,而我们的这个idmap2包不得了啦,有122个GPL之多,它们的6G多的soft信息被我下载整理成为了不到40M的R包。

首先理解芯片平台的soft信息

NCBI官网可以下载所有的gpl平台的soft信息,会比较大(100多个平台全部下载需要6G以上的空间)

  • http://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GPL6947

不同的gpl平台的soft信息不一样,一般来说,大家关心的其实就是探针的ID,以及基因的symbol列。


有一些平台还会提供探针序列:


我已经帮助大家下载整理好了全部的GPL平台的芯片探针列,以及其对应的基因列,整理打包成为一个R包方便大家使用,直接获取探针对应的基因symbol即可。

安装我的idmap2包

一定要跟我们的 idmap1 区分开来哦,那个idmap1是把bioconductor里面有的37个芯片平台整合了一下,而我们的这个idmap2包不得了啦,有122个GPL之多,它们的6G多的soft信息被我下载整理成为了不到40M的R包。

library(devtools)
install_github("jmzeng1314/idmap2")
library(idmap2)

因为有40M,所以下载安装会比较慢哦,喝杯咖啡吧!也欢迎赞助我一杯咖啡,我们一起喝!

关于GitHub下载困难

在中国大陆,大部分人访问GitHub还是很困难的,如果你成功下载并且安装,结果如下:


如果你确实无法下载, 就需要下载我的微云版本:https://share.weiyun.com/5ZA9n6M(注意:微云链接很有可能被封杀,所以大家如果下载失败就需要看公众号留言哈,获取最新链接)

然后参考我以前的教程:安装GitHub的R包困难解决方案

也可以迅雷下载GitHub的我的这个项目的文件夹:

https://codeload.github.com/jmzeng1314/idmap2/legacy.tar.gz/master

使用idmap2

同样的获取同样的GPL570    hgu133plus2 [HG-U133_Plus_2] Affymetrix Human Genome U133 Plus 2.0 Array注释信息,一行代码就搞定!

library(idmap1)
ids=getIDs('gpl570')
head(ids)
library(idmap2)
ids=get_soft_IDs('gpl570')
head(ids)

可以看到两个包的两个函数非常类似,只需要你提供gpl即可,是不是很方便啦!

当然了,第二个包有一百多个平台,而第一个只有37个,注意哦,比如

idmap1::getIDs('GPL13912'# 失败
idmap2::get_soft_IDs('GPL13912'# 成功

这个 GPL13912 平台,就存在于第二个包,但是不在第一个哈。

你想知道我们支持哪些平台吗,当然是可以看的:

data(gpl_list)
gpl_list[,1:4]

希望你的平台,在我们的列表,能帮助你进行芯片注释。

一个芯片数据挖掘实战

结合我们发布的 GEO数据库中国区镜像横空出世,随时随地方便下载GEO数据集,并且进行ID转换!

library(GEOmirror)
library(idmap1) 
library(idmap2) 
gset=geoChina('GSE31731'
gset
a=exprs(gset[[1]])
a[1:4,1:4]
gpl=gset[[1]]@annotation
b=idmap2::get_soft_IDs(gpl)
head(b)

可以看到, 有一些表达矩阵,虽然是芯片做的,但是作者其实并不太懂,上传的时候把探针都漏掉了。不过,还是可以按照行对应过来。

 

一个R考核题-多个芯片平台的探针序列输出到fasta文件

前面我们不是提到过,这些芯片有的其实是提供fasta序列了的。那么我们就出一个题目吧:有一个数据框,第一列是探针ID,第二列是探针的碱基序列,第三列是芯片平台,模拟数据代码如下;

options(stringsAsFactors = F)
set.seed(123)
ns=sample(1:1000,10)
seqs = do.call(rbind,lapply(ns, function(n){
  # n=ns[1]
  id=paste0('id',1:n)
  seq=rep('aaacccgggtttcccggaaa',n)
  gpl=paste0('gpl',n)
  df=data.frame(id,seq,gpl)
  return(df)
}))
unique(seqs$gpl)
# 这个 seqs 数据框里面,有10个gpl平台,需要拆分成为10个单独的文件
# 把序列fasta格式化
x=as.vector(seqs[1, ])
paste0('>',x[1],'\n',x[2]) 
# 这个就是fasta序列。

复制粘贴这个代码到你的R里面,然后慢慢思考吧。

更多表达芯片的公共数据库挖掘系列更多教程,见推文 ;

友情宣传
最后的最后

今天的这个R包其实有一个技术含量很高的事情,就是从上百个GPL的soft文件里面,找到真正的芯片探针列,而这个环节的工作,都是我们生信技能树王牌R语言讲师小洁出手,如果大家感兴趣后面的故事,欢迎参加上面两个线下培训课程。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
第一个万能芯片探针ID注释平台R包
一个R包,得到差异分析结果列表,差异基因,三张图(热图,PCA,火山图)
GPL13607平台的LINC01666的探针到底应该是哪个
skr!GEO芯片数据的探针ID转换
十行代码完成circRNA多种ID相互转换
芯片数据和RNA
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服