Infers both direct and indirect lactate signaling in single-cell data.
Direct signaling: Lactate binds to HCAR1 (GPR81), the only confirmed lactate GPCR (validated by cryo-EM structure, PLOS Biology 2024).
Indirect signaling: Lactate dissociation (pKa=3.86) produces H+ ions that activate proton-sensing GPCRs (GPR4, GPR65, GPR68, GPR132).
inferLactateSignaling(
object,
include_direct = TRUE,
include_indirect = TRUE,
method = "combined",
comm_method = "geometric",
min_pct = 0.1,
min_production = 0,
min_sensing = 0,
consider_uptake = TRUE,
consider_degradation = TRUE,
normalize = TRUE,
n_permutations = 100,
seed = 42,
verbose = TRUE
)A scMetaLink object with expression data
Logical. Include direct lactate-HCAR1 signaling. Default TRUE.
Logical. Include indirect lactate-H+-GPCR signaling. Default TRUE.
Character. Scoring method: "combined" (recommended), "mean", or "proportion". Default "combined".
Character. Communication score method: "geometric" (default), "product", or "harmonic".
Numeric. Minimum percentage of expressing cells (0-1). Default 0.1.
Numeric. Minimum production score threshold (0-1). Default 0.
Numeric. Minimum sensing score threshold (0-1). Default 0.
Logical. Include MCT uptake transporters in direct sensing. Default TRUE.
Logical. Subtract degradation enzyme expression from production scores. Default TRUE.
Logical. Normalize scores across cell types. Default TRUE.
Integer. Number of permutations for significance testing. Set to 0 to skip. Default 100.
Integer. Random seed for reproducibility. Default 42.
Logical. Print progress messages. Default TRUE.
Updated scMetaLink object with lactate_signaling results stored in the parameters slot, containing:
Lactate production scores per cell type
Direct sensing scores (HCAR1)
Indirect sensing scores (proton GPCRs)
Communication matrix via direct pathway
Communication matrix via indirect pathway
Sum of direct and indirect communication
Permutation-based p-values (if n_permutations > 0)
Expression contribution of each gene
Analysis parameters used
HCAR1 structure: PLOS Biology (2024)
GPR81 function: Nature Metabolism (2024)
Lactate signaling: Signal Transduction and Targeted Therapy (2024)
Proton-sensing GPCRs: Reactome R-HSA-444731
# \donttest{
# Load example data
data(crc_example)
# Create scMetaLink object
obj <- createScMetaLink(crc_expr, crc_meta, "cell_type")
#> Created scMetaLink object with 4210 genes, 2850 cells, 15 cell types
# Run lactate signaling analysis
obj <- inferLactateSignaling(obj)
#> Inferring lactate-mediated cell communication...
#> Cell types: 15
#> Direct pathway: TRUE
#> Indirect pathway: TRUE
#> Available lactate genes: 17/17
#> Calculating gene expression scores...
#> Calculating lactate production scores...
#> Calculating direct sensing scores (HCAR1)...
#> Calculating indirect sensing scores (GPR4/65/68/132)...
#> Normalizing scores...
#> Calculating direct communication scores...
#> Calculating indirect communication scores...
#> Running permutation test for direct pathway (100 permutations)...
#>
|
| | 0%
|
|= | 1%
|
|= | 2%
|
|== | 3%
|
|=== | 4%
|
|==== | 5%
|
|==== | 6%
|
|===== | 7%
|
|====== | 8%
|
|====== | 9%
|
|======= | 10%
|
|======== | 11%
|
|======== | 12%
|
|========= | 13%
|
|========== | 14%
|
|========== | 15%
|
|=========== | 16%
|
|============ | 17%
|
|============= | 18%
|
|============= | 19%
|
|============== | 20%
|
|=============== | 21%
|
|=============== | 22%
|
|================ | 23%
|
|================= | 24%
|
|================== | 25%
|
|================== | 26%
|
|=================== | 27%
|
|==================== | 28%
|
|==================== | 29%
|
|===================== | 30%
|
|====================== | 31%
|
|====================== | 32%
|
|======================= | 33%
|
|======================== | 34%
|
|======================== | 35%
|
|========================= | 36%
|
|========================== | 37%
|
|=========================== | 38%
|
|=========================== | 39%
|
|============================ | 40%
|
|============================= | 41%
|
|============================= | 42%
|
|============================== | 43%
|
|=============================== | 44%
|
|================================ | 45%
|
|================================ | 46%
|
|================================= | 47%
|
|================================== | 48%
|
|================================== | 49%
|
|=================================== | 50%
|
|==================================== | 51%
|
|==================================== | 52%
|
|===================================== | 53%
|
|====================================== | 54%
|
|====================================== | 55%
|
|======================================= | 56%
|
|======================================== | 57%
|
|========================================= | 58%
|
|========================================= | 59%
|
|========================================== | 60%
|
|=========================================== | 61%
|
|=========================================== | 62%
|
|============================================ | 63%
|
|============================================= | 64%
|
|============================================== | 65%
|
|============================================== | 66%
|
|=============================================== | 67%
|
|================================================ | 68%
|
|================================================ | 69%
|
|================================================= | 70%
|
|================================================== | 71%
|
|================================================== | 72%
|
|=================================================== | 73%
|
|==================================================== | 74%
|
|==================================================== | 75%
|
|===================================================== | 76%
|
|====================================================== | 77%
|
|======================================================= | 78%
|
|======================================================= | 79%
|
|======================================================== | 80%
|
|========================================================= | 81%
|
|========================================================= | 82%
|
|========================================================== | 83%
|
|=========================================================== | 84%
|
|============================================================ | 85%
|
|============================================================ | 86%
|
|============================================================= | 87%
|
|============================================================== | 88%
|
|============================================================== | 89%
|
|=============================================================== | 90%
|
|================================================================ | 91%
|
|================================================================ | 92%
|
|================================================================= | 93%
|
|================================================================== | 94%
|
|================================================================== | 95%
|
|=================================================================== | 96%
|
|==================================================================== | 97%
|
|===================================================================== | 98%
|
|===================================================================== | 99%
|
|======================================================================| 100%
#> Running permutation test for indirect pathway (100 permutations)...
#>
|
| | 0%
|
|= | 1%
|
|= | 2%
|
|== | 3%
|
|=== | 4%
|
|==== | 5%
|
|==== | 6%
|
|===== | 7%
|
|====== | 8%
|
|====== | 9%
|
|======= | 10%
|
|======== | 11%
|
|======== | 12%
|
|========= | 13%
|
|========== | 14%
|
|========== | 15%
|
|=========== | 16%
|
|============ | 17%
|
|============= | 18%
|
|============= | 19%
|
|============== | 20%
|
|=============== | 21%
|
|=============== | 22%
|
|================ | 23%
|
|================= | 24%
|
|================== | 25%
|
|================== | 26%
|
|=================== | 27%
|
|==================== | 28%
|
|==================== | 29%
|
|===================== | 30%
|
|====================== | 31%
|
|====================== | 32%
|
|======================= | 33%
|
|======================== | 34%
|
|======================== | 35%
|
|========================= | 36%
|
|========================== | 37%
|
|=========================== | 38%
|
|=========================== | 39%
|
|============================ | 40%
|
|============================= | 41%
|
|============================= | 42%
|
|============================== | 43%
|
|=============================== | 44%
|
|================================ | 45%
|
|================================ | 46%
|
|================================= | 47%
|
|================================== | 48%
|
|================================== | 49%
|
|=================================== | 50%
|
|==================================== | 51%
|
|==================================== | 52%
|
|===================================== | 53%
|
|====================================== | 54%
|
|====================================== | 55%
|
|======================================= | 56%
|
|======================================== | 57%
|
|========================================= | 58%
|
|========================================= | 59%
|
|========================================== | 60%
|
|=========================================== | 61%
|
|=========================================== | 62%
|
|============================================ | 63%
|
|============================================= | 64%
|
|============================================== | 65%
|
|============================================== | 66%
|
|=============================================== | 67%
|
|================================================ | 68%
|
|================================================ | 69%
|
|================================================= | 70%
|
|================================================== | 71%
|
|================================================== | 72%
|
|=================================================== | 73%
|
|==================================================== | 74%
|
|==================================================== | 75%
|
|===================================================== | 76%
|
|====================================================== | 77%
|
|======================================================= | 78%
|
|======================================================= | 79%
|
|======================================================== | 80%
|
|========================================================= | 81%
|
|========================================================= | 82%
|
|========================================================== | 83%
|
|=========================================================== | 84%
|
|============================================================ | 85%
|
|============================================================ | 86%
|
|============================================================= | 87%
|
|============================================================== | 88%
|
|============================================================== | 89%
|
|=============================================================== | 90%
|
|================================================================ | 91%
|
|================================================================ | 92%
|
|================================================================= | 93%
|
|================================================================== | 94%
|
|================================================================== | 95%
|
|=================================================================== | 96%
|
|==================================================================== | 97%
|
|===================================================================== | 98%
|
|===================================================================== | 99%
|
|======================================================================| 100%
#> Done!
#> Production scores for 15 cell types
#> Direct communication: 15 x 15 matrix
#> Indirect communication: 15 x 15 matrix
# Access results
lactate_results <- obj@parameters$lactate_signaling
head(lactate_results$direct_communication)
#> receiver
#> sender Normal Epithelial T Plasma Normal Fibroblast
#> Normal Epithelial 0.0000000 0.0000000 0.0000000 0
#> T 0.0000000 0.0000000 0.0000000 0
#> Plasma 0.0000000 0.0000000 0.0000000 0
#> Normal Fibroblast 0.0000000 0.0000000 0.0000000 0
#> CAF 0.0000000 0.0000000 0.0000000 0
#> Normal Macrophage 0.5020111 0.4179979 0.4185931 1
#> receiver
#> sender CAF Normal Macrophage TAM B Monocyte
#> Normal Epithelial 0.000000 0.0000000 0.0000000 0.0000000 0
#> T 0.000000 0.0000000 0.0000000 0.0000000 0
#> Plasma 0.000000 0.0000000 0.0000000 0.0000000 0
#> Normal Fibroblast 0.000000 0.0000000 0.0000000 0.0000000 0
#> CAF 0.000000 0.0000000 0.0000000 0.0000000 0
#> Normal Macrophage 0.943947 0.4499313 0.5176455 0.3266372 0
#> receiver
#> sender Endothelial Pericyte SMC Mast Gliacyte
#> Normal Epithelial 0.0000000 0.0000000 0.0000000 0.0000000 0.000000
#> T 0.0000000 0.0000000 0.0000000 0.0000000 0.000000
#> Plasma 0.0000000 0.0000000 0.0000000 0.0000000 0.000000
#> Normal Fibroblast 0.0000000 0.0000000 0.0000000 0.0000000 0.000000
#> CAF 0.0000000 0.0000000 0.0000000 0.0000000 0.000000
#> Normal Macrophage 0.6155285 0.8977151 0.8215609 0.4574871 0.536653
#> receiver
#> sender Tumor Epithelial
#> Normal Epithelial 0.0000000
#> T 0.0000000
#> Plasma 0.0000000
#> Normal Fibroblast 0.0000000
#> CAF 0.0000000
#> Normal Macrophage 0.5800917
# Analyze only indirect (proton) signaling
obj <- inferLactateSignaling(obj, include_direct = FALSE)
#> Inferring lactate-mediated cell communication...
#> Cell types: 15
#> Direct pathway: FALSE
#> Indirect pathway: TRUE
#> Available lactate genes: 17/17
#> Calculating gene expression scores...
#> Calculating lactate production scores...
#> Calculating indirect sensing scores (GPR4/65/68/132)...
#> Normalizing scores...
#> Calculating indirect communication scores...
#> Running permutation test for indirect pathway (100 permutations)...
#>
|
| | 0%
|
|= | 1%
|
|= | 2%
|
|== | 3%
|
|=== | 4%
|
|==== | 5%
|
|==== | 6%
|
|===== | 7%
|
|====== | 8%
|
|====== | 9%
|
|======= | 10%
|
|======== | 11%
|
|======== | 12%
|
|========= | 13%
|
|========== | 14%
|
|========== | 15%
|
|=========== | 16%
|
|============ | 17%
|
|============= | 18%
|
|============= | 19%
|
|============== | 20%
|
|=============== | 21%
|
|=============== | 22%
|
|================ | 23%
|
|================= | 24%
|
|================== | 25%
|
|================== | 26%
|
|=================== | 27%
|
|==================== | 28%
|
|==================== | 29%
|
|===================== | 30%
|
|====================== | 31%
|
|====================== | 32%
|
|======================= | 33%
|
|======================== | 34%
|
|======================== | 35%
|
|========================= | 36%
|
|========================== | 37%
|
|=========================== | 38%
|
|=========================== | 39%
|
|============================ | 40%
|
|============================= | 41%
|
|============================= | 42%
|
|============================== | 43%
|
|=============================== | 44%
|
|================================ | 45%
|
|================================ | 46%
|
|================================= | 47%
|
|================================== | 48%
|
|================================== | 49%
|
|=================================== | 50%
|
|==================================== | 51%
|
|==================================== | 52%
|
|===================================== | 53%
|
|====================================== | 54%
|
|====================================== | 55%
|
|======================================= | 56%
|
|======================================== | 57%
|
|========================================= | 58%
|
|========================================= | 59%
|
|========================================== | 60%
|
|=========================================== | 61%
|
|=========================================== | 62%
|
|============================================ | 63%
|
|============================================= | 64%
|
|============================================== | 65%
|
|============================================== | 66%
|
|=============================================== | 67%
|
|================================================ | 68%
|
|================================================ | 69%
|
|================================================= | 70%
|
|================================================== | 71%
|
|================================================== | 72%
|
|=================================================== | 73%
|
|==================================================== | 74%
|
|==================================================== | 75%
|
|===================================================== | 76%
|
|====================================================== | 77%
|
|======================================================= | 78%
|
|======================================================= | 79%
|
|======================================================== | 80%
|
|========================================================= | 81%
|
|========================================================= | 82%
|
|========================================================== | 83%
|
|=========================================================== | 84%
|
|============================================================ | 85%
|
|============================================================ | 86%
|
|============================================================= | 87%
|
|============================================================== | 88%
|
|============================================================== | 89%
|
|=============================================================== | 90%
|
|================================================================ | 91%
|
|================================================================ | 92%
|
|================================================================= | 93%
|
|================================================================== | 94%
|
|================================================================== | 95%
|
|=================================================================== | 96%
|
|==================================================================== | 97%
|
|===================================================================== | 98%
|
|===================================================================== | 99%
|
|======================================================================| 100%
#> Done!
#> Production scores for 15 cell types
#> Indirect communication: 15 x 15 matrix
# }