
Calculate PCoA and other ordinations, including taxa biplots and statistics.
Source:R/bdiv_ord_table.r
bdiv_ord_table.RdThe biplot parameters (taxa, unc, p.top, and
p.adj) only only have an effect when rank is not NULL.
Usage
bdiv_ord_table(
biom,
bdiv = "Bray-Curtis",
ord = "PCoA",
weighted = TRUE,
md = NULL,
k = 2,
stat.by = NULL,
split.by = NULL,
tree = NULL,
test = "adonis2",
seed = 0,
permutations = 999,
rank = NULL,
taxa = 6,
p.top = Inf,
p.adj = "fdr",
unc = "singly",
underscores = FALSE,
...
)Arguments
- biom
An rbiom object, such as from
as_rbiom(). Any value accepted byas_rbiom()can also be given here.- bdiv
Beta diversity distance algorithm(s) to use. Options are:
"Bray-Curtis","Manhattan","Euclidean","Jaccard", and"UniFrac". For"UniFrac", a phylogenetic tree must be present inbiomor explicitly provided viatree=. Multiple/abbreviated values allowed. Default:"Bray-Curtis"- ord
Method for reducing dimensionality. Options are:
"PCoA"-Principal coordinate analysis;
ape::pcoa()."UMAP"-Uniform manifold approximation and projection;
uwot::umap()."NMDS"-Nonmetric multidimensional scaling;
vegan::metaMDS()."tSNE"-t-distributed stochastic neighbor embedding;
tsne::tsne().
Multiple/abbreviated values allowed. Default:
"PCoA"- weighted
Take relative abundances into account. When
weighted=FALSE, only presence/absence is considered. Multiple values allowed. Default:TRUE- md
Dataset field(s) to include in the output data frame, or
'.all'to include all metadata fields. Default:'.all'- k
Number of ordination dimensions to return. Either
2Lor3L. Default:2L- stat.by
The categorical or numeric metadata field over which statistics should be calculated. Required.
- split.by
Dataset field(s) that the data should be split by prior to any calculations. Must be categorical. Default:
NULL- tree
A
phyloobject representing the phylogenetic relationships of the taxa inbiom. Only required when computing UniFrac distances. Default:biom$tree- test
Permutational test for accessing significance. Options are:
"adonis2"-Permutational MANOVA;
vegan::adonis2()."mrpp"-Multiple response permutation procedure;
vegan::mrpp()."none"-Don't run any statistics.
Abbreviations are allowed. Default:
"adonis2"- seed
Random seed for permutations. Must be a non-negative integer. Default:
0- permutations
Number of random permutations to use. Default:
999- rank
What rank(s) of taxa to compute biplot coordinates and statistics for, or
NULLto disable. E.g."Phylum","Genus",".otu", etc. An integer vector can also be given, where1is the highest rank,2is the second highest,-1is the lowest rank,-2is the second lowest, and0is the OTU "rank". Runbiom$ranksto see all options for a given rbiom object. Default:NULL.- taxa
Which taxa to display. An integer value will show the top n most abundant taxa. A value 0 <= n < 1 will show any taxa with that mean abundance or greater (e.g.
0.1implies >= 10%). A character vector of taxa names will show only those named taxa. Default:6.- p.top
Only display taxa with the most significant differences in abundance. If
p.topis >= 1, then thep.topmost significant taxa are displayed. Ifp.topis less than one, all taxa with an adjusted p-value <=p.topare displayed. Recommended to be used in combination with thetaxaparameter to set a lower bound on the mean abundance of considered taxa. Default:Inf- p.adj
Method to use for multiple comparisons adjustment of p-values. Run
p.adjust.methodsfor a list of available options. Default:"fdr"- unc
How to handle unclassified, uncultured, and similarly ambiguous taxa names. Options are:
"singly"-Replaces them with the OTU name.
"grouped"-Replaces them with a higher rank's name.
"drop"-Excludes them from the result.
"asis"-To not check/modify any taxa names.
Abbreviations are allowed. Default:
"singly"- underscores
When parsing the tree, should underscores be kept as is? By default they will be converted to spaces (unless the entire ID is quoted). Default
FALSE- ...
Additional arguments to pass on to
uwot::umap(),ape::pcoa(),vegan::metaMDS(), ortsne::tsne().
Value
A data.frame with columns .sample, .weighted,
.bdiv, .ord, .x, .y, and (optionally)
.z. Any columns given by md, split.by, and
stat.by are included as well.
If stat.by is given, then $stats and
$stats$code) are set.
If rank is given, then $taxa_coords,
$taxa_stats, and $taxa_stats$code are set.
See also
Other beta_diversity:
bdiv_boxplot(),
bdiv_clusters(),
bdiv_corrplot(),
bdiv_heatmap(),
bdiv_ord_plot(),
bdiv_stats(),
bdiv_table(),
distmat_stats()
Other ordination:
bdiv_ord_plot(),
distmat_ord_table()
Examples
library(rbiom)
ord <- bdiv_ord_table(hmp50, "bray", "pcoa", stat.by="Body Site", rank="g")
head(ord)
#> # A tibble: 6 × 7
#> .weighted .bdiv .ord .sample .x .y `Body Site`
#> <lgl> <chr> <fct> <chr> <dbl> <dbl> <fct>
#> 1 TRUE Bray-Curtis PCoA HMP01 -0.387 -0.00895 Buccal mucosa
#> 2 TRUE Bray-Curtis PCoA HMP02 -0.461 -0.0135 Buccal mucosa
#> 3 TRUE Bray-Curtis PCoA HMP03 -0.407 -0.0143 Saliva
#> 4 TRUE Bray-Curtis PCoA HMP04 -0.378 -0.0123 Saliva
#> 5 TRUE Bray-Curtis PCoA HMP05 -0.452 -0.0114 Buccal mucosa
#> 6 TRUE Bray-Curtis PCoA HMP06 -0.411 -0.0123 Saliva
ord$stats
#> # Test: adonis2 ~ `Body Site`. 999 permutations.
#> # A tibble: 1 × 7
#> .weighted .bdiv .n .stat .z .p.val .adj.p
#> <lgl> <chr> <int> <dbl> <dbl> <dbl> <dbl>
#> 1 TRUE Bray-Curtis 50 19.2 72.2 0.001 0.001
ord$taxa_stats
#> # Test: adonis2 ~ taxa. 999 permutations.
#> # A tibble: 6 × 9
#> .weighted .bdiv .rank .taxa .n .stat .z .p.val .adj.p
#> <lgl> <chr> <fct> <fct> <int> <dbl> <dbl> <dbl> <dbl>
#> 1 TRUE Bray-Curtis Genus Lactobacillus 50 8.62 16.8 0.001 0.001
#> 2 TRUE Bray-Curtis Genus Streptococcus 50 10.1 19.5 0.001 0.001
#> 3 TRUE Bray-Curtis Genus Bacteroides 50 8.72 16.7 0.001 0.001
#> 4 TRUE Bray-Curtis Genus Corynebacterium 1 50 8.53 16.0 0.001 0.001
#> 5 TRUE Bray-Curtis Genus Haemophilus 50 6.56 12.3 0.001 0.001
#> 6 TRUE Bray-Curtis Genus Propionibacterium 50 5.84 11.3 0.001 0.001