
今天处理了一个基于芯片的转录组数据GSE28413,遇到点问题,这里记录下
拿到这个编号首先按照正常的处理流程走
rm(list = ls())
#打破下载时间的限制,改前60秒,改后10w秒
options(timeout = 100000)
#options(scipen = 20)#不要以科学计数法表示
#传统下载方式
library(GEOquery)
eSet = getGEO("GSE28413", destdir = '.', getGPL = F)
#网速太慢,下不下来怎么办
#1.从网页上下载/发链接让别人帮忙下,放在工作目录里
#2.试试geoChina,只能下载2019年前的表达芯片数据
#library(AnnoProbe)
#eSet = geoChina("GSE7305") #选择性代替第8行
#研究一下这个eSet
class(eSet)
length(eSet)
eSet = eSet[[1]]
class(eSet)
#(1)提取表达矩阵exp
exp <- exprs(eSet)
#⭐第一个要检查的地方👇,表达矩阵行列数,正常是几万行,列数=样本数,
#如果0行说明不是表达芯片或者是遇到特殊情况,不能用此流程分析
dim(exp)
#二个要检查的地方👇
range(exp)#看数据范围决定是否需要log,是否有负值,异常值,如有负值,结合箱线图进一步判断
[1] 5.000 13.449
#可能要修改的地方👇
#exp = log2(exp+1) #需要log才log,不需要log要注释掉这一句
#第三个要检查的地方👇
boxplot(exp,las = 2) #看是否有异常样本可见该矩阵的表达范围是5.000 13.449,证明已经log过,不需要再log的操作了,但是箱线图确实特别奇怪,即他的中位数和四分之一位数是重叠在一起的,然后我查看了这个数据的其他分位数,发现最小值,中位数,四分之一位数都是一样的。
> summary(as.vector(exp))
Min. 1st Qu. Median Mean 3rd Qu. Max.
5.000 5.000 5.000 5.776 5.987 13.449 
后来知道这是作者给出来的表达量矩阵里面的表达量是被zscore的,这种情况就需要下载这个项目的raw文件了,因为是affymetrix芯片,所以绝大部分是cel格式的文件 。

仿照技能树的帖子读取了文件https://mp.weixin.qq.com/s/2Lj_MQeNsd_szvNI2Ksoyw

library(oligo)
celFiles<-list.celfiles('GSE28413_RAW/',listGzipped=T,
full.name=TRUE)
celFiles
options(BioC_mirror="https://mirrors.westlake.edu.cn/bioconductor")
exon_data<-oligo::read.celfiles(celFiles)
dim(exprs(exon_data))
exprs(exon_data)[1:4,1:4]
###标准化(一步完成背景校正、分位数校正标准化和RMA(robustmultichipaverage)表达整合)
exon_data_rma<-oligo::rma(exon_data)
exp_probe<-Biobase::exprs(exon_data_rma)
exp_probe[1:4,1:4]
dat=exp_probe
dim(dat)#看一下dat这个矩阵的维度
dat[1:4,1:4]#查看dat这个矩阵的1至4行和1至4列,逗号前为行,逗号后为列
exp <- dat
range(exp)
boxplot(exp,las = 2)
summary(as.vector(exp))
这样处理后数据就正常了,之后再按照流程使用limma包进行差异分析就可以了。
> summary(as.vector(exp))
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.9982 2.6379 3.9583 4.5262 5.9866 13.4490 原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。