SecAct: Inference of Secreted Protein Signaling Activity

SecAct logo

Overview

SecAct is a computational framework for inferring intercellular signaling activity mediated by secreted proteins from transcriptomic data. The package implements a ridge regression model with permutation-based statistical testing to quantify the activity of over 1,000 secreted proteins across diverse biological contexts.

SecAct supports multiple data modalities:

Methodology

Mathematical Framework

SecAct employs regularized linear regression to infer secreted protein activity:

$$\hat{\beta} = (X^TX + \lambda I)^{-1} X^T Y$$

where:

Statistical Significance

Activity significance is assessed via permutation testing:

  1. Generate null distribution by permuting sample labels
  2. Compute z-scores: $z = (\hat{\beta} - \mu_{null}) / \sigma_{null}$
  3. Calculate empirical p-values with correction for finite permutations

Signature Database

The SecAct signature matrix comprises:

Installation

From R-universe (Recommended)

install.packages("SecAct", repos = c(
  "https://zaoqu-liu.r-universe.dev",
  "https://cloud.r-project.org"
))

From GitHub

# Install devtools if needed
if (!requireNamespace("devtools", quietly = TRUE))
    install.packages("devtools")

devtools::install_github("Zaoqu-Liu/SecAct")

System Requirements

SecAct includes an optional C implementation using the GNU Scientific Library (GSL) for enhanced performance. GSL is optional — a pure R fallback is available.

# macOS
brew install gsl

# Ubuntu/Debian
sudo apt-get install libgsl-dev

# RHEL/CentOS/Fedora
sudo dnf install gsl-devel

Data Download

SecAct signature database (~76MB) is hosted on GitHub Release and will be automatically downloaded on first use. You can also manually download:

library(SecAct)

# Check data status
SecAct.check.data()

# Download data (if not already present)
SecAct.download.data()

Quick Start

library(SecAct)

# Load example expression data
data_path <- system.file("extdata/GSE100093.IFNG.expr.gz", package = "SecAct")
expr <- read.table(gzfile(data_path), sep = "\t", header = TRUE, row.names = 1)

# Infer secreted protein activity
result <- SecAct.activity.inference(expr, lambda = 5e5, nrand = 1000)

# Access results
head(result$zscore)  # Activity z-scores
head(result$pvalue)  # Statistical significance

# Visualize top active proteins
SecAct.heatmap.plot(result$zscore[1:20, ])

Key Functions

Function Description
SecAct.inference.r() Pure R implementation (cross-platform)
SecAct.inference.gsl() GSL-accelerated implementation
SecAct.activity.inference() Main inference function (bulk data)
SecAct.activity.inference.ST() Spatial transcriptomics inference
SecAct.activity.inference.scRNAseq() Single-cell RNA-seq inference
SecAct.CCC.scST() Cell-cell communication (spatial)
SecAct.CCC.scRNAseq() Cell-cell communication (single-cell)
SecAct.signaling.pattern() NMF-based signaling pattern discovery
SecAct.coxph.regression() Survival association analysis

Documentation

Comprehensive tutorials are available at: https://zaoqu-liu.github.io/SecAct/

Tutorial Description
Quick Start Getting started in 5 minutes
Algorithm Mathematical principles and implementation
Visualization Comprehensive plotting guide
Spatial: Patterns Signaling patterns in spatial data
Spatial: Communication Cell-cell communication analysis
Single-cell: CCC scRNA-seq communication inference
Bulk: Differential Treatment vs control analysis
Bulk: Survival Clinical relevance assessment

Citation

If you use SecAct in your research, please cite:

Beibei Ru, Lanqi Gong, Emily Yang, Seongyong Park, George Zaki, Kenneth Aldape, Lalage Wakefield, Peng Jiang. Inference of secreted protein activities in intercellular communication. Manuscript in preparation.

Authors

License

This project is licensed under the GPL-3.0 License — see the LICENSE file for details.

Related Resources