GEO数据挖掘代码1(从geo下载数据)
2023-03-07 09:44:16 时间
在GEO上搜索数据,下载其表达矩阵(如果以M为单位,说明文件可用;如果大小只有K,说明文件不可用)
是一种储存高通量芯片表达矩阵的数据类型, exprs()函数可以将其切换为矩阵。
判断表达矩阵是否正常?boxplot()
箱线图中较为平齐,没有大的波动
如果某一样本基因比别的样本小or大,则说明有问题
解决方法:
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")
相关文章
- 分组取数时会出错?这种常见的操作我一般不推荐!
- 《大数据技术从零开始》自学知识库(2022年整理)
- VMTool 通讯错误及振弦采集模块的注意事项
- 漫画大数据:HDFS 中 NameNode 的内存为什么会一直涨?
- 漫画大数据:技术更新的一小步,迈向秃头的一大步
- 漫画大数据:如何解决 NameNode 内存持续增长的问题(一)
- 漫画大数据:如何解决 NameNode 内存持续增长的问题(二)
- 漫画大数据:HDFS 存储小文件岂不是很浪费磁盘空间?
- 漫画大数据:如何解决 NameNode 内存持续增长的问题(三)
- 漫画大数据:你确定在读取 HDFS 块数据的时候一定要经过 DataNode 吗?
- navicat 数据库结构同步
- Python+Sklearn实现异常检测
- Web安全 | EmpireCMS漏洞常见漏洞分析及复现
- MySQL批量导入数据表空间膨胀的一问题场景
- Mac必备Valentina Studio Pro for Macv13.0永久激活版
- 实战:第十一篇:StringRedisTemplate获取redis信息
- Redis实战之session共享
- 大数据必知必会:Hadoop(1)单机环境安装
- 开心档-软件开发入门之MongoDB 高级索引
- 开心档-软件开发入门之MongoDB 聚合