LINEAR_ALGEBRA
Description
Compute Pearson or Spearman correlation matrix for matrices that fit in memory. This function automatically detects whether to compute:
Usage
bdCorr_matrix(X, Y = NULL, trans_x = NULL, trans_y = NULL, method = NULL, use_complete_obs = NULL, compute_pvalues = NULL, threads = NULL)
Arguments
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) |
Value
A list containing correlation results
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)