Department of Bioinformatics and Computational Biology

Home > Public Software > DeMixT


hidden rowfor table layout
DescriptionCell type-specific deconvolution of heterogeneous tumor samples with two or three components using expression data from RNAseq or microarray platforms
Development Information
GitHub wwylab/DeMixT
LanguageR (package), HTML (website)
Current version1.4.0
LicenseArtistic (package)
Last updated2020/10/01
Citation Wang, Z., Cao, S., Morris, J.S., Ahn, J., Liu, R., Tyekucheva, S., Gao, F., Li, B., Lu, W., Tang, X. and Wistuba, I.I., (2018). Transcriptome Deconvolution of Heterogeneous Tumor Samples with Immune Infiltration. iScience, 9, pp.451-460.
Help and Support
Contact Shaolong Cao 
Peng Yang 
Wenyi Wang 
Discussion Issues on GitHub 


Transcriptomic deconvolution in cancer and other heterogeneous tissues remains challenging. Available methods lack the ability to estimate both component-specific proportions and expression profiles for individual samples. We develop a three-component deconvolution model, DeMixT, for expression data from a mixture of cancerous tissues, infiltrating immune cells and tumor microenvironment. DeMixT is a software package that performs deconvolution on transcriptome data from a mixture of two or three components.

DeMixT 1.6.0 is upcoming with the following changes:

MPI for parallel computing under R 4.0.0 for linux, windows and Mac OS platforms.

Gene expression data of normal tissues (Lung, Prostate and Thyroid) from the GTEx study and the deconvolution pipepine on github.

Download and Installation

Latest update.

To install DeMixT package from Biocondcutor:

We recommend using the Biocondcutor R package DeMixT 1.4.0 for your analysis. R.3.6.0 is required.

if (!requireNamespace("BiocManager", quietly = TRUE))


To install DeMixT package from Github:


Github link for DeMixT source code: .

Our package is able to do parallel computing through OpenMP. For instruction on how to install OpenMP, please check the Instruction .

For the details about how to use DeMixT, please check the Manual .

R script to run an example of DeMixT (version 1.4.0):

## Estimate proportions for simulated two-component data 
## with spike-in normal reference
res.GS = DeMixT_GS(data.Y =$data.Y,
                    data.N1 =$data.N1,
                    niter = 30, nbin = 50, nspikein = 50,
                    if.filter = TRUE, ngene.Profile.selected = 150,
           = 0.25, ngene.selected.for.pi = 150,
                    tol = 10^(-5))
## Read the results                    
## Two-component deconvolution given proportions 
res.S2 <- DeMixT_S2(data.Y =$data.Y,
                    data.N1 =$data.N1,
                    data.N2 = NULL,
                    givenpi = c(t(res.S1$pi[-nrow(res.GS$pi),])), nbin = 50)

Results from DeMixT

DeMixT returns a list object. The res.GS\$pi is a matrix of estimated proportions for each component (in columns) and each sample (in rows). The res.S2\$deconvExprT, res.S2\$deconvExprN1 (and res\$deconvExprN2 if the 3-component model is chosen) are matrices of deconvolved expression profiles corresponding to the unknown T-component and known N1-component (and N2-component), respectively. The res.S2\$deconvMu and res.S2\$deconvSigma are two matrices of estimated $\mu$ and $\sigma$ for each component (in columns) and each gene (in rows).

Knitr documentation for all analyses performed in the DeMixT manuscript (Wang et al.) can be found here.


For questions or support related to the use of either the DeMixT R package or web app, please visit the project on GitHub .
For other inquiries, please contact Wenyi Wang .


This website is for educational and research purposes only.