1.1 简介
在这本书的课程中,为了展示Bioconductor软件的用法,我们会频繁的需要一个数据集。对于我们关注的多种方法,分析流程的开始几步几乎相同。通常,他们先得到一个子集,然后利用非特异的滤过步骤去除不含信息的探针集。在本章中,我们会简要介绍最开始的几个步骤,如何获取合适的子集来进行多种多样的分析。
1.2 ALL数据集
ALL数据由来自128例不同的急性淋巴性白血病个体的微阵列数据组成。其中95例是B型ALL,33例是T型ALL。因为他们是不同的组织类型也是不同的疾病,我们需要分开来考虑他们,主要关注B型ALL。已有两个不同的分析报告(Chiarettiet al., 2004, 2005),更多细节在报告里可见。在数据包里面,存有些协变量,描述更多的了病人一般信息,如年龄、性别,包括关于疾病类型和分期的完整临床特征。通过该数据包的帮助手册页面可以获得这些细节。该数据已经用rma算法进行了同一标准化,以ExpressionSet的形式进行储存。(详见第二章)
1.3 数据子集
我们首先需要加载ALL包,然后加入到我们的工作环境中。
source("https://bioconductor.org/biocLite.R")
biocLite("ALL")
library('Biobase')
library('ALL')
library('genefilter')
data('ALL')
我们感兴趣的子集是两种B型淋巴瘤的构成的对比组,一型发现含有BCR/ABL的突变,另一型未发现细胞基因型的异常,两组的样本数几乎相同。这些样本在变量mol.biol中被标记BCR/ABL或者NEG。BCR/ABL突变就是著名的费城染色体,是第一个发现与肿瘤发展相关的细胞染色体异常,并引导了目前我们对该疾病的理解。在含有BCR/ABL转移的肿瘤中,22号染色体的一小段与9号染色体的一个小片段进行了交换。结果导致一个融合蛋白的持续表达,该蛋白可以作为潜在的丝裂原,造成细胞不受控制地分裂。
但不是所有的白血病都携带费城染色体,有其它一些突变也可以导致血细胞的肿瘤转化,比如4号染色体/11号染色体的置换(ALL1/AF4),在一个练习中我们将会使用到这些肿瘤的子数据集。
首先我们通过搜索BT变量(该变量用来区分B系肿瘤和T系肿瘤)来选择B系肿瘤的样本,此处使用正则表达式选择字母B开头的记录即可。
bcell = grep("^B", as.character(ALL$BT))
下一步我们需要知道哪些样本的分子分型是BCR/ABL或者NEG。
types = c("NEG", "BCR/ABL")
moltyp = which(as.character(ALL$mol.biol) %in% types)
结合这两条选择标准,我们将得到含有BCR/ABL或者是NEG的肿瘤的对比子集。
ALL_bcrneg = ALL[, intersect(bcell, moltyp)]
我们还需要一步。有一些样本信息是保存在因子类型的变量中。这些变量的取值只能是一些离散的明确值。一个因子变量的所有可能值的集合叫做它的水平(你可以键入"? factor"来获取帮助)。我们已经缩减了样本集,我们只需要ALL已存的因子变量中的一部分即可,最简单的减少数据集中一个已存在因子变量的水平的方法,是对其再次调用构造函数factor。
ALL_bcrneg$mol.biol = factor(ALL_bcrneg$mol.biol)
ALL_bcrneg$BT = factor(ALL_bcrneg$BT)
1.4 非特异性过滤
在被微阵列扫描的细胞中,有一部分基因根本没有表达,或者未达到我们使用的微阵列能够检测的水平。另外一部分基因,数据集未显示足够的变化来进行可靠的差异基因的分析。最好的办法是,在进一步分析之前,先删除这些基因的探针集。这一步操作我们可以在差异的基础上进行。你应该阅读第6章或第7章来获取更多关于非特异过滤的知识。这里,我们展示如何用genefilter包里面的nsFilter函数来进行不同标准的过滤,所有的操作都通过函数的不同参数来进行控制。设定feature.exclude = "^AFFX" 将移除对照探针,这些探针的名字里含有特征性的前缀 AFFX。作为差异过滤步骤中的离散度的测量指标,我们使用四分位间距(IQR),并使用其中的0.5分位数作为截断值。这对于此处使用的生物和微阵列设计似乎是一个合理的值,但是在你自己的实验中你通常需要自行调整该值。在第6章中,我们将会展示如何产生一个更加符合某一数据的截断值。
varCut = 0.5
filt_bcrneg = nsFilter(ALL_bcrneg, require.entrez=TRUE,
require.GOBP=TRUE, remove.dupEntrez=TRUE,
var.func=IQR, var.cutoff=varCut,
feature.exclude="^AFFX")
filt_bcrneg$filter.log
$numDupsRemoved
[1] 2771
$numLowVar
[1] 4075
$numRemoved.ENTREZID
[1] 1165
$numNoGO.BP
[1] 521
$feature.exclude
[1] 19
1.5 BCR/ABL ALL1/AF4 数据子集
在数据集中也有一些其它的我们感兴趣的子集。下面的代码将会产生一个子集,该子集由来自BCR/ABL+的肿瘤样本(t9;22置换)和ALL1/AF4+的肿瘤样本(t4;11置换)组成。
types = c("ALL1/AF4", "BCR/ABL")
moltyp = which(ALL$mol.biol %in% types)
ALL_af4bcr = ALL[, intersect(bcell, moltyp)]
ALL_af4bcr$mol.biol = factor(ALL_af4bcr$mol.biol)
ALL_af4bcr$BT = factor(ALL_af4bcr$BT)
filt_af4bcr = nsFilter(ALL_af4bcr,require.entrez=TRUE,
require.GOBP=TRUE, remove.dupEntrez=TRUE,
var.func=IQR, var.cutoff=varCut)
ALLfilt_af4bcr = filt_af4bcr$eset
注意nsFilter's的默认值在这个例子中并不合适,因为样本组的大小非常的不同。第8章中对此有更深入的谈论。
(注:本书翻译自Florian Hahne, 2008. Bioconductor Case Studies)
网友评论