Knode: Rank vertices by their strength of association with...

Description Usage Arguments Details Value Author(s) References See Also Examples


Rank vertices by their strength of association with high-weight vertices using a modified version of Ripley's K-statistic. Vertex weights can either be binary or positive and continuous.


Knode(g, dist.method=c("shortest.paths", "diffusion", "mfpt"), vertex.attr="pheno", 
edge.attr=NULL, correct.factor=1, nsteps=1000, B=NULL, verbose=TRUE)



igraph object, the network to work on.


String, the method used to calculate the distance between each vertex pair.


Character vector, the name of the vertex attributes under which the vertex weights to be tested are stored. The vector can contain one or more elements.


String, the name of the edge attribute to be used as distances along the edges.


Numeric value, if the network contains unconnected vertices, then the distance between these vertices is set as the maximum distance between the connected vertices multiplied by correct.factor.


Integer value, the number of bins into which vertex pairs are placed.


Symmetric numerical matrix. A precomputed distance bin matrix for g output by the BinGraph function. If NULL, then B is computed within the Knode function.


Logical, if TRUE messages about the progress of the function are displayed.


Using the inner sum of the Knet equation, it becomes possible to prioritise vertices by how well they are connected, or associated, with high-weight vertices. The inner sum of the Knet equation is

K^node_i[s] = 2/p * sum_j(p_j - bar{p}) (dg(i,j)<=s)

where p_j is the weight of vertex j, \bar{p} is the mean vertex weight across all vertices, and I(dg[i,j]<=s) is an identity function, equaling 1 if vertex i and vertex j are within distance s and 0 otherwise.

If the name of each vertex is stored within a vertex attribute called name, then the returned scores are labelled with these names.

Vertex weights should be greater than or equal to 0, or equal to NA if the weight is missing. The Knode statistic is still computed for vertices with missing weights.

If an edge attribute with this name is not found, then each edge is assumed to have a distance of 1. Smaller edge distances denote stronger interactions between vertex pairs


A sorted named numerical vector of Knode AUKs for each vertex.

If one vertex attribute is input, then the Knode AUKs are calculated and a single numerical vector is returned. If more than one vertex attribute is input, then a list of vectors, one for each set of vertex weights, is returned.


Alex J. Cornish and Florian Markowetz


Cornish, A.J. and Markowetz, F. (2014) SANTA: Quantifying the Functional Content of Molecular Networks.. PLOS Computational Biology. 10:9, e1003808.

See Also



# create a network with a single cluster of high-weight vertices
# rank all vertices by their strength of association with the high-weight vertices
g1 <-, p.or.m=0.3, directed=FALSE)
g1 <- SpreadHits(g1, h=3, lambda=10)
Knode(g1, vertex.attr="hits")

Search within the SANTA package
Search all R packages, documentation and source code

Questions? Problems? Suggestions? or email at

Please suggest features or report bugs with the GitHub issue tracker.

All documentation is copyright its authors; we didn't write any of that.