| microtable | R Documentation |
microtable object to store and manage all the basic files.This class is a wrapper for a series of operations on the basic data manipulations,
including microtable object creation, data trimming, data filtering, rarefaction based on Paul et al. (2013) <doi:10.1371/journal.pone.0061217>, taxonomic abundance calculation,
alpha and beta diversity calculation based on the An et al. (2019) <doi:10.1016/j.geoderma.2018.09.035> and
Lozupone et al. (2005) <doi:10.1128/AEM.71.12.8228-8235.2005> and other basic operations.
Online tutorial: https://chiliubio.github.io/microeco_tutorial/
Download tutorial: https://github.com/ChiLiubio/microeco_tutorial/releases
microtable.
new()microtable$new( otu_table, sample_table = NULL, tax_table = NULL, phylo_tree = NULL, rep_fasta = NULL, auto_tidy = FALSE )
otu_tabledata.frame class; The feature abundance table; rownames are features (e.g. OTUs/ASVs/species/genes); column names are samples.
sample_tabledefault NULL; data.frame; The sample information table; rownames are samples; columns are sample metadata; If not provided, the function can generate a table automatically according to the sample names in otu_table.
tax_tabledefault NULL; data.frame class; The taxonomic information table; rownames are features; column names are taxonomic classes.
phylo_treedefault NULL; phylo class; The phylogenetic tree that must be read with the read.tree function of ape package.
rep_fastadefault NULL; DNAStringSet, list or DNAbin class; The representative sequences of OTUs/ASVs.
The sequences should be read with the readDNAStringSet function in Biostrings package (DNAStringSet class),
read.fasta function in seqinr package (list class),
or read.FASTA function in ape package (DNAbin class).
auto_tidydefault FALSE; Whether tidy the data in the microtable object automatically.
If TRUE, the function can invoke the tidy_dataset function.
an object of microtable class with the following components:
sample_tableThe sample information table.
otu_tableThe feature table.
tax_tableThe taxonomic table.
phylo_treeThe phylogenetic tree.
rep_fastaThe sequences.
taxa_abunddefault NULL; use cal_abund function to calculate.
alpha_diversitydefault NULL; use cal_alphadiv function to calculate.
beta_diversitydefault NULL; use cal_betadiv function to calculate.
data(otu_table_16S) data(taxonomy_table_16S) data(sample_info_16S) data(phylo_tree_16S) m1 <- microtable$new(otu_table = otu_table_16S) m1 <- microtable$new(sample_table = sample_info_16S, otu_table = otu_table_16S, tax_table = taxonomy_table_16S, phylo_tree = phylo_tree_16S) # trim the files in the dataset m1$tidy_dataset()
filter_pollution()Filter the features considered pollution in microtable$tax_table.
This operation will remove any line of the microtable$tax_table containing any the word in taxa parameter regardless of word case.
microtable$filter_pollution(taxa = c("mitochondria", "chloroplast"))taxadefault c("mitochondria", "chloroplast"); filter mitochondria and chloroplast, or others as needed.
updated microtable object
m1$filter_pollution(taxa = c("mitochondria", "chloroplast"))
filter_taxa()Filter the features with low abundance and/or low occurrence frequency for otu_table or taxa_abund list.
microtable$filter_taxa( rel_abund = 0, freq = 1, include_lowest = TRUE, for_taxa_abund = FALSE )
rel_abunddefault 0; the relative abundance threshold, such as 0.0001.
freqdefault 1; the occurrence frequency threshold. For example, the number 2 represents filtering the feature that occurs less than 2 times. A number smaller than 1 is also allowable. For instance, the number 0.1 represents filtering the feature that occurs in less than 10% samples.
include_lowestdefault TRUE; whether include the feature with the threshold.
for_taxa_abunddefault FALSE; whether apply this function to taxa_abund list. FALSE means using this function for otu_table
updated microtable object
\donttest{
d1 <- clone(m1)
d1$filter_taxa(rel_abund = 0.0001, freq = 0.2)
}
rarefy_samples()Rarefy communities to make all samples have same count number.
microtable$rarefy_samples(
method = c("rarefy", "SRS")[1],
sample.size = NULL,
...
)methoddefault c("rarefy", "SRS")[1]; "rarefy" represents the classical resampling like rrarefy function of vegan package.
"SRS" is scaling with ranked subsampling method based on the SRS package provided by Lukas Beule and Petr Karlovsky (2020) <DOI:10.7717/peerj.9593>.
sample.sizedefault NULL; libray size. If not provided, use the minimum number across all samples.
For "SRS" method, this parameter is passed to Cmin parameter of SRS function of SRS package.
...parameters pass to norm function of trans_norm class.
rarefied microtable object.
\donttest{
m1$rarefy_samples(sample.size = min(m1$sample_sums()))
}
tidy_dataset()Trim all the data in the microtable object to make taxa and samples consistent. The results are intersections across data.
microtable$tidy_dataset(main_data = FALSE)
main_datadefault FALSE; if TRUE, only basic data in microtable object is trimmed. Otherwise, all data,
including taxa_abund, alpha_diversity and beta_diversity, are all trimed.
None. The data in the object are tidied up.
If tax_table is in object, its row names are completely same with the row names of otu_table.
m1$tidy_dataset(main_data = TRUE)
add_rownames2taxonomy()Add the row names of microtable$tax_table as its last column.
This is especially useful when the row names of microtable$tax_table are required as a taxonomic level
for the taxonomic abundance calculation and biomarker identification.
microtable$add_rownames2taxonomy(use_name = "OTU")
use_namedefault "OTU"; The name of the column added in the tax_table.
tax_table updated in the object.
\donttest{
m1$add_rownames2taxonomy()
}
sample_sums()Sum the abundance for each sample.
microtable$sample_sums()
abundance in each sample.
\donttest{
m1$sample_sums()
}
taxa_sums()Sum the abundance for each taxon.
microtable$taxa_sums()
abundance in each taxon.
\donttest{
m1$taxa_sums()
}
sample_names()Show the sample names.
microtable$sample_names()
sample names.
\donttest{
m1$sample_names()
}
taxa_names()Show the taxa names.
microtable$taxa_names()
taxa names.
\donttest{
m1$taxa_names()
}
rename_taxa()Rename the features, including the row names of otu_table, row names of tax_table, tip labels of phylo_tree and names in rep_fasta.
microtable$rename_taxa(newname_prefix = "ASV_")
newname_prefixdefault "ASV_"; the prefix of new names; new names will be newname_prefix + numbers according to the order of row names in otu_table.
renamed object
\donttest{
m1$rename_taxa()
}
merge_samples()Merge samples according to specific groups to generate a new microtable object.
microtable$merge_samples(group)
groupa column name in sample_table of microtable object.
a merged microtable object.
\donttest{
m1$merge_samples("Group")
}
merge_taxa()Merge taxa according to a specific taxonomic rank to generate a new microtable object.
microtable$merge_taxa(taxa = "Genus")
taxadefault "Genus"; the specific rank in tax_table.
a merged microtable object.
\donttest{
m1$merge_taxa(taxa = "Genus")
}
save_table()Save each basic data in microtable object as local file.
microtable$save_table(dirpath = "basic_files", sep = ",", ...)
dirpathdefault "basic_files"; directory to save the tables, phylogenetic tree and sequences in microtable object. It will be created if not found.
sepdefault ","; the field separator string, used to save tables. Same with sep parameter in write.table function.
default ',' correspond to the file name suffix 'csv'. The option '\t' correspond to the file name suffix 'tsv'. For other options, suffix are all 'txt'.
...parameters passed to write.table.
\dontrun{
m1$save_table()
}
cal_abund()Calculate the taxonomic abundance at each taxonomic level or selected levels.
microtable$cal_abund( select_cols = NULL, rel = TRUE, merge_by = "|", split_group = FALSE, split_by = "&", split_column = NULL, split_special_char = "&&" )
select_colsdefault NULL; numeric vector (column sequences) or character vector (column names of microtable$tax_table);
applied to select columns to calculate abundances according to ordered hierarchical levels.
This parameter is very useful when only part of the columns are needed to calculate abundances.
reldefault TRUE; if TRUE, relative abundance is used; if FALSE, absolute abundance (i.e. raw values) will be summed.
merge_bydefault "|"; the symbol to merge and concatenate taxonomic names of different levels.
split_groupdefault FALSE; if TRUE, split the rows to multiple rows according to one or more columns in tax_table
when there is multiple mapping information.
split_bydefault "&"; Separator delimiting collapsed values; only available when split_group = TRUE.
split_columndefault NULL; one column name used for the splitting in tax_table for each abundance calculation;
only available when split_group = TRUE. If not provided, the function will split each column that containing the split_by character.
split_special_chardefault "&&"; special character that will be used forcibly to split multiple mapping information in tax_table by default
no matter split_group setting.
taxa_abund list in object.
\donttest{
m1$cal_abund()
}
save_abund()Save taxonomic abundance as local file.
microtable$save_abund( dirpath = "taxa_abund", merge_all = FALSE, rm_un = FALSE, rm_pattern = "__$", sep = ",", ... )
dirpathdefault "taxa_abund"; directory to save the taxonomic abundance files. It will be created if not found.
merge_alldefault FALSE; Whether merge all tables into one. The merged file format is generally called 'mpa' style.
rm_undefault FALSE; Whether remove unclassified taxa in which the name ends with '__' generally.
rm_patterndefault "__$"; The pattern searched through the merged taxonomic names. See also pattern parameter in grepl function.
Only available when rm_un = TRUE. The default "__$" means removing the names end with '__'.
sepdefault ","; the field separator string. Same with sep parameter in write.table function.
default ',' correspond to the file name suffix 'csv'. The option '\t' correspond to the file name suffix 'tsv'. For other options, suffix are all 'txt'.
...parameters passed to write.table.
\dontrun{
m1$save_abund(dirpath = "taxa_abund")
m1$save_abund(merge_all = TRUE, rm_un = TRUE, sep = "\t")
}
cal_alphadiv()Calculate alpha diversity.
microtable$cal_alphadiv(measures = NULL, PD = FALSE)
measuresdefault NULL; one or more indexes in c("Observed", "Coverage", "Chao1", "ACE", "Shannon", "Simpson", "InvSimpson", "Fisher", "Pielou");
The default NULL represents that all the measures are calculated. 'Shannon', 'Simpson' and 'InvSimpson' are calculated based on vegan::diversity function;
'Chao1' and 'ACE' depend on the function vegan::estimateR.
'Fisher' index relies on the function vegan::fisher.alpha.
"Observed" means the observed species number in a community, i.e. richness.
"Coverage" represents good's coverage. It is defined:
Coverage = 1 - \frac{f1}{n}
where n is the total abundance of a sample, and f1 is the number of singleton (species with abundance 1) in the sample. "Pielou" denotes the Pielou evenness index. It is defined:
J = \frac{H'}{\ln(S)}
where H' is Shannon index, and S is the species number.
PDdefault FALSE; whether Faith's phylogenetic diversity is calculated. The calculation depends on the function picante::pd.
Note that the phylogenetic tree (phylo_tree object in the data) is required for PD.
alpha_diversity stored in the object. The se.chao1 and se.ACE are the standard erros of Chao1 and ACE, respectively.
\donttest{
m1$cal_alphadiv(measures = NULL, PD = FALSE)
class(m1$alpha_diversity)
}
save_alphadiv()Save alpha diversity table to the computer.
microtable$save_alphadiv(dirpath = "alpha_diversity")
dirpathdefault "alpha_diversity"; directory name to save the alpha_diversity.csv file.
cal_betadiv()Calculate beta diversity dissimilarity matrix, such as Bray-Curtis, Jaccard, and UniFrac. See An et al. (2019) <doi:10.1016/j.geoderma.2018.09.035> and Lozupone et al. (2005) <doi:10.1128/AEM.71.12.8228–8235.2005>.
microtable$cal_betadiv( method = NULL, unifrac = FALSE, binary = FALSE, force_jaccard_binary = TRUE, ... )
methoddefault NULL; a character vector with one or more elements; c("bray", "jaccard") is used when method = NULL;
See the method parameter in vegdist function for more available options, such as 'aitchison' and 'robust.aitchison'.
unifracdefault FALSE; whether UniFrac indexes (weighted and unweighted) are calculated. Phylogenetic tree is necessary when unifrac = TRUE.
binarydefault FALSE; Whether convert abundance to binary data (presence/absence).
force_jaccard_binarydefault TRUE; Whether forcibly convert abundance to binary data (presence/absence) when method = "jaccard".
The reason for this setting is that the Jaccard metric is commonly used for binary data.
If force_jaccard_binary = FALSE is set, the conversion will not be enforced, but will instead be based on the setting of the binary parameter.
...parameters passed to vegdist function of vegan package.
beta_diversity list stored in the object.
\donttest{
m1$cal_betadiv(unifrac = FALSE)
class(m1$beta_diversity)
}
save_betadiv()Save beta diversity matrix to the computer.
microtable$save_betadiv(dirpath = "beta_diversity")
dirpathdefault "beta_diversity"; directory name to save the beta diversity matrix files.
print()Print the microtable object.
microtable$print()
clone()The objects of this class are cloneable with this method.
microtable$clone(deep = FALSE)
deepWhether to make a deep clone.
## ------------------------------------------------
## Method `microtable$new`
## ------------------------------------------------
data(otu_table_16S)
data(taxonomy_table_16S)
data(sample_info_16S)
data(phylo_tree_16S)
m1 <- microtable$new(otu_table = otu_table_16S)
m1 <- microtable$new(sample_table = sample_info_16S, otu_table = otu_table_16S,
tax_table = taxonomy_table_16S, phylo_tree = phylo_tree_16S)
# trim the files in the dataset
m1$tidy_dataset()
## ------------------------------------------------
## Method `microtable$filter_pollution`
## ------------------------------------------------
m1$filter_pollution(taxa = c("mitochondria", "chloroplast"))
## ------------------------------------------------
## Method `microtable$filter_taxa`
## ------------------------------------------------
d1 <- clone(m1)
d1$filter_taxa(rel_abund = 0.0001, freq = 0.2)
## ------------------------------------------------
## Method `microtable$rarefy_samples`
## ------------------------------------------------
m1$rarefy_samples(sample.size = min(m1$sample_sums()))
## ------------------------------------------------
## Method `microtable$tidy_dataset`
## ------------------------------------------------
m1$tidy_dataset(main_data = TRUE)
## ------------------------------------------------
## Method `microtable$add_rownames2taxonomy`
## ------------------------------------------------
m1$add_rownames2taxonomy()
## ------------------------------------------------
## Method `microtable$sample_sums`
## ------------------------------------------------
m1$sample_sums()
## ------------------------------------------------
## Method `microtable$taxa_sums`
## ------------------------------------------------
m1$taxa_sums()
## ------------------------------------------------
## Method `microtable$sample_names`
## ------------------------------------------------
m1$sample_names()
## ------------------------------------------------
## Method `microtable$taxa_names`
## ------------------------------------------------
m1$taxa_names()
## ------------------------------------------------
## Method `microtable$rename_taxa`
## ------------------------------------------------
m1$rename_taxa()
## ------------------------------------------------
## Method `microtable$merge_samples`
## ------------------------------------------------
m1$merge_samples("Group")
## ------------------------------------------------
## Method `microtable$merge_taxa`
## ------------------------------------------------
m1$merge_taxa(taxa = "Genus")
## ------------------------------------------------
## Method `microtable$save_table`
## ------------------------------------------------
## Not run:
m1$save_table()
## End(Not run)
## ------------------------------------------------
## Method `microtable$cal_abund`
## ------------------------------------------------
m1$cal_abund()
## ------------------------------------------------
## Method `microtable$save_abund`
## ------------------------------------------------
## Not run:
m1$save_abund(dirpath = "taxa_abund")
m1$save_abund(merge_all = TRUE, rm_un = TRUE, sep = "\t")
## End(Not run)
## ------------------------------------------------
## Method `microtable$cal_alphadiv`
## ------------------------------------------------
m1$cal_alphadiv(measures = NULL, PD = FALSE)
class(m1$alpha_diversity)
## ------------------------------------------------
## Method `microtable$cal_betadiv`
## ------------------------------------------------
m1$cal_betadiv(unifrac = FALSE)
class(m1$beta_diversity)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.