Learn R Programming

microeco (version 0.5.1)

microtable: Create microtable object to store and manage all the basic files.

Description

This class is a wrapper for a series of operations on the original files and the basic manipulations, including the microtable object creation, data reduction, data rarefaction based on Paul et al. (2013) <doi:10.1371/journal.pone.0061217>, taxa 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<U+2013>8235.2005> and other basic operations.

Arguments

Format

microtable.

Methods

Public methods

Method new()

Usage

microtable$new(
  otu_table,
  sample_table = NULL,
  tax_table = NULL,
  phylo_tree = NULL,
  rep_fasta = NULL
)

Arguments

otu_table

data.frame; necessary; The feature abundance table, rows are features, e.g. species, cols are samples.

sample_table

data.frame; default NULL; The sample information table, rows are samples, cols are sample metadata; If not provided, the function can generate a table automatically according to the sample names in otu_table.

tax_table

data.frame; default NULL; The taxonomic information table, rows are species, cols are taxonomic classes.

phylo_tree

phylo; default NULL; The phylogenetic tree; use read.tree function in ape package for input.

rep_fasta

list; default NULL; The representative sequences; use read.fasta function in seqinr package for input.

Returns

an object of class "microtable" with the following components:

sample_table

The sample information table.

otu_table

The OTU table.

tax_table

The taxonomic table.

phylo_tree

The phylogenetic tree.

rep_fasta

The representative sequence.

taxa_abund

default NULL; use cal_abund function to calculate.

alpha_diversity

default NULL; use cal_alphadiv function to calculate.

beta_diversity

default NULL; use cal_betadiv function to calculate.

Examples

data(otu_table_16S)
data(taxonomy_table_16S)
data(sample_info_16S)
data(phylo_tree_16S)
dataset <- microtable$new(otu_table = otu_table_16S)
dataset <- 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
dataset$tidy_dataset()

Method print()

Print the microtable object.

Usage

microtable$print()

Method filter_pollution()

Filter the taxa considered as pollution from tax_table. This operation will remove any line of the tax_table containing any the word in taxa parameter regardless of word case.

Usage

microtable$filter_pollution(taxa = c("mitochondria", "chloroplast"))

Arguments

taxa

default: c("mitochondria", "chloroplast"); filter mitochondria and chloroplast, or others as needed.

Returns

None

Examples

dataset$filter_pollution(taxa = c("mitochondria", "chloroplast"))

Method rarefy_samples()

Rarefy communities to make all samples have same species number, modified from the rarefy_even_depth() in phyloseq package, see Paul et al. (2013) <doi:10.1371/journal.pone.0061217>.

Usage

microtable$rarefy_samples(sample.size = NULL, rngseed = 123, replace = TRUE)

Arguments

sample.size

default:NULL; species number, If not provided, use minimum number of all samples.

rngseed

random seed; default: 123.

replace

default: TRUE; see sample for the random sampling.

Returns

None; rarefied dataset.

Examples

\donttest{
dataset$rarefy_samples(sample.size = min(dataset$sample_sums()), replace = TRUE)
}

Method tidy_dataset()

Tidy the object of microtable Class. Trim files in the object to make taxa and samples consistent across all files in the object. So the results are intersections.

Usage

microtable$tidy_dataset(main_data = TRUE)

Arguments

main_data

TRUE or FALSE, if TRUE, only basic files in microtable object is trimmed, otherwise, all files, including taxa_abund, alpha_diversity and beta_diversity, are all trimed.

Returns

None, Object of microtable itself cleaned up.

Examples

dataset$tidy_dataset(main_data = TRUE)

Method cal_abund()

Calculate the taxonomic abundance at each taxonomic rank.

Usage

microtable$cal_abund(
  select_cols = NULL,
  rel = TRUE,
  split_group = FALSE,
  split_by = "&&",
  split_column = NULL
)

Arguments

select_cols

default NULL; numeric vector or character vector of colnames of tax_table; used to select columns to merge and calculate abundances. This is very useful if there are commented columns or some columns with multiple structure that cannot be used directly.

rel

default TRUE; if TRUE, relative abundance is used; if FALSE, absolute abundance will be summed.

split_group

default FALSE; if TRUE, split the rows to multiple rows according to one or more columns in tax_table. Very useful when multiple mapping info exist.

split_by

default "&&"; Separator delimiting collapsed values; only useful when split_group == TRUE; see sep in separate_rows function.

split_column

default NULL; character vector or list; only useful when split_group == TRUE; character vector: fixed column or columns used for the splitting in tax_table in each abundance calculation; list: containing more character vectors to assign the column names to each calculation, such as list(c("Phylum"), c("Phylum", "Class")).

Returns

taxa_abund in object.

Examples

\donttest{
dataset$cal_abund()
}

Method save_abund()

Save taxonomic abundance to the computer local place.

Usage

microtable$save_abund(dirpath = "taxa_abund")

Arguments

dirpath

default "taxa_abund"; directory name to save the taxonomic abundance files.

Examples

\dontrun{
dataset$save_abund(dirpath = "taxa_abund")
}

Method sample_sums()

Sum the species number for each sample.

Usage

microtable$sample_sums()

Returns

species number of samples.

Examples

\donttest{
dataset$sample_sums()
}

Method taxa_sums()

Sum the species number for each taxa.

Usage

microtable$taxa_sums()

Returns

species number of taxa.

Examples

\donttest{
dataset$taxa_sums()
}

Method sample_names()

Show sample names.

Usage

microtable$sample_names()

Returns

sample names.

Examples

\donttest{
dataset$sample_names()
}

Method taxa_names()

Show taxa names.

Usage

microtable$taxa_names()

Returns

taxa names.

Examples

\donttest{
dataset$taxa_names()
}

Method merge_samples()

Merge samples according to specific group to generate a new microtable.

Usage

microtable$merge_samples(use_group)

Arguments

use_group

the group column in sample_table.

Returns

a new merged microtable object.

Examples

\donttest{
dataset$merge_samples(use_group = "Group")
}

Method merge_taxa()

Merge taxa according to specific taxonomic rank to generate a new microtable.

Usage

microtable$merge_taxa(taxa = "Genus")

Arguments

taxa

the specific rank in tax_table.

Returns

a new merged microtable object.

Examples

\donttest{
dataset$merge_taxa(taxa = "Genus")
}

Method cal_alphadiv()

Calculate alpha diversity in microtable object.

Usage

microtable$cal_alphadiv(measures = NULL, PD = FALSE)

Arguments

measures

default NULL; one or more indexes from "Observed", "Coverage", "Chao1", "ACE", "Shannon", "Simpson", "InvSimpson", "Fisher", "PD"; If null, use all those measures.

PD

TRUE or FALSE, whether phylogenetic tree should be calculated, default FALSE.

Returns

alpha_diversity stored in object.

Examples

\donttest{
dataset$cal_alphadiv(measures = NULL, PD = FALSE)
class(dataset$alpha_diversity)
}

Method save_alphadiv()

Save alpha diversity table to the computer.

Usage

microtable$save_alphadiv(dirpath = "alpha_diversity")

Arguments

dirpath

default "alpha_diversity"; directory name to save the alpha_diversity.csv file.

Method cal_betadiv()

Calculate beta diversity in microtable object, including 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<U+2013>8235.2005>.

Usage

microtable$cal_betadiv(method = NULL, unifrac = FALSE, ...)

Arguments

method

default NULL; a character vector with one or more elements; If default, "bray" and "jaccard" will be used; see vegdist function and method parameter in vegan package.

unifrac

default FALSE; TRUE or FALSE, whether unifrac index should be calculated.

...

parameters passed to vegdist function.

Returns

beta_diversity stored in object.

Examples

\donttest{
dataset$cal_betadiv(unifrac = FALSE)
class(dataset$beta_diversity)
}

Method save_betadiv()

Save beta diversity matrix to the computer.

Usage

microtable$save_betadiv(dirpath = "beta_diversity")

Arguments

dirpath

default "beta_diversity"; directory name to save the beta diversity matrix files.

Method clone()

The objects of this class are cloneable with this method.

Usage

microtable$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

Run this code
# NOT RUN {
## ------------------------------------------------
## Method `microtable$new`
## ------------------------------------------------

data(otu_table_16S)
data(taxonomy_table_16S)
data(sample_info_16S)
data(phylo_tree_16S)
dataset <- microtable$new(otu_table = otu_table_16S)
dataset <- 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
dataset$tidy_dataset()

## ------------------------------------------------
## Method `microtable$filter_pollution`
## ------------------------------------------------

dataset$filter_pollution(taxa = c("mitochondria", "chloroplast"))

## ------------------------------------------------
## Method `microtable$rarefy_samples`
## ------------------------------------------------

# }
# NOT RUN {
dataset$rarefy_samples(sample.size = min(dataset$sample_sums()), replace = TRUE)
# }
# NOT RUN {
## ------------------------------------------------
## Method `microtable$tidy_dataset`
## ------------------------------------------------

dataset$tidy_dataset(main_data = TRUE)

## ------------------------------------------------
## Method `microtable$cal_abund`
## ------------------------------------------------

# }
# NOT RUN {
dataset$cal_abund()
# }
# NOT RUN {
## ------------------------------------------------
## Method `microtable$save_abund`
## ------------------------------------------------

# }
# NOT RUN {
dataset$save_abund(dirpath = "taxa_abund")
# }
# NOT RUN {
## ------------------------------------------------
## Method `microtable$sample_sums`
## ------------------------------------------------

# }
# NOT RUN {
dataset$sample_sums()
# }
# NOT RUN {
## ------------------------------------------------
## Method `microtable$taxa_sums`
## ------------------------------------------------

# }
# NOT RUN {
dataset$taxa_sums()
# }
# NOT RUN {
## ------------------------------------------------
## Method `microtable$sample_names`
## ------------------------------------------------

# }
# NOT RUN {
dataset$sample_names()
# }
# NOT RUN {
## ------------------------------------------------
## Method `microtable$taxa_names`
## ------------------------------------------------

# }
# NOT RUN {
dataset$taxa_names()
# }
# NOT RUN {
## ------------------------------------------------
## Method `microtable$merge_samples`
## ------------------------------------------------

# }
# NOT RUN {
dataset$merge_samples(use_group = "Group")
# }
# NOT RUN {
## ------------------------------------------------
## Method `microtable$merge_taxa`
## ------------------------------------------------

# }
# NOT RUN {
dataset$merge_taxa(taxa = "Genus")
# }
# NOT RUN {
## ------------------------------------------------
## Method `microtable$cal_alphadiv`
## ------------------------------------------------

# }
# NOT RUN {
dataset$cal_alphadiv(measures = NULL, PD = FALSE)
class(dataset$alpha_diversity)
# }
# NOT RUN {
## ------------------------------------------------
## Method `microtable$cal_betadiv`
## ------------------------------------------------

# }
# NOT RUN {
dataset$cal_betadiv(unifrac = FALSE)
class(dataset$beta_diversity)
# }

Run the code above in your browser using DataLab