Extracts counts, metadata, taxonomy, and phylogeny from a biom file.
Input data as either a file path, URL, or JSON string.
The default value of
Should samples and taxa with zero observations be discarded?
BIOM class object containing the parsed data. This object
can be treated as a list with the following named elements:
slam sparse matrix of observation
counts. Taxa (OTUs) as rows and samples as columns.
A data frame containing any embedded metadata. Row names are sample IDs.
Character matrix of taxonomic names, if given. Row names are taxa (OTU) IDs. Column rows are named Kingdom, Phylum, Class, Order, Family, Genus, Species, and Strain, or TaxLvl.1, TaxLvl.2, ... , TaxLvl.N when more than 8 levels of taxonomy are encoded in the biom file.
An object of class
phylo defining the
phylogenetic relationships between the taxa. Although the
official specification for BIOM only includes phylogenetic trees
in BIOM version 2.1, if a BIOM version 1.0 file includes a
phylogeny entry with newick data, then it will be loaded
here as well. The ape package has additional functions
for working with
A named character vector, where the names are taxonomic identifiers and the values are the sequences they represent. These values are not part of the official BIOM specification, but will be read and written when defined.
A list of other attributes defined in the BIOM file,
phylogeny are optional
components of the BIOM file specification and therefore will be empty
in the returned object when they are not provided by the BIOM file.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
library(rbiom) infile <- system.file("extdata", "hmp50.bz2", package = "rbiom") biom <- read.biom(infile) summary(biom) # Taxa Abundances as.matrix(biom$counts[1:4,1:4]) top5 <- names(head(rev(sort(slam::row_sums(biom$counts))), 5)) biom$taxonomy[top5,c('Family', 'Genus')] as.matrix(biom$counts[top5, 1:6]) # Metadata table(biom$metadata$Sex, biom$metadata$`Body Site`) sprintf("Mean age: %.1f", mean(biom$metadata$Age)) # Phylogenetic tree tree <- biom$phylogeny top5.tree <- rbiom::subtree(tree, top5) ape::plot.phylo(top5.tree)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.