gsMMD.v {MMDvariance} | R Documentation |
Gene selection based on variances by using a mixture of marginal distributions
Description
Gene selection based on variances by using the marginal distributions of gene profiles that characterized by a mixture of three-component multivariate distributions. The goal is to detect gene probes having different variances between
cases and controls.
Input is an object derived from the class ExpressionSet
. The function will obtain initial gene cluster membership by its own.
Usage
gsMMD.v(obj.eSet,
memSubjects,
maxFlag = TRUE,
thrshPostProb = 0.5,
geneNames = NULL,
alpha = 0.05,
iniGeneMethod = "myLeveneTest",
transformFlag = FALSE,
transformMethod = "boxcox",
scaleFlag = TRUE,
criterion = c("cor", "skewness", "kurtosis"),
minL = -10,
maxL = 10,
stepL = 0.1,
eps = 0.001,
ITMAX = 100,
plotFlag = FALSE,
quiet=TRUE)
Arguments
obj.eSet |
an object derived from the class |
memSubjects |
a vector of membership of subjects. |
maxFlag |
logical. Indicate how to assign gene class membership. |
thrshPostProb |
threshold for posterior probabilities. For example, if the posterior probability that a gene belongs to cluster 1 given its gene expression levels is larger than |
geneNames |
an optional character vector of gene names |
alpha |
significant level which is equal to |
iniGeneMethod |
method to get initial 3-cluster partition of genes: (1) genes having higher variance in cases than in controls; (2) genes having equal variance between cases and controls; (3) genes having lower variance in cases than in controls. Available methods are: “myAWvar”, “myBFTest”, “myFTest”, “myLeveneTest”, “myLevene.TM”, “myiAWvar.BF”, “myiAWvar.Levene”, “myiAWvar.TM”, “myLeveneTest”, “myLeveneTest.TM”. |
transformFlag |
logical. Indicate if data transformation is needed |
transformMethod |
method for transforming data. Available methods include "boxcox", "log2", "log10", "log", "none". |
scaleFlag |
logical. Indicate if gene profiles are to be scaled to have mean zero and variance one. If |
criterion |
if |
minL |
lower limit for the |
maxL |
upper limit for the |
stepL |
step increase when searching the optimal |
eps |
a small positive value. If the absolute value of a value is smaller than |
ITMAX |
maximum iteration allowed for iterations in the EM algorithm |
plotFlag |
logical. Indicate if the Box-Cox normality plot should be output. |
quiet |
logical. Indicate if intermediate results should be printed out. |
Details
We assume that the distribution of gene expression profiles is
a mixture of 3-component multivariate normal distributions
\sum_{k=1}^{3} \pi_k f_k(x|\theta)
. Each component distribution f_k
corresponds to a gene cluster. The 3 components correspond to 3 gene clusters:
(1) genes having higher variance in cases than in controls;
(2) genes having equal variance between cases and controls;
(3) genes having lower variance in cases than in controls.
The model parameter vector is \theta=(\pi_1
, \pi_2
,
\pi_3
,
\sigma^2_{c1}
, \sigma^2_{n1}
, \mu_{c1}
, \rho_{c1}
, \mu_{n1}
,
\rho_{n1}
,
\sigma^2_2
, \mu_{c2}
, \rho_{c2}
, \mu_{n2}
, \rho_{n2}
,
\sigma^2_{c3}
, \sigma^2_{n3}
,
\mu_{c3}
,
\rho_{c3}
, \mu_{n3}
, \rho_{n3}
.
where \pi_1
, \pi_2
, and \pi_3
are the mixing proportions;
\mu_{c1}
, \sigma^2_{c1}
, and \rho_{c1}
are
the marginal mean, variance, and correlation of gene expression levels
of cluster 1 (over-variable genes) for diseased subjects;
\mu_{n1}
, \sigma^2_{n1}
, and \rho_{n1}
are
the marginal mean, variance, and correlation of gene expression levels
of cluster 1 (over-variable genes) for non-diseased subjects;
\sigma^2_2
, \mu_{c2}
, \rho_{c2}
, \mu_{n2}
, and \rho_{n2}
are the marginal mean,
variance, and correlation of gene
expression levels of cluster 2 (equal-variable genes);
\mu_{c3}
, \sigma^2_{c3}
, and \rho_{c3}
are
the marginal mean, variance, and correlation of gene expression levels
of cluster 3 (under-variable genes) for diseased subjects;
\mu_{n3}
, \sigma^2_{n3}
, and \rho_{n3}
are
the marginal mean, variance, and correlation of gene expression levels
of cluster 3 (under-variable) for non-diseased subjects.
Note that genes in cluster 2 are non-differentially variable across abnormal and normal tissue samples. Hence there are only 5 parameters for cluster 2.
To make sure the identifiability, we set the following contraints:
\sigma_{c1}>\sigma_{n1}
and \sigma_{c3}<\sigma_{n3}
.
To make sure the marginal covariance matrices are poisitive definite,
we set the following contraints:
-1/(n_c-1)<\rho_{c1}<1
,
-1/(n_n-1)<\rho_{n1}<1
,
-1/(n-1)<\rho_{2}<1
,
-1/(n_c-1)<\rho_{c3}<1
,
-1/(n_n-1)<\rho_{n3}<1
.
We also has the following constraints for the mixing proportion:
\pi_3=1-\pi_1-\pi_2
, \pi_k>0
, k=1,2,3
.
We apply the EM algorithm to estimate the model parameters. We regard the cluster membership of genes as missing values.
To facilitate the estimation of the parameters,
we reparametrize the parameter vector as
\theta^*=(\pi_1
, \pi_2
,
s^2_{c1}
, \delta_{n1}
, \mu_{c1}
,
r_{c1}
, \mu_{n1}
, r_{n1}
,
s^2_2
, \mu_{c2}
, r_{c2}
, \mu_{n2}
, r_{n2}
,
s^2_{c3}
, \delta_{n3}
, \mu_{c3}
, r_{c3}
, \mu_{n3}
,
r_{n3})
,
where
\sigma_{n1}=\sigma_{c1}-\exp(\delta_{n1})
,
\sigma_{n3}=\sigma_{c3}+\exp(\delta_{n3})
,
\rho_{c1}=(\exp(r_{c1})-1/(n_c-1))/(1+\exp(r_{c1}))
,
\rho_{n1}=(\exp(r_{n1})-1/(n_n-1))/(1+\exp(r_{n1}))
,
\rho_{2}=(\exp(r_{2})-1/(n-1))/(1+\exp(r_{2}))
,
\rho_{c3}=(\exp(r_{c3})-1/(n_c-1))/(1+\exp(r_{c3}))
,
\rho_{n3}=(\exp(r_{n3})-1/(n_n-1))/(1+\exp(r_{n3}))
.
Given a gene, the expression levels of the gene are assumed independent. However, after scaling, the scaled expression levels of the gene are no longer independent and the rank r^*=r-1
of the covariance matrix for the scaled gene profile will be one less than the rank r
for the un-scaled gene profile Hence the covariance matrix of the
gene profile will no longer be positive-definite.
To avoid this problem,
we delete a tissue sample after scaling since its information has been incorrporated by other scaled tissue samples. We arbitrarily select the tissue sample, which has the biggest label number, from the tissue sample group that has larger size than the other tissue sample group. For example, if there are 6 cancer tissue samples and 10 normal tissue samples, we delete the 10-th normal tissue sample after scaling.
Value
A list contains 18 elements.
dat |
the (transformed) microarray data matrix. If tranformation
performed, then |
memSubjects |
the same as the input |
memGenes |
a vector of cluster membership of genes. |
memGenes2 |
an variant of the vector of cluster membership of genes.
|
para |
parameter estimates (c.f. details). |
llkh |
value of the loglikelihood function. |
wiMat |
posterior probability that a gene belongs to a cluster given the expression levels of this gene. Column i is for cluster i. |
wiArray |
posterior probability matrix for different initial gene selection methods. |
memIniMat |
a matrix of initial cluster membership of genes. |
paraIniMat |
a matrix of parameter estimates based on initial gene cluster membership. |
llkhIniVec |
a vector of values of loglikelihood function. |
memMat |
a matrix of cluster membership of genes based on the mixture of marginal models with initial parameter estimates obtained initial gene cluster membership. |
paraMat |
a matrix of parameter estimates based on the mixture of marginal models with initial parameter estimates obtained initial gene cluster membership. |
llkhVec |
a vector of values of loglikelihood function based on the mixture of marginal models with initial parameter estimates obtained initial gene cluster membership. |
lambda |
the parameter used to do Box-Cox transformation |
paraRP |
parameter estimates for reparametrized parameter vector (c.f. details). |
paraIniMatRP |
a matrix of parameter estimates for reparametrized parameter vector based on initial gene cluster membership. |
paraMatRP |
a matrix of parameter estimates for reparametrized parameter vector based on the mixture of marginal models with initial parameter estimates obtained initial gene cluster membership. |
Note
The speed of the program is slow for large data sets.
Author(s)
Xuan Li lixuan0759@gmail.com, Yuejiao Fu yuejiao@mathstat.yorku.ca, Xiaogang Wang stevenw@mathstat.yorku.ca, Dawn L. DeMeo redld@channing.harvard.edu, Kelan Tantisira rekgt@channing.harvard.edu, Scott T. Weiss restw@channing.harvard.edu, Weiliang Qiu weiliang.qiu@gmail.com
References
Li X, Fu Y, Wang X, DeMeo DL, Tantisira K, Weiss ST, Qiu W. Detecting Differentially Variable MicroRNAs via Model-Based Clustering. International Journal of Genomics. Article ID 6591634, Volumne 2018 (2018).
Examples
t1 = proc.time()
library(ALL)
data(ALL)
eSet1 <- ALL[1:50, ALL$BT == "B3" | ALL$BT == "T2"]
mem.str <- as.character(eSet1$BT)
nSubjects <- length(mem.str)
memSubjects <- rep(0,nSubjects)
# B3 coded as 0, T2 coded as 1
memSubjects[mem.str == "T2"] <- 1
obj.gsMMD.v <- gsMMD.v(eSet1, memSubjects, transformFlag = FALSE,
transformMethod = "boxcox", scaleFlag = FALSE,
eps = 1.0e-1, ITMAX = 5, quiet = TRUE)
print(round(obj.gsMMD.v$para, 3))
t2=proc.time()-t1
print(t2)