用R获取芯片探针与基因的对应关系三部曲

这个我非常喜欢,目录如下:

用R获取芯片探针与基因的对应关系三部曲-bioconductor

用R获取芯片探针与基因的对应关系三部曲-NCBI下载对应关系

gene的各种ID转换终结者-bioconductor系列包

现有的基因芯片种类不要太多了!

但是重要而且常用的芯片并不多!

一般分析芯片数据都需要把探针的ID切换成基因的ID,我一般喜欢用基因的entrez ID。

一般有三种方法可以得到芯片探针与gene的对应关系。

金标准当然是去基因芯片的厂商的官网直接去下载啦!!!

一种是直接用bioconductor的包

一种是从NCBI里面下载文件来解析好!

首先,我们说官网,肯定可以找到,不然这种芯片出来就没有意义了!

然后,我们看看NCBI下载的,会比较大

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

这两种方法都比较麻烦,需要一个个的来!

所以我接下来要讲的是用R的bioconductor包来批量得到芯片探针与gene的对应关系!

一般重要的芯片在R的bioconductor里面都是有包的,用一个R包可以批量获取有注释信息的芯片平台,我选取了常见的物种,如下:

gpl           organism                  bioc_package

1     GPL32       Mus musculus                        mgu74a

2     GPL33       Mus musculus                        mgu74b

3     GPL34       Mus musculus                        mgu74c

6     GPL74       Homo sapiens                        hcg110

7     GPL75       Mus musculus                     mu11ksuba

8     GPL76       Mus musculus                     mu11ksubb

9     GPL77       Mus musculus                     mu19ksuba

10    GPL78       Mus musculus                     mu19ksubb

11    GPL79       Mus musculus                     mu19ksubc

12    GPL80       Homo sapiens                        hu6800

13    GPL81       Mus musculus                      mgu74av2

14    GPL82       Mus musculus                      mgu74bv2

15    GPL83       Mus musculus                      mgu74cv2

16    GPL85  Rattus norvegicus                        rgu34a

17    GPL86  Rattus norvegicus                        rgu34b

18    GPL87  Rattus norvegicus                        rgu34c

19    GPL88  Rattus norvegicus                         rnu34

20    GPL89  Rattus norvegicus                         rtu34

22    GPL91       Homo sapiens                      hgu95av2

23    GPL92       Homo sapiens                        hgu95b

24    GPL93       Homo sapiens                        hgu95c

25    GPL94       Homo sapiens                        hgu95d

26    GPL95       Homo sapiens                        hgu95e

27    GPL96       Homo sapiens                       hgu133a

28    GPL97       Homo sapiens                       hgu133b

29    GPL98       Homo sapiens                     hu35ksuba

30    GPL99       Homo sapiens                     hu35ksubb

31   GPL100       Homo sapiens                     hu35ksubc

32   GPL101       Homo sapiens                     hu35ksubd

36   GPL201       Homo sapiens                       hgfocus

37   GPL339       Mus musculus                       moe430a

38   GPL340       Mus musculus                     mouse4302

39   GPL341  Rattus norvegicus                       rae230a

40   GPL342  Rattus norvegicus                       rae230b

41   GPL570       Homo sapiens                   hgu133plus2

42   GPL571       Homo sapiens                      hgu133a2

43   GPL886       Homo sapiens                     hgug4111a

44   GPL887       Homo sapiens                     hgug4110b

45  GPL1261       Mus musculus                    mouse430a2

49  GPL1352       Homo sapiens                       u133x3p

50  GPL1355  Rattus norvegicus                       rat2302

51  GPL1708       Homo sapiens                     hgug4112a

54  GPL2891       Homo sapiens                       h20kcod

55  GPL2898  Rattus norvegicus                     adme16cod

60  GPL3921       Homo sapiens                     hthgu133a

63  GPL4191       Homo sapiens                       h10kcod

64  GPL5689       Homo sapiens                     hgug4100a

65  GPL6097       Homo sapiens               illuminaHumanv1

66  GPL6102       Homo sapiens               illuminaHumanv2

67  GPL6244       Homo sapiens   hugene10sttranscriptcluster

68  GPL6947       Homo sapiens               illuminaHumanv3

69  GPL8300       Homo sapiens                      hgu95av2

70  GPL8490       Homo sapiens   IlluminaHumanMethylation27k

71 GPL10558       Homo sapiens               illuminaHumanv4

72 GPL11532       Homo sapiens   hugene11sttranscriptcluster

73 GPL13497       Homo sapiens         HsAgilentDesign026652

74 GPL13534       Homo sapiens  IlluminaHumanMethylation450k

75 GPL13667       Homo sapiens                        hgu219

76 GPL15380       Homo sapiens      GGHumanMethCancerPanelv1

77 GPL15396       Homo sapiens                     hthgu133b

78 GPL17897       Homo sapiens                     hthgu133a

这些包首先需要都下载

gpl_info=read.csv(“GPL_info.csv”,stringsAsFactors = F)

### first download all of the annotation packages from bioconductor

for (i in 1:nrow(gpl_info)){

print(i)

platform=gpl_info[i,4]

platform=gsub('^ ',””,platform) ##主要是因为我处理包的字符串前面有空格

#platformDB=’hgu95av2.db’

platformDB=paste(platform,”.db”,sep=””)

if( platformDB  %in% rownames(installed.packages()) == FALSE) {

BiocInstaller::biocLite(platformDB)

#source(“http://bioconductor.org/biocLite.R“);

#biocLite(platformDB )

}

}

下载完了所有的包, 就可以进行批量导出芯片探针与gene的对应关系!

for (i in 1:nrow(gpl_info)){

print(i)

platform=gpl_info[i,4]

platform=gsub('^ ',””,platform)

#platformDB=’hgu95av2.db’

platformDB=paste(platform,”.db”,sep=””)

if( platformDB  %in% rownames(installed.packages()) != FALSE) {

library(platformDB,character.only = T)

#tmp=paste('head(mappedkeys(',platform,’ENTREZID))’,sep=”)

#eval(parse(text = tmp))

###重点在这里,把字符串当做命令运行

all_probe=eval(parse(text = paste('mappedkeys(',platform,’ENTREZID)’,sep=”)))

EGID <- as.numeric(lookUp(all_probe, platformDB, “ENTREZID”))

##自己把内容写出来即可

}

}

参考:http://blog.sina.com.cn/s/blog_62b37bfe0101jbuq.html

这是系列文章,请先看:

用R获取芯片探针与基因的对应关系三部曲-bioconductor

ncbi现有的GPL已经过万了,但是bioconductor的芯片注释包不到一千,虽然bioconductor可以解决我们大部分的需要,比如affymetrix的95,133系列,深圳1.0st系列,HTA2.0系列,但是如果碰到比较生僻的芯片,bioconductor也不会刻意为之制作一个bioconductor的包,这时候就需要自行下载NCBI的GPL信息了,也可以通过R来解决:

##本质上是下载一个文件,读进R里面,然后解析行列式,得到芯片探针与基因的对应关系,看下面的代码,你就能理解了。

## A-AGIL-28 – Agilent Whole Human Genome Microarray 4x44K 014850 G4112F (85 cols x 532 rows)
library(Biobase)
library(GEOquery)
#Download GPL file, put it in the current directory, and load it:
gpl <- getGEO('GPL6480′, destdir=”.”)
colnames(Table(gpl)) ## [1] 41108 17
head(Table(gpl)[,c(1,6,7)]) ## you need to check this , which column do you need
write.csv(Table(gpl)[,c(1,6,7)],”GPL6400.csv”)
#platformDB=’hgu133plus2.db’
#library(platformDB, character.only=TRUE)
probeset <- featureNames(GSE32575[[1]])
library(Biobase)
library(GEOquery)
#Download GPL file, put it in the current directory, and load it:
gpl <- getGEO('GPL6102′, destdir=”.”)
colnames(Table(gpl)) ## [1] 41108 17
head(Table(gpl)[,c(1,10,13)]) ## you need to check this , which column do you need
probe2symbol=Table(gpl)[,c(1,13)]
## GPL15207 [PrimeView] Affymetrix Human Gene Expression Array
probeset <- featureNames(GSE58979[[1]])
library(Biobase)
library(GEOquery)
#Download GPL file, put it in the current directory, and load it:
gpl <- getGEO('GPL15207′, destdir=”.”)
colnames(Table(gpl)) ## [1] 49395 24
head(Table(gpl)[,c(1,15,19)]) ## you need to check this , which column do you need
probe2symbol=Table(gpl)[,c(1,15)]

## GPL10558 Illumina HumanHT-12 V4.0 expression beadchip
library(Biobase)
library(GEOquery)
#Download GPL file, put it in the current directory, and load it:
gpl <- getGEO('GPL10558′, destdir=”.”)
colnames(Table(gpl)) ## [1] 41108 17
head(Table(gpl)[,c(1,10,13)]) ## you need to check this , which column do you need
probe2symbol=Table(gpl)[,c(1,13)]

经常会有人问这样的问题I have list of 10,000 Entrez IDs and i want to convert the multiple Entrez IDs into the respective gene names. Could someone suggest me the way to do this?等等类似的基因转换,能做的基因转换的方法非常多,以前不懂编程的时候,都是用各种网站,而最常用的就是ensembl的biomart了,它支持的ID非常多,高达几百种,好多ID我到现在都不知道是什么意思。

现在学会编程了,我比较喜欢的是R的一些包,是bioconductor系列,一般来说,其中有biomart,org.Hs.eg.db,annotate,等等。关于biomart我就不再讲了,我前面的博客至少有七八篇都提到了它。本次我们讲讲简单的, 我就以把gene entrez ID转换为gene symbol 为例子把。

当然,首先要安装这些包,并且加载。

if(“org.Hs.eg.db” %in% rownames(installed.packages()) == FALSE) {source(“http://bioconductor.org/biocLite.R”);biocLite(“org.Hs.eg.db”)}
suppressMessages(library(org.Hs.eg.db))  我比较喜欢这样加载包

library(annotate) #一般都是这样加载包

如果是用org.Hs.eg.db包,首先你只需要读取你的待转换ID文件,构造成一个向量,tmp,然后只需要symbols <- org.Hs.egSYMBOL[as.character(tmp)]就可以得到结果了,返回的symbols是一个对象,需要用toTable这个函数变成数据框。但是这样转换容易出一些问题,比如如果你的输入数据tmp,里面含有一些无法转换的gene entrez ID,就会报错。

而且它支持的ID转换很有限,具体看看它的说明书即可:https://www.bioconductor.org/packages/release/data/annotation/manuals/org.Hs.eg.db/man/org.Hs.eg.db.pdf

org.Hs.eg.db
org.Hs.eg_dbconn
org.Hs.egACCNUM
org.Hs.egALIAS2EG
org.Hs.egCHR
org.Hs.egCHRLENGTHS
org.Hs.egCHRLOC
org.Hs.egENSEMBL
org.Hs.egENSEMBLPROT
org.Hs.egENSEMBLTRANS
org.Hs.egENZYME
org.Hs.egGENENAME
org.Hs.egGO
org.Hs.egMAP
org.Hs.egMAPCOUNTS
org.Hs.egOMIM
org.Hs.egORGANISM
org.Hs.egPATH
org.Hs.egPMID
org.Hs.egREFSEQ
org.Hs.egSYMBOL
org.Hs.egUCSCKG
org.Hs.egUNIGENE
org.Hs.egUNIPROT

如果是用annotate包,首先你还是需要读取你的待转换ID文件,构造成一个向量,tmp,然后用getSYMBOL(as.character(tmp), data=’org.Hs.eg’)这样直接就返回的还是以向量,只是在原来向量的基础上面加上了names属性。说明书:http://www.bioconductor.org/packages/3.3/bioc/manuals/annotate/man/annotate.pdf

然后你可以把转换好的向量写出去,如下:

1 A1BG
2 A2M
3 A2MP1
9 NAT1
10 NAT2
12 SERPINA3
13 AADAC
14 AAMP
15 AANAT
16 AARS

PS:如果是芯片数据,需要把探针的ID转换成gene,那么一般还需要加载特定芯片的数据包才行:

platformDB <- paste(eset.mas5@annotation, “.db”, sep=””) #这里需要确定你用的是什么芯片
cat(“the annotation is “,platformDB,”\n”)
if(platformDB %in% rownames(installed.packages()) == FALSE) {source(“http://bioconductor.org/biocLite.R”);tmp=try(biocLite(platformDB))}
library(platformDB, character.only=TRUE)
probeset <- featureNames(eset.mas5)
rowMeans <- rowMeans(exprSet)

library(annotate) # lookUp函数是属于annotate这个包的
EGID <- as.numeric(lookUp(probeset, platformDB, “ENTREZID”))

(0)

相关推荐

  • 生信编程8.ID转换

    有一些五六年前的学生们都成长为了各个生物信息学相关公司的小领导,而且他们都有了自己的公众号,知乎号,也算是一番人物.最近他们跟我反馈面试找不到或者说很难直接考核筛选到认真干活的生信工程师,挺有意思的. ...

  • 宏基因组:一日一工具之-kneaddata -完成质控加去宿主

    一日一条命令-kneaddata 写在前面 kneaddata是一分结合质控和去除宿主的过程,集合了两个软件Trimmomatic和 Bowtie2,Trimmomatic作为质控软件应用的非常多,但 ...

  • 【脉铂医药】MedBio|4079-26-9|PD 146176技术资料

    1.6,11-Dihydrothiochromeno[4,3-b]indole物理参数:常用名PD146176英文名6,11-Dihydrothiochromeno[4,3-b]indoleCAS号4 ...

  • 芯片的探针ID找到基因名-基于R语言-一文就够

    使用bioconductor注释包 如果该芯片平台有对应的bioconductor注释包,只有约90个常用的芯片有! 比如: library(hgu133a.db) ids=toTable(hgu13 ...

  • m6A图文复现03-测序数据去除rRNA序列并且比对到参考基因组

    下面是MeRIP-seq 图表复现笔记 在上一期:m6A图文复现02-数据下载和质控 中我们得到了cleandata,接下来是要比对到参考基因上进行比对过程的分析.一般来说,在比对之前,我们可以选择先 ...

  • 【脉铂医药】MedBio|5968-70-7|β-acetyl-Boswellic Acid技术资料

    1.3-Acetyl-β-boswellic acid物理参数:常用名3 -乙酰基-β乳香酸英文名3-Acetyl-β-boswellic acidCAS号5968-70-7分子量498.737密度1 ...

  • 模式生物:小鼠 Mus musculus

    由于个体小.温顺.容易饲养,具有和人类相似的发育过程和组织解剖结构等特点,最早从 17 世纪小鼠就开始被用于解剖学和动物实验.经长期人工饲养选择培育,现已育成千余个独立的远交群和近交系,小鼠已成为解析 ...

  • 转录组上游分析错误(报错大赏)

    希望所有学员都可以站在生信技能树的舞台上发光发热! 下面是2020生信入门班学员的随机投稿 因为平时做单细胞比较多..突然想试试自己还会不会常规转录组的上游分析..记忆一下各个软件的使用流程也是不错的 ...

  • (16)芯片探针与基因的对应关系-生信菜鸟团博客2周年精选文章集

    这个我非常喜欢,目录如下: 用R获取芯片探针与基因的对应关系三部曲-bioconductor 用R获取芯片探针与基因的对应关系三部曲-NCBI下载对应关系 gene的各种ID转换终结者-biocond ...

  • 第一个万能芯片探针ID注释平台R包

    昨天发布了 GEO数据库中国区镜像横空出世,粉丝们都很happy,因为确实解决了他们的一个拦路虎,以后下载GEO数据再也不用去网吧了.然后开始接近粉丝们的第二个需求,就是探针的ID注释问题.这是一个系 ...

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

    整合全部表达芯片平台的soft文件并且提取基因symbol和探针对应关系 前面我们提到过表达芯片探针注释的3种方法,参见:第一个万能芯片探针ID注释平台R包, 并且帮助大家搞定了第一种biocondu ...

  • 第三个万能芯片探针ID注释平台R包

    下载全部表达芯片平台的探针的碱基序列自主注释到基因ID 前面我们提到过表达芯片探针注释的3种方法,参见:第一个万能芯片探针ID注释平台R包, 并且帮助大家搞定了第一种bioconductor包的方法, ...

  • 芯片探针序列的基因注释已经无需你自己亲自做了

    第一次是:TCGA的28篇教程-风险因子关联图-一个价值1000但是迟到的答案 第二次是:(重磅!价值一千元的R代码送给你)芯片探针序列的基因组注释 其中第二个教程是纯粹的R代码技巧,怕粉丝看不懂,我 ...

  • 芯片探针ID的基因注释以前很麻烦

    最近在答疑群里收到一个很经典的提问,就是: 请问各位老师,GPL570芯片中应该有部分基因是LncRNA,能否通过基因重注释的方式把有意义的LncRNA筛选出来呢?R语言能否实现呢? 而且学生特别的好 ...

  • GEO芯片探针注释

    GEO数据库中 https://www.ncbi.nlm.nih.gov/geo/ 存储着大量的来源于各种平台(Platforms)的数据: 基于Technology,又可分为以下几大类: 芯片主要以 ...

  • 技术贴 | R语言:绘制基因组基因箭头图

    本文由微科盟阿童木根据实践经验而整理,希望对大家有帮助. 原创微文,欢迎转发转载. 举例介绍如何用R语言gggenes函数包把基因预测得到的gff或gtf文件(含基因位置信息)中的基因类型.位置可视化 ...

  • 使用R包genefu来根据基因集进行表达谱分类

    学习使用genefu这个包,首先需要安装它!source("http://bioconductor.org/biocLite.R")options(BioC_mirror=&quo ...