Hello everyone, I am trying to test some biclustering algorithms, and I am using the package biclust. I tried to bicluster a very simple matrix, and it seems that I cannot obtain what I was expecting, even though the cluster, to me, seem pretty obvious. The code is the following:
mat1<- matrix(c( 5,1,2,9,2,8,5,10,1,4, 1,10,2,2,2,2,1,4,3,8, 4,9,3,3,3,3,9,6,0,1, 9,6,4,4,4,4,5,4,5,6, 2,0,5,5,5,5,1,4,5,6, 5,6,3,7,0,3,2,4,5,6, 6,4,8,5,4,9,9,4,5,6, 7,7,7,7,0,8,2,4,5,6, 7,7,7,7,5,8,4,5,2,8, 7,7,7,7,9,1,3,8,4,1 ), ncol=10) If you see this matrix, it has a sub matrix of only "7", and two sub matrices with perfectly correlated rows. It seems to me that every biclustering algorithm should return at least those three clusters, but so far I had no luck. I tried the BCCC method, the BCPlaid, BCXmotifs, and BCSpectral. I did not try the BCBimax (it seems that it requires a logical matrix), BCQuest (questionnaires). None of the used methods was able to retrieve what I was expecting. BCCC performs better than the others, as it finds "something". The code I used is the following: resBC <- biclust(stdm(mat1), method=BCCC(), delta=1*10^-2,alpha=10^-5) for(i in 1:resBC@Number){ bcs <- simpleBc(data=mat1,bicResult=resBC, clusterNo=i) print(bcs$bcMat) } where the function stdm is the following (I read somewhere to use stdize() on the matrix): > stdm function(x){ require(pls) xs <-stdize(x) rowdim <- dim(xs)[1] coldim <- dim(xs)[2] standardMatrix <- matrix(as.numeric(xs), nrow=rowdim, ncol=coldim) rownames(standardMatrix) <- rownames(xs) colnames(standardMatrix) <- colnames(xs) standardMatrix } Without stdm not even BCCC can find anything. Am I missing something? Best, Michele ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.