perform_FoldChange.RdPerforms pairwise fold change analysis on preprocessed metabolomics or proteomics peak data. The function calculates fold changes and log2 fold changes between all possible group pairs while excluding quality control (QC) samples. The analysis uses group means for comparison and includes options for custom group ordering and result sorting.
perform_FoldChange(
data,
arrangeLevels = NULL,
sortFC = TRUE,
qc_patterns = c("SQC", "EQC", "QC"),
min_samples_per_group = 2,
epsilon = 1e-08
)List. A preprocessed data object returned by perform_PreprocessingPeakData()
or similar preprocessing functions. Must contain:
$data_scaledPCA_rsdFiltered_varFiltered: Numeric matrix/data.frame of peak data
$Metadata: Data.frame with at least a 'Group' column
Character vector. Optional custom ordering for group levels.
Must contain all unique group names present in the data (excluding QC samples).
If NULL (default), groups are sorted alphabetically.
Logical. If TRUE (default), sorts results by fold change values
in descending order within each comparison.
Character vector. Patterns to identify QC samples in the Group
column. Default is c("SQC", "EQC", "QC").
Integer. Minimum number of samples required per group for analysis. Default is 2.
Numeric. Small value added to prevent log2(0) issues when data
contains zeros or negative values. Default is 1e-8.
A list containing:
Character. Function name for traceability
Data.frame. Adjusted data with minimum value shifted to 1
Data.frame. Summary of groups and sample counts
Matrix. All pairwise comparisons performed
Data.frame. Fold change results for each comparison
The function performs the following steps:
Validates input data structure and parameters
Filters out QC samples based on specified patterns
Checks for sufficient samples per group
Handles zero/negative values by adding appropriate shift
Performs all pairwise group comparisons
Calculates fold changes as mean(group1)/mean(group2)
Computes log2 fold changes
Optionally sorts results by fold change magnitude
The function assumes that higher values indicate higher abundance/expression. Ensure your data is appropriately normalized before analysis.
if (FALSE) { # \dontrun{
# Basic usage with default parameters
fc_results <- perform_FoldChange(preprocessed_data)
# Custom group ordering and no sorting
fc_results <- perform_FoldChange(
data = preprocessed_data,
arrangeLevels = c("Control", "Treatment1", "Treatment2"),
sortFC = FALSE
)
# Custom QC patterns
fc_results <- perform_FoldChange(
data = preprocessed_data,
qc_patterns = c("QC", "Blank", "POOL")
)
} # }