View source: R/SC-Var-Biclust.R
VarPermBiclust.chisqdiff | R Documentation |
'SCBiclust' method for identifying variance-based biclusters
VarPermBiclust.chisqdiff( x, min.size = max(5, round(nrow(x)/20)), nperms = 1000, silent = TRUE )
x |
a dataset with n rows and p columns, with observations in rows. |
min.size |
Minimum size of observations included in a valid bicluster (default= |
nperms |
number of χ^2_{n_1} and χ^2_{n_2} variables generated for each feature where n_1 and n_2 are the number of observations in cluster 1 and cluster 2, respectively. (default=100) |
silent |
should progress be printed? (default=TRUE) |
Observations in the bicluster are identified such that they maximize the feature-weighted sum of between cluster difference in feature variances. Features in the bicluster are identified based on their contribution to the clustering of the observations. This algoritm uses a numerical approximation log(abs(χ^2_{n_1}-chi^2_{n_2})+1) as the expected null distribution for feature weights.
VarPermBiclust.chisqdiff
will identify at most one variance bicluster. To identify additional biclusters first the feature signal
of the identified bicluster should be removed by scaling the variance of elements in the previously identified bicluster, Then
VarPermBiclust.chisqdiff
can be used on the residual data matrix. (see example)
The function returns a S3-object with the following attributes:
which.x
: A list of length num.bicluster
with each list entry containing a
logical vector denoting if the data observation is in the given bicluster.
which.y
: A list of length num.bicluster
with each list entry containing a
logical vector denoting if the data feature is in the given bicluster.
Erika S. Helgeson, Qian Liu, Guanhua Chen, Michael R. Kosorok , and Eric Bair
test <- matrix(rnorm(100*50, mean=1, sd=2), nrow=100) test[1:30, 1:20] <- matrix(rnorm(30*20, mean=1, sd=15), nrow=30) test.VarPermBiclust <- VarPermBiclust.chisqdiff(test) x=test.VarPermBiclust$which.x y=test.VarPermBiclust$which.y # Code for identifying additional biclusters after removing bicluster signal temp <- scale(test) temp[x,y] <-t(t(temp[x,y])*(apply(temp[!x,y],2,sd)/ apply(temp[x,y],2,sd))) test.VarPermBiclust.2 <- VarPermBiclust.chisqdiff(temp)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.