MultiDataSet 1.14.0
生物医学项目正在生成关于多种类型组学数据的信息。这些数据集大多可通过GEO (基因表达综合), tcga (癌症基因组图谱)或EGA (欧洲基因组-表型档案)等。给定表型与单个组学数据集之间的标准关联分析。SNPs,基因表达,甲基化,…)不足以解决大多数依赖于了解复杂疾病的机制的科学问题。必须使用适当地集成多数据集的方法来分析如此多的信息。
处理多组数据时的计算挑战之一是定义一种简单的方法来压缩多个信息。这种方法必须允许检索共有样本的数据,对具有特定特征的个体进行细分,或从给定的基因组区域或选定的基因中选择特征。MultiDataSet
它被认为是多个omic数据集的容器和管理器,同时允许执行常见的对象操作,如元素的添加或子集。小插曲MultiDataSet
描述如何操作MultiDataSet对象以及如何执行其他基本操作。
在本文档中,我们学习如何创建MultiDataSet
对象用于在中实现的综合分析omicade4
.这个Bioconductor包实现了多重共惯性分析(mcia),这是一种在有两个以上表的情况下推广主成分分析(PCA)的方法。这个包通过使用列表处理多组数据。然而,它需要分析完整的案例(即跨数据集拥有共同的样本)。在这里,我们演示了如何封装三个不同的组学数据集(两个微阵列和一个甲基化实验),如何获得具有完整案例的对象以及如何执行集成分析。在使用的情况下,描述了相同的过程iClusterPlus
,一种对多个数据集进行聚类分析的方法。
本文档的目的是说明如何使用MultiDataSet
存储多个组学数据集。我们还演示了如何使用类的对象MultiDataSet
在第三方集成包/管道中。该文档包括两个不同的示例。其中一个演示了如何使用分析MultiDataSet对象omicade4
,一个R包,旨在执行mcia分析。第二个例子说明了如何使用iClusterPlus
对多个数据集进行聚类分析。
本节包括三个小节。在第一小节中,加载数据,加载三个虚拟数据集。这些数据集对应于两个微阵列实验,封装为一个ExpressionSet
一个甲基化实验储存为GenomicRatioSet
.第二个,包装数据,说明了MultiDataSet
用于打包多条信息。注意,我们的包允许拥有相同类型的数据集。第三部分,综合分析,展示了如何对三个数据集进行集成分析omicade4
而且iClusterPlus
.
需要两个库来管理三个虚拟数据集:MultiDataSet
,Biobase
而且minfi
.这些库包含我们正在处理的对象的必需类:MultiDataSet
,ExpressionSet
,GenomicRatioSet
:
library(MultiDataSet) library(Biobase) library(minfi)
为了创建这个文档,已经生成了三个虚拟数据集。它们可以从手稿的补充材料中下载。基因表达档案(表达式。RData
)有两个ExpressionSets
对应于两个不同时间点的基因表达量。甲基化文件(甲基化。RData
)包含GenomicRatioSet
,其中包含有关450K cpg的beta值的信息。这三个数据集属于同一个实验。
load("methylation.RData") ls()
##[1]“brge_gexp”“brge_gexp2”“brge_methy”“brge_methy2”“gSet1”##[6]“gSet2”“mSet”“multi”“multi2”“range”##[11]“range2”“samples”
命令执行的结果ls
从前面的块告诉我们,包含信息的对象被调用gSet1
,gSet2
,mSet
.前两个是ExpressionSets
而最后一个对应于GenomicRatioSet
.下表显示了每个集合的样本数量以及每对集合之间的公共样本数量:
gSet1 |
gSet2 |
mSet |
|
---|---|---|---|
gSet1 |
50 | 16 | 13 |
gSet2 |
- | 27 | 10 |
mSet |
- | - | 20. |
该表应这样读:
gSet1
有50个样本,gSet2
有27个样品mSet
有20个样本gSet1
而且gSet2
共有16个样本gSet1
而且mSet
有13个相同的样本gSet2
而且mSet
共有10个样品下面三个命令显示了每对对象共有的样本数量。它们用于创建前一个表。
gSet2的长度(相交(sampleNames(gSet1), sampleNames(gSet2))))
## [1]
gSet1交集mSet长度(相交(sampleNames(gSet1), sampleNames(mSet)))
## [1]
gSet2交叉mSet长度(相交(sampleNames(gSet2), sampleNames(mSet)))
## [1]
三个数据集的共同样本数为6:
## gSet1交集gSet2交集mSet长度(相交(相交(sampleNames(gSet1), sampleNames(gSet2)), sampleNames(mSet))))
## [1]
将这三个集合放入当前R会话后,我们可以继续将它们打包到一个MultiDataSet
对象。有四个必需的步骤:
MultiDataSet
对象ExpressionSet
ExpressionSet
MethylationSet
一个空MultiDataSet
是通过使用函数创建的createMultiDataSet
.这个空对象被调用医学博士
:
md <- createMultiDataSet() md
MultiDataSet类的对象assayData: 0元素##。featureData: ##。rowRanges: ##。phenoData:
泛型函数显示
的MultiDataSet
对象告诉我们医学博士
不包含任何元素(请参见assayData
部分)。之后,就可以添加这三个集合了。
MultiDataSet
具有特定的功能来添加每种类型的数据集。这个函数add_genexp
允许添加类的对象ExpressionSet
.下面的代码添加gSet1
空无一物MultiDataSet
创建md.e
.
md.e <- add_genexp(md, gSet1) md.e
MultiDataSet类的对象assayData: 1元素##。表达式:300个特征,50个样本##。featureData: ##。表达式:300 rows, 11 cols (transcript_cluster_id,…, gene_assignment) ##。rowRanges: ##。表达:是##。表型数据:##。表达式:50个样品,3 cols(年龄,…、性别)
现在,md.e
只包含一组类型表达式.这个集合是标记作为表达式
包含50个样本的300个特征。下一步是添加gSet2
到MultiDataSet
.
md.e <- add_genexp(md. e。e, gSet2)
## add_eset(对象,gexpSet,数据集。类型= "expression", GRanges = range, : There is already an object in this slot. Set overwrite = TRUE to overwrite the previous set.
这个函数add_genexp
引发错误。该错误指示一个集使用槽“表情”
已经存在。
MultiDataSet
对象只能包含具有相同名称的单个集合。默认情况下,add_genexp
使用“表情”
作为新表达式数据集的名称。此名称在添加对象时使用gSet1
,因此在添加时不能再次使用gSet2
.为了解决这个问题,add_genexp
包括参数dataset.name
要指定每个数据集的名称(ExpressionSet
).
md <- add_genexp(md, gSet1, dataset.name = "gSet1") md <- add_genexp(md, gSet2, dataset.name = "gSet2") md . add_genexp(md, gSet2, dataset.name = "gSet2"
MultiDataSet类的对象assayData: 2元素##。表达式+gSet1: 300个特征,50个样本##。表达式+gSet2: 300个特征,27个样本##。featureData: ##。表达式+gSet1: 300 rows, 11 cols (transcript_cluster_id,…, gene_assignment) ##。表达式+gSet2: 300 rows, 11 cols (transcript_cluster_id,…, gene_assignment) ##。rowRanges: ##。表达式+gSet1: YES ##。表达式+gSet2: YES ##。 phenoData: ## . expression+gSet1: 50 samples, 3 cols (age, ..., sex) ## . expression+gSet2: 27 samples, 3 cols (age, ..., sex)
前面的三行代码描述了如何进行添加gSet1
而且gSet2
空无一物MultiDataSet
对象被称为医学博士
.我们观察到结果MultiDataSet
对象包含两个表达式数据。的显示
方法还通知每个数据集的特征和样本的数量。属性中添加的每个数据集的名称MultiDataSet
对象遵循以下结构数据集类型,角色+和数据集名称.
最后,利用该方法添加甲基化数据add_methy
:
md <- add_methy(md, mSet) md
MultiDataSet类的对象assayData: 3元素##。表达式+gSet1: 300个特征,50个样本##。表达式+gSet2: 300个特征,27个样本##。甲基化:300个特征,20个样本。featureData: ##。表达式+gSet1: 300 rows, 11 cols (transcript_cluster_id,…, gene_assignment) ##。表达式+gSet2: 300 rows, 11 cols (transcript_cluster_id,…, gene_assignment) ##。甲基化:300行,19 cols (seqnames,…, Regulatory_Feature_Group) ##。rowRanges: ##。 expression+gSet1: YES ## . expression+gSet2: YES ## . methylation: YES ## . phenoData: ## . expression+gSet1: 50 samples, 3 cols (age, ..., sex) ## . expression+gSet2: 27 samples, 3 cols (age, ..., sex) ## . methylation: 20 samples, 10 cols (age, ..., Neu)
最后一个MultiDataSet
对象医学博士
封装三个数据集。这可以用一般函数来检查长度
而且的名字
:
长度(md)
## [1]
名(md)
##[1]“表达式+gSet1”“表达式+gSet2”“甲基化”
一旦MultiDataSet
对象创建后,我们可以在其他设计用于执行集成分析的包中使用它。绝大多数为此目的开发的R/Bioconductor包假定不同的表包含相同的个体(即完整的病例)。这是……的情况omicade4
方法。在这里,我们说明如何轻松地获得具有MultiDataSet
对象作为输入。
omicade4
omicade4
提供多个共惯性分析以及数据可视化的功能,这将有助于解释时,集成几个组数据集。
omicade4
可以通过执行:
库(omicade4)
这个函数mcia
设计用于执行多重共惯性分析。它需要一个包含三个omic数据集作为每个组件的列表。在此,我们首先说明如何在使用original的情况下执行此分析ExpressionSet
而且MethylatioSet
对象。也就是说,在不使用MultiDataSet
.通过这样做,我们将说明如何采用适当的方式封装多组数据可能有助于下游分析。
这个函数assayDataElement
可用于检索具有基因表达或甲基化水平的基质ExpressionSet
或MethylationSet
,分别。因此,所需要的列表要被传递mcia
函数可以通过执行:
dat <- list(assayDataElement(gSet1, "exprs"), assayDataElement(gSet2, "exprs"), assay(mSet, "Beta")))
然后,用这个列表进行多重协惯性分析
适合<- McIa (dat)
## mcia(dat)错误:在data.frames中个体数量不相等
但是,将获得一个错误消息。造成错误的原因是矩阵有不同数量的样本(列)。也就是说,并非所有数据集中都存在样本。这可以通过编写一些代码来得到每个矩阵中都有相同样本的表来克服。这可以通过使用MultiDataSet
对象作为输入,因为函数commonSamples
执行完整用例的选择。
下面的代码创建一个newMultiDataSet
用普通样品
md.r <- commonSamples(md)
我们可以通过执行以下命令来验证这三个数据集是否具有相同的样本:
拉普兰人(as.list (md.r)、暗)
## $ ' expression+gSet1 ' ## [1] 300 6 ## ## $ ' expression+gSet2 ' ##[1] 300 6 ## ## $甲基化## [1]300 6
的对象md.r
可以通过mcia
作为一个列表进行多次共惯性分析。
Fit <- McIa (as.list(md.r))
适合
包含的输出mcia
函数。欲了解更多有关mcia
的内容适合
类型? omicade4:: mcia
在R会话中。
为了让这个过程对用户来说更容易,MultiDataSet
包括要应用的包装器mcia
到一个MultiDataSet
对象:
Fit <- w_mcia(md)
适合
## omicade4::mcia(df。list = as.list(object) ## ## $mcoa ##多重共惯性分析##类mcoa列表## ## $pseudoeig: 6伪特征值## 1.03 0.6364 0.4806 0.4134 0.403…## ## $call: mcoa2(X = ktcoa, scanf = FALSE, nf = cia.nf) ## ## $nf:2轴救了# # # # data.frame nrow ncol内容# # 1 SynVar 6美元2合成分数# # 2轴900美元2 co-inertia轴# # 3 # # $ 18 Tli 2 co-inertia坐标4 Tl1 18美元2 co-inertia赋范分数# # 5美元的税12 2惯性轴上co-inertia轴# # 6 Tco 900美元2列到合成分数# # 7 TL 18美元2因素Tl1 Tli # # 8 TC 900美元2因素Tco # # 9美元T4 12 # # 10美元税收λ2因素3 2特征值(单独分析)# # 11美元cov2 3 2伪特征值(综合分析)# #元素:Tlw Tcw blo Tc1 RV ## ## $coa ## $coa$ '表达式+gSet1 ' ##对偶图##类:nsc dudi ## $call: FUN(df = X[[i]],扫描f = FALSE, nf = ..2) ## ## $nf: 2轴-组件保存## $rank: 5 ##特征值:0.001339 0.0008261 0.0006457 0.0004673 - 0.0003958 # # 1 # #向量长度模式内容连续波6数字列权重# # 2美元lw数字行重量# # 3 300 eig 5数字特征值# # # # data.frame nrow ncol内容# # 1选项卡300美元6修改数组# # 2李300美元2行坐标# # 3 l1 300美元2行赋范分数4美元公司6 # # 2 # # 5美元c1 6列坐标2列赋范分数# #其他元素:N # # # # - coa美元+ gSet2表达的# # # #对偶图形类:nsc dudi # # $电话:FUN(df = X[[i]], scanf = FALSE, nf = ..2) ## ## $nf: 2轴组件保存## $rank: 5 ##特征值:0.001051 0.0007264 0.0006114 0.0005047 - 0.0004428 # # 1 # #向量长度模式内容连续波6数字列权重# # 2美元lw数字行重量# # 3 300 eig 5数字特征值# # # # data.frame nrow ncol内容# # 1选项卡300美元6修改数组# # 2李300美元2行坐标# # 3 l1 300美元2行赋范分数4美元公司6 # # 2 # # 5美元c1 6列坐标2列赋范分数# #其他元素:N # # # # - coa甲基化# #美元对偶图形# #类:nsc dudi # # $电话:乐趣(df = X[[我]],scannf = FALSE, nf = . . 2) # # # # $ nf: 2 axis-components救了# # $排名:5 # #特征值:0.002201 0.00128 0.0009001 0.0006561 - 0.0006023 # # 1 # #向量长度模式内容连续波6数字列权重# # 2美元lw数字行重量# # 3 300 eig 5数字特征值# # # # data.frame nrow ncol内容# # 1选项卡300美元6修改数组# # 2李300美元2行坐标# # 3 l1 300美元2行赋范得分4美元公司6 # # 2 # # 5美元c1 6列坐标2列赋范分数# #其他元素:N ## ## ## attr(,"class") ## [1] "mcia"
iClusterPlus
iClusterPlus
用于多类型基因组数据的综合聚类分析。因此,MultiDataSet
是建立为输入类型的默认类型的最佳候选者。
开始分析iClusterPlus
需要加载:
库(iClusterPlus)
典型的调用iClusterPlus
,使用我们的三个数据集,应该是:
fit <- iClusterPlus(dt1 = assayDataElement(gSet1, "exprs"), dt2 = assayDataElement(gSet2, "exprs"), dt3 = assay(mSet, "Beta"), type = c("高斯","高斯","高斯"),lambda = c(0.04,0.61,0.90), K = 3, maxiter = 10)
我们建议读者寻求……的帮助iClusterPlus
和手册的标题iClusterPlus:多重基因组数据集的整合聚类有关参数的更多信息λ
,K
而且麦克斯特
.本文档将简要介绍dt *
而且类型
参数。
在这种情况下,包可以处理具有不同数量样本的表。打电话给iClusterPlus
功能更便于用户使用,MultiDataSet
包括要应用的包装器iClusterPlus
到一个MultiDataSet
对象。该方法自动创建参数类型
所要求的iClusterPlus
.此参数是通过考虑包含的数据集类型而创建的MultiDataSet
对象。特别是:
ExpressionSet
是高斯MethylationSet
是高斯SnpSet
是多项被接受的其他论点iClusterPlus
可以通过包装器赋给函数:
fit <- w_icclusterplus (md, lambda = c(0.04,0.61,0.90), K = 3, maxiter = 10)
所得结果与上一版本的结果相同iClusterPlus
调用。它们都可以按照iClusterPlus
装饰图案。
library(lattice) #用于iClusterPlus的plotHeatmap库(gplots) #用于生成配色方案col.scheme <- alist() col.scheme[[1]] <- bluered(256) # colors for gSet1 col.scheme[[2]] <- bluered(256) # colors for gSet2 col.scheme[[3]] <- greenred(256) # colors for mSet plotHeatmap(fit=fit,datasets=lapply(as.list(commonSamples(md)), t), type=c("高斯","高斯","高斯"),col.scheme = col.scheme,row.order = c(真的,真的,真的),稀疏= c(真的,假,真的),帽= c(假的,假的,假))
在本例中,前两个矩形对应于两个矩形
ExpressionSet
S和最后一个矩形GenomicRatioSet
.
本文旨在说明如何做到这一点MultiDataSet
可与第三方R/Bioconductor软件包联合使用,实现数据分析和集成的方法。文档的第一部分描述了如何创建MultiDataSet
对象和函数add_genexp
而且add_methy
用于添加基因表达和甲基化数据。第二部分论述的用法MultiDataSet
对象和使用mcia
的函数omicade4
而且iClusterPlus
.
当前版本MultiDataSet
支持两种下游分析:iCluster(作者Shen 2009)实施于iClusterPlus
R包和多重共惯性分析(截至2004年8月)于omicade4
.文档的附录包括我们为开发包装器而编写的代码mcia
而且iClusterPlus
(也包括在MultiDataSet
R包)。可以看出,代码利用了MultiDataSet
特点,很容易理解。我们正在开发更多的集成和数据分析的包装器,将被纳入未来的版本MultiDataSet
.
omicade4
中包含的包装器的定义如下MultiDataSet
为omicade4
的函数mcia
.它遵循主文档中解释的步骤。
setMethod(f = "w_mcia", signature = "MultiDataSet", definition = function(object,…){#获取数据集之间的公共样本对象<- commonSamples(object) #使用生成的参数和用户的参数调用mcia omicade4::mcia(as_list(object),…)})
iClusterPlus
下面是为创建包装器而编写的代码iClusterPlus
,这允许使用MultiDataSet
对象作为输入。该方法包括三个部分:
commonSamples
将每个数据集中包含的样本数量减少到数据集中的常见样本。这是一种加速的方法iClusterPlus
.这个论点commonSamples
,默认为真正的
,允许更改此功能。类型
要求iClusterPlus
通过使用每个数据集的名称。这里我们考虑到基因表达为高斯分布,甲基化作为高斯和单核苷酸多态性多项。iCluserPlus
通过接受其他论点保存成...
setMethod(f = "w_iclusterplus", signature = "MultiDataSet", definition = function(object, commonSamples=TRUE,…){if(length(object) > 4) {stop("'iClusterPlus'只允许四个数据集。")}#获取数据集之间的公共样本if(commonSamples) {object <- commonSamples(object)} #在数据集上放置iClusterPlus需要的名称数据集<- lapply(as.list(object), t) names(数据集)<- paste("dt", 1:length(数据集),sep="") #为iClusterPlus数据集生成"type"参数[["type"]] <- sapply(names(object), function(nm) {ifelse(startsWith(nm, "expression"), "gaussian", ifelse(startsWith(nm, "methylation"), "gaussian", " mnomial ")}) names(datasets[["type"]]) <- paste("dt", 1:(length(datasets) -1), sep="") #用生成的参数调用iClusterPlus,用户的参数做。调用("iClusterPlus", c(datasets, list(…)))})