MultiDataSet
设计一个新类来管理不同的数据集,使样品的共同点。主要目的在开发MultiDataSet
是轻松的集成多个生物数据集。
MultiDataSet
位于Bioconductor的框架,它可以使用S4类来自eSet
或从SummarizedExperiment
。以下数据是添加到从每组中提取MultiDataSet
:
应该考虑,表型数据存储为每组独立。这允许将变量具有相同名称但不同的值存储在不同(如技术变量)。另一个事实是,特性数据的形式存储AnnotatedDataFrame
和GenomicRanges
。这种设计允许快速执行使用子集GenomicRanges
同时保留存储集的可能性没有基因组坐标(如代谢或暴露数据)。
在本文档中,将呈现集和构造子集。高级特性,比如创建新功能添加集或开发集成功能使用MultiDataSet
在其他文件覆盖。
在下面的代码中,图书馆需要在本教程中加载:
库(MultiDataSet)库(MEALData)图书馆(minfiData)图书馆(GenomicRanges)
MultiDataSet
应该创建对象之前添加任何对象使用构造函数:
多< - createMultiDataSet()多
# #对象的类MultiDataSet # #。# # assayData: 0元素。featureData: # #。rowRanges: # #。phenoData:
这个函数的名字
复苏的名称包含在集MultiDataSet
。现在,对象是空的没有名字:
名称(多)
# #空
长度(名字(多))
# # [1]0
可以添加到集合MultiDataSet
使用两类函数:一般和具体。通用函数添加任何eSet
或SummarizedExperiment
而特定功能添加更多的特定对象(如。ExpressionSet
)。
通用函数直接相互作用MultiDataSet
和改变其内容。他们只检查传入的是一个集合eSet
或者一个SummarizedExperiment
。由于其灵活性,它们被认为是由开发人员创建特定的函数使用。bob电竞体育官网
MultiDataSet
一般包含两个功能:add_eset
和add_rse
。他们同样工作但他们适应的特性eSet
和SummarizedExperiment
。因此,他们的共同特性只会添加eSet的部分进行讨论。
add_eset
是一般的函数添加eSet-derived类。这个函数有三个重要的参数。对象
是MultiDataSet
设置将被添加,集
是eSet
将被添加dataset.type
是新设置的类型。下一行将添加一个使用说明ExpressionSet
从MEALData:
数据(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
部分。
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,……文件名)
特定的功能是用来添加特定的数据集MultiDataSet
。他们称通用函数添加数据和他们通常执行几个检查(e。g:检查类的设置或检查fData列)。因此,只有集可以引入一些功能MultiDataSet
和不需要后检查数据结构。用户所使用的特定功能应该总是确保设置正确添加到MultiDataSet
。
在MultiDataSet
我们引入了四个具体的功能:add_genexp
,add_rnaseq
,add_methy
和add_snps
。所有这些函数有两个参数:对象
与MultiDataSet
和第二个参数传入的。第二个参数的名称取决于特定的函数(e。g: gexpSetadd_genexp
,snpSetadd_snps
…)。尽管我们只会显示的例子add_genexp
和add_snps
,其他特定功能共享相同的行为和特性。
add_genexp
增加了一个ExpressionSet
槽的“表达”。我们将使用ExpressionSet
的MEALData为例:
多< - 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
。单核苷酸多态性数据的形式SnpMatrix
在MEALData,所以我们需要把它第一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
无法创建一个GenomicRanges
从fData
。如果我们看一看SnpSet
的fData
:
头(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
传入的设定一个特定的函数。
构造子集的MultiDataSet
可以通过样本,通过表或使用GenomicRanges
。为了说明这些操作,我们将使用ExpressionSet
和MethylationSet
的MEALData。首先,我们将添加这些设置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论文认定。
构造子集的样品可以做两种不同的方式。第一个选项是引入向量样本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个样本表达式和甲基化,同一样品之间的交叉的名字原来的设置。
我们可以选择的数据集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(对象)# #注释:
最后,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)
这三个操作可以综合应用三个过滤器。在这种情况下,首先是选择集,然后样品最后特点:
多(样品、“表达”,范围)
# #对象的类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(对象)# #注释:
基本的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)