receptLoss is an R package designed to identify novel nuclear hormone receptors (NHRs) whose expression levels in cancers could serve as biomarkers for patient survival.

By utilizing both expression data from both tumor and normal tissue, receptLoss provides biological context to the process of tumor subclassification that is lacking in existing methods that rely solely on expression patterns in tumor tissue.

receptLoss is complementary to oncomix. Whereas oncomix detects genes that gain expression in subsets of tumors relative to normal tissue, receptLoss detects genes that lose expression in subsets of tumors relative to normal tissue.


## Install the development version from GitHub
                            build_opts=c("--no-resave-data", "--no-manual"),


receptLoss consists of 2 main functions:

We begin by simulating two gene expression data matrices, one from tumor and the other from normal tissue.



## Simulate matrix of expression values from
## 10 genes measured in both normal tissue and 
## tumor tissue in 100 patients

exprMatrNml <- matrix(abs(rnorm(100, mean=2.5)), nrow=10) 
exprMatrTum <- matrix(abs(rnorm(1000)), nrow=10)
geneNames <- paste0(letters[seq_len(nrow(exprMatrNml))], 
rownames(exprMatrNml) <- rownames(exprMatrTum) <- geneNames

exprMatrNml and exprMatrTum are $m \times n$ matrices containing gene expression data from normal and tumor tissue, respectively, with $m$ genes as rows and $n$ patients as columns. The row names of these matrices are the gene names.

These two matrices should have the same number of rows (ie genes), with genes listed in the same order between the two matrices. However, they don't have to have the same number of columns (ie patients).

To run receptLoss(), we also define 2 parameters:

fig 2

nSdBelow <- 2
minPropPerGroup <- .2
rl <- receptLoss(exprMatrNml, exprMatrTum, nSdBelow, minPropPerGroup)

The output of receptLoss() is an $m\times7$ matrix, with $m$ equaling the number of genes. The 7 columns are as follows:


Let's take the top-ranked gene and plot its distribution.

clrs <- c("#E78AC3", "#8DA0CB")

tryCatch({plotReceptLoss(exprMatrNml, exprMatrTum, rl, 
    geneName=as.character(rl[1,1]), clrs=clrs)}, 
    }, error=function(cond){

Here's what this graph is showing us:

Nuclear Hormone Receptor (NHR) filtering

The question that inspired this package was whether the loss of expression of any of the ~50 NHRs (beyond the well-known estrogen, progesterone, and androgen NHRs) in uterine tumors was associated with differences in patient survival. NHRs might not only serve as survival biomarkers but also as drug targets, as their activity can be modulated by small molecules that resemble their hormonal ligands.

To facilitate the application of this question to additional cancer types, a list of all NHRs is included in this package as the object nhrs.

This object facilitates filtering of NHRs from a matrix of gene expression data, as it contains several commonly-used gene identifiers (e.g. HGNC symbol, HGNC ID, Entrez ID, and Ensembl ID) for the NHRs that might be found in different RNA expression datasets.

The source code for generating nhrs is available in "data-raw/nhrs.R".



Please contact me at with any suggestions, questions, or comments. Thank you!

Display this vignette


Session Info


Try the receptLoss package in your browser

Any scripts or data that you put into this service are public.

receptLoss documentation built on Nov. 8, 2020, 5:59 p.m.