第6章 双色数据预处理

6.1 背景校正

默认的背景校正是从每个点的前景强度减去背景强度。如果RGList对象没有经过背景校正,那么normalizeWithinArrays将在默认情况下执行此操作。因此

> MA <- normalizeWithinArrays(RG)

相当于

> RGb <- backgroundCorrect(RG, method="subtract")
> MA <- normalizeWithinArrays(RGb)

然而,还有许多其他背景校正选项是在某些情况下更可取的,详情参见Ritchie等[32]。

为了评估差异表达,我们经常发现

> RG <- backgroundCorrect(RG, method="normexp", offset=50)

当使用大多数图像分析程序的输出时,上述设置优于简单的背景减法。这种方法可以自适应地根据背景强度调整前景,得到严格的正调整强度,即避免了负或零的校正强度。偏移的使用将极低强度点的对数比变化阻尼为0。

为了说明不同背景校正方法之间的一些差异,我们考虑一个自交的cDNA阵列,即相同的RNA源在双通道杂交。对于这个阵列,没有实际的差异表达。阵列打印在一个人类10.5k文库,并在双通道与Jurkatt RNA杂交(数据由墨尔本彼得麦卡勒姆癌症中心Andrew Holloway和Dileepa Diyagama提供)。阵列包括一系列在图形上突出显示的控制点。特别感兴趣的是尖峰比例控制应显示3和10倍的上下调变化。第一个图形显示使用GenePix软件获取的数据,并通过减去中位数进行背景校正,这是GenePix数据的默认值。图形显示了在低强度下M值扇形典型的楔形。观察到的M值的范围占据了尖峰比例控制的主导地位。由于校正的背景强度为0或负,所以在图上有1148个点没有显示。


第二个图显示了使用method=“normexp”offset=50设置校正的相同阵列背景。现在尖峰比率控制明显超出M值的取值范围。阵列上所有的点都显示在图形上,因为现在没有缺失的M值。

第三幅图显示了使用SPOT软件量化和减去“变形”背景处理的相同阵列。该背景估计器产生与normexp相似的效果。


使用“变形”背景或使用method=“normexp”和偏移的效果是稳定作为强度函数的M值的变异性。limma包使用的用于评估差异表达的贝叶斯经验方法将在同质化基因之间的差异性产生最大效益。这可以通过尽可能减少强度变化的依赖性来最好地实现[32]。

6.2 阵列内标准化

Limma实现了一系列针对点状微阵列的标准化方法。Smyth和Speed[40]描述了一些最常用的方法。这些方法可以大致分类为对每个阵列的M值分别进行标准化的方法(阵列内标准化)以及将强度或对数比标准化以在阵列之间可比较的方法(阵列间标准化)。本节主要讨论阵列内标准化,所有这些通常是传统双色数据对数比分析的需要。阵列间标准化将在6.3节进一步讨论。

打印头勒斯标准化[54]是默认的标准化方法,可以通过下面的命令执行

> MA <- normalizeWithinArrays(RG)

有一些不合适的情况是值得注意的。例如,Agilent阵列没有打印头组,所以应该使用全局勒斯标准化:

> MA <- normalizeWithinArrays(RG, method="loess")

打印头勒斯对于每个打印头组小于150个点的小阵列也是不可靠的。甚至更大的阵列可能具有特定的打印头组,如果对于一个或多个打印头,非缺失M值的点数量较小,那么对于打印头勒斯标准化也还是太小。在这些情况下,应该使用全局“loess”标准化,否则使用鲁棒样条线标准化

> MA <- normalizeWithinArrays(RG, method="robustspline")

这是打印头与全局勒斯标准化之间的经验贝叶斯折衷,利用5参数回归样条用于代替勒斯曲线。

勒斯标准化假定阵列上的大部分探针没有差异表达。它不假定相同数量的上调和下调基因或者差异表达关于零对称,前提是勒斯拟合是在鲁棒的趋势中实现的,但大量的探头不改变表达水平是必要的。Oshlack等[24]表明,勒斯标准化可以耐受高达约30%的不对称差异表达仍然表现良好。对于阵列中唯一基因总数量小于150的精简阵列这个假设是可疑的,特别是如果这些基因被选择用于在RNA源之一中特异性表达。在这种情况下,最好的策略是在阵列上包含一系列无差异表达的控制点,如全文库池点滴定系列,然后使用下面讨论的加权方法[24]。全文库池意味着准备一池探针库,并以不同浓度打印池中的点[53]。文库应该足够大,可以确保所有探针的平均值没有差异表达。文库越大越好。只有500个克隆的文库池获得了好的结果。如果没有这样的控制点,精简阵列的标准化需要咨询专家意见。

默认情况下,在标准化中将使用RG中发现的任何点质量权重。意即例如零重量的点(标记出来)不会影响其他点的标准化。然而,使用点质量权重不会导致任何点从数据对象中移除。即使是零重量的点也将被标准化,并将出现在输出对象中,这样的点对其他点根本没有影响。如果你不希望在标准化中使用质量权重,它们的使用可以被重写

> MA <- normalizeWithinArrays(RG, weights=NULL)

输出对象MA仍然包含RG中找到的任何点质量权重,但是这些权重不会用于标准化步骤。

利用控制点来辅助标准化过程通常是有用的。例如,如果阵列包含预先已知是未差异表达的一系列点,这些点在标准化过程中可以给予更多的权重。预先已知差异表达的点可以下调权重。例如假设controlStatus()已被用于鉴定差异表达的标定点和不应该差异表达的一系列文库池滴定点。那么可能会使用

> w <- modifyWeights(RG$weights, RG$genes$Status, c("spikein","titration"), c(0,2))
> MA <- normalizeWithinArrays(RG, weights=w)

给予标定点0权重,滴定点的权重增加一倍。这个过程是通过“control”标准化方法自动化进行的,例如,

> csi <- RG$genes$Status=="titration"
> MA <- normalizeWithinArrays(RG, method="control", controlspots=csi)

通常,csi是一个指定非差异表达控制点的索引向量[24]。

滴定点加权的想法与[53]提出的复合标准化方法相同,但灵活性更高,更普遍适用。上述代码假定RG已经包含了质量权重。如果没有,可以使用

> w <- modifyWeights(array(1,dim(RG)), RG$genes$Status, c("spikein","titration"), c(0,2))
> MA <- normalizeWithinArrays(RG, weights=w)

替代。

Limma包含一些更复杂的标准化方法。本指南第6.3节特别讨论了一些阵列间标准化方法。

6.3 阵列间标准化

本节探讨了可用于双色阵列间标准化的一些方法。其中大部分方法与阵列内标准化的区别是关注红色和绿色强度值,而不仅仅是对比率。因此,这些方法可能被称为单个通道或单独通道标准化方法。单个通道标准化通常是单独通道分析方法的先决条件,例如由lmscFit()函数提供的方法。[56]给出了有关问题的进一步讨论。本节介绍如何重现[56]中给出的一些结果。第16.2节的Apoa1数据集将用于说明这些方法。我们假设Apoa1数据已经被加载,背景校正如下:

> load("Apoa1.RData")

在阵列间标准化之前要考虑的一个重要问题是如何进行背景校正。为了阵列间标准化的有效,重要的是避免可能由负或零校正强度产生的对数比缺失。backgroundCorrect()函数给出了一些有用的选项。为了本节的目的,数据使用“minimum”方法进行了校正:

> RG.b <- backgroundCorrect(RG,method="minimum")

plotDensities显示了在所有阵列上单个绿色和红色通道的平滑经验强度。没有任何标准化,两个通道和阵列之间存在相当大的差异:

> plotDensities(RG.b)

在每个阵列的M值经过勒斯标准化之后,红色和绿色分布对于每个阵列基本相同,尽管阵列之间仍然有相当大的差异:

> MA.p <-normalizeWithinArrays(RG.b)
> plotDensities(MA.p)

勒斯标准化不影响A值。将分位数标准化应用于A值,使分布在阵列和通道上基本相同:

> MA.pAq <- normalizeBetweenArrays(MA.p, method="Aquantile")
> plotDensities(MA.pAq)

将分位数标准化直接应用于单个红色和绿色强度会产生相似的结果,但有点嘈杂:

> MA.q <- normalizeBetweenArrays(RG.b, method="quantile")
> plotDensities(MA.q, col="black")
Warning message:
number of groups=2 not equal to number of col in: plotDensities(MA.q, col = "black")

这里还没有探讨其他的阵列间标准化方法。例如normalizeBetweenArraysmethod="vsn"给出了vsn包方差稳定标准化方法的接口。

6.4 使用marray包中的对象

marray包是R中众所周知的用于预处理双色微阵列数据的软件包。Marray提供读取,标准化和数据图形化的函数。Marraylimma都是早期分步骤的sma包的后续产物(http://www.stat.berkeley.edu/users/terry/zarray/Software/smacode.html)但是,limma建立在原始数据结构之上,而marray已经转换为完全正式的数据类表示。由于这个原因,limma向后兼容smamarray则不是。

marray中的标准化函数侧重于灵活的M值定位和尺度标准化方法,而不是limma中阵列内和阵列间的方法。Marray提供了一些limma中没有的标准化方法,包括二维勒斯标准化和打印尺度标准化。虽然两个软件包中的标准化函数之间存在一些重叠,都提供打印头勒斯标准化,这两种方法在很大程度上是互补的。Marray还提供高度开发的函数,用于图形化双色微阵列数据。

marray中的读取函数,生成marrayRaw类对象,而在标准化时生成marrayNorm类对象。这些类的对象可以使用convert包来转换和使用limma数据对象。使用as函数,marrayRaw对象可转换为RGList对象,marrayNorm对象可转换为MAList对象。例如,如果Data是一个marrayNorm对象,那么

> library(convert)
> MA <- as(Data, "MAList")

转换成MAList对象。

marrayNorm对象也可以直接在limma中直接使用而不需要转换,而通常是推荐这样做的。如果Data是一个marrayNorm对象,那么

> fit <- lmFit(Data, design)

将线性模型适用于Data,就像对MAList对象一样。然而,一个区别是marray读取函数倾向于以质量点权重填充marrayNorm对象的maW槽标志,而不是如limma所预期的定量非负权重。如果是这样的话,可能需要

> fit <- lmFit(Data, design, weights=NULL)

来关闭使用点质量权重。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容

  • 4.1 本章范围 本章涵盖除Affymetrix以外的大多数微阵列类型。从Affymetrix GeneChips...
    yangliunk1987阅读 7,402评论 0 55
  • 3.1 R语言简介 R是一种统计计算程序。它是一种命令驱动语言,也就是说,你必须在其中键入命令,而不是使用鼠标指向...
    yangliunk1987阅读 3,062评论 0 50
  • 在任何微阵列数据的分析中,一个重要步骤是检查该阵列数据的质量。对于双色阵列数据,一个重要步骤是查看每个阵列未标准化...
    yangliunk1987阅读 1,325评论 0 51
  • 8.1 背景介绍 limma软件包使用称为线性模型的方法来分析设计的微阵列实验。这种方法允许分析非常一般的实验,就...
    yangliunk1987阅读 2,318评论 0 55
  • limma:微阵列和RNA-Seq数据的线性模型用户手册 Gordon K. Smyth, Matthew Rit...
    yangliunk1987阅读 2,743评论 0 51