包版本:MultiDataSet 1.4.0

内容

1介绍

MultiDataSet设计一个新类来管理不同的数据集,使样品的共同点。主要目的在开发MultiDataSet是轻松的集成多个生物数据集。

MultiDataSet位于Bioconductor的框架,它可以使用S4类来自eSet或从SummarizedExperiment。以下数据是添加到从每组中提取MultiDataSet:

应该考虑,表型数据存储为每组独立。这允许将变量具有相同名称但不同的值存储在不同(如技术变量)。另一个事实是,特性数据的形式存储AnnotatedDataFrameGenomicRanges。这种设计允许快速执行使用子集GenomicRanges同时保留存储集的可能性没有基因组坐标(如代谢或暴露数据)。

在本文档中,将呈现集和构造子集。高级特性,比如创建新功能添加集或开发集成功能使用MultiDataSet在其他文件覆盖。

在下面的代码中,图书馆需要在本教程中加载:

库(MultiDataSet)库(MEALData)图书馆(minfiData)图书馆(GenomicRanges)

1.1创建一个新的MultiDataSet

MultiDataSet应该创建对象之前添加任何对象使用构造函数:

多< - createMultiDataSet()多
# #对象的类MultiDataSet # #。# # assayData: 0元素。featureData: # #。rowRanges: # #。phenoData:

这个函数的名字复苏的名称包含在集MultiDataSet。现在,对象是空的没有名字:

名称(多)
# #空
长度(名字(多))
# # [1]0

2添加组

可以添加到集合MultiDataSet使用两类函数:一般和具体。通用函数添加任何eSetSummarizedExperiment而特定功能添加更多的特定对象(如。ExpressionSet)。

2.1通用函数

通用函数直接相互作用MultiDataSet和改变其内容。他们只检查传入的是一个集合eSet或者一个SummarizedExperiment。由于其灵活性,它们被认为是由开发人员创建特定的函数使用。bob电竞体育官网

MultiDataSet一般包含两个功能:add_esetadd_rse。他们同样工作但他们适应的特性eSetSummarizedExperiment。因此,他们的共同特性只会添加eSet的部分进行讨论。

2.1.1添加eSet

add_eset是一般的函数添加eSet-derived类。这个函数有三个重要的参数。对象MultiDataSet设置将被添加,eSet将被添加dataset.type是新设置的类型。下一行将添加一个使用说明ExpressionSetMEALData:

数据(eset)分野
# # ExpressionSet (storageMode: lockedEnvironment) # # assayData: 21916功能,61 # #样品元素名称:exprs # # protocolData:没有# # phenoData # # sampleNames: GM00016 GM00022……WG3466 (61) # # varLabels:性别发票# # varMetadata: labelDescription # # featureData # # featureNames: ILMN_1343291 ILMN_1651209……ILMN_2415949 (21916 # #) # # fvarLabels:开始结束的基因从而向# # fvarMetadata:列描述labelDescription # # experimentData:使用“experimentData(对象)# #注释:GPL6883
eset multi2 < - add_eset(多,数据集。type = "表达")
# #警告add_eset (eset多,数据集。type = "表达"):No id column ## found in pData. The id will be equal to the sampleNames
multi2
# #对象的类MultiDataSet # #。assayData: 1 # #的元素。表达式:21916功能,61 # #样品。featureData: # #。表达式:21916行,4关口(空空的,……,结束)# #。rowRanges: # #。表达式:是的# #。phenoData: # #。表达式:61样品,3关口(性别、…、发票)
# #对象的类MultiDataSet # #。# # assayData: 0元素。featureData: # #。rowRanges: # #。phenoData:

multi2的打印显示的名称添加了集,每集,特性和样本的数量,如果rowRanges。应该注意到它add_eset不修改MultiDataSet通过的对象论点。因此,多仍然是空的。这个属性是常见的所有功能集添加到使用MultiDataSet

默认情况下,输入的名称设置等于dataset.type。如果我们想要添加另一个相同类型的集合,我们可以使用参数dataset.name来区分它们。作为一个例子,我们将添加相同的ExpressionSet前面的例子,但与另一个名字:

multi2 < - add_eset (multi2分野,数据集。type = "表达",dataset.name =“新”)
# #警告add_eset (multi2分野,数据集。type = "表达",dataset.name # # =“新”):没有id列pData中找到。id = # # sampleNames
multi2
# #对象的类MultiDataSet # #。assayData: 2 # #的元素。表达式:21916功能,61 # #样品。表达+新:21916功能,61 # #样品。featureData: # #。表达式:21916行,4关口(空空的,……,结束)# #。表达+新:21916行,4关口(空空的,……,结束)# #。rowRanges: # #。表达式:是的# #。表达+新:是的# #。 phenoData: ## . expression: 61 samples, 3 cols (gender, ..., inv) ## . expression+new: 61 samples, 3 cols (gender, ..., inv)

如果dataset.name,由此产生的叫“dataset.type + dataset.name”。通过这种策略,我们可以有不同的相同类型的数据集,我们仍然可以检索这些数据集对应于相同类型的数据。

为了保证样本一致性数据集的区别,我们使用一个共同的标识符在所有样本数据集。样品标识符应该引入通过添加一列id在表型数据(phenoData)的对象。如果它并不存在,它是由默认使用给定的样品名称。

因为我们的ExpressionSet不包含这一列,一个警告。为了解决它,我们可以手动添加一个id我们的数据集:

eset2 < - eset eset2 $ id < - 1:61 multi2 < - add_eset (eset2多,数据集。multi2 type = "表达")
# #对象的类MultiDataSet # #。assayData: 1 # #的元素。表达式:21916功能,61 # #样品。featureData: # #。表达式:21916行,4关口(空空的,……,结束)# #。rowRanges: # #。表达式:是的# #。phenoData: # #。表达式:61样品,3关口(性别、…、发票)

有三个额外的参数:警告,覆盖农庄警告可用于启用或禁用警告。覆盖当我们想要添加一个设置,使用目前使用一个名称。如果这是真的,一组被替换。如果错误,没有改变:

eset2 < - eset [1:10] multi2 < - add_eset (eset多,数据集。type = "表情"、警告multi2 = FALSE)
# #对象的类MultiDataSet # #。assayData: 1 # #的元素。表达式:21916功能,61 # #样品。featureData: # #。表达式:21916行,4关口(空空的,……,结束)# #。rowRanges: # #。表达式:是的# #。phenoData: # #。表达式:61样品,3关口(性别、…、发票)
multi2 < - add_eset (multi2 eset2,数据集。类型=“表达”,警告= FALSE,覆盖= FALSE)
# # add_eset误差(multi2 eset2,数据集。类型=“表达”,警告= FALSE,:在这个位置已经有一个对象。覆盖= TRUE设置为覆盖前面的设置。
multi2
# #对象的类MultiDataSet # #。assayData: 1 # #的元素。表达式:21916功能,61 # #样品。featureData: # #。表达式:21916行,4关口(空空的,……,结束)# #。rowRanges: # #。表达式:是的# #。phenoData: # #。表达式:61样品,3关口(性别、…、发票)
multi2 < - add_eset (multi2 eset2,数据集。类型=“表达”,警告= FALSE,覆盖multi2 = TRUE)
# #对象的类MultiDataSet # #。assayData: 1 # #的元素。表达式:21916功能,10 # #样品。featureData: # #。表达式:21916行,4关口(空空的,……,结束)# #。rowRanges: # #。表达式:是的# #。phenoData: # #。表情:10个样本,3个关口(性别、…、发票)

最后,农庄添加一个参数是使用GenomicRanges与注释。默认情况下,GenomicRanges将生成集的fData。用这个参数,我们可以直接供应GenomicRanges或者,如果不能转换为数据集的注释GenomicRanges(如蛋白质组数据),我们可以设置这个参数NA:

eset multi2 < - add_eset(多,数据集。类型=“表达”,警告= FALSE,农庄= multi2 NA)
# #对象的类MultiDataSet # #。assayData: 1 # #的元素。表达式:21916功能,61 # #样品。featureData: # #。表达式:21916行,4关口(空空的,……,结束)# #。rowRanges: # #。表情:不# #。phenoData: # #。表达式:61样品,3关口(性别、…、发票)

现在,我们可以看到rowRanges没有表情。的影响将被描述的过滤的GenomicRanges部分。

2.1.2添加SummarizedExperiment

SummarizedExperiment添加使用add_rse。它的参数和行为非常类似add_eset。唯一的区别是农庄论点(注释数据已经的形式GenomicRanges)。举例说明其使用,GenomicRatioSet(一个minfi将创建和添加类):

数据(“MsetEx”) MsetEx2 < - MsetEx(1:10 0,)最初设置为# # #子集加快GRSet < - mapToGenome (ratioConvert (MsetEx2)) # #转化MethylSet (eSet-derived) GenomicRatioSet GRSet
# #类:GenomicRatioSet # #暗淡:100 6 # #元数据(0):# #化验(3):βM CN # # rownames (100): cg00011200 cg00014152……cg26983430 cg08265308构成了rowData名称(0):# # # # colnames (6): 5723646052 _r02c02 5723646052 _r04c01……# # # # 5723646053 _r05c02 5723646053 _r06c02 colData名称(13):Sample_Name Sample_Well……Basename文件名# # # #注释数组:IlluminaHumanMethylation450k # #注释:ilmn12。hg19 # # # #预处理方法:原料(没有标准化或bg校正)# # minfi版本:1.21.2 # #清单版本:0.4.0
多< - createMultiDataSet () multi2 < - add_rse (GRSet多,数据集。类型=“甲基化”,警告= FALSE)
# #警告add_rse (GRSet多,数据集。类型=“甲基化”,警告# # = FALSE):没有id列rowRanges中找到。id = # # sampleNames
multi2
# #对象的类MultiDataSet # #。assayData: 1 # #的元素。甲基化:100特性,6 # #样品。featureData: # #。甲基化:100行,5关口(seqnames,……、宽度)# #。rowRanges: # #。甲基化:是的# #。phenoData: # #。甲基化:6样本,14关口(Sample_Name,……文件名)

2.2特定功能

特定的功能是用来添加特定的数据集MultiDataSet。他们称通用函数添加数据和他们通常执行几个检查(e。g:检查类的设置或检查fData列)。因此,只有集可以引入一些功能MultiDataSet和不需要后检查数据结构。用户所使用的特定功能应该总是确保设置正确添加到MultiDataSet

MultiDataSet我们引入了四个具体的功能:add_genexp,add_rnaseq,add_methyadd_snps。所有这些函数有两个参数:对象MultiDataSet和第二个参数传入的。第二个参数的名称取决于特定的函数(e。g: gexpSetadd_genexp,snpSetadd_snps…)。尽管我们只会显示的例子add_genexpadd_snps,其他特定功能共享相同的行为和特性。

add_genexp增加了一个ExpressionSet槽的“表达”。我们将使用ExpressionSetMEALData为例:

多< - createMultiDataSet () multi2 < - add_genexp(多,eset)
# # add_genexp误差(多,eset): fData gexpSet必须包含列的染色体,开始和结束
eset
# # ExpressionSet (storageMode: lockedEnvironment) # # assayData: 21916功能,61 # #样品元素名称:exprs # # protocolData:没有# # phenoData # # sampleNames: GM00016 GM00022……WG3466 (61) # # varLabels:性别发票# # varMetadata: labelDescription # # featureData # # featureNames: ILMN_1343291 ILMN_1651209……ILMN_2415949 (21916 # #) # # fvarLabels:开始结束的基因从而向# # fvarMetadata:列描述labelDescription # # experimentData:使用“experimentData(对象)# #注释:GPL6883

add_genexp要求的fData传入的ExpressionSet有列染色体,开始结束。我们的eset对象的列开始结束但染色体标记空空的。我们应该修复它之前继续:

fvarLabels (eset)[1] < -“染色体”多< - createMultiDataSet () multi2 < - add_genexp(多,eset)
# #警告add_eset(对象、gexpSet数据集。type = "表达",农庄# # =范围,没有id列pData中找到。id = # # sampleNames
multi2
# #对象的类MultiDataSet # #。assayData: 1 # #的元素。表达式:21916功能,61 # #样品。featureData: # #。表达式:21916行,4关口(染色体,…,结束)# #。rowRanges: # #。表达式:是的# #。phenoData: # #。表达式:61样品,3关口(性别、…、发票)

考虑到add_genexp调用add_eset的参数add_eset也可以使用但dataset.type农庄。让我们添加相同的ExpressionSet到另一个位置使用dataset.name:

multi2 < - add_genexp (multi2分野,dataset.name =“2”)
# #警告add_eset(对象、gexpSet数据集。type = "表达",农庄# # =范围,没有id列pData中找到。id = # # sampleNames
multi2
# #对象的类MultiDataSet # #。assayData: 2 # #的元素。表达式:21916功能,61 # #样品。表达+ 2:21916功能,61 # #样品。featureData: # #。表达式:21916行,4关口(染色体,…,结束)# #。表达+ 2:21916行,4关口(染色体,…,结束)# #。rowRanges: # #。表达式:是的# #。表达+ 2:是的# #。 phenoData: ## . expression: 61 samples, 3 cols (gender, ..., inv) ## . expression+2: 61 samples, 3 cols (gender, ..., inv)

add_snps添加一个SnpSet槽的“单核苷酸多态性”MultiDataSet。单核苷酸多态性数据的形式SnpMatrixMEALData,所以我们需要把它第一SnpSet:

数据(单核苷酸多态性)SnpSet < -新(“SnpSet”,调用=单核苷酸多态性基因型美元)fData (SnpSet) < - snp地图SnpSet美元
# # SnpSet (storageMode: lockedEnvironment) # # assayData: 29909功能,98 # #样品元素名称:电话,callProbability # # protocolData:没有# # phenoData:没有# # featureData # # featureNames: rs1000068 - 127 _b_r_1501589836 # # rs1000299 - 127 _b_r_1501589728……rs999978 - 126 _b_r_1502301346 # # (29909) # # fvarLabels:染色体snp.name……染色体(5)# # fvarMetadata: labelDescription # # experimentData:使用“experimentData(对象)# #注释:

如果我们现在试着将这组添加到MultiDataSet:

SnpSet multi2 < - add_snps(多)
# # .find_seqnames_col误差(df_colnames0 seqnames。field0,前缀):无能为力确定seqnames列明确

这个错误上升时makeGRangesFromDataFrame无法创建一个GenomicRangesfData。如果我们看一看SnpSetfData:

头(fData (SnpSet))
# #染色体SNP snp.name位置# # rs1000068 17 - 127 _b_r_1501589836 rs1000068 45653965 (T / C) # # rs1000299 17 - 127 _b_r_1501589728 rs1000299 70660148 (T / C) # # rs100043 17 - 127 _t_f_1501589788 rs100043 64903636 (A / G) # # rs1000465 17 - 127 _t_r_1501589734 rs1000465 67315267 (A / G) # # rs1000466 17 - 127 _b_f_1501590038 rs1000466 67315325 (T / C) # # rs1000724 17 - 126 _b_r_1502063163 rs1000724 14579993 (T / C) # # # #号染色体rs1000068 - 127 _b_r_1501589836 chr17 # # rs1000299 - 127 _b_r_1501589728 chr17 # # rs100043 - 127 _t_f_1501589788 chr17 # # rs1000465 - 127 _t_r_1501589734 chr17 # # rs1000466 - 127 _b_f_1501590038 chr17 # # rs1000724 - 126 _b_r_1502063163 chr17

有两列,可以作为染色体。为了简化,我们将删除的第一列fData我们会再试一次:

fData (SnpSet) < - fData (SnpSet) [1] multi2 < - add_snps(多SnpSet)
# #警告add_eset(对象、snpSet数据集。type = " snp ",农庄# # =范围,没有id列pData中找到。id = # # sampleNames
multi2
# #对象的类MultiDataSet # #。assayData: 1 # #的元素。单核苷酸多态性:29909功能,98 # #样品。featureData: # #。单核苷酸多态性:29909行,4关口(snp.name,……SNP) # #。rowRanges: # #。单核苷酸多态性:是的# #。phenoData: # #。单核苷酸多态性:98个样本,1关口(id)

现在,工作方法和一组已经成功地补充道。这种情况下是一个检查的结构fData传入的设定一个特定的函数。

3构造子集

构造子集的MultiDataSet可以通过样本,通过表或使用GenomicRanges。为了说明这些操作,我们将使用ExpressionSetMethylationSetMEALData。首先,我们将添加这些设置MultiDataSet。的ExpressionSet将被添加到另一个位置,但设置农庄=钠:

数据(mset)多< - createMultiDataSet() #删除调查前没有位置添加对象多< - add_methy(多mset)
# #警告add_eset(对象、methySet数据集。类型=“甲基化”,# #农庄=范围:没有id列pData中找到。id = # # sampleNames
eset多< - add_genexp(多)
# #警告add_eset(对象、gexpSet数据集。type = "表达",农庄# # =范围,没有id列pData中找到。id = # # sampleNames
多< - add_eset (eset多,数据集。类型=“测试”,农庄= NA)
# #警告add_eset (eset多,数据集。类型=“测试”,农庄= NA):No ## id column found in pData. The id will be equal to the sampleNames
# #对象的类MultiDataSet # #。assayData: 3 # #的元素。甲基化:451383功能,61 # #样品。表达式:21916功能,61 # #样品。测试:21916功能,61 # #样品。featureData: # #。甲基化:451383行,17个关口(染色体,…Regulatory_Feature_Group) # #。表达式:21916行,4关口(染色体,…,结束)# #。测试:21916行,4关口(染色体,……,结束)# #。rowRanges: # #。 methylation: YES ## . expression: YES ## . test: NO ## . phenoData: ## . methylation: 61 samples, 4 cols (gender, ..., inv) ## . expression: 61 samples, 3 cols (gender, ..., inv) ## . test: 61 samples, 3 cols (gender, ..., inv)

表达数据包含61个样本和21916特性和甲基化数据61样品和451383论文认定。

3.1样品

构造子集的样品可以做两种不同的方式。第一个选项是引入向量样本id。MultiDataSet有运营商(重载和样品是第一个元素:

< - sampleNames样品(eset)[1:25]多(样本)
# #对象的类MultiDataSet # #。assayData: 3 # #的元素。甲基化:451383特性,23 # #样品。表达式:21916特性,25 # #样品。测试:21916特性、25 # #样品。featureData: # #。甲基化:451383行,17个关口(染色体,…Regulatory_Feature_Group) # #。表达式:21916行,4关口(染色体,…,结束)# #。测试:21916行,4关口(染色体,……,结束)# #。rowRanges: # #。 methylation: YES ## . expression: YES ## . test: NO ## . phenoData: ## . methylation: 23 samples, 4 cols (gender, ..., inv) ## . expression: 25 samples, 3 cols (gender, ..., inv) ## . test: 25 samples, 3 cols (gender, ..., inv)

每组样本的构造子集的回报,所有的样品都出现在过滤向量。在我们的示例中,我们选择的第一个25样品ExpressionSet。在MethylationSet这些样本,只有23岁的礼物。

我们也可以只选择那些存在于所有的样本数据集的函数commonSamples。这个方法返回一个新的MultiDataSet但只有共同的样品:

commonSamples(多)
# #对象的类MultiDataSet # #。assayData: 3 # #的元素。甲基化:451383特性,57 # #样品。表达式:21916特性,57 # #样品。测试:21916特性,57 # #样品。featureData: # #。甲基化:451383行,17个关口(染色体,…Regulatory_Feature_Group) # #。表达式:21916行,4关口(染色体,…,结束)# #。测试:21916行,4关口(染色体,……,结束)# #。rowRanges: # #。 methylation: YES ## . expression: YES ## . test: NO ## . phenoData: ## . methylation: 57 samples, 4 cols (gender, ..., inv) ## . expression: 57 samples, 3 cols (gender, ..., inv) ## . test: 57 samples, 3 cols (gender, ..., inv)
长度(相交(sampleNames (eset) sampleNames (mset)))
# # [1]57

由此产生的MultiDataSet包含57个样本表达式和甲基化,同一样品之间的交叉的名字原来的设置。

3.2

我们可以选择的数据集MultiDataSet使用他们的名字。它们应该被放在第二位的(:

多(,“表达式”)
# #对象的类MultiDataSet # #。assayData: 1 # #的元素。表达式:21916功能,61 # #样品。featureData: # #。表达式:21916行,4关口(染色体,…,结束)# #。rowRanges: # #。表达式:是的# #。phenoData: # #。表达式:61样品,3关口(性别、…、发票)
多[c(“甲基化”、“测试”)
# #对象的类MultiDataSet # #。assayData: 2 # #的元素。甲基化:451383功能,61 # #样品。测试:21916功能,61 # #样品。featureData: # #。甲基化:451383行,17个关口(染色体,…Regulatory_Feature_Group) # #。测试:21916行,4关口(染色体,……,结束)# #。rowRanges: # #。甲基化:是的# #。测试:不# #。 phenoData: ## . methylation: 61 samples, 4 cols (gender, ..., inv) ## . test: 61 samples, 3 cols (gender, ..., inv)

如果我们想要找回原来的对象,我们可以设置= TRUE下降或使用[[接线员:

多[["表达"]]
# # ExpressionSet (storageMode: lockedEnvironment) # # assayData: 21916功能,61 # #样品元素名称:exprs # # protocolData:没有# # phenoData # # sampleNames: GM00016 GM00022……WG3466 (61) # # varLabels:性别发票# # varMetadata: labelDescription # # featureData # # featureNames: ILMN_1343291 ILMN_1651209……ILMN_2415949 (21916 # #) # # fvarLabels:染色体基因开始结束# # fvarMetadata:列描述labelDescription # # experimentData:使用“experimentData(对象)# #注释:
多(“表达”,下降= TRUE)
# # ExpressionSet (storageMode: lockedEnvironment) # # assayData: 21916功能,61 # #样品元素名称:exprs # # protocolData:没有# # phenoData # # sampleNames: GM00016 GM00022……WG3466 (61) # # varLabels:性别发票# # varMetadata: labelDescription # # featureData # # featureNames: ILMN_1343291 ILMN_1651209……ILMN_2415949 (21916 # #) # # fvarLabels:染色体基因开始结束# # fvarMetadata:列描述labelDescription # # experimentData:使用“experimentData(对象)# #注释:

3.3GenomicRanges

最后,MultiDataSet可以过滤的GenomicRanges。在这种情况下,只有那些功能范围内将返回这些数据集GenomicRanges数据将被丢弃。GenomicRanges应该放置在第三的位置(:

< -农庄(chr17:1 - 100000)多(,,)
# #对象的类MultiDataSet # #。assayData: 2 # #的元素。甲基化:63功能,61 # #样品。特性,表达:61 # #样品。featureData: # #。甲基化:63行,17个关口(染色体,…Regulatory_Feature_Group) # #。表达式:3行4关口(染色体,…,结束)# #。rowRanges: # #。甲基化:是的# #。表达式:是的# #。 phenoData: ## . methylation: 61 samples, 4 cols (gender, ..., inv) ## . expression: 61 samples, 3 cols (gender, ..., inv)

由于过滤GenomicRanges,“测试”集没有rowRanges已经被抛弃了。如果GenomicRanges包含不止一个范围,功能出现在任何范围的选择:

range2 < -农庄(c (“chr17:1 - 100000”,“chr17:1000000 - 2000000”))多[,range2]
# #对象的类MultiDataSet # #。assayData: 2 # #的元素。甲基化:766功能,61 # #样品。表达式:27特性,61 # #样品。featureData: # #。甲基化:766行,17个关口(染色体,…Regulatory_Feature_Group) # #。表达式:27行,4关口(染色体,…,结束)# #。rowRanges: # #。甲基化:是的# #。表达式:是的# #。 phenoData: ## . methylation: 61 samples, 4 cols (gender, ..., inv) ## . expression: 61 samples, 3 cols (gender, ..., inv)

3.4多个构造子集

这三个操作可以综合应用三个过滤器。在这种情况下,首先是选择集,然后样品最后特点:

多(样品、“表达”,范围)
# #对象的类MultiDataSet # #。assayData: 1 # #的元素。表达式:3特性、25 # #样品。featureData: # #。表达式:3行4关口(染色体,…,结束)# #。rowRanges: # #。表达式:是的# #。phenoData: # #。表达式:25个样品,3关口(性别、…、发票)
多[样本,“甲基化”,范围,下降= TRUE)
# # MethylationSet (storageMode: lockedEnvironment) # # assayData: 63特性、23 # #样品元素名称:冰毒# # protocolData:没有# # phenoData # # sampleNames: GM00016 GM00022……GM02317 (23) # # varLabels:性别源发票# # varMetadata: labelDescription # # featureData # # featureNames: cg09002677 cg21726327……cg11597080 (63) # # fvarLabels:染色体的位置……国土安全部(17)# # fvarMetadata: labelDescription # # experimentData:使用“experimentData(对象)# #注释:

3.5先进的构造子集

基本的R函数子集可以用来执行先进的构造子集。这个函数可以用来过滤列每个数据集特性数据的特性。例如,我们可以使用这个函数来选择所有相关的功能基因:

基因子集(多= =“SLC35E2”)
# #对象的类MultiDataSet # #。assayData: 3 # #的元素。甲基化:13个特征,61年# #样品。表达:1功能,61 # #样品。测试:1功能,61 # #样品。featureData: # #。甲基化:13行,17关口(染色体,…Regulatory_Feature_Group) # #。表达:1行4关口(染色体,…,结束)# #。测试:1行,4关口(染色体,…,结束)# #。rowRanges: # #。 methylation: YES ## . expression: YES ## . test: NO ## . phenoData: ## . methylation: 61 samples, 4 cols (gender, ..., inv) ## . expression: 61 samples, 3 cols (gender, ..., inv) ## . test: 61 samples, 3 cols (gender, ..., inv)

这一行返回一个MultiDataSet与相关的功能基因SLC35E2。表达式使用基因因为它是一种常见的数据集包含在列。这个函数接受任何表达式返回一个逻辑。因此,我们还可以使用%,%运营商或包含多个表达式:

(多,基因% % c子集(“SLC35E2”、“IPO13”,“TRPV1”))
# #对象的类MultiDataSet # #。assayData: 3 # #的元素。甲基化:31特性,61 # #样品。表情:7功能,61 # #样品。测试:功能,61 # #样品。featureData: # #。甲基化:31行,17个关口(染色体,…Regulatory_Feature_Group) # #。表情:7行,4关口(染色体,…,结束)# #。测试:7行,4关口(染色体,…,结束)# #。rowRanges: # #。 methylation: YES ## . expression: YES ## . test: NO ## . phenoData: ## . methylation: 61 samples, 4 cols (gender, ..., inv) ## . expression: 61 samples, 3 cols (gender, ..., inv) ## . test: 61 samples, 3 cols (gender, ..., inv)
子集(多基因= = |“EEF1A1”= =“垂直距离”)
# #对象的类MultiDataSet # #。assayData: 3 # #的元素。甲基化:38特性,61 # #样品。特性,表达:61 # #样品。测试:功能,61 # #样品。featureData: # #。甲基化:38行,17个关口(染色体,…Regulatory_Feature_Group) # #。表达式:3行4关口(染色体,…,结束)# #。测试:3行,4关口(染色体,…,结束)# #。rowRanges: # #。 methylation: YES ## . expression: YES ## . test: NO ## . phenoData: ## . methylation: 61 samples, 4 cols (gender, ..., inv) ## . expression: 61 samples, 3 cols (gender, ..., inv) ## . test: 61 samples, 3 cols (gender, ..., inv)

类似的方法可以用于选择样本与一个共同的表型。在这种情况下,我们应该通过第三个参数的表达式和列必须包含在数据集的phenodata:

子集(多、性别= =“女性”)
# #对象的类MultiDataSet # #。assayData: 3 # #的元素。甲基化:451383特性,31 # #样品。表达式:21916特性,31 # #样品。测试:21916特性,31 # #样品。featureData: # #。甲基化:451383行,17个关口(染色体,…Regulatory_Feature_Group) # #。表达式:21916行,4关口(染色体,…,结束)# #。测试:21916行,4关口(染色体,……,结束)# #。rowRanges: # #。 methylation: YES ## . expression: YES ## . test: NO ## . phenoData: ## . methylation: 31 samples, 4 cols (gender, ..., inv) ## . expression: 31 samples, 3 cols (gender, ..., inv) ## . test: 31 samples, 3 cols (gender, ..., inv)

这行代码,我们可以选择所有的妇女的研究。两个构造子集可以应用在同一时间:

基因子集(多= =“SLC35E2”,性别= =“女性”)
# #对象的类MultiDataSet # #。assayData: 3 # #的元素。甲基化:13特性,31 # #样品。表达:1功能,31 # #样品。测试:1功能,31 # #样品。featureData: # #。甲基化:13行,17关口(染色体,…Regulatory_Feature_Group) # #。表达:1行4关口(染色体,…,结束)# #。测试:1行,4关口(染色体,…,结束)# #。rowRanges: # #。 methylation: YES ## . expression: YES ## . test: NO ## . phenoData: ## . methylation: 31 samples, 4 cols (gender, ..., inv) ## . expression: 31 samples, 3 cols (gender, ..., inv) ## . test: 31 samples, 3 cols (gender, ..., inv)