Calculate PCoA and other ordinations, including taxa biplots and statistics.
Source:R/bdiv_ord_table.r
bdiv_ord_table.Rd
The 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",
...
)
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 inbiom
or explicitly provided viatree=
. Default:"Bray-Curtis"
Multiple/abbreviated values allowed.- 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()
.
Default:
"PCoA"
Multiple/abbreviated values allowed.- weighted
Take relative abundances into account. When
weighted=FALSE
, only presence/absence is considered. Default:TRUE
Multiple values allowed.- 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
2L
or3L
. 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
phylo
object 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.
Default:
"adonis2"
Abbreviations are allowed.- seed
Random seed for permutations. 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
NULL
to disable. E.g."Phylum"
,"Genus"
,".otu"
, etc. An integer vector can also be given, where1
is the highest rank,2
is the second highest,-1
is the lowest rank,-2
is the second lowest, and0
is the OTU "rank". Runbiom$ranks
to 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.1
implies >= 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.top
is >= 1, then thep.top
most significant taxa are displayed. Ifp.top
is less than one, all taxa with an adjusted p-value <=p.top
are displayed. Recommended to be used in combination with thetaxa
parameter 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.methods
for 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.
Default:
"singly"
Abbreviations are allowed.- ...
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