如果(!需要(“BiocManager”)) install.packages (“BiocManager”) BiocManager::安装(“MultiAssayExperiment”)
加载包:
库(MultiAssayExperiment)库(GenomicRanges)图书馆(SummarizedExperiment)图书馆(RaggedExperiment)
MultiAssayExperiment
提供了一个数据结构的表示和分析multi-omics实验:利用多种类型的生物分析方法观察,如DNA突变和丰富的RNA和蛋白质,在同一生物标本。
为分析不同数量的行和列,MultiAssayExperiment
建议。集的化验与相同的信息在所有行(例如,基因或基因组范围),SummarizedExperiment
是推荐的数据结构。
MultiAssayExperiment
类这是一个类及其构造函数和提取器的概述:
空< - MultiAssayExperiment()是空的
# # MultiAssayExperiment对象0 # #实验没有列出用户定义的名称和相应的类。# #包含ExperimentList类对象的长度0:# #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
slotNames(空的)
# # [1]“ExperimentList”“colData”“sampleMap”“滴”# #[5]“元数据”
的视觉表示MultiAssayExperiment类及其accessor函数所示。有三个主要组件:
ExperimentList
colData
sampleMap
MultiAssayExperiment
ExperimentList
:实验数据的ExperimentList
槽和类的容器主力MultiAssayExperiment
类。它包含所有的实验数据。它继承自类S4Vectors: SimpleList
一个元素/组件/数据类型。
类(实验(空的))# ExperimentList
# # [1]“ExperimentList”# # attr(“包”)# # [1]“MultiAssayExperiment”
的元素ExperimentList
可以包含的实名和基于范围数据。所有类的要求ExperimentList
列出的API。
以下基础和Bioconductor类工作称为ExperimentList的元素:
基地:矩阵
:基类,可用于基于id的数据集,如基因表达总结每个基因、代谢组学、微生物微rna,数据。
SummarizedExperiment: SummarizedExperiment
:丰富的基于id的数据集表示相比,一个普通的矩阵存储额外的分析级元数据的能力。
Biobase: ExpressionSet
:一个遗产支持的基于id的数据集,表示为了方便和取代SummarizedExperiment
。
SummarizedExperiment: RangedSummarizedExperiment
:对于矩形基于范围的数据集,一套基因组范围是多个样本化验。甲基化,它可用于基因表达或其他数据类型,参考基因组的位置。
RaggedExperiment: RaggedExperiment
:对于基于范围的数据集,如拷贝数和突变数据,RaggedExperiment
类可以被用来代表测量通过基因组的位置。
ExperimentList
容器看到API部分有关要求使用其他数据类。一般来说,数据类会议的最低要求,包括支持方括号(
构造子集和dimnames ()
将默认情况下工作。
中包含的数据集的元素ExperimentList
可以有:
列名称对应于样品,用于匹配试验数据样本存储在元数据colData
。
行名称可以对应不同的功能在数据包括但不限于基因名称、调查id,蛋白质,和命名范围。请注意,“行”名字的存在不意味着数据必须是矩形或矩阵像。
类中包含的ExperimentList
必须支持以下列表的方法:
(
:一个方括号构造子集,一个逗号。假设值行,逗号前的子集和价值观逗号后列的子集。dimnames ()
:相应的特性(如基因、蛋白质等)和实验样本昏暗的()
:返回一个向量的行数和列数colData
:主数据的MultiAssayExperiment
让一组“主”的元数据描述的“生物单位”可以指标本,实验对象,患者,等等。在这个故事中,我们将参考每个实验对象病人。
colData
槽的要求的colData
数据集应该上课DataFrame
但可以接受data.frame
类对象,将强迫。
为了生物单元的相关元数据,该行的名字colData
数据集必须包含病人标识符。
病人。数据< - data.frame(性= c (“M”、“F”、“M”,“F”),年龄= 38:41 row.names = c(“杰克”,“吉尔”、“Bob”,“芭芭拉”))patient.data
# #性别年龄38 # # # #杰克米吉尔F 39 # #鲍勃40 M F 41 # #芭芭拉
重点:
colData
可以映射到零个、一个或多个列ExperimentList
元素colData
必须映射到至少一个列在至少一个ExperimentList
元素。ExperimentList
元素必须映射到完全一行的colData
。这些关系的定义sampleMap。
DataFrame
许多典型的目的DataFrame
和data.frame
行为等价;但是,Dataframe
更灵活,因为它允许任何向量数据类型存储在其列。的灵活性DataFrame
许可证,例如,存储多个剂量反应值一个细胞系,即使剂量和响应的数量是不一致的在所有的细胞系。剂量可能存储在一个列colData
作为一个SimpleList
,和响应在另一列,也作为一个SimpleList
。或者,剂量反应可以存储在一个单一的列值colData
作为一个两列矩阵每个细胞株。
sampleMap
相关的:colData
到多个化验的sampleMap
是一个DataFrame
与“主”的数据(colData
实验分析):
(sampleMap(空)、“DataFrame”) #真的吗
# # [1]
的sampleMap
提供了一个明确的地图从每个实验观察到有且只有一个行colData
。然而,容许一行colData
与多个实验观察或有关任何观测。换句话说,有一个“多对一”映射从实验观测到的行colData
和“one-to-any-number”从一排排的映射colData
实验观察。
sampleMap
结构的sampleMap
三列,列名如下:
分析提供的名称不同的实验/试验进行。这些都是用户定义的,唯一要求的名称ExperimentList
实验分析存储,必须包含在本专栏。
主提供了“主”样本的名字。在本专栏中所有值也必须rownames的礼物colData (MultiAssayExperiment)
。在这个例子中,许用值在本专栏“杰克”,“吉尔”,“芭芭拉”,“鲍勃”。
colname提供了样本实验数据集使用的名称,它在实践中往往不同于主样本的名字。对于每个检测,所有的列名必须在本专栏中找到。否则,这些化验是孤儿:不可能匹配样本在整个实验。正如上面提到的,允许重复的值,代表复制相同的整体实验层次注释。
这个设计是出于以下情况:
sampleMap
不提供如果每个试验使用相同的colnames(即。,if the same sample identifiers are used for each experiment), a simple list of these datasets is sufficient for theMultiAssayExperiment
构造函数。没有必要让他们有相同的rownames或colnames:
exprss1 < -矩阵(rnorm (16), ncol = 4, dimnames =列表(sprintf (“ENST00000%i”,示例(288754:290000 4)),c(“杰克”,“吉尔”、“Bob”、“鲍比”)))exprss2 < -矩阵(rnorm (12), ncol = 3, dimnames =列表(sprintf (“ENST00000%i”,示例(288754:290000 4)),c(“杰克”、“简”、“Bob”))) doubleExp < -列表(“甲基2 k = exprss1甲基3 k = exprss2) simpleMultiAssay < - MultiAssayExperiment simpleMultiAssay(实验= doubleExp)
上市# # # # MultiAssayExperiment对象2实验用用户定义的名称和相应的类。# #包含ExperimentList类对象的长度2:# #[1]甲基2 k:矩阵有4行4列# #[2]甲基3 k:矩阵有4行3列# #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
在上面的例子中,用户没有提供colData
参数的构造函数里面装满了一个空DataFrame
:
colData (simpleMultiAssay)
# # DataFrame 5 0行和列
但是,colData
可以提供。这里,请注意任何化验样本(列)中的不能映射到一个相应的行colData
会下降。这是确保内部效度的部分MultiAssayExperiment
。
simpleMultiAssay2 < - MultiAssayExperiment(实验= doubleExp colData = patient.data)
# #警告:数据从ExperimentList(元素-列):# #甲基2 k -鲍比# #甲基3 k -简# # colData无法映射到行
# #协调输入:# #删除1 colData rownames不在sampleMap“主”
simpleMultiAssay2
上市# # # # MultiAssayExperiment对象2实验用用户定义的名称和相应的类。# #包含ExperimentList类对象的长度2:# #[1]甲基2 k:矩阵有4行3列# #[2]甲基3 k:具有4行2列的矩阵# #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
colData (simpleMultiAssay2)
# # DataFrame 3行2列# # # #性别年龄<人物> <整数> 38 # # # #杰克米吉尔F 39 # #鲍勃40米
可以添加元数据在不同的水平MultiAssayExperiment
。
可以的任何类,用于存储study-wide元数据,比如引用信息。为空MultiAssayExperiment
对象,它是空的。
类(元数据(空的))#空(类“任何”)
# #[1]“列表”
在ExperimentList
水平,元数据
功能将允许用户输入作为元数据列表
。
元数据(实验(空的))
# #列表()
在个体分析水平,某些类可能支持元数据,例如,元数据
和mcols
对于一个SummarizedExperiment
。推荐使用元数据
在ExperimentList
的水平。
MultiAssayExperiment
对象:丰富的例子在本节中,我们证明所有核心支持数据类,使用不同的样本ID约定对于每个试验,主要colData
。一些支持类等,矩阵
,SummarizedExperiment
,RangedSummarizedExperiment
。
我们有三个矩阵像数据集。首先,让我们代表表达数据SummarizedExperiment
:
(arraydat < -矩阵(seq (101、108), ncol = 4, dimnames =列表(c (“ENST00000294241”、“ENST00000355076”), c (“array1”、“array2”,“array3”、“array4”))))
# # # # array1 array2 array3 array4 ENST00000294241 101 103 105 107 102 104 106 108 # # ENST00000355076
coldat < - data.frame (slope53 = rnorm (4), row.names = c (“array1”、“array2”、“array3”、“array4”)) exprdat < - SummarizedExperiment exprdat (arraydat, colData = coldat)
# # # #类:SummarizedExperiment暗淡:2 4 # #元数据(0):# #化验(1):“# # rownames (2): ENST00000294241 ENST00000355076构成了rowData名称(0):# # # # colnames (4): array1 array2 array3 array4 # # colData名称(1):slope53
下面的地图匹配colData
样品名称exprdata
样品名称。注意,命令行最初不匹配,这是好的。
(exprmap < - data.frame(主= rownames (patient.data) [c (1、2、4、3)], colname = c (“array1”、“array2”,“array3”、“array4”), stringsAsFactors = FALSE))
# #主要colname杰克array1 # # 1 # #芭芭拉array3 2吉尔array2 # # 3 # # 4鲍勃array4
现在甲基化数据,我们将代表作为一个矩阵
。它使用基因标识符,但措施部分重叠的一组基因。现在,让我们来存储这个作为一个简单的矩阵可以包含一个复制的一个病人。
(methyldat < -矩阵(1:10,ncol = 5, dimnames =列表(c (“ENST00000355076”、“ENST00000383706”), c (“methyl1”、“methyl2”,“methyl3”、“methyl4”、“methyl5”))))
# # # # methyl1 methyl2 methyl3 methyl4 methyl5 ENST00000355076 1 3 5 7 9 # # ENST00000383706 2 4 6 8 10
下面的地图匹配colData
样品名称methyldat
样品名称。
(methylmap < - data.frame(主= c(“杰克”,“杰克”,“吉尔”,“芭芭拉”,“鲍勃”),colname = c (“methyl1”、“methyl2”,“methyl3”、“methyl4”、“methyl5”), stringsAsFactors = FALSE))
# #主要colname杰克methyl1 # # 1 # # 2杰克methyl2吉尔methyl3 # # 3 # # 4芭芭拉methyl4 # # 5鲍勃methyl5
现在我们有一个microRNA的平台,没有共同的标识符与其他数据集,我们也代表矩阵
。它也为“吉尔”缺失的数据。我们将使用相同的示例命名约定是数组。
(microdat < -矩阵(201:212 ncol = 3, dimnames =列表(c (“hsa-miR-21”、“hsa - mir - 191”,“hsa - mir - 148 a”、“hsa-miR148b”), c (“micro1”、“micro2”,“micro3”))))
# # micro1 micro2 micro3 # # hsa-miR-21 201 205 209 # # hsa - mir - 191 202 206 210 # # hsa - mir - 148 - 203 207 211 # # hsa-miR148b 204 208 212
和下面的地图匹配colData
样品名称microdat
样品名称。
(micromap < - data.frame(主= c(“杰克”,“芭芭拉”,“鲍勃”),colname = c (“micro1”、“micro2”,“micro3”), stringsAsFactors = FALSE))
# #主要colname杰克micro1 # # 1 # # 2芭芭拉micro2 # # 3鲍勃micro3
最后,我们创建一个数据集的类RangedSummarizedExperiment
:
nrows < - 5;ncols < - 4计数< -矩阵(runif (e4 nrows * ncols 1 1), nrows) rowRanges < -农庄(代表(c (“chr1”、“chr2”), c (2, nrows - 2)), IRanges(地板(runif (nrows 1 e5 1 e6)),宽度= 100),链=样本(c (“+”,“-”), nrows,真的),feature_id = sprintf (“ID \ \ % 03 d”, 1: nrows))的名字(rowRanges) < -信[1:5]colData < - DataFrame(治疗=代表(c(“芯片”,“输入”),2),row.names = c (“mysnparray1”、“mysnparray2”、“mysnparray3”、“mysnparray4”))交易所< - SummarizedExperiment(化验= SimpleList(数量=计数),rowRanges = rowRanges colData = colData)
我们地图colData
样品的RangedSummarizedExperiment
:
(rangemap < - data.frame(主= c(“杰克”,“吉尔”、“Bob”,“芭芭拉”),colname = c (“mysnparray1”、“mysnparray2”,“mysnparray3”、“mysnparray4”), stringsAsFactors = FALSE))
# # 1 # #主要colname杰克mysnparray1 # # 2吉尔mysnparray2鲍勃mysnparray3 # # 3 # # 4芭芭拉mysnparray4
sampleMap
创建的MultiAssayExperiment
构造函数可以创建sampleMap
自动如果使用一个命名约定,但是在这个例子中它不能因为我们使用特定于平台的样品标识符(如mysnparray1等)。所以我们必须提供一个ID映射匹配每个实验的样品回colData
作为一个三列data.frame
或DataFrame
有三个列命名为“分析”,主要”,和“colname”。这里我们从一个列表:
listmap < -列表(exprmap、methylmap micromap, rangemap)名称(listmap) < - c (“Affy”、“甲基450 k”,“microrna的”,“CNV gistic”) listmap
Affy美元# # # #主要colname杰克array1 # # 1 # #芭芭拉array3 2吉尔array2 # # 3 # # 4鲍勃array4 # # # #的甲基450 k美元杰克methyl1主colname # # # # 1 # # 2杰克methyl2 # # 3吉尔methyl3 # # 4芭芭拉methyl4鲍勃methyl5 # # 5 # # # # $ microrna的# #主要colname杰克micro1 # # 1 # # 2芭芭拉micro2鲍勃micro3 # # 3 # # # # $ # #的CNV gistic主要colname杰克mysnparray1 # # 1 # # 2吉尔mysnparray2鲍勃mysnparray3 # # 3 # # 4芭芭拉mysnparray4
和使用方便的功能listToMap
转换的列表data.frame
有效的对象的对象sampleMap
:
dfmap < - listToMap dfmap (listmap)
# # DataFrame 16行3列# #试验主要colname # # <因素> <人物> <人物> # # 1 Affy杰克array1 # # 2 Affy吉尔array2 # # 3 Affy芭芭拉array3 # # 4 Affy鲍勃array4 # # 5甲基450 k杰克methyl1 # #……# # 12 microrna的鲍勃micro3 # # 13 CNV gistic杰克mysnparray1 # # 14 CNV gistic吉尔mysnparray2 # # 15 CNV gistic鲍勃mysnparray3 # # 16 CNV gistic芭芭拉mysnparray4
请注意,dfmap
可以恢复到与另一个列表提供的功能:
mapToList (dfmap“分析”)
列表()
创建一个命名的实验列表MultiAssayExperiment
函数。所有这些名字必须找到在第三列dfmap
:
objlist < -列表(“Affy”= exprdat“甲基450 k = methyldat = microdat“microrna的”,“CNV gistic”=的比例
MultiAssayExperiment
类对象我们建议使用MultiAssayExperiment
构造函数:
myMultiAssay < - MultiAssayExperiment (objlist,耐心。数据,myMultiAssay dfmap)
# # MultiAssayExperiment对象列出的4 # #实验用用户定义的名称和相应的类。# #包含ExperimentList类对象的长度4:# # [1]Affy: SummarizedExperiment 2行4列# #[2]甲基450 k:矩阵2行5列# # [3]microrna:矩阵有4行3列# # [4]CNV gistic: RangedSummarizedExperiment 5行4列# #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
下面的器函数可以用来获取从对象中提取数据:
实验(myMultiAssay)
# # ExperimentList类对象的长度4:# # [1]Affy: SummarizedExperiment 2行4列# #[2]甲基450 k:矩阵2行5列# # [3]microrna:矩阵有4行3列# # [4]CNV gistic: RangedSummarizedExperiment 5行4列
colData (myMultiAssay)
# # DataFrame 4行2列# # # #性别年龄<人物> <整数> 38 # # # #杰克米吉尔F 39 # #鲍勃40 M F 41 # #芭芭拉
sampleMap (myMultiAssay)
# # DataFrame 16行3列# #试验主要colname # # <因素> <人物> <人物> # # 1 Affy杰克array1 # # 2 Affy吉尔array2 # # 3 Affy芭芭拉array3 # # 4 Affy鲍勃array4 # # 5甲基450 k杰克methyl1 # #……# # 12 microrna的鲍勃micro3 # # 13 CNV gistic杰克mysnparray1 # # 14 CNV gistic吉尔mysnparray2 # # 15 CNV gistic鲍勃mysnparray3 # # 16 CNV gistic芭芭拉mysnparray4
元数据(myMultiAssay)
# #列表()
请注意,ExperimentList
类扩展了SimpleList
类来添加一些特定于有效性检查MultiAssayExperiment
。它可以像一个列表。
MultiAssayExperiment
对象的prepMultiAssay
在创建函数有助于诊断常见的问题MultiAssayExperiment
对象。它提供了错误信息和/或警告(无论是在实例名称colnames
或ExperimentList
元素名称)与sampleMap中发现的不一致。输入参数是相同的MultiAssayExperiment
(例如,ExperimentList
,colData
,sampleMap
)。结果的输出prepMultiAssay
函数是一个列表的输入,包括“元数据下降美元”元素的名称无法匹配。
例子ExperimentList
没有创建名称会提示一个错误prepMultiAssay
。命名ExperimentList
元素是必不可少的检查MultiAssayExperiment
。
objlist3 < - objlist(名称(objlist3) < -零)
# #空
试(prepMultiAssay (objlist3,耐心。数据、dfmap)美元实验,outFile = stdout())
# # prepMultiAssay误差(objlist3,耐心。数据,dfmap): # # ExperimentList没有名称,指定名称
也可能出现在匹配的名称ExperimentList
元素的“试验”专栏sampleMap
。如果名字只相差是相同的和独特的,名字将标准化小写和取代。
名(objlist3) < - toupper(名称(objlist))名称(objlist3)
# # [1]“AFFY”“甲基450 k”“microrna的”“CNV GISTIC”
独特(dfmap[,“分析”)
# # [1]Affy甲基450 k microrna的CNV gistic # #级别:Affy甲基450 k microrna的CNV gistic
prepMultiAssay (objlist3,耐心。数据、dfmap)美元实验
ExperimentList # # # #名不匹配sampleMap化验# #标准化将尝试……
# # -名称设置为小写
# # ExperimentList类对象的长度4:# # [1]affy: SummarizedExperiment 2行4列# #[2]甲基450 k:矩阵2行5列# # [3]microrna:矩阵有4行3列# # [4]cnv gistic: RangedSummarizedExperiment 5行4列
当colnames
在ExperimentList
不能匹配回到主数据(colData
),这些将被删除和添加到元素。
exampleMap < - sampleMap (simpleMultiAssay2)酸式焦磷酸钠(doubleExp colnames)
# # $甲基2 k的# #[1]“杰克”“吉尔”“Bob”“鲍比”# # # # $甲基3 k的# #[1]“杰克”“Jane”“Bob”
exampleMap
# # DataFrame 5行3列# #试验主要colname # # <因素> <人物> <人物> # # 1甲基2 k杰克杰克# # 2甲基2 k吉尔吉尔# # 3甲基2 k鲍勃鲍勃# # 4甲基3 k杰克杰克# # 5甲基3 k鲍勃鲍勃
prepMultiAssay (doubleExp,耐心。数据、exampleMap)元美元下降
# # # #不是所有colnames ExperimentList在# # sampleMap,减少样本ExperimentList……
# # $甲基2 k的# #[1]“鲍比”# # # # $甲基3 k的# #[1]“简”
# # $”列。甲基2 k的# #[1]“鲍比”# # # # $的列。甲基3 k的# #[1]“简”
执行类似的操作检查“主”sampleMap
名称和colData
rownames。在这个例子中,我们添加一行对应于“乔”,没有一个匹配的实验数据。
exMap < - rbind (dfmap DataFrame(化验=“新甲”,主要=“乔”,colname =“乔”))不可见(prepMultiAssay (objlist,耐心。数据,exMap))
# #警告prepMultiAssay (objlist,耐心。数据,exMap):## Lengths of names in the ExperimentList and sampleMap ## are not equal
# # # #不是所有名字的主要列sampleMap # #可以匹配到colData rownames;看到美元下跌
# # DataFrame 1行3列# #试验主要colname # # <因素> <人物> <人物> # # 1新甲基乔乔
创建一个MultiAssayExperiment
的结果prepMultiAssay
函数,每个对应元素的结果列表,输入参数MultiAssayExperiment
构造函数。
预备< - prepMultiAssay (objlist,耐心。数据,exMap)
# #警告prepMultiAssay (objlist,耐心。数据,exMap):## Lengths of names in the ExperimentList and sampleMap ## are not equal
# # # #不是所有名字的主要列sampleMap # #可以匹配到colData rownames;看到美元下跌
# # DataFrame 1行3列# #试验主要colname # # <因素> <人物> <人物> # # 1新甲基乔乔
preppedMulti < - MultiAssayExperiment(预备实验,预备colData美元,预备sampleMap美元,准备接受美元元数据)preppedMulti
# # MultiAssayExperiment对象列出的4 # #实验用用户定义的名称和相应的类。# #包含ExperimentList类对象的长度4:# # [1]Affy: SummarizedExperiment 2行4列# #[2]甲基450 k:矩阵2行5列# # [3]microrna:矩阵有4行3列# # [4]CNV gistic: RangedSummarizedExperiment 5行4列# #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
另外,使用do.call
轻松地创建一个函数MultiAssayExperiment
从输出的prepMultiAssay
功能:
do.call(MultiAssayExperiment, prepped)
# # MultiAssayExperiment对象列出的4 # #实验用用户定义的名称和相应的类。# #包含ExperimentList类对象的长度4:# # [1]Affy: SummarizedExperiment 2行4列# #[2]甲基450 k:矩阵2行5列# # [3]microrna:矩阵有4行3列# # [4]CNV gistic: RangedSummarizedExperiment 5行4列# #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
Bioconductor
类从原始数据最近的更新GenomicRanges
和SummarizedExperiment
包允许用户创建标准Bioconductor从原始数据类。原始数据读入data.frame
或DataFrame
可以转换为GRangesList
或SummarizedExperiment
根据数据类型的类。
函数创建一个GRangesList
从一个data.frame
,被称为makeGRangesListFromDataFrame
可以找到的吗GenomicRanges
包中。makeSummarizedExperimentFromDataFrame
是可用的SummarizedExperiment
包中。也可以创建一个RangedSummarizedExperiment
类对象从原始数据在远程数据是可用的。
一个简单的例子可以从函数文档获得GenomicRanges
:
grlls < -列表(对应=代表(“chr1 nrows),开始= >(11、15),结束= seq(12、16),链= c(“+”、“-”、“+”、“*”、“*”),得分= seq(1、5),标本= c (“a”、“a”、“b”,“b”,“c”), gene_symbols = paste0(“基因”,字母(seq_len (nrows)])) grldf < - as.data.frame (grlls stringsAsFactors = FALSE) GRL < makeGRangesListFromDataFrame (grldf,分裂。场=“标本”,名字。场= " gene_symbols”)
这可以被转换成一个RaggedExperiment
对象的矩形表示将更容易遵守MultiAssayExperiment
API要求。
RaggedExperiment (GRL)
# # # #类:RaggedExperiment暗淡:5 3 # #化验(0):# # rownames(5):日内瓦GENEb GENEc基因GENEe # # colnames (3): a b c # # colData名称(0):
请注意。看到RaggedExperiment
装饰图案为更多的细节。
在SummarizedExperiment
包:
sels < -列表(对应=代表(“chr2 nrows),开始= >(11、15),结束= seq(12、16),链= c (“+”、“-”、“+”、“*”、“*”), expr0 = seq (3、7), expr1 = seq (8、12), expr2 = seq (12、16)) sedf < - as.data.frame (sels, row.names = paste0(“基因”,字母(牧师(seq_len (nrows)))), stringsAsFactors = FALSE) sedf
# #杆开始结束链expr0 expr1 expr2 # # GENEe chr2 11 12 + 3 8 12 # #基因chr2 12 13 - 4 9 13 # # GENEc chr2 13 14 + 5 10 14 # # GENEb chr2 14 15 * 6 11 15 # #日内瓦chr2 15 16 * 12 7
makeSummarizedExperimentFromDataFrame (sedf)
# # # #类:RangedSummarizedExperiment暗淡:5 3 # #元数据(0):# #化验(1):“# # rownames (5): GENEe基因GENEc GENEb日内瓦构成了rowData名称(0):# # # # colnames (3): expr0 expr1 expr2 # # colData名称(0):
MultiAssayExperiment
允许构造子集的行、列和化验,同时rownames, colnames,所有实验,同时保证继续匹配样本。
方括号构造子集可以做最简洁的方法,或更啰嗦地和更灵活subsetBy * ()
方法。
(
括号内的三个职位操作符显示的行,列,和化验,分别(伪代码):
myMultiAssay(行、列、化验)
例如,选择基因“ENST00000355076”:
myMultiAssay (“ENST00000355076”,)
# #协调输入:# #删除7 sampleMap行不是名字(实验)
上市# # # # MultiAssayExperiment对象2实验用用户定义的名称和相应的类。# #包含ExperimentList类对象的长度2:# # [1]Affy: SummarizedExperiment 1行4列# #[2]甲基450 k:矩阵的行和列5 # #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
以上操作在所有类型的化验工作,是否实名(如。矩阵
,ExpressionSet
,SummarizedExperiment
)或基于范围(如。RangedSummarizedExperiment
)。注意,当使用支架的方法(
,论点是下降真正的默认情况下。
子集可以通过行、列和化验在单个支架手术,他们将在这个顺序进行(行、列,然后分析)。下面的选择ENST00000355076
基因在所有样本,然后第一个两个样品的测定,最后Affy和甲基450 k化验:
myMultiAssay [“ENST00000355076”, 1:2, c (“Affy”、“甲基450 k”))
# #协调输入:# #删除3 sampleMap行不是名字(实验)
上市# # # # MultiAssayExperiment对象2实验用用户定义的名称和相应的类。# #包含ExperimentList类对象的长度2:# # [1]Affy: SummarizedExperiment 1行2列# #[2]甲基450 k:矩阵1行3列# #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
通过列字、整数和逻辑都是允许的,例如:
myMultiAssay(“杰克”,)
# # MultiAssayExperiment对象列出的4 # #实验用用户定义的名称和相应的类。# #包含ExperimentList类对象的长度4:# # [1]Affy: SummarizedExperiment 2行1列# #[2]甲基450 k:矩阵2行2列# # [3]microrna:矩阵有4行1列# # [4]CNV gistic: RangedSummarizedExperiment 5行1列# #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
myMultiAssay [1]
# # MultiAssayExperiment对象列出的4 # #实验用用户定义的名称和相应的类。# #包含ExperimentList类对象的长度4:# # [1]Affy: SummarizedExperiment 2行1列# #[2]甲基450 k:矩阵2行2列# # [3]microrna:矩阵有4行1列# # [4]CNV gistic: RangedSummarizedExperiment 5行1列# #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
myMultiAssay [c(真的,假的,假的,假的))
# # MultiAssayExperiment对象列出的4 # #实验用用户定义的名称和相应的类。# #包含ExperimentList类对象的长度4:# # [1]Affy: SummarizedExperiment 2行1列# #[2]甲基450 k:矩阵2行2列# # [3]microrna:矩阵有4行1列# # [4]CNV gistic: RangedSummarizedExperiment 5行1列# #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
分析-字符,整数,和逻辑允许:
myMultiAssay (,“microrna的”)
# #协调输入:# #删除13 sampleMap行不是名字(实验)# #删除1 colData rownames不在sampleMap“主”
# # MultiAssayExperiment对象1 # #列出实验与一个用户定义的名称和各自的类。包含ExperimentList类对象的长度是1 # #:# # [1]microrna:矩阵有4行3列# #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
myMultiAssay [3],
# #协调输入:# #删除13 sampleMap行不是名字(实验)# #删除1 colData rownames不在sampleMap“主”
# # MultiAssayExperiment对象1 # #列出实验与一个用户定义的名称和各自的类。包含ExperimentList类对象的长度是1 # #:# # [1]microrna:矩阵有4行3列# #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
myMultiAssay [,, c(假的,假的,真的,假的,假的))
# #协调输入:# #删除13 sampleMap行不是名字(实验)# #删除1 colData rownames不在sampleMap“主”
# # MultiAssayExperiment对象1 # #列出实验与一个用户定义的名称和各自的类。包含ExperimentList类对象的长度是1 # #:# # [1]microrna:矩阵有4行3列# #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
指定= FALSE下降
与零行或零化验列,例如:
myMultiAssay [“ENST00000355076”,,, = FALSE)
# # MultiAssayExperiment对象列出的4 # #实验用用户定义的名称和相应的类。# #包含ExperimentList类对象的长度4:# # [1]Affy: SummarizedExperiment 1行4列# #[2]甲基450 k:矩阵的行和列5 # # [3]microrna:矩阵为0行3列# # [4]CNV gistic: RangedSummarizedExperiment为0行4列# #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
使用默认= TRUE下降
化验,没有行或列删除:
myMultiAssay [“ENST00000355076”,,, = TRUE)
# #协调输入:# #删除7 sampleMap行不是名字(实验)
上市# # # # MultiAssayExperiment对象2实验用用户定义的名称和相应的类。# #包含ExperimentList类对象的长度2:# # [1]Affy: SummarizedExperiment 1行4列# #[2]甲基450 k:矩阵的行和列5 # #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
实验样本存储在的行colData
但列的元素ExperimentList
列,所以当我们将构造子集,我们指的是列的实验分析。构造子集样品/列将召回后更加明显colData
:
colData (myMultiAssay)
# # DataFrame 4行2列# # # #性别年龄<人物> <整数> 38 # # # #杰克米吉尔F 39 # #鲍勃40 M F 41 # #芭芭拉
构造子集的样本确定所选样本行colData DataFrame,然后选择所有列ExperimentList
对应于这些行。这里我们用一个整数来保持colData的前两行,和所有相关实验分析两个主要样本:
myMultiAssay [1:2]
# # MultiAssayExperiment对象列出的4 # #实验用用户定义的名称和相应的类。# #包含ExperimentList类对象的长度4:# # [1]Affy: SummarizedExperiment 2行2列# #[2]甲基450 k:矩阵2行3列# # [3]microrna:矩阵有4行1列# # [4]CNV gistic: RangedSummarizedExperiment 2 5行和列# #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
注意,上面的操作使不同数量的列/每个样本分析,反映出现实一些样品可能没有被化验在所有的实验中,并有可能在一些复制。
列可以使用一个逻辑子集向量。这里的美元符号操作符(美元
访问的一个列colData
。
malesMultiAssay < - myMultiAssay [myMultiAssay性= =“M”美元]colData (malesMultiAssay)
# # DataFrame 2行2列# # # #性别年龄<人物> <整数> # #杰克40 M 38 # #鲍勃·M
最后,对于特殊用例可以发挥行或列的详细控制构造子集,通过使用一个列表
或CharacterList
子集。下面创建一个CharacterList
列名的每个试验:
allsamples < - colnames allsamples (myMultiAssay)
长度4 # # # # CharacterList [[“Affy”]] array1 array2 array3 array4 # #[[“甲基450 k”]] methyl1 methyl2 methyl3 methyl4 methyl5 # # [[“microrna”]] micro1 micro2 micro3 # # [[“CNV gistic”]] mysnparray1 mysnparray2 mysnparray3 mysnparray4
现在让我们摆脱三甲基450 k数组,这些位置3,4,5:
allsamples[["甲基450 k "]] < - allsamples[[“甲基450 k”]] [3: 5] myMultiAssay [, as.list (allsamples))
# #协调输入:# #删除3 sampleMap行colname不在colnames实验
# # MultiAssayExperiment对象列出的4 # #实验用用户定义的名称和相应的类。# #包含ExperimentList类对象的长度4:# # [1]Affy: SummarizedExperiment 2行4列# #[2]甲基450 k:矩阵2行2列# # [3]microrna:矩阵有4行3列# # [4]CNV gistic: RangedSummarizedExperiment 5行4列# #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
subsetByColumn (myMultiAssay as.list (allsamples)) #等价的
# #协调输入:# #删除3 sampleMap行colname不在colnames实验
# # MultiAssayExperiment对象列出的4 # #实验用用户定义的名称和相应的类。# #包含ExperimentList类对象的长度4:# # [1]Affy: SummarizedExperiment 2行4列# #[2]甲基450 k:矩阵2行2列# # [3]microrna:矩阵有4行3列# # [4]CNV gistic: RangedSummarizedExperiment 5行4列# #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
您可以选择某些化验/实验使用子集,通过提供一个性格,逻辑,或整数向量。使用角色:一个例子
myMultiAssay [,, c (“Affy”、“CNV gistic”))
# #协调输入:# #删除8 sampleMap行不是名字(实验)
上市# # # # MultiAssayExperiment对象2实验用用户定义的名称和相应的类。# #包含ExperimentList类对象的长度2:# # [1]Affy: SummarizedExperiment 2行4列# # [2]CNV gistic: RangedSummarizedExperiment 5行4列# #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
您可以使用逻辑子集化验也或整数向量:
is.cnv < - grepl (CNV,名称(实验(myMultiAssay))) is.cnv
# #[1]假假假真
myMultiAssay, is.cnv #逻辑构造子集
# #协调输入:# #删除12 sampleMap行不是名字(实验)
# # MultiAssayExperiment对象1 # #列出实验与一个用户定义的名称和各自的类。包含ExperimentList类对象的长度是1 # #:# # [1]CNV gistic: RangedSummarizedExperiment 5行4列# #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
myMultiAssay [,, (is.cnv)] #整数构造子集
# #协调输入:# #删除12 sampleMap行不是名字(实验)
# # MultiAssayExperiment对象1 # #列出实验与一个用户定义的名称和各自的类。包含ExperimentList类对象的长度是1 # #:# # [1]CNV gistic: RangedSummarizedExperiment 5行4列# #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
行分析对应的试验特性或测量,如基因。无论基于id的分析(例如,矩阵
,ExpressionSet
)或基于范围(例如,RangedSummarizedExperiment
),他们可以使用下列部分:
一个特征向量的id匹配rownames在每个试验
一个整数向量这将从每个试验选择行这个职位。这可能没有意义,除非每个ExperimentList
元素表示相同的测量相同的顺序,将生成一个错误如果任何整数元素超过在任何的行数ExperimentList
元素。最可能的使用作为一个整数构造子集头
功能,例如看每个试验的前6行。
一个逻辑向量将直接传递给行构造子集为每个试验操作。
一个列表或列表匹配的元素名称ExperimentList
。构造子集列表的每个元素将被传递到底行相应的元素的子集ExperimentList
。
任何列表
或列表
输入允许选择性构造子集。构造子集是仅适用于匹配的元素名称ExperimentList
。例如,只微数据集的前两行,我们使用一个命名列表
指示元素我们想随着子集= FALSE下降
论点。
myMultiAssay(列表(microrna = 1:2),)
# # MultiAssayExperiment对象列出的4 # #实验用用户定义的名称和相应的类。# #包含ExperimentList类对象的长度4:# # [1]Affy: SummarizedExperiment 2行4列# #[2]甲基450 k:矩阵2行5列# # [3]microrna:矩阵2行3列# # [4]CNV gistic: RangedSummarizedExperiment 5行4列# #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
# #等同于subsetByRow (myMultiAssay列表(microrna = 1:2))
# # MultiAssayExperiment对象列出的4 # #实验用用户定义的名称和相应的类。# #包含ExperimentList类对象的长度4:# # [1]Affy: SummarizedExperiment 2行4列# #[2]甲基450 k:矩阵2行5列# # [3]microrna:矩阵2行3列# # [4]CNV gistic: RangedSummarizedExperiment 5行4列# #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
再一次,这些操作总是返回一个MultiAssayExperiment
类,除非= TRUE下降
传递给(
与任何backet子集ExperimentList
元素不包含功能零行。
例如,返回一个MultiAssayExperiment那里Affy
和甲基450 k
只包含“ENST0000035076”“行,和“microrna的”和“CNV gistic“零行(下降
参数设置为假
默认情况下在subsetBy *
):
featSub0 < - subsetByRow (myMultiAssay ENST00000355076) featSub1 < - myMultiAssay (“ENST00000355076”,放弃= FALSE) #等价。平等(featSub0 featSub1)
# # [1]
类(featSub1)
# # [1]“MultiAssayExperiment”# # attr(“包”)# # [1]“MultiAssayExperiment”
类(实验(featSub1))
# # [1]“ExperimentList”# # attr(“包”)# # [1]“MultiAssayExperiment”
实验(featSub1)
# # ExperimentList类对象的长度4:# # [1]Affy: SummarizedExperiment 1行4列# #[2]甲基450 k:矩阵的行和列5 # # [3]microrna:矩阵为0行3列# # [4]CNV gistic: RangedSummarizedExperiment 0行和4列
在下面,Affy
SummarizedExperiment
保持两行,但顺序颠倒,甲基450 k
仅保留其第二行。
featSubsetted < - subsetByRow (myMultiAssay, c (“ENST00000355076”、“ENST00000294241”))测定(myMultiAssay 1升)
# # # # array1 array2 array3 array4 ENST00000294241 101 103 105 107 102 104 106 108 # # ENST00000355076
分析(featSubsetted 1升)
# # # # array1 array2 array3 array4 ENST00000355076 102 104 106 108 101 103 105 107 # # ENST00000294241
GenomicRanges
为MultiAssayExperiment
对象包含基于范围对象(目前RangedSummarizedExperiment
),这些可以通过一个子集农庄
对象,例如:
gr < -农庄(seqnames = c (“chr1”、“chr1”,“chr2”),链= c(“-”、“+”、“+”),范围= IRanges(开始= c(230602、443625、934533),结束= c (330701、443724、934632)))
现在构造子集。函数在这里工作IRanges: subsetByOverlaps
——看到它的灵活的类型的构造子集的参数范围。这里是前三个参数子集
,其余的传递给IRanges: subsetByOverlaps
通过“…”:
子集< - subsetByRow (gr, myMultiAssay maxgap = 2 l, type = "内部")实验(子集)
# # ExperimentList类对象的长度4:# # [1]Affy: SummarizedExperiment为0行4列# #[2]甲基450 k:矩阵为0行5列# # [3]microrna:矩阵为0行3列# # [4]CNV gistic: RangedSummarizedExperiment 0行和4列
rowRanges(子集[[4]])
使用0和1 # #农庄对象元数据列:# # seqnames范围链| feature_id # # < Rle > < IRanges > < Rle > | <人物> # # - - - - - - - # # seqinfo: 2因基因组序列;没有seqlengths
还可以使用方括号构造子集,但是传递参数IRanges: subsetByOverlaps
通过“…”是简单的使用subsetByRow ()
。
subsetByRow
,subsetByColumn
,subsetByAssay
和方括号构造子集都是“内变质”操作,他们总是返回另一个MultiAssayExperiment
对象。
双支架操作子集是指一个实验,将返回对象包含在一个ExperimentList
元素。它是不内变质。例如,第一个ExperimentList
被称为“Affy”和包含一个元素SummarizedExperiment
:
名(myMultiAssay)
# # [1]“Affy”“甲基450 k”“microrna的”“CNV gistic”
myMultiAssay [[1]]
# # # #类:SummarizedExperiment暗淡:2 4 # #元数据(0):# #化验(1):“# # rownames (2): ENST00000294241 ENST00000355076构成了rowData名称(0):# # # # colnames (4): array1 array2 array3 array4 # # colData名称(1):slope53
myMultiAssay [[" Affy "]]
# # # #类:SummarizedExperiment暗淡:2 4 # #元数据(0):# #化验(1):“# # rownames (2): ENST00000294241 ENST00000355076构成了rowData名称(0):# # # # colnames (4): array1 array2 array3 array4 # # colData名称(1):slope53
complete.cases
的complete.cases
函数返回一个逻辑向量的colData
行识别哪些主要单位对所有实验数据。回想一下,myMultiAssay
四个人提供数据:
colData (myMultiAssay)
# # DataFrame 4行2列# # # #性别年龄<人物> <整数> 38 # # # #杰克米吉尔F 39 # #鲍勃40 M F 41 # #芭芭拉
其中,只有杰克所有5实验数据:
complete.cases (myMultiAssay)
# #[1]真的假的真的真的
但所有四个完整的例Affy和甲基450 k:
complete.cases(myMultiAssay[, , 1:2])
# #协调输入:# #删除7 sampleMap行不是名字(实验)
# #[1]真的真的真的真的
这个输出可以用来选择个人完整的数据:
myMultiAssay [complete.cases (myMultiAssay))
# # MultiAssayExperiment对象列出的4 # #实验用用户定义的名称和相应的类。# #包含ExperimentList类对象的长度4:# # [1]Affy: SummarizedExperiment 2行3列# #[2]甲基450 k:矩阵和2行4列# # [3]microrna:矩阵有4行3列# # [4]CNV gistic: RangedSummarizedExperiment 5行3列# #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
复制
的复制
功能标识主
列值或生物单位有多个观察每分析
。它返回一个列表
的LogicalList
年代,表明生物单位有一个或多个复制测量。默认输出用于合并复制。
复制(myMultiAssay)
# # $ Affy # # LogicalList长度4 # #[[“杰克”]]假假假假# #[[“吉尔”]]假假假假# #[[“芭芭拉”]]假假假假# # [[“Bob”]]假假假假# # # # $甲基450 k的# # LogicalList长度4 # #[[“杰克”]]真的真的假的假的假的# #[[“吉尔”]]假假假假假# #[[“芭芭拉”]]假假假假假# # [[“Bob”]]假假假假假# # # # $ microrna的# # LogicalList长度3 # #[[“杰克”]]假假假# #[[“芭芭拉”]]假假假# # [[“Bob”]]假假假# # # # $的CNV gistic # # LogicalList长度4 # #[[“杰克”]]假假假假# #[[“吉尔”]]假假假假# # [[“Bob”]]假假假假# #[[“芭芭拉”]]假假假假的
intersectRows
的intersectRows
函数接受所有常见rownames所有实验并返回MultiAssayExperiment
与那些行。
(ensmblMatches < intersectRows (myMultiAssay [, 1:2]))
# #协调输入:# #删除7 sampleMap行不是名字(实验)
上市# # # # MultiAssayExperiment对象2实验用用户定义的名称和相应的类。# #包含ExperimentList类对象的长度2:# # [1]Affy: SummarizedExperiment 1行4列# #[2]甲基450 k:矩阵的行和列5 # #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
rownames (ensmblMatches)
长度2 # # # # CharacterList [[“Affy”]] ENST00000355076 # #[[“甲基450 k”]] ENST00000355076
intersectColumns
调用intersectColumns
返回另一个MultiAssayExperiment
列的每个元素在哪里ExperimentList
对应的行colData
。在许多情况下,该操作返回一个一对一的对应的样本为每个实验测定,除非病人中复制数据。
intersectColumns (myMultiAssay)
# # MultiAssayExperiment对象列出的4 # #实验用用户定义的名称和相应的类。# #包含ExperimentList类对象的长度4:# # [1]Affy: SummarizedExperiment 2行3列# #[2]甲基450 k:矩阵和2行4列# # [3]microrna:矩阵有4行3列# # [4]CNV gistic: RangedSummarizedExperiment 5行3列# #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
mergeReplicates
的mergeReplicates
函数允许用户指定一个函数(默认值:的意思是
在每个测定元素)结合复制列。这可以结合intersectColumns
创建一个MultiAssayExperiment
在每个实验对象与一个测量/生物单元。
mergeReplicates (intersectColumns (myMultiAssay))
# #协调输入:# #删除1 sampleMap行colname不在colnames实验
# # MultiAssayExperiment对象列出的4 # #实验用用户定义的名称和相应的类。# #包含ExperimentList类对象的长度4:# # [1]Affy: SummarizedExperiment 2行3列# #[2]甲基450 k:矩阵2行3列# # [3]microrna:矩阵有4行3列# # [4]CNV gistic: RangedSummarizedExperiment 5行3列# #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
c
的结合c
函数允许用户添加一个实验,实验已经出现在列表中MultiAssayExperiment
。如果对同一组样本的观察,c
函数可以方便地引用现有的分析,其中包含相同的订购样品的测量。
的mapFrom
论证表明什么实验相同的组织样本,将引入的新的实验数据集。如果新实验中的列数不匹配的参考实验,就会抛出一个错误。
在这里,我们介绍一个玩具动态创建的数据集:
c (myMultiAssay ExpScores =矩阵(1:8,ncol = 4,昏暗的=列表(c (“ENSMBL0001”、“ENSMBL0002”), paste0 (“pt”, 1:4))), mapFrom = 1升)
# #警告:假定列顺序提供# #数据匹配的顺序(s) colnames mapFrom的实验
# # MultiAssayExperiment对象列出的5 # #实验用用户定义的名称和相应的类。# #包含ExperimentList类对象的长度5:# # [1]Affy: SummarizedExperiment 2行4列# #[2]甲基450 k:矩阵2行5列# # [3]microrna:矩阵有4行3列# # [4]CNV gistic: RangedSummarizedExperiment 5行4列# # [5]ExpScores:矩阵和2行4列# #功能:# # # #实验()——获得ExperimentList实例colData()——主/表型DataFrame # # sampleMap()——样本协调DataFrame # #“美元”,“[”、“[[-提取colData列,子集,或实验# # *()——格式转换成一个长或宽DataFrame # #化验()——ExperimentList转换为一个矩阵的SimpleList # # exportClass()——保存所有数据文件
请注意:另外,sampleMap
可以提供额外的数据集。
器功能转换MultiAssayExperiment
成其他形式,方便分析。这些通常被称为任意构造子集后执行。
getWithColData
提供了一个分析以及任何相关“colData”列在保持试验类常量。
(affex < - getWithColData (myMultiAssay 1 l))
# #协调输入:# #删除12 sampleMap行不是名字(实验)
# # # #类:SummarizedExperiment暗淡:2 4 # #元数据(0):# #化验(1):“# # rownames (2): ENST00000294241 ENST00000355076构成了rowData名称(0):# # # # colnames (4): array1 array2 array3 array4 # # colData名称(3):slope53性别年龄
colData (affex)
# # DataFrame 4行3列# # # # slope53性年龄<数字> <人物> <整数> # # array1 -0.358624 38 # # -0.561252 array2 39 # # array3 1.493963 F 41 # # array4 1.115796 40
类(affex)
# # [1]“SummarizedExperiment”# # attr(“包”)# # [1]“SummarizedExperiment”
它将目标数据时错误类不支持colData
替代方法,也就是说,它通常使用SummarizedExperiment
和RaggedExperiment
化验和他们的扩展名。
longFormat
&wideFormat
生产长(默认)或宽DataFrame
对象。以下生产很长DataFrame
前两个化验(默认):
longFormat (myMultiAssay [, 1:2)
# #协调输入:# #删除7 sampleMap行不是名字(实验)
# # DataFrame与18行5列# #试验主要rowname colname值# # <人物> <人物> <人物> <人物> <整数> # # 1 Affy杰克ENST00000294241 array1 101 # # 2 Affy杰克ENST00000355076 array1 102 # # 3 Affy吉尔ENST00000294241 array2 103 # # 4 Affy吉尔ENST00000355076 array2 104 # # 5 Affy芭芭拉ENST00000294241 array3 105 # #………………# # 14甲基450 k吉尔ENST00000383706 methyl3 6 # # 15甲基450 k芭芭拉ENST00000355076 methyl4 7 # # 16甲基450 k芭芭拉ENST00000383706 methyl4 8 # # 17甲基450 k鲍勃ENST00000355076 methyl5 9 # # 18甲基450 k鲍勃ENST00000383706 methyl5 10
这是特别有用的执行对病人或回归样本数据colData
使用pDataCols
论点:
longFormat (myMultiAssay, 1:2, colDataCols =“年龄”)
# #协调输入:# #删除7 sampleMap行不是名字(实验)
# # DataFrame与18行6列# #试验主要rowname colname价值时代# # <人物> <人物> <人物> <人物> <整数> <整数> # # 1 Affy杰克ENST00000294241 array1 101 38 # # 2 Affy杰克ENST00000355076 array1 102 38 # # 3 Affy吉尔ENST00000294241 array2 103 39 # # 4 Affy吉尔ENST00000355076 array2 104 39 # # 5 Affy芭芭拉ENST00000294241 array3 105 41 # #…………………# # 14甲基450 k吉尔ENST00000383706 methyl3 6 39 # # 15甲基450 k芭芭拉ENST00000355076 methyl4 7 41 # # 16甲基450 k芭芭拉ENST00000383706 methyl4 8 41 # # 17甲基450 k鲍勃ENST00000355076 methyl5 9 40 # # 18甲基450 k鲍勃ENST00000383706 methyl5 10 40
“宽”格式是用于计算相关性或执行回归对不同基因的特性。宽格式与复制测量一般是不可能的,所以我们将演示在清洗MultiAssayExperiment
第一个5列:
maemerge < - mergeReplicates (intersectColumns (myMultiAssay))
# #协调输入:# #删除1 sampleMap行colname不在colnames实验
wideFormat (maemerge colDataCols =“性”)[1:5]
# # DataFrame 3行5列# #主要性Affy_ENST00000294241 Affy_ENST00000355076 # # <人物> <人物> <整数> <整数> # # 1杰克107 101 102 # # 2鲍勃·芭芭拉F 105 106 108 # # 3 # # Methyl.450k_ENST00000355076 # # <数字> # # 1 # # 2 9 # # 3 7
分析
/化验
的分析
(单数)函数接受一个特定的实验,并返回一个矩阵。默认情况下,它将返回第一个实验是一个矩阵。
分析(myMultiAssay)
# # # # array1 array2 array3 array4 ENST00000294241 101 103 105 107 102 104 106 108 # # ENST00000355076
的化验
(复数)函数返回一个SimpleList
的数据矩阵ExperimentList
:
化验(myMultiAssay)
长度4 # # # #名单(4):Affy甲基450 k microrna的CNV gistic
我们最近的工作包括实验数据的发布包,curatedTCGAData
。这个包将允许用户有选择地下载癌症数据集从癌症基因组图谱(TCGA)和表示数据MultiAssayExperiment
对象。更多细节请参见包一幕。
BiocManager::安装(“curatedTCGAData”)
rownames
和colnames
rownames
和colnames
返回一个CharacterList
行名称和列名称在所有化验。一个CharacterList
是一种有效的替代吗列表
时使用的每个元素包含一个特征向量。它还提供了一个展示方法:
rownames (myMultiAssay)
长度4 # # # # CharacterList [[“Affy”]] ENST00000294241 ENST00000355076 # #[[“甲基450 k”]] ENST00000355076 ENST00000383706 # # [[“microrna”]] hsa-miR-21 hsa - mir - 191 hsa - mir - 148 -一个hsa-miR148b # # [[“CNV gistic”]] a b c d e
colnames (myMultiAssay)
长度4 # # # # CharacterList [[“Affy”]] array1 array2 array3 array4 # #[[“甲基450 k”]] methyl1 methyl2 methyl3 methyl4 methyl5 # # [[“microrna”]] micro1 micro2 micro3 # # [[“CNV gistic”]] mysnparray1 mysnparray2 mysnparray3 mysnparray4
在任何数据类ExperimentList
对象必须支持以下方法:
dimnames
(
昏暗的()
这是如果不的方法之一:
objlist2 < - objlist objlist2 [[2]] < - as.vector (objlist2[[2]])尝试(MultiAssayExperiment (objlist2,耐心。数据、dfmap),输出文件= stdout ())
# # validObject误差(.Object):无效类“ExperimentList”对象:# #元素[2]类“整数”没有兼容的方法(s): [
有关的正式API的更多信息MultiAssayExperiment
,请参阅API维基文档在GitHub上。一个API包在GitHub通过可供下载安装(“waldronlab / MultiAssayShiny”)
。它提供了视觉探索可用的方法MultiAssayExperiment
。
下面的方法定义MultiAssayExperiment
:
方法(class = " MultiAssayExperiment”)
# # [1][[< - $ $ < - # # [5][[[[< - anyReplicated化验# #[9]化验c强迫colData # # [13] colData < -完成。c一个ses dimnames experiments ## [17] experiments<- exportClass hasRowRanges isEmpty ## [21] length mergeReplicates metadata metadata<- ## [25] names names<- replicated sampleMap ## [29] sampleMap<- show subsetByAssay subsetByColData ## [33] subsetByColumn subsetByRow updateObject ## see '?methods' for accessing help and source code
我们兴奋地宣布官方MultiAssayExperiment的引用癌症研究。
引用(“MultiAssayExperiment”)
# # # #在出版物引用MultiAssayExperiment使用:# # # #马塞尔·拉莫斯等。软件的集成在Bioconductor Multiomics # #实验。癌症研究,2017年11月1日;# # 77 (21);e39-42。0008 - 5472 . DOI: 10.1158 /。- 17 - 0344 # # # #一个助理型乳胶用户条目是# # # # @Article{# #标题={软件集成的Multi-Omics实验Bioconductor}, # #作者={马塞尔·拉莫斯卢卡斯希弗和安吉拉再保险和Rimsha Azhar极大Basunia卡门·罗德里格斯卡布瑞拉蒂芙尼Chan和菲利普·查普曼和肖恩·戴维斯和大卫Gomez-Cabrero Aedin c . Culhane和本杰明Haibe-Kains Kasper汉森和Hanish Kodali玛丽Stephie路易和阿尔温德•辛格Mer马库斯拒绝前进和马丁·摩根和文森特·凯莉和李维沃尔德伦},# # ={}癌症研究》杂志上的# #年={2017}={# #卷77 (21);e39-42}, # #}
sessionInfo ()
# # R版本4.0.3(2020-10-10)# #平台:x86_64-pc-linux-gnu(64位)# #下运行:Ubuntu 18.04.5 LTS # # # #矩阵产品:默认# #布拉斯特区:/home/biocbuild/bbs - 3.12 - bioc / R / lib / libRblas。所以# # LAPACK: /home/biocbuild/bbs - 3.12 - bioc / R / lib / libRlapack。# # # #语言环境:# # [1]LC_CTYPE = en_US。utf - 8 LC_NUMERIC = C # #[3]而= en_US。utf - 8 LC_COLLATE = C # # [5] LC_MONETARY = en_US。utf - 8 LC_MESSAGES = en_US。utf - 8 # # [7] LC_PAPER = en_US。utf - 8 LC_NAME = C # # [9] LC_ADDRESS C = C LC_TELEPHONE = # # [11] LC_MEASUREMENT = en_US。utf - 8 LC_IDENTIFICATION = C附加基本包:# # # # # #[1]平行stats4统计图形grDevices跑龙套数据集# #[8]方法基础# # # #其他附加包:# # [1]RaggedExperiment_1.14.0 MultiAssayExperiment_1.16.0 # # [3] SummarizedExperiment_1.20.0 Biobase_2.50.0 # # [5] GenomicRanges_1.42.0 GenomeInfoDb_1.26.0 # # [7] IRanges_2.24.0 S4Vectors_0.28.0 # # [9] BiocGenerics_0.36.0 MatrixGenerics_1.2.0 # # [11] matrixStats_0.57.0 BiocStyle_2.18.0 # # # #通过加载一个名称空间(而不是附加):# # [1]pillar_1.4.6 highr_0.8 compiler_4.0.3 # # [4] BiocManager_1.30.10 XVector_0.30.0 R.methodsS3_1.8.1 # # [7] R.utils_2.10.1 bitops_1.0-6 tools_4.0.3 # # [10] zlibbioc_1.36.0 digest_0.6.27 tibble_3.0.4 # # [13] lifecycle_0.2.0 evaluate_0.14 R.cache_0.14.0 # # [16] lattice_0.20-41 pkgconfig_2.0.3 rlang_0.4.8 # # [19] Matrix_1.2-18 DelayedArray_0.16.0 yaml_2.2.1 # # [22] xfun_0.18 R.rsp_0.44.0 GenomeInfoDbData_1.2.4 # # [25] dplyr_1.0.2 stringr_1.4.0 knitr_1.30 # # [28] generics_0.0.2 vctrs_0.3.4 tidyselect_1.1.0 # # [31] grid_4.0.3 glue_1.4.2 R6_2.4.1 # # [34] rmarkdown_2.5 bookdown_0.21 purrr_0.3.4 # # [37] tidyr_1.1.2 magrittr_1.5 ellipsis_0.3.1 # # [40] htmltools_0.5.0 stringi_1.5.3 rcurl_1.98 - 1.2 # # [43] crayon_1.3.4 R.oo_1.24.0