# GraphDiffusion: Compute diffusion kernel-based distance matrix In SANTA: Spatial Analysis of Network Associations

## Description

Using a diffusion kernel-based algorithm, compute the distance between vertex pairs in an undirected network, with or without edge weights. This algorithm provides an alternative to the `shortest.paths` and `mfpt` measures of vertex pair distance.

## Usage

 `1` ```GraphDiffusion(g, v=V(g), edge.attr.weight=NULL, beta=1, correct.neg=TRUE) ```

## Arguments

 `g` `igraph` object, the network to work on. `v` `igraph` object or numeric vector, the vertices from which each distance is calculated. `edge.attr.weight` String, the name of the edge attribute to be used as weights along the edges. Greater weights indicate a stronger interaction between the two genes (this is the opposite to edge distances, where smaller distances indicate stronger interactions). If `NULL`, then each edge is assumed to have a weight of `1`. `beta` Numeric value, the probability that the diffusion process will take an edge emanating from a vertex. `correct.neg` Logical, if `TRUE` then negative edge distances are set to `0`.

## Details

Diffusion across a network follows a process similar to a random walk. This provides a method of measuring the distance between vertex pairs that does not simply take into account a single path (like the `shortest.paths` algorithm) but instead incorporates multiple paths. This function uses a diffusion kernel-based approach to compute distances. The algorithm implemented is detailed in the referenced paper.

The distance from vertex A to vertex A is always `0`.

## Value

Numeric matrix, containing the diffusion kernel-based vertex pair distances between each vertex in `v` and every vertex in `g`.

## Author(s)

Alex J. Cornish a.cornish12@imperial.ac.uk

## References

Kondor, R.I. and Lafferty, J. (2002). Diffusion Kernels on Graph and Other Discrete Structures. Proc. Intl. Conf. Machine Learning.

`GraphMFPT`, `shortest.paths`

## Examples

 ```1 2 3 4``` ```# create a network and computes the diffusion kernel-derived vertex pair distance matrix g <- barabasi.game(6, directed=FALSE) GraphDiffusion(g) plot(g, layout=layout.fruchterman.reingold) ```

### Example output ```Loading required package: igraph

Attaching package: 'igraph'

The following objects are masked from 'package:stats':

decompose, spectrum

The following object is masked from 'package:base':

union

[,1]      [,2]      [,3]      [,4]      [,5]      [,6]
[1,] 0.0000000 0.4404859 0.4421952 0.7680472 0.7581080 0.7680472
[2,] 0.4404859 0.0000000 0.6518802 0.8782897 0.4934081 0.8782897
[3,] 0.4421952 0.6518802 0.0000000 0.5100285 0.8407141 0.5100285
[4,] 0.7680472 0.8782897 0.5100285 0.0000000 1.0011557 0.8577639
[5,] 0.7581080 0.4934081 0.8407141 1.0011557 0.0000000 1.0011557
[6,] 0.7680472 0.8782897 0.5100285 0.8577639 1.0011557 0.0000000
```

SANTA documentation built on Oct. 31, 2019, 3:21 a.m.