如果你发现biomformat和/或其教程有用,请确认并引用biomformat在你们的出版物中:
保罗·j·麦克默迪和约瑟夫·N·保尔森(2015)。biomformat: BIOM文件格式的接口包。R/Bioconductor软件包1.0.0版本。
与这个面向I/ o的包相比,phyloseq有更多用于与这类数据交互的实用程序。
这是一个R计价文件.Markdown是一种简单的网页格式语法。进一步详情这里的R markdown.
BIOM文件格式(通常发音为“biome”)被设计为一种通用格式,用于通过观察列联表表示生物样本。BIOM是公认的标准地球微生物组计划并且是基因组学标准联盟候选项目。请参阅生物格式的主页欲知详情。
本演示旨在提供biom包的概述,以便快速开始使用它。biom包本身是一个实用程序包,将来其他包将依赖它。它提供了I/O功能,以及更容易处理生物格式文件中的数据的函数。它没有(可能也不应该)提供统计分析功能。但是,它确实提供了一些工具来以R中非常常见的方式访问BIOM格式文件中的数据(例如“data.frame”
,“矩阵”
,“矩阵”
类)。
包版本在这个版本的时间(Tue april 26 16:06:20 2022):
图书馆(“biomformat”);packageVersion(“biomformat”)
## [1] '1.24.0'
方法将不同类型的BIOM格式导入到R中read_biom
函数。R中的结果数据对象的名称以x
.
Min_dense_file = system。文件(“extdata”、“min_dense_otu_table。Biom ", package = "biomformat") min_sparse_file =系统。文件(“extdata”、“min_sparse_otu_table。Biom ", package = "biomformat") rich_dense_file = system。文件(“extdata”、“rich_dense_otu_table。Biom ", package = "biomformat") rich_sparse_file = system。文件(“extdata”、“rich_sparse_otu_table。Biom ", package = "biomformat") min_dense_file =系统。文件(“extdata”、“min_dense_otu_table。Biom ", package = "biomformat")文件(“extdata”、“rich_dense_char。Biom ", package = "biomformat")文件(“extdata”、“rich_sparse_char。Biom ", package = "biomformat") x1 = read_biom(min_dense_file) x2 = read_biom(min_sparse_file) x3 = read_biom(rich_dense_file) x4 = read_biom(rich_sparse_file) x5 = read_biom(rich_dense_char) x6 = read_biom(rich_sparse_char) x1
## biom对象。##类型:OTU表## matrix_type:密集## 5行,6列
在打印时,将所有数据从BIOM格式文件传输到标准输出将很难解释,并且会浪费RAM打印
或显示
方法。取而代之的是BIOM数据内容的简要摘要。
为了以适合于许多标准R函数的熟悉形式访问数据,我们将需要使用访问器函数,它也包含在biom包中。
核心“观测”数据存储在BIOM格式文件中的稀疏矩阵或密集矩阵中,并在R侧通过矩阵包.的变量x1
而且x2
,上面从BIOM文件分配的,具有相似(但不相同)的数据。它们足够小,可以直接作为R会话的标准输出中的表来观察:
biom_data (x1)
## 5 x 6矩阵类“dgeMatrix”## Sample1 Sample2 Sample3 Sample4 Sample5 Sample6 ## GG_OTU_1 0 0 1 0 0 0 0 0 0 0 ## GG_OTU_2 5 1 0 2 3 1 ## GG_OTU_3 0 0 1 4 2 0 ## GG_OTU_4 2 1 1 0 0 1 ## GG_OTU_5 0 1 1 0 0 0 0 0 0 0 0 0 0 0
biom_data (x2)
## 5 x 6稀疏矩阵类“dgCMatrix”## Sample1 Sample2 Sample3 Sample4 Sample5 Sample6 ## GG_OTU_1 .。1 .……## gg_otu_2 52 3 1 ## gg_otu_3 . .14 .答案解析:2 ## gg_otu_4 2 1 1 . .1 ## gg_otu_5;11 . .
如上图所示,x1
而且x2
在R中由略有不同的矩阵类表示,根据数据自动分配。然而,R中的大多数操作将自动理解这一点,您不必担心精确的矩阵类。但是,如果您试图使用的R函数在这些花哨的类上有问题,您可以很容易地将数据强制到简单的标准“矩阵”
类使用作为
功能:
(biom_data (x2)、“矩阵”)
## Sample1 Sample2 Sample3 Sample4 Sample5 Sample6 ## GG_OTU_1 0 0 1 0 0 0 0 0 0 ## GG_OTU_2 5 1 0 2 3 1 ## GG_OTU_3 0 0 1 4 0 2 ## GG_OTU_4 2 1 1 0 0 1 1 0 0 0 0 0 0 0 0
观测元数据是与样本中被计数/记录的单个单元相关的元数据,而不是对样本本身属性的测量。例如,对于微生物组普查数据,观察元数据通常是分类学分类和可能知道的关于特定OTU/物种的任何其他信息。对于其他类型的数据,它可能是关于特定基因组、基因家族、途径等的元数据。在本例中,观测值是OTUs的计数,元数据是分类学分类(如果有的话)。也支持没有观测元数据,就像我们看到的最小情况一样x1
而且x2
,在那里我们反而看到了。
observation_metadata (x1)
# #空
observation_metadata (x2)
# #空
observation_metadata (x3)
细菌,细菌,细菌,细菌,细菌,细菌,细菌,细菌,细菌,细菌,细菌,细菌,细菌,细菌,细菌,细菌,细菌,细菌,细菌,细菌,细菌,细菌,细菌,细菌,细菌,细菌,细菌,细菌,细菌,细菌,细菌,细菌,细菌_ methanosarcinales f__Methanosarcinaceae g__Methanosarcina ## GG_OTU_4 o__halanaerobium ## GG_OTU_5 o__Enterobacteriales f__Enterobacteriaceae g__Escherichia ##分类学_ GG_OTU_1 s_ GG_OTU_2 s_ GG_OTU_3 s_ GG_OTU_4 s_ halanaerobiumsaccharolyticum ## GG_OTU_5 s__
observation_metadata (x4) [1:2, 1:3)
细菌p__变形菌门c__Gammaproteobacteria ## GG_OTU_2 k__细菌p__蓝藻菌门c__Nostocophycideae
类(observation_metadata (x4))
## [1] "data.frame"
类似地,我们可以访问描述样本属性的元数据(如果可用的话)。方法访问此样例元数据sample_metadata
函数。
sample_metadata (x1)
# #空
sample_metadata (x2)
# #空
sample_metadata (x3)
#样品1 CGCTTATCGAGA CATGCTGCCTCCCGTAGGAGT肠道人肠道##样品2 CATACCAGTAGC CATGCTGCCTCCCGTAGGAGT肠道人肠道##样品3 CTCTCTACCTGT CATGCTGCCTCCCGTAGGAGT皮肤人皮肤##样品5 CTCTCTACCAAT CATGCTGCCTCCCGTAGGAGT皮肤人皮肤##样品6 CTAACTACCAAT CATGCTGCCTCCCGTAGGAGT皮肤人皮肤
sample_metadata (x4) [1:2, 1:3)
样本1 CGCTTATCGAGA CATGCTGCCTCCCGTAGGAGT gut ##样本2 CATACCAGTAGC CATGCTGCCTCCCGTAGGAGT gut
类(sample_metadata (x4))
## [1] "data.frame"
数据可以被其他R函数访问。
情节(biom_data (x4))
箱线图((biom_data (x4),“矢量”))
热图((biom_data (x4),“矩阵”))
属性可以将R中的biom对象写入文件/连接write_biom
函数。如果你修改了biom对象,这可能仍然有效,但不能保证这一点,因为我们仍在进行内部检查。下面的示例如下x4
到临时文件,然后使用read_biom
并将其存储为变量y
.这两个对象的精确比较使用相同的
函数表明它们在R中是完全相同的。
Outfile = tempfile() write_biom(x4, Outfile) y = read_biom(Outfile) same (x4, y)
## [1] false
此外,还可以通过R系统
函数——在本例中调用diff
命令在类unix系统或足球俱乐部
命令,以便直接比较原始文件和临时文件。请注意,为了方便起见,这里显示了这一点,但由于依赖于操作系统,因此不会自动与脚本的其余部分一起运行。但是,在开发过程中,将私下测试这个命令,并且在文件之间没有报告差异。
#在Unix操作系统上(paste0("diff ", rich_sparse_file, outfile)) #在windows系统上(paste0("FC ", rich_sparse_file, outfile))