
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:
SecAct employs regularized linear regression to infer secreted protein activity:
$$\hat{\beta} = (X^TX + \lambda I)^{-1} X^T Y$$
where:
Activity significance is assessed via permutation testing:
The SecAct signature matrix comprises:
install.packages("SecAct", repos = c(
"https://zaoqu-liu.r-universe.dev",
"https://cloud.r-project.org"
))
# Install devtools if needed
if (!requireNamespace("devtools", quietly = TRUE))
install.packages("devtools")
devtools::install_github("Zaoqu-Liu/SecAct")
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
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()
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, ])
| 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 |
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 |
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.
This project is licensed under the GPL-3.0 License — see the LICENSE file for details.