
Compare the Consistency of Statistically Significant Features
Source:R/compare_daa_results.R
compare_daa_results.RdThis function compares the consistency and inconsistency of statistically significant features obtained using different methods in `pathway_daa` from the `ggpicrust2` package. It creates a report showing the number of common and different features identified by each method, and the features themselves.
Arguments
- daa_results_list
A list of data frames containing statistically significant features obtained using different methods.
- method_names
A character vector of names for each method used.
- p_values_threshold
A numeric value representing the threshold for the p-values. Features with p-values less than this threshold are considered statistically significant. Default is 0.05. Must be in the range (0, 1].
Value
A data frame with the comparison results. The data frame has the following columns:
method: The name of the method.num_features: The total number of statistically significant features obtained by the method.num_common_features: The number of features that are common to other methods.num_diff_features: The number of features that are different from other methods.common_features: The names of the features that are common to all methods.diff_features: The names of the features that are different from other methods.
Details
Each list element is one discovery set. Split multi-test output such as
ALDEx2 by its method column before comparison; otherwise the tests'
discoveries are pooled within that element. This function does not rerun
testing or adjust p-values again.
For multi-group DAA output, each discovery is compared as a
feature + group-pair unit. The group pair is treated as unordered for
this set-level comparison, because the function compares whether methods
identified a significant difference, not the effect-size direction. This
prevents the same feature from being counted as method-consistent when
different methods found it in different pairwise contrasts, while still
treating A vs B and B vs A as the same biological comparison.
Rows whose two group labels are identical are invalid self-comparisons and
are rejected.
If all significant discoveries share one group pair, the printed feature
lists use feature IDs only for backward-readable output; otherwise feature
lists include the canonical contrast as feature [group1 vs group2].
Examples
# Minimal DAA-like results from three methods (no external dependencies required)
deseq2_df <- data.frame(
feature = c("ko00010", "ko00020", "ko00564"),
group1 = c("A", "A", "A"),
group2 = c("B", "B", "B"),
p_adjust = c(0.01, 0.20, 0.03),
stringsAsFactors = FALSE
)
edgeR_df <- data.frame(
feature = c("ko00010", "ko00680", "ko00564"),
group1 = c("A", "A", "A"),
group2 = c("B", "B", "B"),
p_adjust = c(0.02, 0.04, 0.01),
stringsAsFactors = FALSE
)
maaslin2_df <- data.frame(
feature = c("ko00010", "ko03030", "ko00564"),
group1 = c("A", "A", "A"),
group2 = c("B", "B", "B"),
p_adjust = c(0.03, 0.02, 0.04),
stringsAsFactors = FALSE
)
daa_results_list <- list(DESeq2 = deseq2_df, edgeR = edgeR_df, Maaslin2 = maaslin2_df)
comparison_results <- compare_daa_results(
daa_results_list = daa_results_list,
method_names = c("DESeq2", "edgeR", "Maaslin2"),
p_values_threshold = 0.05
)
comparison_results