HI friends, I have a dense unweighted biological network and I want to cluster this network to subnetworks by using Markov cluster or random walk with restart .

Igot the adjacency matrix from this network but when i tried markov cluster it produce for me NaN as a result .

In Random walk with restart i don't have p0 and pt. plz anyone can help me to !!!.

@Jean-Karim Heriche friend, the only input i have is adjacency matrix in which i get it from the network; i already build this adjacency matrix which has only 1 and 0. MCL algorithm need as input this adjacency matrix, and so i get NaN as output, then i turned to use a Random walk with restart which required W, p0, and pt as inputs but sadly i only have the W(adjacency matrix). My goal is to cluster my dense network into subnetworks. I hope anyone already tried these methods can explain me how to deal with them. I'm using Matlab.

I know you have the adjacency matrix but did you make sure it is in the right format for input to whatever program you're using. Without more details, I don't know what p0 and pt are. Matlab is not very much used in this community so you may have better luck getting answers on Matlab mailing lists or by contacting the authors of the code you're using.

ok i will trying to read more about thess methods

@Jean-Karim Heriche friend, do you know any methods can cluster or partitioned a dense unweighted biological network into small subnetworks?

It depends on the particular type of data and what criterion you want to work with. MCL can work well in some instances but I find the clusters too unbalanced. I often get good results with normalized cut spectral clustering. However, you don't have to restrict yourself to graph partitioning methods. In general, you can derive a similarity/distance matrix from the adjacency matrix (for example using a kernel on graph nodes) and apply a clustering algorithm to this new matrix (this is actually one way of viewing spectral clustering).

@Jean-Karim Heriche; I really appreciate your help bro, everytime your comments make so many idea more clear for me, Thank you too too much.

@Jean-Karim Heriche, MCL needed a transition matrix. So, i have updated the adjacency matrix which i got from the network into transition matrix (dividing every value in the adjacency matrix by the column sum) and then i assign a value of 1 to the diagonal of this matrix to avoid NaN [since so many columns in my matrix have all 0's and no 1's, and when Matlab start running produces NaN (0/0)]. Then i run the MCL code on Matlab and got a new matrix after many expansion and inflation iterations. But, i see the new matrix have some self-loops, is it right?? I need your suggestions! Also, i checked Spectral clustering; it takes as input a square adjacency matrix and a number of clusters to look for. I don't know how many clusters i should take ?

If you add 1 to the diagonal of a transition matrix then you don't have a transition matrix anymore because the resulting matrix is not stochastic. You have to add the loops to your graph before you derive the transition matrix. As for choosing the number of clusters for spectral clustering, I usually get good results with the eigengap heuristic as long as there's some structure in the graph. You may want to have a look at this tutorial on spectral clustering.

So, if I didn't add 1 to the diagonal, is the transition matrix (dividing every value in the adjacency matrix by the column sum) I got right? Plz confirm me, and so sorry if I bother you. I'm doing research alone, and getting confused !