Title: | Network Reverse Engineering with Approximate Bayesian Computation |
---|---|
Description: | We developed an inference tool based on approximate Bayesian computation to decipher network data and assess the strength of the inferred links between network's actors. It is a new multi-level approximate Bayesian computation (ABC) approach. At the first level, the method captures the global properties of the network, such as a scale-free structure and clustering coefficients, whereas the second level is targeted to capture local properties, including the probability of each couple of genes being linked. Up to now, Approximate Bayesian Computation (ABC) algorithms have been scarcely used in that setting and, due to the computational overhead, their application was limited to a small number of genes. On the contrary, our algorithm was made to cope with that issue and has low computational cost. It can be used, for instance, for elucidating gene regulatory network, which is an important step towards understanding the normal cell physiology and complex pathological phenotype. Reverse-engineering consists in using gene expressions over time or over different experimental conditions to discover the structure of the gene network in a targeted cellular process. The fact that gene expression data are usually noisy, highly correlated, and have high dimensionality explains the need for specific statistical methods to reverse engineer the underlying network. |
Authors: | Frederic Bertrand [cre, aut] , Myriam Maumy-Bertrand [aut] , Khadija Musayeva [ctb], Nicolas Jung [ctb], Université de Strasbourg [cph], CNRS [cph] |
Maintainer: | Frederic Bertrand <[email protected]> |
License: | GPL-3 |
Version: | 0.8-1 |
Built: | 2025-01-31 03:54:14 UTC |
Source: | https://github.com/fbertran/networkabc |
ABC algorithm for network reverse-engineering
abc( data, clust_coeffs = c(0.33, 0.66, 1), tolerance = NA, number_hubs = NA, iterations = 10, number_networks = 1000, hub_probs = NA, neighbour_probs = NA, is_probs = 1 )
abc( data, clust_coeffs = c(0.33, 0.66, 1), tolerance = NA, number_hubs = NA, iterations = 10, number_networks = 1000, hub_probs = NA, neighbour_probs = NA, is_probs = 1 )
data |
: Any microarray data in the form of a matrix (rows are genes and columns are time points) |
clust_coeffs |
: one dimensional array of size clust_size of clustering coefficients (these clustering coefficient are tested in the ABc algorithm). |
tolerance |
: a real value based for the tolerance between the generated networks and the reference network |
number_hubs |
: number of hubs in the network |
iterations |
: number of times to repeat ABC algorithm |
number_networks |
: number of generated networks in each iteration of the ABC algorithm |
hub_probs |
: one-dimensional array of size number_genes for the each label to be in the role of a hub |
neighbour_probs |
: this is the matrix of neighbour probabilities of size number_nodes*number_nodes |
is_probs |
: this needs to be set either to one (if you specify hub_probs and neighbour_probs) or to zero (if neither probabilities are specified). Warning: you should specify both hub_probs and neighbour_probs if is_probs is one. If is_prob is zero these arrays should simply indicate an array of a specified size.. |
M<-matrix(rnorm(30),10,3) result<-abc(data=M)
M<-matrix(rnorm(30),10,3) result<-abc(data=M)
Calculate the clustering coefficient for an adjacency matrix. By default, the local clustering coefficient is calculated. From the PCIT package after it was archived on the CRAN.
clusteringCoefficient(adj, FUN = "localClusteringCoefficient", ...)
clusteringCoefficient(adj, FUN = "localClusteringCoefficient", ...)
adj |
An adjacency matrix. Calculating the clustering coefficient only makes sense if some connections are zero i.e. no connection. |
FUN |
The function for calculating the clustering coefficient. |
... |
Arguments to pass to FUN |
The clustering coefficient(s) for the adjacency matrix.
Nathan S. Watson-Haigh
clusteringCoefficient(network_gen(50,.33)$network)
clusteringCoefficient(network_gen(50,.33)$network)
Calculate the local clustering coefficient for each node in an adjacency matrix. The clustering coefficient is defined as the proportion of existing connections from the total possible (Watts and Strogatz, 1998).
localClusteringCoefficient(adj)
localClusteringCoefficient(adj)
adj |
An adjacency matrix. Calculating the clustering coefficient only makes sense if some connections are zero i.e. no connection. |
A vector of local clustering coefficients for each node/gene of the adjacency matrix.
Nathan S. Watson-Haigh
D.J. Watts and S.H. Strogatz. (1998) Collective dynamics of 'small-world' networks. Nature. 393(6684). 440-442.
localClusteringCoefficient(network_gen(50,.33)$network)
localClusteringCoefficient(network_gen(50,.33)$network)
Result of the use of the network_gen
function.
netsimul
netsimul
A list of three objects :
The number of genes in the network
The clustering coefficient
The simulated network
Generate random network topology
network_gen(number_genes, clust_coef)
network_gen(number_genes, clust_coef)
number_genes |
A number |
clust_coef |
A number |
A list with the number of of genes, the targeted clustering coefficient and the resulting network
network_gen(10,1)
network_gen(10,1)
An inference tool based on approximate Bayesian computations to decipher network data and assess the strength of their inferred links.
networkABC: An inference tool for networks based on approximate Bayesian computation, Myriam Maumy-Bertrand, Frédéric Bertrand, preprint.
Result for the reverse engineering of a simulated Cascade network
resabc
resabc
A list of 14 objects :
: The microarray data used, rows are genes and columns are time points.)
: The number of genes.)
: The number of timepoints)
: the size of clusters
: the clustering coefficient
: the tolerance between the generated networks and the reference network
: number of hubs in the network
: number of times to repeat ABC algorithm
: number of generated networks in each iteration of the ABC algorithm
: one-dimensional array of size number_genes for the each label to be in the role of a hub
: matrix of neighbour probabilities of size number_nodes*number_nodes
: is equal to 1 since hub_probs and neighbour_probs were specified
Plot for the hub probabilities ; there is one probability for each node in the network.
showHp(result)
showHp(result)
result |
: The result of the abc algorithm. |
data(resabc) showHp(resabc)
data(resabc) showHp(resabc)
Plot the final network.
showNetwork(res, min_prob)
showNetwork(res, min_prob)
res |
: The result of the abc algorithm. |
min_prob |
: numeric ; under this probabilitie value, the link between two genes is set to 0. |
data(resabc) showNetwork(resabc,.2)
data(resabc) showNetwork(resabc,.2)
Plot for the neighbourhood probabilities ; there is one probability for each pair of node in the network.
showNp(result)
showNp(result)
result |
: The result of the abc algorithm. |
data(resabc) showNp(resabc)
data(resabc) showNp(resabc)