Partial Gene Expression Deconvolution with DSection

Description

Estimates cell/tissue cell/tissue-specific expression signatures, given proportion priors using the MCMC approach from Erkkila et al. (2010), implemented in Matlab and wrapped in CellMix by the function DSection.

The S3 method csTopTable for DSection fits computes nominal p-values (i.e. unadjusted) of differential expression between cell type or group of samples within each cell type, for deconvolution results from the DSection algorithm.

Usage

gedAlgorithm.DSection(..., maxIter = 500L, p0, data = NULL, nBurnIn = 4 * maxIter, 
  W0 = max(100, nbasis(seed)), W_proposal = 100, samplep = TRUE)

S3 (DSection)
`csTopTable`(x, coef = 1L, decreasing = TRUE, ...)

Arguments

data
variable (e.g., factor) that defines groups of samples. Cell-specific signatures will be computed for each group.
maxIter
number of sampling, not including burn-in sampling.
...
extra arguments passed to DSection.
coef
specifies the reference cell type or group of samples, for which differential expression is computed.
p0
matrix of prior predictions on cell type proportions. T is the number of cell types, and columns in p0 must be positive and add up to one.
nBurnIn
Amount of burn-in. NOTE: keep nBurnIn > 0.
W0
Prior prediction weight, i.e., degree of confidence, on p0. Defines the peakedness of Dirichlet density around p0. NOTE: keep W0 >= T.
W_proposal
Transition kernel weight, defines the peakedness of Dirichlet density around p*, the old value. The higher W_proposal is, the smaller the proposal steps around p* are.
samplep
logical value, indicating whether to sample from the posterior for cell type proportions (TRUE) or not (FALSE). SUGGESTED USE: sample from the posterior (samplep = 1).
x
data object, typically returned by ged.
decreasing
logical that indicates the feature ordering, based on their p-values or FDRs.

Details

The DSection algorithm requires the Octave statistics package to be installed (more specifically the function gamfit). Unfortunately some very recent changes in R or Octave prevent RcppOctave from running DSection's Matlab code (due to some error linked with Octave io package). It is therefore temporary unavailable.

References

Erkkila T, Lehmusvaara S, Ruusuvuori P, Visakorpi T, Shmulevich I and Lahdesmaki H (2010). "Probabilistic analysis of gene expression measurements from heterogeneous tissues." _Bioinformatics (Oxford, England)_, *26*(20), pp. 2571-7. ISSN 1367-4811, , .

Examples


# random global expression
x <- rmix(3, 50, 20)
# extract true proportions
p <- coef(x)
# add noise
p0 <- scoef(abs(p + rmatrix(p, dist=rnorm, sd=0.15)))
# check how noisy this makes the proportion estimates
profplot(p, p0)

plot of chunk unnamed-chunk-1


# deconvolve using DSection
## Not run: 
##D # requires octave package statistics to be installed (for gamfit)
##D res <- ged(x, p0, 'DSection', maxIter=10, seed=12345)
##D head(basis(res))
##D # proportions are updated
##D !identical(coef(res), p0)
##D # check how better they are
##D profplot(x, res)
##D 
##D \dontshow{
##D     stopifnot( !identical(coef(res), p0) )
##D     stopifnot( nmf.equal(res, ged(x, p0, 'DSection', maxIter=10, seed=12345)) )
##D }
## End(Not run)