GEO中Illumina beadchip原始数据处理
2017.6.5 JOE
note: GEO中实验室对illumina数据一般都用的serise matrix中的数据直接做后面的各种分析,但是matrix中的数据是上传数据的人已经经过了各种数据预处理还有标准化之类的,有时候这种预处理的方式不是自己想要的。
1,Illumina beadchip数据层次
GEO中的illumina beadchip给的原始数据一般来说是表中的第一个summary-level(c)这样的数据,就是没有经过non bacground corrected, non normalized。然后给的是一个叫做sample probe profile 的数据(GEO中可能不叫这个名字)
2,关于这个原始文件sample probe profile文件 其中的内容一般如下
就是第一个,表中一般有一列probeid, 然后是summarized expression level(表头为AVG_Signal), 还有一列a detection p-value(表头为Dectection Pval) ,含义在上图。
对数据进行背景矫正以及标准化如分位数标准化的时候,一般还会有第二个文件control probe profile,一般这个文件GEO里边不会提供,因此文档中说也不是必须的。这个时候就需要用到这个dectection pval这一列来进行背景矫正以及标准化处理
3,知道了这些之后,现在选择一个例子来做一下预处理,以GSE16997为例子
3.1 数据下载
https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE16997
3.2 原始数据说明
4,数据预处理,这里采用一般用的limma包,R语言
rm(list=ls())
setwd("D:\\Download\\example_limma\\GSE16997")
library(limma)#没有limma包的需要自己先安装
# step1: 背景矫正(标准化可选)
x <- read.ilmn(files="GSE16997_raw.txt",expr="Sample",probeid="ID_REF",other.columns="Detection Pval")
y <- neqc(x,detection.p="Detection Pval") #背景矫正并且分位数标准化
y <- nec(x,detection.p="Detection Pval")#只有背景校正
expdata <- y$E
# step2: 探针过滤 (需要针对各种情况自己写代码)不知道这个步骤是不是需要啊,还没搞明白一脸懵简直现在
# GSE16997数据的处理流程
# GSE71181数据的处理流程
# step3: 后面就可以进行各种分析了比如找差异表达基因
后记
上面的这个例子在我下面贴的说明文档中会在另外的地方下载到三个标准的文件,即sample probe profile,control probe profile以及targets文件,文中也有相应的代码对这个标准文件进行处理。不同的地方在于文档中使用control probe profile进行数据背景矫正以及标准化处理的。在没有这个文件的时候是可以用dectection pval这一列来进行的
可以查看R中neqc函数的说明文档
neqc与nec的区别
y <- neqc(x,detection.p="Detection Pval") # EList
y <- nec(x,detection.p="Detection Pval") # EListRaw
# EList holds expression values on the log scale, they are log2 values, usually after background correction and normalization.
# EListRaw holds expression values on the raw scale, the expression values are unlogged.