Title: | Iterative Binary Biclustering of Genesets |
---|---|
Description: | iBBiG is a bi-clustering algorithm which is optimizes for binary data analysis. We apply it to meta-gene set analysis of large numbers of gene expression datasets. The iterative algorithm extracts groups of phenotypes from multiple studies that are associated with similar gene sets. iBBiG does not require prior knowledge of the number or scale of clusters and allows discovery of clusters with diverse sizes |
Authors: | Daniel Gusenleitner, Aedin Culhane |
Maintainer: | Aedin Culhane <[email protected]> |
License: | Artistic-2.0 |
Version: | 1.51.0 |
Built: | 2024-11-29 06:25:38 UTC |
Source: | https://github.com/bioc/iBBiG |
iBBiG is a bi-clustering algorithm, optimized for module discovery in sparse noisy binary genomics data. We designed iBBiG to have high specificity and thereby minimize the false positive rate when discovering new classes; the iterative approach employed in iBBiG is able to discover weak signals, even if they are potentially masked by stronger ones.
Package: | iBBiG |
Type: | Package |
Version: | 0.99.1 |
Date: | 2012-03-15 |
License: | Free Artistic |
LazyLoad: | yes |
Depends: | methods |
The main functions is iBBiG. This is the biclustering algorithm.
Aedin Culhane, Daniel Gusenleitner
Maintainer: Aedin <[email protected]>
Daniel Gusenleitner, Eleanor A Howe, Stefan Bentink, John Quackenbush and Aedin C Culhane iBBiG: Iterative Binary Bi-clustering of Gene Sets Bioinformatics. In review.
Also see biclust
~~
#create simulated datasets binMat<-makeArtificial() binMat plot(binMat) res<- try(iBBiG(binMat@Seeddata, nModules=10)) plot(res) res ## Subset a cluster res[4] res[1:2] ## As iBBiG extends the class Biclust can use Biclust functions on it ## View the rows and columns of an iBBiG object ## Create a list of matrices, one for each cluster Modules<-bicluster(res@Seeddata, res) length(Modules) lapply(Modules, dim) # Or extract a list of a specific cluster M1<-bicluster(res@Seeddata, res, 1) dim(M1[[1]]) str(M1) M1[[1]][1:5,1:3]
#create simulated datasets binMat<-makeArtificial() binMat plot(binMat) res<- try(iBBiG(binMat@Seeddata, nModules=10)) plot(res) res ## Subset a cluster res[4] res[1:2] ## As iBBiG extends the class Biclust can use Biclust functions on it ## View the rows and columns of an iBBiG object ## Create a list of matrices, one for each cluster Modules<-bicluster(res@Seeddata, res) length(Modules) lapply(Modules, dim) # Or extract a list of a specific cluster M1<-bicluster(res@Seeddata, res, 1) dim(M1[[1]]) str(M1) M1[[1]][1:5,1:3]
iBBiG is a bi-clustering algorithm which is optimized for clustering binary data resulting from discretized p-values of genomic analyses
iBBiG(binaryMatrix, nModules, alpha = 0.3, pop_size = 100, mutation = 0.08, stagnation = 50, selection_pressure = 1.2, max_sp = 15, success_ratio = 0.6)
iBBiG(binaryMatrix, nModules, alpha = 0.3, pop_size = 100, mutation = 0.08, stagnation = 50, selection_pressure = 1.2, max_sp = 15, success_ratio = 0.6)
binaryMatrix |
Matrix. A binary or logical matrix. |
nModules |
Numeric. The number of expected modules. As iBBiG is optimized to find a miminal number, nModules can be a larger than expected value |
alpha |
Numeric, weighting factor, that will balances the tradeoff between specificity and sensitivity. Default 0.3. Simulated studies indicate range 0.3-0.5 is appropriate |
pop_size |
Numeric. Default 100. Population size establishes the genetic diversity of solutions in Genetic Algorithm. Simulated studies show that it has marginal effect on performance. |
mutation |
Numeric. Default 0.08. Mutation rate of GA. Simulated studies show that it has little effect on performance. |
stagnation |
Numeric. Default is stop criterion of 50 iterations of stagnation. Simulated studies show that it has little effect on performance. |
selection_pressure |
Numeric. Default is 1.2. Selection pressure for parent selection. Simulated studies show that it has little effect on performance |
max_sp |
Numeric. Default is 15. Simulated studies show that it has little effect on performance |
success_ratio |
Numeric. Deafult 0.6. Success ratio determines how many children have to outperform at least one of their parents. Simulated studies show that it has little effect on performance |
iBBiG is a bi-clustering algorithm, optimized for module discovery in sparse noisy binary genomics data. We designed iBBiG to have high specificity and thereby minimize the false positive rate when discovering new classes; the iterative approach employed in iBBiG is able to discover weak signals, even if they are potentially masked by stronger ones. For a compairions with global clustering approaches (K-means, hierarchical cluster analysis) and bi-clustering approaches (Bimax, FABIA, COALESCE) see our manuscript Gusenleitner et al., 2012. An advantage of iBBiG relative to other methods is that it does not require a priori knowledge of the true number of clusters. Following the application of iBBiG, the number of true clusters can be estimated from the weighted cluster scores and RowScorexNumber of the extracted modules. In some cases, we observed that a module may represent the residue or remaining signal of a stronger, previously extracted module. This residue remains because iBBiG only removes information from the data matrix that is actually used for the entropy based score in a module. However, we do not consider these residual modules to be a shortcoming of the method as their existence facilitates discovery of the true overlap between modules and, further, these modules can be easily detected by looking at the overlap of clinical covariates and gene sets.\ Although iBBiG includes several parameters, we have shown that most impact only computation time, and do not effect cluster discovery. The only parameter that had an impact on cluster discovery was alpha, which is a weighting factor that balances the cost of increasing cluster size (number of rows) against cluster homogeneity. In generating small homogeneous clusters, one might miss information. Conversely, large hetergeneous clusters may contain more false positives. Although alpha does not regulate the number of clusters, decreasing stringency, by increasing alpha values may produce greater numbers of clusters. As a results the alpha parameter is useful in adjusting the sensitivity-specificity ratio. Alpha has a range 0.1-1 where 0.1 will generate fewer, smaller homogeneous clusters whereas 0.9 is less stringent and results in more hetergeneous clusters (with greater potential for false positives). Increasing alpha will generate more clusters of greater size, with potentially greater specificity at the expense of decreased sensitivity. Following tests on simulated data we recommended alpha values between 0.3-0.5 (Gusenleitner et al., 2012). The default alpha is 0.3
Returns an object with class iBBiG, which extents the class Biclust.
Seeddata |
Input binaryMatrix |
RowScorexNumber |
Matrix. Score for each signature (row) in each cluster. Matrix with dimensions, Number of Rows in Seeddata x Number of clusters |
Clusterscores |
Vector. Score for each cluster. It has length equal to the number of clusters. |
Parameters |
List of Input Parameters (if provided) |
RowxNumber |
Binary or Logical Matrix with dimensions, Number of Rows in Seeddata x Number of clusters, where 1 represents cluster membership |
NumberxCol |
Binary or Logical Matrix with dimensions, Number of clusters x Number of Columns in Seeddata ,where 1 represents cluster membership |
Number |
Numeric. Number of modules(clusters) |
info |
list. which is a general contained for other information. |
Aedin Culhane, Daniel Gusenleitner
Daniel Gusenleitner, Eleanor A Howe, Stefan Bentink, John Quackenbush and Aedin C Culhane iBBiG: Iterative Binary Bi-clustering of Gene Sets Bioinformatics. In review.
Further functions for viewing and clustering binaray data are available in the package biclust. We have written iBBiG and its classes so that it is compatible with biclust, and the class iBBiG inherits Biclust-class.
binMat<-makeArtificial() plot(binMat) res<- iBBiG(binMat@Seeddata, nModules=10) plot(res) res analyzeClust(res,binMat)
binMat<-makeArtificial() plot(binMat) res<- iBBiG(binMat@Seeddata, nModules=10) plot(res) res analyzeClust(res,binMat)
"iBBiG"
Class to contain and describe result of iBBiG Anlaysis
Objects can be created by calls of the form new("iBBiG", ...)
.
Seeddata
:Input binaryMatrix
RowScorexNumber
:Matrix. Score for each signature (row) in each cluster. Matrix with dimensions, Number of Rows in Seeddata x Number of clusters
Clusterscores
:Vector. Score for each cluster. It has length equal to the number of clusters
Parameters
:List of Input Parameters (if provided)
RowxNumber
:Binary or Logical Matrix with dimensions, Number of Rows in Seeddata x Number of clusters, where 1 represents cluster membership
NumberxCol
:Binary or Logical Matrix with dimensions, Number of clusters x Number of Columns in Seeddata ,where 1 represents cluster membership
Number
:Numeric. Number of modules(clusters)
info
:list. which is a general contained for other information.
Class "Biclust"
, directly.
signature(x = "iBBiG")
: Returns the row scores fore each cluster.
signature(x = "iBBiG")
: Returns the overall score for each cluster.
signature(x = "iBBiG")
: Returns the original binary matrix, the clustering is based on.
signature(x = "iBBiG")
: Returns parameter sets, inhereted from biclust.
signature(x = "iBBiG")
: Returns a logical matrix indicating, which rows are included in each bicluster.
signature(x = "iBBiG")
: Returns a logical matrix indicating, which columns are included in each bicluster.
signature(x = "iBBiG")
: Returns the number of biclusters contained in the iBBiG object.
signature(x = "iBBiG")
: Returns additional information on the particular iBBiG object, inhereted from biclust.
signature(x = "iBBiG")
: Plot the iBBiG clustering.
signature(object = "iBBiG")
: Shows the Biclusters.
signature(object = "iBBiG")
: Summary of found bi-clusters.
signature(object = "iBBiG")
: ...
signature(object = "iBBiG")
: ...
signature(object = "iBBiG")
: ...
Aedin Culhane, Daniel Gusenleitner
Daniel Gusenleitner, Eleanor A Howe, Stefan Bentink, John Quackenbush and Aedin C Culhane iBBiG: Iterative Binary Bi-clustering of Gene Sets Bioinformatics. In review.
Further functions for viewing and clustering binary data are available in the package biclust. We have written iBBiG and its classes so that it is compatible with biclust, and the class iBBiG inherits Biclust-class.
showClass("iBBiG") #create simulated datasets binMat<-makeArtificial() binMat ## Create a binary matrix of 400 rows v 400 cols ## Its created as a Biclust object, so its easier to visualize plot(binMat) ## Perform biclustering analysis on the binary matrix res<- iBBiG(binMat@Seeddata, nModules=8) res plot(res) ## Compare 2 iBBiG or Biclust results analyzeClust(res, binMat) ## Subset a cluster res[4] res[1:2] ## As iBBiG extends the class Biclust can use Biclust functions on it ## View the rows and columns of an iBBiG object ## Create a list of matrices, one for each cluster Modules<-bicluster(res@Seeddata, res) length(Modules) lapply(Modules, dim) # Or extract a list of a specific cluster M1<-bicluster(res@Seeddata, res, 1) dim(M1[[1]]) str(M1) M1[[1]][1:5,1:3]
showClass("iBBiG") #create simulated datasets binMat<-makeArtificial() binMat ## Create a binary matrix of 400 rows v 400 cols ## Its created as a Biclust object, so its easier to visualize plot(binMat) ## Perform biclustering analysis on the binary matrix res<- iBBiG(binMat@Seeddata, nModules=8) res plot(res) ## Compare 2 iBBiG or Biclust results analyzeClust(res, binMat) ## Subset a cluster res[4] res[1:2] ## As iBBiG extends the class Biclust can use Biclust functions on it ## View the rows and columns of an iBBiG object ## Create a list of matrices, one for each cluster Modules<-bicluster(res@Seeddata, res) length(Modules) lapply(Modules, dim) # Or extract a list of a specific cluster M1<-bicluster(res@Seeddata, res, 1) dim(M1[[1]]) str(M1) M1[[1]][1:5,1:3]
Create a binary matrix of 400 rows x 400 columns, where 1 is a positive association. This matrix is seeded with 7 modules of various size and with various levels of noise as described by Gusenleitner et al.,
makeArtificial(nRow = 400, nCol = 400, noise = 0.1, verbose = TRUE, dM = makeSimDesignMat(verbose = verbose), seed=123)
makeArtificial(nRow = 400, nCol = 400, noise = 0.1, verbose = TRUE, dM = makeSimDesignMat(verbose = verbose), seed=123)
nRow |
Numeric |
nCol |
Numeric |
noise |
Numeric. Value between 0-1. Default is 10 percent random noise (1) introduced into the spare binary matrix |
verbose |
Verbose output. Default is TRUE |
dM |
A design matrix specifying where the columns are. The function makeSimDesignMat create the matrix which specifies the design matrix |
seed |
Integer, passed to function set.seed() the random-number generator function, so that the articical simulated data is reproduced. If you wish to generate a random simulated data set use seed=NULL |
See Guesnleitner et al, for more information
Output is a class of Biclust.
Aedin Culhane, Daniel Gusenleitner
Daniel Gusenleitner, Eleanor A Howe, Stefan Bentink, John Quackenbush and Aedin C Culhane iBBiG: Iterative Binary Bi-clustering of Gene Sets Bioinformatics. In review.
Further functions for viewing and clustering binaray data are available in the package biclust. We have written iBBiG and its classes so that it is compatible with biclust, and the class iBBiG inherits Biclust-class.
##---- Should be DIRECTLY executable !! ---- ##-- ==> Define data, use random, ##-- or do help(data=index) for the standard data sets. ## The function is currently defined as arti<-makeArtificial() plot(arti)
##---- Should be DIRECTLY executable !! ---- ##-- ==> Define data, use random, ##-- or do help(data=index) for the standard data sets. ## The function is currently defined as arti<-makeArtificial() plot(arti)