Last data update: 2014.03.03

R: Exploratory visualization of information spread of biological...
level.plotR Documentation

Exploratory visualization of information spread of biological networks

Description

Generates a level plot by selecting a set of nodes at the initial level '0'. Outgoing nodes are plotted on higher levels than level '0', and the incoming nodes are plotted on lower levels. This process is repeated for the nodes at each new level until all nodes are plotted. For this function, the graph can be plotted at each step, like a sequence, by using the 'plotstep' option. Edge colors show a connection between different levels. If the level difference is one, than the edgecolor is "grey" (default). For a level difference of zero, the default edge color is "brown". For level differences greater than one (upward edges), the edgecolor is "blue". If the level difference is less than zero (downward edges) the edgecolor is "red". The level plot function helps to see the information spread in a network, starting from a set of nodes (initial_nodes).

Usage


level.plot(x, layout.function=NULL, type=1, initial_nodes=NULL,
init_nodes=0, order_degree = "in", plotsteps = FALSE, 
saveplots=FALSE, dirname=NULL, vertex.colors=NULL, 
edge.col=NULL, tkplot=FALSE, nodeset=NULL,path.col="green", 
col.s1="red", col.s2="yellow", nodes.on.path=TRUE,v.size=2, 
e.size=.5, v.lab=FALSE, bg="black", v.lab.cex=0.5, 
v.lab.col="skyblue",sf=4,e.path.width=1,e.curve=.5, 
level.spread=FALSE)  

Arguments

x

x is a graph object created from an adjacency matrix or from a tabular data of two columns using the graph() function available in igraph.

layout.function

layout.function is a function class which genetates 2D coordinates for an input graph, this function is used to adjust x coordinates of the plot

type

type is a numerical value, it can either be 1 or 2, it is used to adjust coordinates generated from layout.function option.

initial_nodes

initial_nodes is a vector of integers of the vertex ids of the graph, from which the plot of a graph starts.

init_nodes

init_nodes is an integer which provides the total numbers of vertices to initialize the plot of a graph randomly. If initial_node is NULL and init_nodes is 0 then level.plot selects 3 vertices randomly.

order_degree

order_degree is used to arrange nodes in a given order, based on their degrees from left to right in increasing order. Possible options for the ordering are 'in' and 'out'.

plotsteps

plotsteps is logical; if 'TRUE', shows a sequence of plots of the nodes found at each steps. Possible options are 'TRUE' and 'FALSE'.

saveplots

saveplots is logical; if 'TRUE' than saves plots of each steps in a pdf file inside a folder with the name plot_steps_dir in the current working directory.

dirname

dirname it is a directory path option if this option is not null then plots of each steps are saved in the given directory.

vertex.colors

is a vector of color names or hexadecimal codes of three colors. The first element is for vertex color at level 0, second element is for vertex color at level above level 0, third element is for vertex color lower than level 0.

edge.col

is a 4 dimensional vector of colors. The first element is for edges that have a level difference between nodes greater than one. The second element is for edges that are connected to nodes with a level difference less than one. The third element is for edges connecting nodes on the same level. The fourth element is for edges with a level difference between connected nodes equal to one.

nodeset

is a list object containing two vector. The first vector contains a set of start nodes and the second vector contains the end nodes. Shortest paths are visualized between the start nodes and end nodes.

path.col

is a character value for a color used to color the shortest paths between start nodes and end nodes, specified innodeset option.

col.s1

color of start nodes specified in nodeset option, possible values can be a color name or a hexadecimal code of a color.

col.s2

color of end nodes specified in nodeset option, possible values can be a color name or a hexadecimal code of a color.

nodes.on.path

is a logical value It shows the nodes which connect start nodes and end nodes specified in nodeset option.

v.size

is a numeric value or a numeric vector which contains numeric values to assign the size of nodes.

e.size

is a numeric value or a numeric vector which contains numeric values to assign the width of edges.

v.lab

is a logical value to show vertex label.

v.lab.cex

is a numerical value to set the font size of vertex labels.

v.lab.col

is a color name or a hexadecimal color code to assign colors to vertex labels.

sf

A numeric value, which is a scaling factor. This is used to adjust the vertex size when v.size input is a numeric vector.

e.path.width

is a numeric value. This is used to adjust the edge-size of the shortest paths between start nodes and end nodes. The start nodes and end nodes are given as an input as a list object for the "nodeset" option.

e.curve

is a positive numeric value that adjusts the curvature of the edges which connect nodes that are on same level.

level.spread

is a logical value, if it is 'TRUE' then the width of each level is the same.

bg

name of a color or a hexadecimal code of a color. This option is used to color the background of the plot. The default option is "black".

tkplot

is logical value, if TRUE use the tkplot function of igraph for plotting the network.

...

... parameter for other inputs.

Details

This function starts plotting nodes at level 0. These nodes are either user-defined or randomly selection. The outgoing nodes of the initial node set are plotted on the upper level and incoming nodes are plotted on the lower level. These steps are repeated until all nodes are plotted.

Value

This function plots a graph using 'tkplot' or 'plot' function available in 'igraph'. This function returns a list. The first component of the list contains the x and y coordinates and color ids of the nodes of the graph and the second component contains a vector of edge colors.

Author(s)

Shailesh Tripathi, Frank Emmert-Streib

References

http://bio-complexity.com/

Examples

data("PPI_Athalina")

### Example 1 #####
#####% 5 initial nodes are picked randomly #####
id <- level.plot(g1, init_nodes =5 ,tkplot=FALSE) 

### Example 2 #####
#####% initial nodes are given as an input #####
id <- level.plot(g1, initial_nodes =c(1,4,5,7,9,11,25,27,29,100,101),
tkplot=FALSE) 

### Example 3 #####
#####% width of each level is same #####
id <- level.plot(g1, initial_nodes 
=c(1,4,5,7,9,11,25,27,29,100,101), 
level.spread = TRUE,tkplot=FALSE) 

### Example 4 #####
#####% plot of graph when nodes are not arranged based on the degree #####
id <- level.plot(g1, initial_nodes 
=c(1,4,5,7,9,11,25,27,29,100,101),
order_degree= NULL, level.spread = TRUE,
tkplot=FALSE) 

### Example 5 #####
#####% plot of graph when nodes are not arranged based on the degree #####
id <- level.plot(g1, initial_nodes 
=c(1,4,5,7,9,11,25,27,29,100,101),
order_degree= NULL, level.spread = TRUE,
tkplot=FALSE) 

### Example 6 #####
###% plot of graph using a forcebased algorithm 
###in igraph package #####
xx <- level.plot(g1, layout.function=layout.reingold.tilford,
initial_nodes=c(1,4,5,7,9,11,25,27,29,100,101))

xx <- level.plot(g1, layout.function=layout.fruchterman.reingold,type=2, 
init_nodes=20)

xx <- level.plot(g1, layout.function=layout.kamada.kawai,
type=1, init_nodes=20)

### Example 7 #####
## Shortest path between initial set of nodes at level '0'
## to a set of nodes with vertex id 10, 1000, 1001, 1002 ##%
id <- level.plot(g1, initial_nodes=c(101,1,5,7),
vertex.colors=c("white", "white", "white"),
edge.col=c("grey", "grey", "grey", "grey"),
nodeset= list(c(101,1,5,7),c(10,1000,1001,1002)),
tkplot=FALSE, level.spread=TRUE,
order_degree=NULL)

### Example 8 #####
###  A directed network is plotted with level.plot function ##%
g <- barabasi.game(300, power=0)
id <-  level.plot(g, tkplot=FALSE,
level.spread=TRUE, order_degree=NULL)
 

Results


R version 3.3.1 (2016-06-21) -- "Bug in Your Hair"
Copyright (C) 2016 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> library(netbiov)
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

> png(filename="/home/ddbj/snapshot/RGM3/R_BC/result/netbiov/level.plot.Rd_%03d_medium.png", width=480, height=480)
> ### Name: level.plot
> ### Title: Exploratory visualization of information spread of biological
> ###   networks
> ### Aliases: level.plot
> 
> ### ** Examples
> 
> data("PPI_Athalina")
> 
> ### Example 1 #####
> #####% 5 initial nodes are picked randomly #####
> id <- level.plot(g1, init_nodes =5 ,tkplot=FALSE) 
> 
> ### Example 2 #####
> #####% initial nodes are given as an input #####
> id <- level.plot(g1, initial_nodes =c(1,4,5,7,9,11,25,27,29,100,101),
+ tkplot=FALSE) 
> 
> ### Example 3 #####
> #####% width of each level is same #####
> id <- level.plot(g1, initial_nodes 
+ =c(1,4,5,7,9,11,25,27,29,100,101), 
+ level.spread = TRUE,tkplot=FALSE) 
> 
> ### Example 4 #####
> #####% plot of graph when nodes are not arranged based on the degree #####
> id <- level.plot(g1, initial_nodes 
+ =c(1,4,5,7,9,11,25,27,29,100,101),
+ order_degree= NULL, level.spread = TRUE,
+ tkplot=FALSE) 
> 
> ### Example 5 #####
> #####% plot of graph when nodes are not arranged based on the degree #####
> id <- level.plot(g1, initial_nodes 
+ =c(1,4,5,7,9,11,25,27,29,100,101),
+ order_degree= NULL, level.spread = TRUE,
+ tkplot=FALSE) 
> 
> ### Example 6 #####
> ###% plot of graph using a forcebased algorithm 
> ###in igraph package #####
> xx <- level.plot(g1, layout.function=layout.reingold.tilford,
+ initial_nodes=c(1,4,5,7,9,11,25,27,29,100,101))
> 
> xx <- level.plot(g1, layout.function=layout.fruchterman.reingold,type=2, 
+ init_nodes=20)
> 
> xx <- level.plot(g1, layout.function=layout.kamada.kawai,
+ type=1, init_nodes=20)
> 
> ### Example 7 #####
> ## Shortest path between initial set of nodes at level '0'
> ## to a set of nodes with vertex id 10, 1000, 1001, 1002 ##%
> id <- level.plot(g1, initial_nodes=c(101,1,5,7),
+ vertex.colors=c("white", "white", "white"),
+ edge.col=c("grey", "grey", "grey", "grey"),
+ nodeset= list(c(101,1,5,7),c(10,1000,1001,1002)),
+ tkplot=FALSE, level.spread=TRUE,
+ order_degree=NULL)
> 
> ### Example 8 #####
> ###  A directed network is plotted with level.plot function ##%
> g <- barabasi.game(300, power=0)
> id <-  level.plot(g, tkplot=FALSE,
+ level.spread=TRUE, order_degree=NULL)
>  
> 
> 
> 
> 
> 
> dev.off()
null device 
          1 
>