|
本帖最后由 hfliu 于 2017-2-28 14:16 编辑
lumi包主要的功能就是对illumina公司出产的bead系列的表达谱芯片和甲基化芯片进行处理和标准化,具体的使用教程见lumi包的手册,主要的分析步骤包括:
*读入数据,数据为Illumina BeadStudio (GenomeStudio)的输出文件;
*质量控制;
*BeadArray-specific variance stabilization;
*标准化和基因注释
一般的分析流程均为读取数据,背景校正,转化,标准化,质量控制,这五个步骤在lumi包中分别对应着lumiR,lumiB,lumiT,lumiN,lumiQ这五个函数,同时lumi包还将后四个函数分装成了一个函数即lumiExpresso,这一个函数可以一步实现整个流程的处理。(这些函数仅针对表达谱芯片,如果是甲基化芯片则对应的函数为lumiMethyR,lumiMethyB,lumiMethyN),下面以表达谱芯片为例,利用lumi包对其进行处理。
Tip
除了可以对芯片数据进行预处理和标准化以外,lumi还可以将探针的ID转化为EntrezID,RefSeqID等,同时还可以从读入的BeadStudio (GenomeStudio)的输出文件中获得controldata,controlProbe,controlType等信息,还能将文件处理为GEO要求的文件格式。
首先下载BeadStudio (GenomeStudio)的输出文件,使用的例子为名为GSE40553_Original_IlluinaFile_FromBeadStudio_UKpatients的文件,下面用lumi包对其进行预处理和标准化,具体的R代码如下:
[Python] 纯文本查看 复制代码 library(lumi)
#specify the file name,BeadStudio/GenomeStudio output file
filename <- "GSE40553_Original_IlluinaFile_FromBeadStudio_UKpatients.txt"
#load the data
x.lumi <- lumiR(filename)
pData(phenoData(x.lumi))
#Background correction of Illumina Expression data
lumi.b <- lumiB(x.lumi,method = "bgAdjust")#method contain 'none','bgAdjust','forcePositive', 'bgAdjust.affy'.....
#Transfer the Illumina data to stabilize the variance
lumi.t <- lumiT(lumi.b,method = "log2")#method contain 'vst','log2','cubicRoot'...
#normalization
lumi.n <- lumiN(lumi.t,method = "quantile")#method contain 'quantile','rsn', 'ssn','loess','vsn','rankinvariant'...
#Quality control
lumi.q <- lumiQ(lumi.n)
#A summary of the QC
summary(lumi.q, 'QC')
#express value
expr <- exprs(lumi.q)
#画箱线图看表达矩阵数据分布情况
par(cex = 0.7)
n.sample=ncol(expr)
cols <- rainbow(n.sample*1.2)
boxplot(expr, col = cols,main="expression value1",las=2)
画出的如大致如下
用lumiExpresso函数直接对读入的初始数据进行处理,一个函数执行完B,T,N,Q四步
[Python] 纯文本查看 复制代码 lumi.NQ <- lumiExpresso(x.lumi)
expr1 <- exprs(lumi.NQ)
par(cex = 0.7)
n.sample=ncol(expr1)
cols <- rainbow(n.sample*1.2)
boxplot(expr1, col = cols,main="expression value2",las=2)
得到的图如下
##
可以清晰的看出分别用lumiB,T,N,Q四个函数处理的结果和lumiExpresso处理的结果有差异,这是因为在B,T,N三个函数中均可以选择处理的方法,而直接用lumiExpresso函数使用的是默认参数,所以使得两者结果有差异,当然,使用lumiExpresso函数时候也可以指定参数,例如,lumi.N <- lumiExpresso(example.lumi, variance.stabilize=FALSE, normalize.param = list(method=‘quantile’))##No variance stabilizing or log transform, use Quantile normalization
##更加具体的用法可以查阅lumi包的手册
|
|