diagnoseColRow {biclust}R Documentation

Bootstrap Procedure for Bicluster Diagnostics


Calculate the significance of the discovered patter in the data based on the bootstrapping procedure.


diagnoseColRow(x, bicResult, number, nResamplings, replace = TRUE)



data matrix, which biclust function was applied to


object of class biclust, containing result of a biclustering algorithm


number of bicluster from the output for the diagnostics


number of bootstrap replicates


logical flag for bootstrap (TRUE), or sampling without replacement (FALSE)


The function computes observed F statistics for row and column effect based on two-way ANOVA model. Bootstrap procedure is used to evaluate the significance of discovered bicluster. Based on nResamplings replicates, the disribution of F statistics for row and column effects are obtained. The p-value is computed as

P(A) = \frac{ \# \left \{ F^{*}(A)_{b} > F(A)^{obs} \right \} } {nResamplings+1}

Low p-values denote non-random selection of columns for a given bicluster. Large p-values show that in other columns for a given set of genes in the bicluster structure is similar. Hence, bicluster columns were just randomly picked by an algorithm for a set of co-regulated genes.



matrix with two columns, containing values of bootstrap F-statistics. The first column corresponds to row, the second column corresponds to column.


observed F-statistics for the row effect


observed F-statistics for the column effect


bootstrap p value for row effect


bootstrap p value for column effect


Tatsiana KHAMIAKOVA tatsiana.khamiakova@uhasselt.be

See Also

diagnosticTest, diagnosticPlot2, diagnosticPlot, computeObservedFstat, ChiaKaruturi


#---simulate dataset with 1 bicluster ---#
xmat<-matrix(rnorm(50*50,0,0.25),50,50) # background noise only 
rowSize <- 20 #number of rows in a bicluster 
colSize <- 10 #number of columns in a bicluster
a1<-rnorm(rowSize,1,0.1) #sample row effect from N(0,0.1) #adding a coherent values bicluster:
b1<-rnorm((colSize),2,0.25)  #sample column effect from N(0,0.05)
mu<-0.01 #constant value signal
 for ( i in 1 : rowSize){
 	for(j in 1: (colSize)){
 		xmat[i,j] <- xmat[i,j] + mu + a1[i] + b1[j] 	
 #--obtain a bicluster by running an algorithm---# 
plaidmab <- biclust(x=xmat, method=BCPlaid(), cluster="b", fit.model = y ~ m + a+ b,  
background = TRUE, row.release = 0.6, col.release = 0.7, shuffle = 50, back.fit = 5, 
max.layers = 1, iter.startup = 100, iter.layer = 100, verbose = TRUE)

#Run boosotrap procedure:
Bootstrap <- diagnoseColRow(x=xmat, bicResult = plaidmab, number = 1, nResamplings = 999,
  replace = TRUE)
diagnosticPlot(bootstrapOutput = Bootstrap) 	# plotting distribution of bootstrap replicates

[Package biclust version Index]