RAD is a toolkit that unmixes bulk tumor samples. Given a non-negative bulk RNA expression matrix B \in R_ ^{m x n}
, where each row i
is a gene, each column j
is a tumor sample, our goal is to infer an expression profile matrix C \in R_ ^{m x k}
, where each column l
is a cell community, and a fraction matrix F \in R_ ^{k x n}
, such that:
B ~= C F.
To be more specific, RAD solves the following problem:
min_{C, F} || B - C F ||_{Fr}^2,
s.t. C_{il} >= 0, i=1,...,m, l=1,...,k,
F_{lj} >= 0, l=1,...,k, j=1,...,n,
\sum_{l=1}^{k} F_{lj} = 1, j=1,...,n.
RAD has the following features and advantages:
compress_module
: Integrate gene module knowledge to reduce noise.estimate_number
: Estimate the number of cell populations automatically.estimate_clones
: Utilize core RAD algorithm to unmix the cell populations accurately and robustly.estimate_marker
: Estimate other biomarkers of cell populations given bulk marker data.
The code runs on Python 3. You will need to install the additional Python package cvxopt
. Most other packages are available in the Anaconda.
You can find a brief tutorial with code and output in the jupyter notebook tutorial.ipynb
.
If you find RAD helpful, please cite the following paper: Yifeng Tao, Haoyun Lei, Xuecong Fu, Adrian V. Lee, Jian Ma, and Russell Schwartz. Robust and accurate deconvolution of tumor populations uncovers evolutionary mechanisms of breast cancer metastasis. Bioinformatics, 36(Supplement_1):i407-i416. jul 2020.
@article{tao2020rad,
title = {Robust and Accurate Deconvolution of Tumor Populations Uncovers Evolutionary Mechanisms of Breast Cancer Metastasis},
author = {Tao, Yifeng and Lei, Haoyun and Fu, Xuecong and Lee, Adrian V and Ma, Jian and Schwartz, Russell},
journal = {Bioinformatics},
volume = {36},
number = {Supplement_1},
pages = {i407-i416},
year = {2020},
month = {jul},
issn = {1367-4803},
doi = {10.1093/bioinformatics/btaa396},
url = {https://doi.org/10.1093/bioinformatics/btaa396},
eprint = {https://academic.oup.com/bioinformatics/article-pdf/36/Supplement\_1/i407/33488922/btaa396.pdf},
}
We compared RAD with a few other methods in the paper, you can find the links to these algorithms below: