Compute correlation matrix for in-memory matrices (unified function)

LINEAR_ALGEBRA

1 Description

Compute Pearson or Spearman correlation matrix for matrices that fit in memory. This function automatically detects whether to compute:

2 Usage

bdCorr_matrix(X, Y = NULL, trans_x = NULL, trans_y = NULL, method = NULL, use_complete_obs = NULL, compute_pvalues = NULL, threads = NULL)

3 Arguments

Parameter Description
X First numeric matrix (observations in rows, variables in columns)
Y Second numeric matrix (optional, observations in rows, variables in columns)
trans_x Logical, whether to transpose matrix X (default: FALSE)
trans_y Logical, whether to transpose matrix Y (default: FALSE, ignored if Y not provided)
method Character string indicating correlation method (“pearson” or “spearman”, default: “pearson”)
use_complete_obs Logical, whether to use only complete observations (default: TRUE)
compute_pvalues Logical, whether to compute p-values for correlations (default: TRUE)
threads Integer, number of threads for parallel computation (optional, default: -1 for auto)

4 Value

A list containing correlation results

5 Examples

Code
# Backward compatible - existing code unchanged
set.seed(123)
X <- matrix(rnorm(1000), ncol = 10)
result_original <- bdCorr_matrix(X)

# Create omics-style data
gene_expr <- matrix(rnorm(5000), nrow = 100, ncol = 50)  # 100 samples × 50 genes

# Gene-gene correlations (variables)
gene_corr <- bdCorr_matrix(gene_expr, trans_x = FALSE)

# Sample-sample correlations (individuals)  
sample_corr <- bdCorr_matrix(gene_expr, trans_x = TRUE)

# Cross-correlation examples
methylation <- matrix(rnorm(4000), nrow = 100, ncol = 40)  # 100 samples × 40 CpGs

# Variables vs variables (genes vs CpGs)
vars_vs_vars <- bdCorr_matrix(gene_expr, methylation, 
                             trans_x = FALSE, trans_y = FALSE)

# Samples vs variables (individuals vs CpGs)
samples_vs_vars <- bdCorr_matrix(gene_expr, methylation,
                                trans_x = TRUE, trans_y = FALSE)