前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >GEO数据挖掘代码1(从geo下载数据)

GEO数据挖掘代码1(从geo下载数据)

原创
作者头像
Labetaloliiixxx
发布2023-02-17 15:15:14
1.1K0
发布2023-02-17 15:15:14
举报

在GEO上搜索数据,下载其表达矩阵(如果以M为单位,说明文件可用;如果大小只有K,说明文件不可用)

是一种储存高通量芯片表达矩阵的数据类型, exprs()函数可以将其切换为矩阵。

image.png
image.png

判断表达矩阵是否正常?boxplot()

箱线图中较为平齐,没有大的波动

如果某一样本基因比别的样本小or大,则说明有问题

image.png
image.png

解决方法:

1.删掉异常样本

2.limma::normalizeBetweenArrays()

表达矩阵的负值?

1.去过log2,有负值很正常 继续用

2.数据做了标准化,有一半的负值,需要找原始数据进行处理

3.没有取过log但是有负值,数据有问题,要么弃用 要么找原始数据处理

#实战代码有很多注意事项, 请不要不听课直接跑代码。

#数据下载
rm(list = ls())
library(GEOquery)
gse_number = "GSE56649"
eSet <- getGEO(gse\_number, destdir = '.', getGPL = F) #下载并读取数据,以列表的形式存储

#数据检查
class(eSet) 
length(eSet)
eSet = eSet[[1]] 

exp <- exprs(eSet) #提取表达矩阵exp

dim(exp) #查看数据的行数及列数,一般表达矩阵都有成千几万行,如果行数<2000警惕!
exp[1:4,1:4]
#检查矩阵是否正常,如果是空的就会报错,空的和有负值的、有异常值的矩阵需要处理原始数据。
#如果表达矩阵为空,大多数是转录组数据,不能用这个流程(后面另讲)。
#自行判断是否需要log 如果已经去过LOG值,则表达量应该在0~20,如果没取LOG则表达矩阵数字会在几十、几百

exp = log2(exp+1)
boxplot(exp)
limma::normalizeBetweenArrays(exp)  #处理异常样本

#提取临床信息
pd <- pData(eSet)

p = identical(rownames(pd),colnames(exp));p
if(!p) exp = exp[,match(rownames(pd),colnames(exp))] #让exp列名与pd的行名顺序完全一致,否则会出错!!

#提取芯片平台编号
gpl_number <- eSet@annotation;gpl\_number

#存储数据
save(gse_number,pd,exp,gpl\_number,file = "step1output.Rdata")

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

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