Learn R Programming

PopComm (version 1.0.0)

filter_lr_all: Filter and Analyze Ligand-Receptor Pair Correlations (All Cell Types)

Description

Filters ligand-receptor (LR) pairs and analyzes their correlations for all possible cell type pairs, and returns significant LR pairs based on user-defined thresholds. This function supports both Seurat objects and average expression matrices (matrix of gene expression data with cell types and samples as column names).

Usage

filter_lr_all(
  rna,
  lr_database = PopComm::lr_db,
  sample_col,
  cell_type_col,
  id_sep,
  min_cells = 50,
  min_samples = 10,
  min_cell_ratio = 0.1,
  min_sample_ratio = 0.1,
  cor_method = "spearman",
  adjust_method = "BH",
  min_adjust_p = 0.05,
  min_cor = 0,
  min_r2 = 0,
  min_fstat = 0,
  num_cores = 10,
  verbose = TRUE
)

Value

A data frame includes LR pairs with sufficient correlation and expression support across samples.

ligand, receptor

Ligand and receptor gene symbols.

cor

Correlation coefficient.

p_val

Raw p-value.

adjust.p

Adjusted p-value.

sender, receiver

Sender and receiver cell types.

slope

Slope of the linear regression model.

intercept

Intercept of the linear regression model.

r2

R-squared of the linear regression model.

fstat

F-statistic of the linear regression model.

Rows are ordered by ascending adjust.p and descending cor.

Returns NULL if:

  • No cell types are found in the metadata.

  • Insufficient samples or cells remain after filtering.

  • No ligand-receptor pairs pass the filtering thresholds.

Arguments

rna

A Seurat object or a matrix containing single-cell RNA expression data.

lr_database

A data frame of ligand-receptor pairs with columns "ligand_gene_symbol" and "receptor_gene_symbol".

sample_col

Metadata column name (character) for sample identifiers in Seurat mode; Matrix mode uses column index (numeric).

cell_type_col

Metadata column name (character) for cell type in Seurat mode; Matrix mode uses column index (numeric).

id_sep

Separator used in matrix column names to split sample and cell type (e.g., -- for "Cardiac--sample1"). Only used in Matrix mode.

min_cells

Minimum number of cells per sample for both sender and receiver (numeric, default 50). Only used in Seurat mode.

min_samples

Minimum number of valid samples to proceed (numeric, default 10).

min_cell_ratio

Minimum ratio of cells expressing ligand and receptor genes in sender or receiver cells (numeric, default 0.1). Only used in Seurat mode.

min_sample_ratio

Minimum ratio of samples in which both the ligand and receptor genes must be expressed (numeric, default 0.1).

cor_method

Correlation method: "spearman" (default), "pearson", or "kendall".

adjust_method

P-value adjustment method (default "BH" for Benjamini-Hochberg). Options: "holm", "hochberg", "hommel", "bonferroni", "BH", "BY", "fdr", "none".

min_adjust_p

Adjusted p-value threshold for significance (numeric, default 0.05).

min_cor

Minimum correlation coefficient threshold (numeric, default 0). Must be \(\ge\) 0.

min_r2

Minimum R-squared threshold for the linear regression model (numeric, default 0). Must be \(\ge\) 0.

min_fstat

Minimum F-statistic threshold for the linear regression model (numeric, default 0). Must be \(\ge\) 0.

num_cores

Number of CPU cores for parallel processing (numeric, default 10). Automatically capped at (system cores - 1).

verbose

Logical indicating whether to print progress messages (logical, default: TRUE).

Examples

Run this code
# \donttest{
  data(matrix_object)
  data(lr_db)

  # Analyzing ligand-receptor interactions between all cell types
  result01a <- filter_lr_all(
    rna = matrix_object,
    lr_database = lr_db,
    sample_col = 2,
    cell_type_col = 1,
    id_sep = "--",
    min_samples = 10,
    min_sample_ratio = 0.1,
    min_adjust_p = 0.05,
    num_cores = 1,
    verbose = TRUE
    )

  if (!is.null(result01a)) {
  print(head(result01a))
  }
# }

Run the code above in your browser using DataLab