前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言 | GEO数据库的下载 以及表达矩阵和临床信息的提取

R语言 | GEO数据库的下载 以及表达矩阵和临床信息的提取

作者头像
LN生物笔记
发布2023-02-23 11:18:29
3.6K0
发布2023-02-23 11:18:29
举报

0.安装R包

如果是第一次使用,要先在RStudio里安装好这些包

install.packages("AnnoProbe")#用于下载GEO数据的包

BiocManager::install("GEOquery")#用于提取GEO数据中所含信息的包
BiocManager::install("limma")#用于差异分析的包
install.packages("tidyverse")

1.载入R包

然后载入我们需要用到的包

library(AnnoProbe)#用于下载GEO数据的包
library(GEOquery)#从GEO数据集中提取表达矩阵或临床信息的包
library(tidyverse)

2.利用AnnoProbe下载GEO数据库中的数据

GSE14520数据系为例:

gset=AnnoProbe::geoChina('GSE14520')

运行后,会得到一个叫做“gset”的对象,它是”list“数据类型

3.提取表达矩阵和临床信息

exprset <- data.frame(exprs(gset[[1]]))#exprs用于提取表达矩阵信息
expMatrix <- gset[[1]] pdata<-pData(exp)#pData用于提取临床信息

gset[[1]] 的意思是,从gset这个对象中提取第一列数据。也就是提取了下图中$GSE16956_series_matrix.txt.... 这一列的数据

[[ ]]这个语法有点类似于,都是用来提取串列的。只不过[[]]可以提取list,而只能提取dataframe

注意:

如果你的GSE只有一个GPL,那么从gset中就仅含有一列数据,也就是说gset[[1]]就能把这个GSE所有的数据提取出来。

但如果你的GSE只有两个GPL,那么从gset中就有两列数据,gset[[1]]只能提取该GSE中一个GPL,不注意这点就会遗漏掉另一个GPL的数据。所以,这种情况要使用两行代码分别提取两个GLP的数据。

expMatrix1 <- exprs(gset[[1]])#提取第一个平台的表达矩阵
expMatrix2 <- exprs(gset[[2]])#提取第二个平台的表达矩阵
expMatrix <- cbind(expMatrix1, expMatrix2)#两个表达矩阵合并为一个总矩阵
pdata1 <- pData(gset[[2]])#提取第一个平台的临床数据
pdata2 <- pData(gset[[1]])#提取第二个平台的临床数据

那么如何判断你下载的这个GSE是有几个GPL呢?很简单,如果包含了两个或者多个GPL,你可以在RStudio右上角的环境变量中的”gset“后面的括号里看到”2 elements“的字样

含有2个GPL的gset

如果只含有一个GPL,则不会显示括号,仅显示”Large ExpressionSet“的字样

含有2个GPL的gset

或者你也可以通过View(gset)语法来查看:

含有1个GPL的GSE

含有2个GPL的GSE

4.输出文件

最后将数据框输出为csv文件,这个时候如果直接用write.table()函数的话,会造成列名左移的情况,解决办法参见我之前的文章:(阅读全文)

https://blog.csdn.net/tianyuu1/article/details/128105158


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-11-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 LN生物笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档