解读GEO数据存放规律及下载,一文就够-转自生信技能树

解读GEO数据存放规律及下载,一文就够

原创 jimmy 生信技能树-----解读GEO数据存放规律及下载,一文就够 -

做生物信息学分析的朋友应该是对GEO数据库耳熟能详了,总会用到公共数据库的,而GEO数据库则是首选,起先只是为表达芯片数据准备的,后期纳入了各种NGS组学数据,文章里面会给出数据地址,GSE ID号,由此我们就可以进入GEO数据库,进而了解它!

image

https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE84498

GEO数据库基本介绍

其实只需要理解下面的4个概念。

  • GEO Platform (GPL)

  • GEO Sample (GSM)

  • GEO Series (GSE)

  • GEO Dataset (GDS)

理解起来也很容易。一篇文章可以有一个或者多个GSE数据集,一个GSE里面可以有一个或者多个GSM样本。多个研究的GSM样本可以根据研究目的整合为一个GDS,不过GDS本身用的很少。而每个数据集都有着自己对应的芯片平台,就是GPL。

使用GEOquery包从GEO数据库下载数据

官网详细用法:https://warwick.ac.uk/fac/sci/moac/people/students/peter_cock/r/geo/ 而且我写了这个软件包的中文用法:http://www.bio-info-trainee.com/bioconductor_China/software/GEOquery.html

而且需要理解所有bioconductor支持的芯片平台对应关系:通过bioconductor包来获取所有的芯片探针与gene的对应关系

首先是下载函数的使用

包的本质就是getGEO函数,用法列举如下:

1、根据GDS号来下载数据,下载soft文件

gds858 <- getGEO(‘GDS858’, destdir=“.”) 

2、根据GPL号下载的是芯片设计的信息!

gpl96 <- getGEO(‘GPL96’, destdir=“.”) ```

3、根据GSE号下载数据,下载_series_matrix.txt.gz

gse1009 <- getGEO(‘GSE1009’, destdir=“.”)

上面的代码下载的文件都会保存在本地,destdir参数指定下载地址。比较重要的三个参数是:GSEMatrix=TRUE,AnnotGPL=FALSE,getGPL=TRUE

然后是了解下载函数返回的对象

1、查看下载GDS后返回的对象

Table(gds858)可以得到表达矩阵!
Meta(gds858)可以得到描述信息!

具体代码如下:

options(warn=-1)suppressMessages(library(GEOquery))gds858 <- getGEO('GDS858', destdir=".")names(Meta(gds858))Table(gds858)[1:5,1:5]

然后还可以用 GDS2eSet函数把它转变为 expression set 对象, expression set这个对象非常之重要,后续会详细讲解:

 eset <- GDS2eSet(gds858, do.log2=TRUE)

2、GSE

直接根据GSE号返回的对象:gse1009,就是expression set 对象
我们的处理函数有:geneNames/sampleNames/pData/exprs (这个是重点,对expression set 对象的操作函数)

3、GPL

根据GPL号下载返回的对象跟GDS一样,也是用Table/Meta处理!

options(warn=-1)suppressMessages(library(GEOquery))gpl96 <- getGEO('GPL96', destdir=".")names(Meta(gpl96))Table(gpl96)[1:10,1:4]

一般来说我们下载GPL是为了得到芯片的探针对应基因ID的关系列表,下面这个代码就是芯片ID的基因注释信息

#Table(gpl96)[1:10,c("ID","GB_LIST","Gene.Title","Gene.Symbol","Entrez.Gene")]Table(gpl96)[1:10,c("ID","Gene Title","Gene Symbol","ENTREZ_GENE_ID")]

包装成函数

downGSE <- function(studyID = "GSE1009", destdir = ".") {    library(GEOquery)    eSet <- getGEO(studyID, destdir = destdir, getGPL = F)    exprSet = exprs(eSet[[1]])    pdata = pData(eSet[[1]])    write.csv(exprSet, paste0(studyID, "_exprSet.csv"))    write.csv(pdata, paste0(studyID, "_metadata.csv"))    return(eSet)}

参考链接:http://www.bio-info-trainee.com/1085.html

番外

也可以用GEOmetadb包来获取对应GEO数据的实验信息(得到metadata数据),可以批量得到多个GSE数据集的信息,如下:

GSE1009GSE10785GSE1133GSE11975GSE121GSE12409

执行下面代码即可:

library(GEOmetadb)if(!file.exists('GEOmetadb.sqlite')) getSQLiteFile()## 取决于网速哦file.info('/path/GEOmetadb.sqlite')con <- dbConnect(SQLite(),'/path/GEOmetadb.sqlite'))#dbListTables(con2)#dbListFields(con2,'gse')GeoList = read.table("diabetes.GEO.list")query = paste("select + from gsm where series_id in            (  ' ", gsub(", ", " ', ' ", paste(Geolist[,1], collapse=",")," ')", seq=" ")querytmp = dbGetQuery(con2, query)write.csv(tmp, "diabetes.GEO.meta.csv")

作业

大家可以使用上面介绍的R包及GEO数据库知识,把文中列出的几个GSE数据集探索一下。

或者下面这些:

GSE11072  2009-gastric cancer SBC Human 16K cDNA MicroarrayGSE42872 2015-melanoma-vemurafenib HuGene-1_0-st GSE24673 2015-hub-gene-mcode-retinoblastoma  HuGene-1_0-st GSE22863  2011-NSCLC HuGene-1_0-st GSE622221, GSE4180414, GSE5140122 A total of 117 samples (54 cases and 63 controls) Affymetrix Human Genome U133 Plus 2.0 Array  2015-HCCGSE21815  2016-CRC Agilent-014850 Whole Human Genome Microarray 4x44K
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,185评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,652评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,524评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,339评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,387评论 6 391
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,287评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,130评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,985评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,420评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,617评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,779评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,477评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,088评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,716评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,857评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,876评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,700评论 2 354

推荐阅读更多精彩内容