Skip to contents

Notation (shared by all vignettes; aligned with the article)

Gene g=1,\ldots,G; cell type j=1,\ldots,J (a second type is \ell); bulk sample i=1,\ldots,N; reference donor (replicate) r=1,\ldots,R; cell c, with C_j reference cells of type j. The index i is dropped inside a derivation and restored in the model statements.

Symbol Meaning
y_{gi}, \boldsymbol{y}_{\cdot i} Bulk expression on a linear scale
m_{ji}, n_i=\sum_jm_{ji} Cells of type j in bulk sample i, and their total
\tilde{\boldsymbol{y}}_{\cdot i}=\boldsymbol{y}_{\cdot i}/n_i Bulk expression per cell
\boldsymbol{p}_{\cdot i}\in\Delta^{J-1} Cell fractions, p_{ji}=m_{ji}/n_i
\boldsymbol{\rho}_{i}\in\mathbb{R}^{J-1} Isometric log-ratio (ILR) coordinates of \boldsymbol{p}_{\cdot i}, \boldsymbol{p}_{\cdot i}=\operatorname{softmax}(\mathbf{V}\boldsymbol{\rho}_i) with a Helmert basis \mathbf{V}
\boldsymbol{q}_{\cdot i} Transcript fractions, q_{ji}=p_{ji}S_j/\sum_\ell p_{\ell i}S_\ell
\boldsymbol{\mu}_{\cdot j}, \boldsymbol{\Sigma}_j Mean and G\times G gene–gene covariance of a type-j population profile
\boldsymbol{\Omega}_j=\boldsymbol{\Sigma}_j^{-1} Precision matrix of type j
\boldsymbol{\Gamma}_g J\times J covariance across cell types for gene g (bMIND, EPIC-unmix, Unico)
\boldsymbol{x}_{\cdot j,i} Purified profile of type j in sample i
x_{gc}, \boldsymbol{x}_{\cdot c}, s_c Raw UMI count of gene g in reference cell c, and the size factor of cell c
\boldsymbol{\lambda}_{\cdot c}, \boldsymbol{z}_{\cdot c} Size-free expression of cell c; its latent log-expression in the Poisson log-normal (PLN) model
\tilde{\boldsymbol{\mu}}_{\cdot j}=C_j^{-1}\sum_{c\in j}\boldsymbol{x}_{\cdot c}=S_j\boldsymbol{\theta}_{\cdot j} Per-cell mean of the raw UMI counts of the C_j reference cells of type j
\boldsymbol{\theta}_{\cdot j}, S_j=\mathbf{1}^{\top}\tilde{\boldsymbol{\mu}}_{\cdot j} Relative abundance (\mathbf{1}^{\top}\boldsymbol{\theta}_{\cdot j}=1) and mean transcriptome size of a type-j cell
\boldsymbol{\Sigma}_{W,j}, \boldsymbol{\Sigma}_{B,j} Within-donor cell-to-cell covariance of type j (one single-cell sample); between-donor covariance of type j (needs R\ge2 donors)
\boldsymbol{S}_W(\boldsymbol{v})=\sum_jv_j\boldsymbol{\Sigma}_{W,j}, \boldsymbol{S}_B(\boldsymbol{v})=\sum_jv_j^2\boldsymbol{\Sigma}_{B,j} Linear and quadratic covariance mixtures with weights \boldsymbol{v}
\boldsymbol{V}_j Empirical covariance of type j, computed from its reference profiles or cells
\boldsymbol{R}_j Empirical correlation matrix of type j (bold; the scalar R is the number of donors)
\boldsymbol{\Delta}_j=\operatorname{diag}(\boldsymbol{V}_j) Diagonal matrix of the empirical variances of type j
\lambda Penalty of a regularised covariance or precision estimator
\psi_g, \mathcal{D}_g Negative binomial dispersion of gene g; deviance of gene g in a count model
\delta_{gj} Detection rate of gene g in type j (fraction of cells with a non-zero count)
\varpi_{\ell\mid j}, \varpi_{j\ell}, \bar\varpi MixSim overlap: probability of misclassifying a draw of j into \ell, pairwise overlap \varpi_{j\ell}=\varpi_{\ell\mid j}+\varpi_{j\mid\ell}, and its average over pairs (BarOmega)
\boldsymbol{T}_{ji}=\sum_{c=1}^{m_{ji}}\boldsymbol{X}_{jic} Total expression contributed by type j to sample i
a_i Sample-wide scale between the reference and the bulk library
c_i=a_in_i, \phi_i=a_i^2n_i Mean scale and variance scale of the single-cell model
b_g, \tilde b_g=b_g^{\mathrm{bulk}}/b_g^{\mathrm{ref}} Capture efficiency of gene g in one protocol, and the gene-wise platform ratio; \tilde{\boldsymbol{B}}=\operatorname{diag}(\tilde{\boldsymbol{b}})
\boldsymbol{D}_i Diagonal, heteroscedastic bulk measurement noise

A tilde marks a quantity rescaled to a reference unit: per cell (\tilde{\boldsymbol{y}}, \tilde{\boldsymbol{\mu}}) or relative to the reference protocol (\tilde{\boldsymbol{b}}). \boldsymbol{\Sigma}_j couples genes within one cell type; \boldsymbol{\Gamma}_g couples cell types within one gene. A symbol absent from this table is defined in the vignette that uses it, with one meaning there.

Scope

Bulk deconvolution is one instance of a problem that appears wherever a measured signal is a blend of known ingredients. This vignette places DeCovarT in the vocabulary of mixture experiments, where the proportions are regressors on the simplex, and lists the modelling devices of that field (Scheffé polynomials, interaction terms, designed mixture points) that could be borrowed. Extensions specific to transcriptomics are in the extensions roadmap.

Write g=1,\ldots,G for the measured features (genes), j=1,\ldots,J for the components (cell types), \boldsymbol{p}\in\Delta^{J-1} for the proportions, \boldsymbol{\mu}_j and \boldsymbol{\Sigma}_j for the mean and covariance of component j.

Bulk transcriptomic deconvolution is one instance of a mixture inverse problem: a composite signal (tissue expression, a spectrum, a chromatogram) is observed, and we seek the proportions \boldsymbol{p} of underlying components. Because \boldsymbol{p} is compositional (parts of a whole), estimates must lie on the simplex \Delta^{J-1}=\{\boldsymbol{p}\in[0,1]^J:\sum_j p_j=1\}. (Chassagnol et al. 2023) model each reference profile as multivariate Gaussian and recover \boldsymbol{p} by constrained maximum likelihood; classical deconvolution tools such as CIBERSORT assume gene-wise independence instead (Newman et al. 2015).

Mixture design and first-order structure

Mixture experiments and compositional data

DeCovarT—and bulk deconvolution more generally—sits inside the wider class of mixture inverse problems in formulation science, spectroscopy, and designed experiments where component fractions are explicit regressors on the simplex. R offers only a handful of packages for designed mixture points (as opposed to random \boldsymbol{p} on \Delta^{J-1}):

  • AlgDesign (Wheeler 2025) — lattice and simplex-centroid mixture designs via genMixture() / gen.mixture(), plus D-, A-, and I-optimal designs; the closest general substitute for classical mixture DOE.
  • skpr (Morgan-Wall and Khoury 2025) — optimal mixture designs from a candidate set under \sum_j p_j=1; preferable when optimality criteria matter more than fixed simplex-centroid lattices.

A modular Scheffé-type benchmark would combine AlgDesign (or skpr) to propose \boldsymbol{p}, DeCovarT (or baselines) to invert the mixture, and compositional metrics from the simulation vignettes.

In designed mixture experiments (chemistry, food science, formulation), component proportions are explicit regressors with no free intercept because \sum_j p_j=1. A Scheffé cubic model for three components reads

y = \beta_1 p_1 + \beta_2 p_2 + \beta_3 p_3 + \beta_{12} p_1 p_2 + \beta_{13} p_1 p_3 + \beta_{23} p_2 p_3 + \beta_{123} p_1 p_2 p_3, \tag{1}

with every p_j\in[0,1] and \sum_j p_j=1 (Brown et al. 2015; Aitchison 1982). DeCovarT’s current release implements only the first-order part of Eq. 1 in a probabilistic setting: for cell type j, reference mean \boldsymbol{\mu}_j and covariance \boldsymbol{\Sigma}_j are given, and the bulk mixture satisfies

\boldsymbol{Y}\mid\boldsymbol{p} \sim \mathcal{N}\!\left( \sum_{j=1}^{J} p_j\,\boldsymbol{\mu}_j,\; \sum_{j=1}^{J} p_j^{2}\,\boldsymbol{\Sigma}_j \right). \tag{2}

Eq. 2 is the Gaussian-convolution likelihood optimised in deconvolute_ratios(); it extends mean-only linear deconvolution by propagating gene–gene covariance, not by adding Scheffé interaction monomials.

Interaction and synergy terms

Synergy or antagonism between components corresponds to second-order terms in Eq. 1: a positive \beta_{12} means the joint presence of components 1 and 2 raises the response above the additive prediction \beta_1 p_1+\beta_2 p_2. A natural generative extension would enrich the mean and, optionally, the covariance:

\mathbb{E}[\boldsymbol{Y}] = \sum_j p_j\,\boldsymbol{\mu}_j + \sum_{j<k} f(p_j,p_k)\,\boldsymbol{\mu}_{jk} + \cdots, \tag{3}

\boldsymbol{\Sigma}(\boldsymbol{p}) = \sum_j p_j^{2}\,\boldsymbol{\Sigma}_j + \sum_{j<k} g(p_j,p_k)\,\boldsymbol{\Sigma}_{jk} + \cdots, \tag{4}

with f,g often taken as p_j p_k. Allowing \operatorname{Cov}(\boldsymbol {X}_j,\boldsymbol{X}_k)\neq\boldsymbol{0} relaxes DeCovarT’s independence assumption between components and captures non-additive mixing. Such a model remains compatible with the same simplex constraint on \boldsymbol{p} and could still be fitted by constrained MLE, at the cost of many additional interaction parameters and careful guard against overfitting.

The present generative framework keeps a linear mean map \boldsymbol{y}=\boldsymbol{\mu}\boldsymbol{p}. When the regression of a compositional response on Euclidean predictors is itself nonlinear, flexible simplicial nonparametric models (Tsagris et al. 2023) and folded \alpha-distributions on the simplex (Tsagris and Stewart 2020) are a natural outlook; they are not used in the current convolution.

Other mixture inverse problems

The same structure, a signal equal to a proportion-weighted sum of component profiles, recurs outside genomics. Three settings are close enough to DeCovarT that their methods are worth importing, and their literature should be added to the Zotero library before it is cited here.

Table 1: Mixture inverse problems with the same algebra as bulk deconvolution. References for the last two rows are to be imported into Zotero.
Field Signal Components Second-order information
Designed mixture experiments a measured property of a blend ingredients with fixed fractions replicate variance of each ingredient’s response
Spectral unmixing (chemometrics, remote sensing) a spectrum or a pixel pure-component spectra (“endmembers”) variability of each endmember across samples
Receptor-based source apportionment (atmospheric chemistry) chemical species in a filter sample source profiles measurement uncertainty of each source profile

The common lesson is the one DeCovarT formalises: when the component profiles are themselves uncertain, a weighted least-squares fit should weight each feature by the variance the profiles induce at the current proportions, \sum_jp_j^{2}\boldsymbol{\Sigma}_j for independent components, rather than by a fixed residual variance.

References

Aitchison, J. 1982. ‘The Statistical Analysis of Compositional Data’. Journal of the Royal Statistical Society: Series B (Methodological) 44 (2): 139–60. https://doi.org/10.1111/j.2517-6161.1982.tb01195.x.
Brown, L., A. N. Donev, and A. C. Bissett. 2015. ‘General Blending Models for Data from Mixture Experiments’. Technometrics 57 (4): 449–56. https://doi.org/10.1080/00401706.2014.947003.
Chassagnol, Bastien, Grégory Nuel, and Etienne Becht. 2023. DeCovarT, a Multidimensional Probabilistic Model for the Deconvolution of Heterogeneous Transcriptomic Samples. arXiv. https://doi.org/10.48550/arxiv.2309.09557.
Morgan-Wall, Tyler, and George Khoury. 2025. Skpr: Design of Experiments Suite: Generate and Evaluate Optimal Designs. https://CRAN.R-project.org/package=skpr.
Newman, Aaron, Chih Liu, Michael Green, et al. 2015. ‘Robust Enumeration of Cell Subsets from Tissue Expression Profiles’. Nature Methods 12. https://doi.org/10.1038/nmeth.3337.
Tsagris, Michail, Abdulaziz Alenazi, and Connie Stewart. 2023. ‘Flexible Non-Parametric Regression Models for Compositional Response Data with Zeros’. Statistics and Computing 33 (5): 106. https://doi.org/10.1007/s11222-023-10277-5.
Tsagris, Michail, and Connie Stewart. 2020. ‘A Folded Model for Compositional Data Analysis’. Australian & New Zealand Journal of Statistics 62 (2): 249–77. https://doi.org/10.1111/anzs.12289.
Wheeler, Bob. 2025. AlgDesign: Algorithmic Experimental Design. https://github.com/jvbraun/AlgDesign.