% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/trans_beta.R
\name{trans_beta}
\alias{trans_beta}
\title{Create \code{trans_beta} object for beta-diversity analysis}
\description{
This class is a wrapper for a series of beta-diversity related analysis, 
including ordination analysis based on An et al. (2019) <doi:10.1016/j.geoderma.2018.09.035>, group distance comparision, 
clustering, perMANOVA based on Anderson al. (2008) <doi:10.1111/j.1442-9993.2001.01070.pp.x>, ANOSIM and PERMDISP.
Note that the beta diversity analysis methods related with environmental variables are encapsulated within the \code{trans_env} class.
}
\examples{

## ------------------------------------------------
## Method `trans_beta$new`
## ------------------------------------------------

data(dataset)
t1 <- trans_beta$new(dataset = dataset, measure = "bray", group = "Group")

## ------------------------------------------------
## Method `trans_beta$cal_ordination`
## ------------------------------------------------

t1$cal_ordination(method = "PCoA")

## ------------------------------------------------
## Method `trans_beta$plot_ordination`
## ------------------------------------------------

t1$plot_ordination(plot_type = "point")
t1$plot_ordination(plot_color = "Group", plot_shape = "Group", plot_type = "point")
t1$plot_ordination(plot_color = "Group", plot_type = c("point", "ellipse"))
t1$plot_ordination(plot_color = "Group", plot_type = c("point", "centroid"), 
	  centroid_segment_linetype = 1)

## ------------------------------------------------
## Method `trans_beta$cal_manova`
## ------------------------------------------------

t1$cal_manova(manova_all = TRUE)

## ------------------------------------------------
## Method `trans_beta$cal_anosim`
## ------------------------------------------------

t1$cal_anosim()

## ------------------------------------------------
## Method `trans_beta$cal_betadisper`
## ------------------------------------------------

t1$cal_betadisper()

## ------------------------------------------------
## Method `trans_beta$cal_group_distance`
## ------------------------------------------------

\donttest{
t1$cal_group_distance(within_group = TRUE)
}

## ------------------------------------------------
## Method `trans_beta$cal_group_distance_diff`
## ------------------------------------------------

\donttest{
t1$cal_group_distance_diff()
}

## ------------------------------------------------
## Method `trans_beta$plot_group_distance`
## ------------------------------------------------

\donttest{
t1$plot_group_distance()
}

## ------------------------------------------------
## Method `trans_beta$plot_clustering`
## ------------------------------------------------

t1$plot_clustering(group = "Group", replace_name = c("Saline", "Type"))
}
\section{Methods}{
\subsection{Public methods}{
\itemize{
\item \href{#method-trans_beta-new}{\code{trans_beta$new()}}
\item \href{#method-trans_beta-cal_ordination}{\code{trans_beta$cal_ordination()}}
\item \href{#method-trans_beta-plot_ordination}{\code{trans_beta$plot_ordination()}}
\item \href{#method-trans_beta-cal_manova}{\code{trans_beta$cal_manova()}}
\item \href{#method-trans_beta-cal_anosim}{\code{trans_beta$cal_anosim()}}
\item \href{#method-trans_beta-cal_betadisper}{\code{trans_beta$cal_betadisper()}}
\item \href{#method-trans_beta-cal_group_distance}{\code{trans_beta$cal_group_distance()}}
\item \href{#method-trans_beta-cal_group_distance_diff}{\code{trans_beta$cal_group_distance_diff()}}
\item \href{#method-trans_beta-plot_group_distance}{\code{trans_beta$plot_group_distance()}}
\item \href{#method-trans_beta-plot_clustering}{\code{trans_beta$plot_clustering()}}
\item \href{#method-trans_beta-clone}{\code{trans_beta$clone()}}
}
}
\if{html}{\out{<hr>}}
\if{html}{\out{<a id="method-trans_beta-new"></a>}}
\if{latex}{\out{\hypertarget{method-trans_beta-new}{}}}
\subsection{Method \code{new()}}{
\subsection{Usage}{
\if{html}{\out{<div class="r">}}\preformatted{trans_beta$new(dataset = NULL, measure = NULL, group = NULL)}\if{html}{\out{</div>}}
}

\subsection{Arguments}{
\if{html}{\out{<div class="arguments">}}
\describe{
\item{\code{dataset}}{an object of \code{\link{microtable}} class.}

\item{\code{measure}}{default NULL; a matrix name stored in \code{microtable$beta_diversity} list, such as "bray" or "jaccard", or a customized matrix; 
used for ordination, manova, group distance comparision, etc.;
Please see \code{cal_betadiv} function of \code{\link{microtable}} class for more details.}

\item{\code{group}}{default NULL; a column name of \code{sample_table} in the input dataset; group information will be used for manova, betadisper or distance comparision.}
}
\if{html}{\out{</div>}}
}
\subsection{Returns}{
\code{measure}, \code{group} and \code{dataset} stored in the object.
}
\subsection{Examples}{
\if{html}{\out{<div class="r example copy">}}
\preformatted{data(dataset)
t1 <- trans_beta$new(dataset = dataset, measure = "bray", group = "Group")
}
\if{html}{\out{</div>}}

}

}
\if{html}{\out{<hr>}}
\if{html}{\out{<a id="method-trans_beta-cal_ordination"></a>}}
\if{latex}{\out{\hypertarget{method-trans_beta-cal_ordination}{}}}
\subsection{Method \code{cal_ordination()}}{
Unconstrained ordination.
\subsection{Usage}{
\if{html}{\out{<div class="r">}}\preformatted{trans_beta$cal_ordination(
  method = "PCoA",
  ncomp = 2,
  taxa_level = NULL,
  NMDS_matrix = TRUE,
  trans = FALSE,
  scale_species = FALSE,
  scale_species_ratio = 0.8,
  orthoI = NA,
  ordination = deprecated(),
  ...
)}\if{html}{\out{</div>}}
}

\subsection{Arguments}{
\if{html}{\out{<div class="arguments">}}
\describe{
\item{\code{method}}{default "PCoA"; "PCoA", "NMDS", "PCA", "DCA", "PLS-DA" or "OPLS-DA".
PCoA: principal coordinates analysis; NMDS: non-metric multidimensional scaling, PCA: principal component analysis; DCA: detrended correspondence analysis; 
PLS-DA: partial least squares discriminant analysis; OPLS-DA: orthogonal partial least squares discriminant analysis.
For the methods details, please refer to the papers <doi:10.1111/j.1574-6941.2007.00375.x> (for PCoA, NMDS, PCA and DCA) and 
<doi:10.1186/s12859-019-3310-7> (for PLS-DA or OPLS-DA).}

\item{\code{ncomp}}{default 2; dimensions in the result. For the \code{method} option "PCA", "PCoA" or "DCA", 
the corresponding dimension information will be selected from the original model based on this parameter..
For all the dimension information, please refer to \code{model} in the results.
For the \code{method} option "NMDS", this argument will be passed to the \code{k} parameter in the \code{vegan::metaMDS} function.}

\item{\code{taxa_level}}{default NULL; available for PCA, DCA or NMDS (\code{NMDS_matrix = TRUE}).
Default NULL means using the \code{otu_table} in the microtable object.
For other options, please    provide the taxonomic rank names in \code{tax_table}, such as "Phylum" or "Genus".
In such cases, the data will be merged according to the provided taxonomic levels to generated a new abundance table.}

\item{\code{NMDS_matrix}}{default TRUE; For the NMDS method, whether use a distance matrix as input like PCoA. If it is FALSE, the input will be the abundance table like PCA.}

\item{\code{trans}}{default FALSE; whether species abundance will be square root transformed; only available when \code{method} is "PCA" or "DCA".
For method "NMDS" and \code{NMDS_matrix = FALSE}, please set the \code{autotransform} parameter, which will be passed to \code{vegan::metaMDS} function directly.}

\item{\code{scale_species}}{default FALSE; whether species loading in PCA, DCA or NMDS (\code{NMDS_matrix = FALSE}) is scaled.}

\item{\code{scale_species_ratio}}{default 0.8; the ratio to scale up the loading; multiply by the maximum distance between samples and origin. 
Only available when \code{scale_species = TURE}.}

\item{\code{orthoI}}{default NA; number of orthogonal components (for OPLS-DA only). Default NA means the number of orthogonal components is automatically computed.
Please also see \code{orthoI} parameter in \code{opls} function of ropls package.}

\item{\code{ordination}}{deprecated. Please use \code{method} argument instead.}

\item{\code{...}}{parameters passed to \code{vegan::rda} function when \code{method = "PCA"}, 
or \code{vegan::decorana} function when \code{method = "DCA"}, 
or \code{ape::pcoa} function when \code{method = "PCoA"}, 
or \code{vegan::metaMDS} function when \code{method = "NMDS"},
or \code{ropls::opls} function when \code{method = "PLS-DA"} or \code{method = "OPLS-DA"} .}
}
\if{html}{\out{</div>}}
}
\subsection{Returns}{
\code{res_ordination} list stored in the object.
	  In the list, \code{model} is the original analysis results; \code{scores} is the sample scores table; \code{loading} is the feature loading table.
}
\subsection{Examples}{
\if{html}{\out{<div class="r example copy">}}
\preformatted{t1$cal_ordination(method = "PCoA")
}
\if{html}{\out{</div>}}

}

}
\if{html}{\out{<hr>}}
\if{html}{\out{<a id="method-trans_beta-plot_ordination"></a>}}
\if{latex}{\out{\hypertarget{method-trans_beta-plot_ordination}{}}}
\subsection{Method \code{plot_ordination()}}{
Plot the ordination result.
\subsection{Usage}{
\if{html}{\out{<div class="r">}}\preformatted{trans_beta$plot_ordination(
  plot_type = "point",
  choices = c(1, 2),
  color_values = RColorBrewer::brewer.pal(8, "Dark2"),
  shape_values = c(16, 17, 7, 8, 15, 18, 11, 10, 12, 13, 9, 3, 4, 0, 1, 2, 14),
  plot_color = NULL,
  plot_shape = NULL,
  plot_group_order = NULL,
  add_sample_label = NULL,
  point_size = 3,
  point_alpha = 0.8,
  point_second = FALSE,
  point_second_size = NULL,
  point_second_alpha = NULL,
  point_second_color = NULL,
  centroid_segment_alpha = 0.6,
  centroid_segment_size = 1,
  centroid_segment_linetype = 3,
  ellipse_chull_fill = TRUE,
  ellipse_chull_alpha = 0.1,
  ellipse_level = 0.9,
  ellipse_type = "t",
  NMDS_stress_pos = c(1, 1),
  NMDS_stress_text_prefix = "",
  loading_arrow = FALSE,
  loading_taxa_num = 10,
  loading_text_taxlevel = NULL,
  loading_text_color = "black",
  loading_arrow_color = "grey30",
  loading_text_size = 3,
  loading_text_prefix = FALSE,
  loading_text_italic = FALSE
)}\if{html}{\out{</div>}}
}

\subsection{Arguments}{
\if{html}{\out{<div class="arguments">}}
\describe{
\item{\code{plot_type}}{default "point"; one or more elements of "point", "ellipse", "chull" and "centroid".
\describe{
  \item{\strong{'point'}}{add sample points}
  \item{\strong{'ellipse'}}{add confidence ellipse for points of each group}
  \item{\strong{'chull'}}{add convex hull for points of each group}
  \item{\strong{'centroid'}}{add centroid line for points in each group}
}}

\item{\code{choices}}{default c(1, 2); selected axis for the visualization; must be numeric vector.
The maximum value must not exceed the parameter \code{ncomp} in the \code{cal_ordination} function.}

\item{\code{color_values}}{default \code{RColorBrewer::brewer.pal}(8, "Dark2"); colors palette for different groups.}

\item{\code{shape_values}}{default c(16, 17, 7, 8, 15, 18, 11, 10, 12, 13, 9, 3, 4, 0, 1, 2, 14); a vector for point shape types of groups, see \code{ggplot2} tutorial.}

\item{\code{plot_color}}{default NULL; a colname of \code{sample_table} to assign colors to different groups in plot.}

\item{\code{plot_shape}}{default NULL; a colname of \code{sample_table} to assign shapes to different groups in plot.}

\item{\code{plot_group_order}}{default NULL; a vector used to order the groups in the legend of plot.}

\item{\code{add_sample_label}}{default NULL; a column name in \code{sample_table}; If provided, show the point name in plot.}

\item{\code{point_size}}{default 3; point size when "point" is in \code{plot_type} parameter.
\code{point_size} can also be a variable name in \code{sample_table}, such as "pH".}

\item{\code{point_alpha}}{default .8; point transparency in plot when "point" is in \code{plot_type} parameter.}

\item{\code{point_second}}{default FALSE; whether plot the second group of points.
Only available when input \code{point_size} is numeric value.}

\item{\code{point_second_size}}{default NULL; size value of the second type of point. Default means \code{point_size * 0.6}}

\item{\code{point_second_alpha}}{default NULL; point transparency of the second type of point.}

\item{\code{point_second_color}}{default NULL; a color value of the second type of point. If \code{NULL}, same with previous setting.}

\item{\code{centroid_segment_alpha}}{default 0.6; segment transparency in plot when "centroid" is in \code{plot_type} parameter.}

\item{\code{centroid_segment_size}}{default 1; segment size in plot when "centroid" is in \code{plot_type} parameter.}

\item{\code{centroid_segment_linetype}}{default 3; the line type related with centroid in plot when "centroid" is in \code{plot_type} parameter.}

\item{\code{ellipse_chull_fill}}{default TRUE; whether fill colors to the area of ellipse or chull.}

\item{\code{ellipse_chull_alpha}}{default 0.1; color transparency in the ellipse or convex hull depending on whether "ellipse" or "centroid" is in \code{plot_type} parameter.}

\item{\code{ellipse_level}}{default .9; confidence level of ellipse when "ellipse" is in \code{plot_type} parameter.}

\item{\code{ellipse_type}}{default "t"; ellipse type when "ellipse" is in \code{plot_type} parameter; see type in \code{stat_ellipse}.}

\item{\code{NMDS_stress_pos}}{default c(1, 1); a numerical vector with two values used to represent the insertion position of the stress text. 
The first one denotes the x-axis, while the second one corresponds to the y-axis. 
The assigned position is determined by multiplying the respective value with the maximum point on the corresponding coordinate axis. 
Thus, the x-axis position is equal to \code{max(points of x axis) * NMDS_stress_pos[1]}, 
and the y-axis position is equal to \code{max(points of y axis) * NMDS_stress_pos[2]}. Negative values can also be utilized for the negative part of the axis.
\code{NMDS_stress_pos = NULL} denotes no stress text to show.}

\item{\code{NMDS_stress_text_prefix}}{default ""; If NMDS_stress_pos is not NULL, this parameter can be used to add text in front of the stress value.}

\item{\code{loading_arrow}}{default FALSE; whether show the loading using arrow.}

\item{\code{loading_taxa_num}}{default 10; the number of taxa used for the loading. Only available when \code{loading_arrow = TRUE}.}

\item{\code{loading_text_taxlevel}}{default NULL; which level of taxonomic table will be used.
Default NULL means using the \code{taxa_level} parameter in the previous \code{cal_ordination} function.}

\item{\code{loading_text_color}}{default "black"; the color of taxa text. Only available when \code{loading_arrow = TRUE}.}

\item{\code{loading_arrow_color}}{default "grey30"; the color of taxa arrow. Only available when \code{loading_arrow = TRUE}.}

\item{\code{loading_text_size}}{default 3; the size of taxa text. Only available when \code{loading_arrow = TRUE}.}

\item{\code{loading_text_prefix}}{default FALSE; whether show the prefix (e.g., g__) in the taxa text. Only available when \code{loading_arrow = TRUE}.}

\item{\code{loading_text_italic}}{default FALSE; whether using italic for the taxa text. Only available when \code{loading_arrow = TRUE}.}
}
\if{html}{\out{</div>}}
}
\subsection{Returns}{
\code{ggplot}.
}
\subsection{Examples}{
\if{html}{\out{<div class="r example copy">}}
\preformatted{t1$plot_ordination(plot_type = "point")
t1$plot_ordination(plot_color = "Group", plot_shape = "Group", plot_type = "point")
t1$plot_ordination(plot_color = "Group", plot_type = c("point", "ellipse"))
t1$plot_ordination(plot_color = "Group", plot_type = c("point", "centroid"), 
	  centroid_segment_linetype = 1)
}
\if{html}{\out{</div>}}

}

}
\if{html}{\out{<hr>}}
\if{html}{\out{<a id="method-trans_beta-cal_manova"></a>}}
\if{latex}{\out{\hypertarget{method-trans_beta-cal_manova}{}}}
\subsection{Method \code{cal_manova()}}{
Calculate perMANOVA (Permutational Multivariate Analysis of Variance) based on the \code{adonis2} function of vegan package <doi:10.1111/j.1442-9993.2001.01070.pp.x>.
\subsection{Usage}{
\if{html}{\out{<div class="r">}}\preformatted{trans_beta$cal_manova(
  manova_all = TRUE,
  manova_set = NULL,
  group = NULL,
  by_group = NULL,
  p_adjust_method = "fdr",
  by = "terms",
  by_auto_set = TRUE,
  permutations = 999,
  ...
)}\if{html}{\out{</div>}}
}

\subsection{Arguments}{
\if{html}{\out{<div class="arguments">}}
\describe{
\item{\code{manova_all}}{default TRUE; TRUE represents test for all the groups, i.e. the overall test;
FALSE represents test for all the paired groups.}

\item{\code{manova_set}}{default NULL; other specified group set for manova, such as \code{"Group + Type"} and \code{"Group*Type"}.
Please also see the \code{formula} parameter (only right-hand side) in \code{adonis2} function of vegan package.
The parameter manova_set has higher priority than manova_all parameter. If manova_set is provided; manova_all is disabled.}

\item{\code{group}}{default NULL; a column name of \code{sample_table} used for manova. If NULL, search \code{group} variable stored in the object.
Available when \code{manova_set} is not provided.}

\item{\code{by_group}}{default NULL; one column name in \code{sample_table}; used to perform paired comparisions within each group. 
Only available when \code{manova_all = FALSE} and \code{manova_set} is not provided.}

\item{\code{p_adjust_method}}{default "fdr"; p.adjust method; available when \code{manova_all = FALSE}; 
see \code{method} parameter of \code{p.adjust} function for available options.}

\item{\code{by}}{default "terms"; same with the \code{by} parameter in \code{adonis2} function of vegan package.}

\item{\code{by_auto_set}}{default TRUE; Whether automatically set the options for \code{by} parameter ("marginal" or "terms") when \code{manova_set} is provided.
The primary reason for setting this parameter is that using marginal effects (also known as "Type III" effects) is more robust for unbalanced experimental designs. 
Since the option \code{by = "margin"} in the \code{adonis2} function ignores main effects when interaction effects are present, 
we automatically set \code{by = "margin"} when there are no interaction effects, and set \code{by = "terms"} when interaction effects exist.
If the user wants to use parameter \code{by}, please set \code{by_auto_set = FALSE}. Note that this parameter is only available when \code{manova_set} is provided.}

\item{\code{permutations}}{default 999; same with the \code{permutations} parameter in \code{adonis2} function of vegan package.}

\item{\code{...}}{parameters passed to \code{adonis2} function of \code{vegan} package.}
}
\if{html}{\out{</div>}}
}
\subsection{Returns}{
\code{res_manova} stored in object with \code{data.frame} class.
}
\subsection{Examples}{
\if{html}{\out{<div class="r example copy">}}
\preformatted{t1$cal_manova(manova_all = TRUE)
}
\if{html}{\out{</div>}}

}

}
\if{html}{\out{<hr>}}
\if{html}{\out{<a id="method-trans_beta-cal_anosim"></a>}}
\if{latex}{\out{\hypertarget{method-trans_beta-cal_anosim}{}}}
\subsection{Method \code{cal_anosim()}}{
Analysis of similarities (ANOSIM) based on the \code{anosim} function of vegan package.
\subsection{Usage}{
\if{html}{\out{<div class="r">}}\preformatted{trans_beta$cal_anosim(
  paired = FALSE,
  group = NULL,
  by_group = NULL,
  p_adjust_method = "fdr",
  permutations = 999,
  ...
)}\if{html}{\out{</div>}}
}

\subsection{Arguments}{
\if{html}{\out{<div class="arguments">}}
\describe{
\item{\code{paired}}{default FALSE; whether perform paired test between any two combined groups from all the input groups.}

\item{\code{group}}{default NULL; a column name of \code{sample_table}. If NULL, search \code{group} variable stored in the object.}

\item{\code{by_group}}{default NULL; one column name in \code{sample_table}; used to perform paired comparisions within each group. 
Only available when \code{paired = TRUE}.}

\item{\code{p_adjust_method}}{default "fdr"; p.adjust method; available when \code{paired = TRUE}; see method parameter of \code{p.adjust} function for available options.}

\item{\code{permutations}}{default 999; same with the \code{permutations} parameter in \code{anosim} function of vegan package.}

\item{\code{...}}{parameters passed to \code{anosim} function of \code{vegan} package.}
}
\if{html}{\out{</div>}}
}
\subsection{Returns}{
\code{res_anosim} stored in object with \code{data.frame} class.
}
\subsection{Examples}{
\if{html}{\out{<div class="r example copy">}}
\preformatted{t1$cal_anosim()
}
\if{html}{\out{</div>}}

}

}
\if{html}{\out{<hr>}}
\if{html}{\out{<a id="method-trans_beta-cal_betadisper"></a>}}
\if{latex}{\out{\hypertarget{method-trans_beta-cal_betadisper}{}}}
\subsection{Method \code{cal_betadisper()}}{
Multivariate homogeneity test of groups dispersions (PERMDISP) based on \code{betadisper} function in vegan package.
\subsection{Usage}{
\if{html}{\out{<div class="r">}}\preformatted{trans_beta$cal_betadisper(...)}\if{html}{\out{</div>}}
}

\subsection{Arguments}{
\if{html}{\out{<div class="arguments">}}
\describe{
\item{\code{...}}{parameters passed to \code{betadisper} function.}
}
\if{html}{\out{</div>}}
}
\subsection{Returns}{
\code{res_betadisper} stored in object.
}
\subsection{Examples}{
\if{html}{\out{<div class="r example copy">}}
\preformatted{t1$cal_betadisper()
}
\if{html}{\out{</div>}}

}

}
\if{html}{\out{<hr>}}
\if{html}{\out{<a id="method-trans_beta-cal_group_distance"></a>}}
\if{latex}{\out{\hypertarget{method-trans_beta-cal_group_distance}{}}}
\subsection{Method \code{cal_group_distance()}}{
Convert symmetric distance matrix to distance table of paired samples that are within groups or between groups.
\subsection{Usage}{
\if{html}{\out{<div class="r">}}\preformatted{trans_beta$cal_group_distance(
  within_group = TRUE,
  by_group = NULL,
  ordered_group = NULL,
  sep = " vs "
)}\if{html}{\out{</div>}}
}

\subsection{Arguments}{
\if{html}{\out{<div class="arguments">}}
\describe{
\item{\code{within_group}}{default TRUE; whether obtain distance table of paired samples within groups; if FALSE, obtain distances of paired samples between any two groups.}

\item{\code{by_group}}{default NULL; one colname name of \code{sample_table} in \code{microtable} object.
If provided, transform distances by the provided \code{by_group} parameter. This is especially useful for ordering and filtering values further.
When \code{within_group = TRUE}, the result of by_group parameter is the format of paired groups.
When \code{within_group = FALSE}, the result of by_group parameter is the format same with the group information in \code{sample_table}.}

\item{\code{ordered_group}}{default NULL; a vector representing the ordered elements of \code{group} parameter; only useful when within_group = FALSE.}

\item{\code{sep}}{default TRUE; a character string to separate the group names after merging them into a new name.}
}
\if{html}{\out{</div>}}
}
\subsection{Returns}{
\code{res_group_distance} stored in object.
}
\subsection{Examples}{
\if{html}{\out{<div class="r example copy">}}
\preformatted{\donttest{
t1$cal_group_distance(within_group = TRUE)
}
}
\if{html}{\out{</div>}}

}

}
\if{html}{\out{<hr>}}
\if{html}{\out{<a id="method-trans_beta-cal_group_distance_diff"></a>}}
\if{latex}{\out{\hypertarget{method-trans_beta-cal_group_distance_diff}{}}}
\subsection{Method \code{cal_group_distance_diff()}}{
Differential test of converted distances across groups.
\subsection{Usage}{
\if{html}{\out{<div class="r">}}\preformatted{trans_beta$cal_group_distance_diff(
  group = NULL,
  by_group = NULL,
  by_ID = NULL,
  ...
)}\if{html}{\out{</div>}}
}

\subsection{Arguments}{
\if{html}{\out{<div class="arguments">}}
\describe{
\item{\code{group}}{default NULL; a column name of \code{object$res_group_distance} used for the statistics; If NULL, use the \code{group} inside the object.}

\item{\code{by_group}}{default NULL; a column of \code{object$res_group_distance} used to perform the differential test 
among elements in \code{group} parameter for each element in \code{by_group} parameter. So \code{by_group} has a larger scale than \code{group} parameter.
This \code{by_group} is very different from the \code{by_group} parameter in the \code{cal_group_distance} function.}

\item{\code{by_ID}}{default NULL; a column of \code{object$res_group_distance} used to perform paired t test or paired wilcox test for the paired data,
such as the data of plant compartments for different plant species (ID). 
So \code{by_ID} should be the smallest unit of sample collection without any repetition in it.}

\item{\code{...}}{parameters passed to \code{cal_diff} function of \code{\link{trans_alpha}} class.}
}
\if{html}{\out{</div>}}
}
\subsection{Returns}{
\code{res_group_distance_diff} stored in object.
}
\subsection{Examples}{
\if{html}{\out{<div class="r example copy">}}
\preformatted{\donttest{
t1$cal_group_distance_diff()
}
}
\if{html}{\out{</div>}}

}

}
\if{html}{\out{<hr>}}
\if{html}{\out{<a id="method-trans_beta-plot_group_distance"></a>}}
\if{latex}{\out{\hypertarget{method-trans_beta-plot_group_distance}{}}}
\subsection{Method \code{plot_group_distance()}}{
Plot the distances of paired groups within or between groups.
\subsection{Usage}{
\if{html}{\out{<div class="r">}}\preformatted{trans_beta$plot_group_distance(plot_group_order = NULL, ...)}\if{html}{\out{</div>}}
}

\subsection{Arguments}{
\if{html}{\out{<div class="arguments">}}
\describe{
\item{\code{plot_group_order}}{default NULL; a vector used to order the groups in the plot.}

\item{\code{...}}{parameters (except measure) passed to \code{plot_alpha} function of \code{\link{trans_alpha}} class.}
}
\if{html}{\out{</div>}}
}
\subsection{Returns}{
\code{ggplot}.
}
\subsection{Examples}{
\if{html}{\out{<div class="r example copy">}}
\preformatted{\donttest{
t1$plot_group_distance()
}
}
\if{html}{\out{</div>}}

}

}
\if{html}{\out{<hr>}}
\if{html}{\out{<a id="method-trans_beta-plot_clustering"></a>}}
\if{latex}{\out{\hypertarget{method-trans_beta-plot_clustering}{}}}
\subsection{Method \code{plot_clustering()}}{
Plot clustering result based on the \code{ggdendro} package.
\subsection{Usage}{
\if{html}{\out{<div class="r">}}\preformatted{trans_beta$plot_clustering(
  color_values = RColorBrewer::brewer.pal(8, "Dark2"),
  measure = NULL,
  group = NULL,
  replace_name = NULL
)}\if{html}{\out{</div>}}
}

\subsection{Arguments}{
\if{html}{\out{<div class="arguments">}}
\describe{
\item{\code{color_values}}{default RColorBrewer::brewer.pal(8, "Dark2"); color palette for the text.}

\item{\code{measure}}{default NULL; beta diversity index; If NULL, using the measure when creating object}

\item{\code{group}}{default NULL; if provided, use this group to assign color.}

\item{\code{replace_name}}{default NULL; if provided, use this as label.}
}
\if{html}{\out{</div>}}
}
\subsection{Returns}{
\code{ggplot}.
}
\subsection{Examples}{
\if{html}{\out{<div class="r example copy">}}
\preformatted{t1$plot_clustering(group = "Group", replace_name = c("Saline", "Type"))
}
\if{html}{\out{</div>}}

}

}
\if{html}{\out{<hr>}}
\if{html}{\out{<a id="method-trans_beta-clone"></a>}}
\if{latex}{\out{\hypertarget{method-trans_beta-clone}{}}}
\subsection{Method \code{clone()}}{
The objects of this class are cloneable with this method.
\subsection{Usage}{
\if{html}{\out{<div class="r">}}\preformatted{trans_beta$clone(deep = FALSE)}\if{html}{\out{</div>}}
}

\subsection{Arguments}{
\if{html}{\out{<div class="arguments">}}
\describe{
\item{\code{deep}}{Whether to make a deep clone.}
}
\if{html}{\out{</div>}}
}
}
}
