I have used a clustering algorithm (ClusterONE) that uses 'cohesiveness of nodes' as a measure to find protein complexes in a PPI network. http://www.paccanarolab.org/clusterone/ Since I do not have a gold standard dataset to validate the results from this algorithm, I believe I should be using internal validation indices such as Dunn's index or Davies-Bouldin index or Silhouette value? However, these methods require a distance matrix or a similarity matrix to calculate. Are these internal validation indices applicable in my case considering that the algorithm used does not use a distance or similarity matrix? The input matrix that this algorithm uses for clustering is in the format:
Protein ID1 ProteinID2 Confidence Score for the interaction
Please correct me if I am wrong here in understanding any of the concepts.
Edited - my R code for calculating Dunn index:
df<-
V1 V2 V3
1 ATP4A_HUMAN 1313 0.63
2 PR40A_HUMAN 6060 0.67
3 PR40A_HUMAN 6066 0.67
4 HOME1_HUMAN 7221 0.72
5 PTN6_HUMAN 10748 0.55
6 SYSC_HUMAN 23437 0.65
7 CAND1_HUMAN 26781 0.63
8 CSN5_HUMAN 26781 0.63
9 CUL1_HUMAN 26781 0.63
10 PAF_HUMAN 26781 0.63
library(reshape2)
library(clValid)
distmat <- acast(df, V1 ~ V2, value.var='V3', fun.aggregate = sum, margins=FALSE)
dismat <- as.dist(distmat)
nc <- 3056 # number of clusters by ClusterONE
clusterObj <- hclust(dismat,method = "average")
cluster <- cutree(clusterObj,nc)
dunn(dismat, cluster)
[1] NaN