Random.Walk.Restart.MultiplexHet is a function to perform a Random Walk with Restart on a Multiplex and Heterogeneous network (on a MultiplexHet object). See more details about the algorithm below.

Random.Walk.Restart.MultiplexHet(...)

# S3 method for default
Random.Walk.Restart.MultiplexHet(
  x,
  MultiplexHet_Object,
  Multiplex1_Seeds,
  Multiplex2_Seeds,
  r = 0.7,
  tau1,
  tau2,
  eta = 0.5,
  MeanType = "Geometric",
  DispResults = "TopScores",
  ...
)

Arguments

...

Further arguments passed to Random.Walk.Restart.MultiplexHet

x

An object of the Matrix package describing the possible transitions in a multiplex and heterogeneous network.

MultiplexHet_Object

A MultiplexHet object generated by the function create.multiplexHet representing a multiplex and heterogeneous network.

Multiplex1_Seeds

A vector containing the names of the seeds of the first multiplex network for the Random Walk algorithm. See more details below.

Multiplex2_Seeds

A vector containing the names of the seeds of the second multiplex network for the Random Walk algorithm. See more details below.'

r

A numeric value between 0 and 1. It sets the probability of restarting to a seed node after each step. See more details below.

tau1

A vector containing the probability of restart on the seeds of the different multiplex layers (layers weights) for the first multiplex. It must have the same length than the number of layers of the multiplex. network. The sum of its components divided by the number of layers must be 1. See more details below.

tau2

A vector containing the probability of restart on the seeds of the different multiplex layers (layers weights) for the second multiplex. It must have the same length than the number of layers of the multiplex. network. The sum of its components divided by the number of layers must be 1. See more details below.

eta

A numeric value between 0 and 1. It controls the probability of restarting in each network of the heterogeneous system (Multiplex or second network). See more details below.

MeanType

The user can choose one of the following options: c("Geometric","Arithmetic","Sum"). These options represent the different way to combine the RWR score for the same node in different layers. By default and recommended Geometric (Geometric Mean.). Arithmetic is the arithmetic mean and sum just sum all the scores for the same node across the different layers.

DispResults

The user can choose one of the following options: c("TopScores","Alphabetic"). These options represent the way the RWR results would be presented. By default, and recommended, the nodes would be ordered by score. This option is also required to properly run the

Value

A RWRMH_Results object. It contains three sorted rankings: i) The first one contains the global results, i.e. the nodes of both multiplex networks along with their score; ii) The second one contains the nodes of the first multiplex network, except the seeds, along with their score. iii) The last one contains the nodes of the second multiplex network, excepting the seeds, along with their score In addition, it contains one more field describing the nodes used as seeds.

Details

Random Walk with Restart simulates an imaginary particle which starts on a seed(s) node(s) and follows randomly the edges of a network. At each step, there is a restart probability, r, meaning that the particle comes back to the seed(s). The extension to multiplex networks allows the particle to explore different monoplex networks (layers). At each step, the particle can also jump to the same node in a different layer. The extension to heterogeneous networks allows the particle to jump between nodes of different nature thanks to bipartite relationships between them. We can combine both, the multiplex and heterogeneous extension, by allowing the particle to jump from a node in every layer of the multiplex network to the other network, and the other way around.

  • Multiplex_Seed_Nodes: A vector containing the name of the different seed node(s) of the multiplex network. It's mandatory to provide at least one seed (taking in account both types of seeds) The seed(s) node(s) should belong to any of the layers of the multiplex network. The length of this vector should be smaller than the total number of nodes in the multiplex network.

  • SecondNet_Seed_Nodes: A vector containing the name of the different seed node(s) of the second network. It's mandatory to provide at least one seed (taking in account both types of seeds) The seed(s) node(s) should belong to the second network. The length of this vector should be smaller than the total number of nodes in the second network.

  • r: A numeric value representing the restart probability on the seeds for the random walker. It must be between 0 and 1. It is set by default to 0.7, which is the most common value in this kind of approaches. It means that, at each step, the walker has a 70% of probability of coming back to one of the seeds.

  • tau: A numeric vector containing the probability of restarting in the nodes of the different layers of the multiplex. In the example below, we define the node 1 as the seed node. However, we can find this node in both layers. Therefore, the walker can restart in any of these seed nodes. It is a way to give different relevance (weight) to the different layers.

  • eta: A numeric value between 0 and 1 controlling the probability of restarting in the nodes of each network. In the example below, we define the node 1 as a multiplex seed node and "E" as a second network seed node. Therefore, the walker can restart either in the seed 1 or in the seed "E" with different probabilities (it is a way to give more relevance to the different components of the heterogeneous system). If eta < 0.5 the particle will be more likely to restart in one of the multiplex seeds.

See also

Author

Alberto Valdeolivas Urbelz alvaldeolivas@gmail.com

Examples

m1 <- igraph::graph(c(1,2,1,3,2,3), directed = FALSE) m2 <- igraph::graph(c(1,3,2,3,3,4,1,4), directed = FALSE) multiObject_1 <- create.multiplex(list(m1=m1,m2=m2)) h1 <- igraph::graph(c("A","C","B","E","E","D","E","C"), directed = FALSE) bipartite_relations <- data.frame(m=c(1,3),h=c("A","E")) multiObject_2 <- create.multiplex(list(h1=h1)) multiHetObject <- create.multiplexHet(multiObject_1, multiObject_2, bipartite_relations)
#> checking input arguments...
#> Generating bipartite matrix...
#> Expanding bipartite matrix to fit the multiplex network...
MultiHetTranMatrix <- compute.transition.matrix(multiHetObject)
#> Computing adjacency matrix of the first Multiplex network...
#> Computing adjacency matrix of the second Multiplex network...
#> Computing inter-subnetworks transitions...
#> Computing intra-subnetworks transitions...
#> Combining inter e intra layer probabilities into the global #> Transition Matix
Multiplex1_Seeds <- c(1) Multiplex2_Seeds <- c("E") Random.Walk.Restart.MultiplexHet(MultiHetTranMatrix, multiHetObject,Multiplex1_Seeds,Multiplex2_Seeds)
#> Top 10 ranked global nodes: #> NodeNames Score #> 1 E 0.377905492 #> 2 1 0.192229631 #> 3 A 0.061895889 #> 4 3 0.041135932 #> 5 C 0.028179658 #> 6 B 0.018895275 #> 7 D 0.018895275 #> 8 2 0.005778811 #> 9 4 0.003637140 #> #> Top 10 ranked nodes from the first Multiplex: #> NodeNames Score #> 3 3 0.041135932 #> 2 2 0.005778811 #> 4 4 0.003637140 #> #> Top 10 ranked nodes from the second Multiplex: #> NodeNames Score #> 1 A 0.06189589 #> 3 C 0.02817966 #> 2 B 0.01889527 #> 4 D 0.01889527 #> #> Seeds used: #> [1] "1" "E"