GEO数据库原始数据处理GSE149507_RAW.tar

下载四个为例:存放到工作路径中

library(GEOquery)
library(dplyr)
library(tidyverse)
library(affy)
data <- ReadAffy()#读取得到S4对象

第一步:质量控制(直接观察,平均值方法,数据拟合方法分别由image函数,simpleaffy包,affyPLM包实现)
1、直接观察:图像特别黑,说明型号的强度低,图像特别亮,说明信号强度可能过饱和。(在灰度图中不要出现大面积的黑色或白色即可)
# 查看第一张芯片的灰度图像
image(data[,1])
data[,1]

 2、simpleaffy包获取质量分析报告,但这个包好像是基于3.0.0以下版本的R软件,所以没有实现。
第一列为所有样本的名称
第二列为检出率和平均背景噪声
第三列蓝色为实现尺度尺子,取值(-3,3),圆形不能超过1.25,否则数据质量不好,三角形不能超过3,否则数据质量不好
bioB说明芯片检测质量没有达标

3、affyPLM包
根据计算结果画权重图,残差图和残差符号图。同样,不要出现大面积异类颜色即可。
library(affyPLM)
Pset <- fitPLM(data)
#### 根据计算结果,画权重图
image(Pset, type="weights", which=1, main="Weights")

####根据计算结果,画残差图
image(Pset,  type="resids", which=1, main="Residuals")

####根据计算结果,画残差符号图
image(Pset, type="sign.resids", which=1, main="Residuals.sign") 

4、查看总体质量:
一个样本所有探针组的相对对数表达(RLE)分布和相对标准差(NUSE)箱线图表示。
library(affyPLM)
library(RColorBrewer)
# 对数据集做回归计算
Psel<-fitPLM(data)
# 载入一组颜色
colors<-brewer.pal(4,"Set3")
# 绘制RLE箱线图
Mbox(Pset, ylim=c(-1,1),col=colors,main="RLE",las=3) 

##绘制NUSE箱线图
boxplot(Pset,ylim=c(0.95,1.05),col=colors,main="NUSE",las=3)    

5、查看RNA降解曲线
###获取降解数据
data.deg <- AffyRNAdeg(data)
# 载入一组颜色
colors <- brewer.pal(4, "Set3")
##这里的4代表是4种颜色  如果simple的数量超过4时,要更改数量。
# 绘制RNA降解图
plotAffyRNAdeg(data.deg, col=colors)
legend("topleft", rownames(pData(data)), col=colors, lwd=1, inset=0.05, cex=0.5)

 6、从聚类分析角度查看数据质量(PCA)
芯片数据标准化(基于RMA和gcRMA两种方法),crma来对数据进行预处理。
library(affycoretools)
###使用gcrma算法来预处理数据
CLLgcrma<-gcrma(data)
# 提取基因表达矩阵
eset<-exprs(CLLgcrma)
# 计算样品两两之间的Pearson相关系数
pearson_cor<-cor(eset)
# 得到Pearson距离的下三角矩阵
dist.lower<-as.dist(1-pearson_cor)
# 聚类分析
hc<-hclust(dist.lower,"ave")
plot(hc)

######## pca分析
x= paste("sclc.Tumer", 1:2, sep = "-")
y=paste("sclc.N", 1:2, sep = "-")
z=c(x,y)
##z是一个向量,将样本进行定义,用于下面的因子转化。
samplenames<-sub(pattern="\\.CEL.gz", replacement = "",colnames(eset))
groups<-samplenames
library(ggplot2)
install.packages("FactoMineR")
install.packages("factoextra")
##自定义一个函数
pca_plot = function(dddd,ggggg){
  library("FactoMineR")
  library("factoextra")
  df.pca <- PCA(t(dddd), graph = FALSE)
  fviz_pca_ind(df.pca,
               #axes = c(2,3),
               geom.ind = "point",
               col.ind = ggggg ,
               addEllipses = TRUE,
               legend.title = "Groups"
  )
}
##将结果可视化。画出pca图
pca_plot(eset,groups)

第二步:背景矫正(去除背景噪声)
Affy基因芯片基础知识:Affy基因芯片的探针长度为25个碱基,每个mRNA用11~20个探针去检测,这一组探针叫做probe sets。探针较短,为保证特异性,设计了两种探针,一类探针与基因完全匹配,PM probes,另一类为不匹配的探针,MM probes。PM和MM探针成对出现,,可以用函数查看每个探针的检测情况。
背景处理:去除芯片背景噪声,MAS和RMA为最常用两种方法。
##用pm和mm函数可查看每个探针的检测情况
mm.data.raw <- mm(data)
head(mm.data.raw, 2)
pm.data.raw <- pm(data)
head(pm.data.raw, 2)
###上面显示的列名称就是探针的名称。而基因名称用probeset名称表示:
head(geneNames(data)) 
##probeset不一定和实际基因一一对应,这些后面对探针进行基因名称映射时会看到。
##使用RMA方法消减芯片背景噪声。
data.rma <- bg.correct(data, method="rma")
##使用MAS方法消减芯片背景噪声。
data.mas <- bg.correct(data, method="mas")
###MAS方法应用后PM和MM的信号强度都被重新计算。
###RMA方法仅使用PM探针数据,背景调整后MM的信号值不变。


第三步:归一化处理
同一个RNA样本用相同类型的几个芯片进行杂交,获得的结果不可能完全相同,甚至差别很大,为使不同芯片获得的结果具有可比性,需进行归一化处理。
##1、线性缩放方法 常数(constant)
data.mas.ln <- normalize(data.mas, method = "constant")
##线性缩放方法以第一块芯片为参考,它的数值没有被处理,
##而其他芯片都被缩放了。对同一块芯片,不同探针的缩放倍数是一个常数(constant)
##2 非线性缩放方法
data.mas.nl <- normalize(data.mas, method = "invariantset")
## 3 分位数(quantile)方法
data.mas.qt <- normalize(data.mas, method = "quantiles")
 

第四步:汇总
使用合适的统计方法通过probe sets的杂交信号计算出基因的表达量
eset.rma.liwong <- computeExprSet(data.mas.qt, pmcorrect.method="pmonly", summary.method="liwong") 

以上只是演示原始数据的处理过程,注意理解每一步用到的统计学知识,可以使用自动化函数直接代替上述操作:

eset.mas <- expresso(data, bgcorrect.method="mas", normalize.method="constant",
                     pmcorrect.method="mas", summary.method="mas")

  • 8
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值