simone: SIMoNe algorithm for network inference

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

Description

The simone function offers an interface to infer networks based on partial correlation coefficients in various contexts and methods (steady-state data, time-course data, multiple sample setup, clustering prior)

Usage

1
2
3
4
5
simone(X,
       type       = "steady-state",
       clustering = FALSE,
       tasks      = factor(rep(1, nrow(X))),
       control    = setOptions())

Arguments

X

a n x p matrix of data, typically n expression levels associated to the same p genes. Can also be a data.frame with n entries, each column corresponding to a variable (a gene). Specifying colnames to X may be convenient in view of results analysis, since it will be used to annotate the plots. Note that this is the only required argument.

type

a character string indicating the data specification (either "steady-state" or "time-course" data). Default is "steady-state".

clustering

a logical indicating if the network inference should be perfomed by penalizing the edges according to a latent clustering discovered during the network structure recovery. Default is FALSE.

tasks

A factor with n entries indicating the task belonging for each observation in the multiple sample framework. Default is factor(rep(1, nrow(X))), that is, all observations come from a unique homogeneous sample.

control

A list that is used to specify low-level options for the algorithm, defined through the setOptions function.

Details

Any inference method available ("neighborhood selection", "graphical-Lasso", "VAR(1) inference" and "multitask learning" - see simone-package) relies on an optimization problem under the general form

Θhat (λ) = argmaxΘ L(Θ; data) - λ * penl1(Θ, Z),
where L is the log-likelihood of the model (pseudo log-likelihood for "neighborhood selection") and λ is a penalty parameter which controls the sparsity level of the network. The p x p matrix Θ describes the parameters (basically, the edges) of the model, while Z represents a latent clustering which is also estimated when the argument clustering is set to TRUE.

The model and the penalty function penl1 differ according to the context (steady-state/time-course data, multitask learning and its associated coupling effect). For further details on the models, please check the papers listed in the reference section of simone-package.

The criterion displayed during a SIMoNe run is the value of the penalized likelihood for the current values of the estimor Θhat(λ) corresponding to a given value of the overall penalty level λ.

The following information criteria are also computed for any value of λ and part of the output of simone. The BIC (Bayesian Information Criterion)

BIC(λ) = L(Θhat(λ); data) - df(Θhat(λ)) log(n)/2,

and the AIC (Akaike Information Criterion)

AIC(λ) = L(Θhat(λ); data) - df(Θhat(λ)) .

Value

Returns an object of class simone, which is list-like and contains the following:

networks

a list with all the inferred networks stocked as adjacency matrices (the successive values of Θ controled by the penalty level λ). In the multiple sample setup, each element of the list is a list with as many entries as samples or levels in tasks.

penalties

a vector of the same length as networks, containing the successive values of the penalty level.

n.edges

a vector of the same length as networks, containing the successive numbers of edges in the inferred networks. In the multiple sample setup, n.edges is a matrix with as many columns as levels in tasks.

BIC

a vector of the same length as networks, containing the value of the BIC for the successively estimated networks.

AIC

a vector of the same length as networks, containing the value of the AIC for the successively estimated networks.

clusters

a size-p factor indicating the class of each variable.

weights

a pxp matrix of weigths used to adapt the penalty to each entry of the Theta matrix. It is inferred through the algorithm according to the latent clustering of the network. When clustering is set to FALSE, all the weights are equal to "1", which mean no adaptive penalization.

control

a list describing all the posterior values of the parameters used by the algorithm, to compare with the one set by the setOptions function. As a matter of fact, many of the options are defined depending on the nature of the data and can be automatically corrected during internal checks of the coherence of desired options to the characteristics of the data.

Note

If nothing particular is specified about the penalty through the control list (see setOptions), the default is to start from a value of λ that ensures an empty network. Then λ is progressively shrinked, as close to zero as possible. Along the shrinkage of λ, only networks with different numbers of edges are kept in the final output.

Author(s)

J. Chiquet

See Also

setOptions, plot.simone, cancer and demo(package="simone").

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
## load the breast cancer data set
data(cancer)
attach(cancer)

## launch simone with the default parameters and plot results
plot(simone(expr))

## Not run: 
## try with clustering now (clustering is achieved on a 30-edges network)
plot(simone(expr, clustering=TRUE, control=setOptions(clusters.crit=30)))

## try the multiple sample
plot(simone(expr, tasks=status))

## End(Not run)

detach(cancer)

Example output

Loading required package: blockmodels
Loading required package: Rcpp
Loading required package: parallel
Loading required package: digest

----------------------------------------------------------------------

      'simone' package version 1.0-3
      SIMoNe page (http://julien.cremeriefamily.info/simone.html)

----------------------------------------------------------------------
Note that versions >= 1.0-0 are not compatible with versions < 1.0.0. 
----------------------------------------------------------------------

Network Inference: neighborhood.selection with AND symmetrization rule applied 

|  penalty |    edges | criteria 

         1          0     -10336 
     0.697          1      -9823 
    0.6667          2      -9790 
    0.6061          3      -9599 
    0.5859          4      -9480 
    0.5758          5      -9380 
    0.5657          6      -9269 
    0.5556          7      -9149 
    0.5455          8      -9012 
    0.5152          9      -8553 
    0.5051         11      -8384 
    0.4849         12      -8027 
    0.4748         14      -7840 
    0.4647         15      -7656 
    0.4546         17      -7466 
    0.4343         19      -7065 
    0.4242         22      -6854 
    0.4141         23      -6634 
     0.404         24      -6412 
    0.3939         25      -6191 
    0.3838         27      -5966 
    0.3636         30      -5518 
    0.3535         31      -5298 
    0.3434         33      -5081 
    0.3333         37      -4864 
    0.3232         39      -4650 
    0.3131         44      -4436 
     0.303         45      -4227 
    0.2929         46      -4020 
    0.2828         48      -3815 
    0.2727         52      -3613 
    0.2626         56      -3415 
    0.2525         61      -3220 
    0.2424         63      -3031 
    0.2323         71      -2847 
    0.2222         74      -2669 
    0.2121         75      -2496 
     0.202         77      -2329 
    0.1919         80      -2167 
    0.1818         83      -2010 
    0.1717         87      -1859 
    0.1616         91      -1714 
    0.1515         93      -1574 
    0.1414         95      -1441 
    0.1313         97      -1317 
    0.1212         98      -1199 
    0.1111        101      -1089 
     0.101        104     -987.5 
   0.09092        112     -894.9 
   0.08082        120       -809 
   0.07072        132     -732.9 
   0.06062        145     -658.5 
   0.05051        156     -593.5 
   0.04041        170     -527.7 
   0.03031        200     -472.5 
   0.02021        235     -420.5 
   0.01011        277     -360.4 
     1e-05        325     -285.1 

Press return for next plot...

Press return for next plot...

Press return for next plot...

Press return for next plot...

Press "Return" or "n+Return" to go forward
Press "p+Return" to go backward 
Press "q+Return" to quit

Penalty= 0.70707  0 edges 
Penalty= 0.67677  1 edges 
Penalty= 0.61617  2 edges 
Penalty= 0.59596  3 edges 
Penalty= 0.58586  4 edges 
Penalty= 0.57576  5 edges 
Penalty= 0.56566  6 edges 
Penalty= 0.55556  7 edges 
Penalty= 0.52526  8 edges 
Penalty= 0.51516  9 edges 
Penalty= 0.49495  11 edges 
Penalty= 0.48485  12 edges 
Penalty= 0.47475  14 edges 
Penalty= 0.46465  15 edges 
Penalty= 0.44445  17 edges 
Penalty= 0.43435  19 edges 
Penalty= 0.42425  22 edges 
Penalty= 0.41415  23 edges 
Penalty= 0.40405  24 edges 
Penalty= 0.39395  25 edges 
Penalty= 0.37374  27 edges 
Penalty= 0.36364  30 edges 
Penalty= 0.35354  31 edges 
Penalty= 0.34344  33 edges 
Penalty= 0.33334  37 edges 
Penalty= 0.32324  39 edges 
Penalty= 0.31314  44 edges 
Penalty= 0.30304  45 edges 
Penalty= 0.29294  46 edges 
Penalty= 0.28284  48 edges 
Penalty= 0.27273  52 edges 
Penalty= 0.26263  56 edges 
Penalty= 0.25253  61 edges 
Penalty= 0.24243  63 edges 
Penalty= 0.23233  71 edges 
Penalty= 0.22223  74 edges 
Penalty= 0.21213  75 edges 
Penalty= 0.20203  77 edges 
Penalty= 0.19193  80 edges 
Penalty= 0.18183  83 edges 
Penalty= 0.17173  87 edges 
Penalty= 0.16162  91 edges 
Penalty= 0.15152  93 edges 
Penalty= 0.14142  95 edges 
Penalty= 0.13132  97 edges 
Penalty= 0.12122  98 edges 
Penalty= 0.11112  101 edges 
Penalty= 0.10102  104 edges 
Penalty= 0.09092  112 edges 
Penalty= 0.08082  120 edges 
Penalty= 0.07072  132 edges 
Penalty= 0.06062  145 edges 
Penalty= 0.05051  156 edges 
Penalty= 0.04041  170 edges 
Penalty= 0.03031  200 edges 
Penalty= 0.02021  235 edges 
Penalty= 0.01011  277 edges 
Penalty= 1e-05  325 edges 


Network Inference: neighborhood.selection with AND symmetrization rule applied 

|  penalty |    edges | criteria 

         1          0     -10336 
     0.697          1      -9823 
    0.6667          2      -9790 
    0.6061          3      -9599 
    0.5859          4      -9480 
    0.5758          5      -9380 
    0.5657          6      -9269 
    0.5556          7      -9149 
    0.5455          8      -9012 
    0.5152          9      -8553 
    0.5051         11      -8384 
    0.4849         12      -8027 
    0.4748         14      -7840 
    0.4647         15      -7656 
    0.4546         17      -7466 
    0.4343         19      -7065 
    0.4242         22      -6854 
    0.4141         23      -6634 
     0.404         24      -6412 
    0.3939         25      -6191 
    0.3838         27      -5966 
    0.3636         30      -5518 
    0.3535         31      -5298 
    0.3434         33      -5081 
    0.3333         37      -4864 
    0.3232         39      -4650 
    0.3131         44      -4436 
     0.303         45      -4227 
    0.2929         46      -4020 
    0.2828         48      -3815 
    0.2727         52      -3613 
    0.2626         56      -3415 
    0.2525         61      -3220 
    0.2424         63      -3031 
    0.2323         71      -2847 
    0.2222         74      -2669 
    0.2121         75      -2496 
     0.202         77      -2329 
    0.1919         80      -2167 
    0.1818         83      -2010 
    0.1717         87      -1859 
    0.1616         91      -1714 
    0.1515         93      -1574 
    0.1414         95      -1441 
    0.1313         97      -1317 
    0.1212         98      -1199 
    0.1111        101      -1089 
     0.101        104     -987.5 
   0.09092        112     -894.9 
   0.08082        120       -809 
   0.07072        132     -732.9 
   0.06062        145     -658.5 
   0.05051        156     -593.5 
   0.04041        170     -527.7 
   0.03031        200     -472.5 
   0.02021        235     -420.5 
   0.01011        277     -360.4 
     1e-05        325     -285.1 

Found a network with 30 edges.








Network Inference: neighborhood.selection with AND symmetrization rule applied 

|  penalty |    edges | criteria 

     1.149          0    -315771 
     0.801          1    -222703 
    0.7662          2    -213414 
    0.6965          3    -194713 
    0.6733          4    -188423 
    0.6617          5    -185238 
    0.6501          6    -182042 
    0.6385          7    -178837 
    0.6269          8    -175615 
     0.592          9    -165921 
    0.5804         11    -162676 
    0.5572         12    -156182 
    0.5456         14    -152930 
     0.534         15    -149679 
    0.5224         17    -146422 
    0.4992         19    -139888 
    0.4876         22    -136615 
     0.476         23    -133339 
    0.4644         24    -130064 
    0.4527         25    -126789 
    0.4411         27    -123511 
    0.4179         30    -116956 
    0.4063         31    -113680 
    0.3947         32    -110406 
    0.3831         34    -107131 
    0.3715         37    -103859 
    0.3599         38    -100588 
    0.3483         40     -97322 
     0.325         42     -90793 
    0.3134         45     -87529 
    0.3018         49     -84266 
    0.2902         54     -81004 
     0.267         59     -74491 
    0.2554         60     -71240 
    0.2438         61     -67992 
    0.2322         62     -64748 
    0.2206         64     -61508 
     0.209         67     -58269 
    0.1974         70     -55035 
    0.1857         74     -51804 
    0.1741         75     -48576 
    0.1393         79     -38921 
    0.1277         81     -35713 
    0.1161         86     -32507 
    0.1045         94     -29309 
   0.09288         97     -26115 
   0.08127        105     -22922 
   0.06966        109     -19735 
   0.05805        121     -16558 
   0.04645        135     -13387 
   0.03484        151     -10221 
   0.02323        172      -7067 
   0.01162        202      -3912 
 1.149e-05        301       -312 

Press return for next plot...

Press return for next plot...

Press return for next plot...

Press return for next plot...

Press "Return" or "n+Return" to go forward
Press "p+Return" to go backward 
Press "q+Return" to quit

Penalty= 0.81261  0 edges 
Penalty= 0.77778  1 edges 
Penalty= 0.70813  2 edges 
Penalty= 0.68491  3 edges 
Penalty= 0.6733  4 edges 
Penalty= 0.6617  5 edges 
Penalty= 0.65009  6 edges 
Penalty= 0.63848  7 edges 
Penalty= 0.60365  8 edges 
Penalty= 0.59205  9 edges 
Penalty= 0.56883  11 edges 
Penalty= 0.55722  12 edges 
Penalty= 0.54561  14 edges 
Penalty= 0.534  15 edges 
Penalty= 0.51079  17 edges 
Penalty= 0.49918  19 edges 
Penalty= 0.48757  22 edges 
Penalty= 0.47596  23 edges 
Penalty= 0.46435  24 edges 
Penalty= 0.45274  25 edges 
Penalty= 0.42953  27 edges 
Penalty= 0.41792  30 edges 
Penalty= 0.40631  31 edges 
Penalty= 0.3947  32 edges 
Penalty= 0.38309  34 edges 
Penalty= 0.37148  37 edges 
Penalty= 0.35988  38 edges 
Penalty= 0.33666  40 edges 
Penalty= 0.32505  42 edges 
Penalty= 0.31344  45 edges 
Penalty= 0.30183  49 edges 
Penalty= 0.27862  54 edges 
Penalty= 0.26701  59 edges 
Penalty= 0.2554  60 edges 
Penalty= 0.24379  61 edges 
Penalty= 0.23218  62 edges 
Penalty= 0.22057  64 edges 
Penalty= 0.20896  67 edges 
Penalty= 0.19736  70 edges 
Penalty= 0.18575  74 edges 
Penalty= 0.15092  75 edges 
Penalty= 0.13931  79 edges 
Penalty= 0.12771  81 edges 
Penalty= 0.1161  86 edges 
Penalty= 0.10449  94 edges 
Penalty= 0.09288  97 edges 
Penalty= 0.08127  105 edges 
Penalty= 0.06966  109 edges 
Penalty= 0.05805  121 edges 
Penalty= 0.04645  135 edges 
Penalty= 0.03484  151 edges 
Penalty= 0.02323  172 edges 
Penalty= 0.01162  202 edges 
Penalty= 1e-05  301 edges 


Network Inference: multi.gaussian with coopLasso coupling and AND symmetrization rule applied 

|  penalty |    edges | criteria 

         1        0,0      -8731 
      0.18        1,1      -7295 
      0.15        2,2      -6966 
      0.14        5,5      -6728 
      0.13        9,9      -6365 
      0.12      15,15      -5874 
      0.11      22,22      -5324 
       0.1      27,27      -4725 
      0.09      32,32      -4125 
      0.08      45,45      -3534 
      0.07      54,54      -2927 
      0.06      61,64      -2332 
      0.05      77,77      -1812 
      0.04      90,92      -1366 
      0.03    104,115      -1008 
      0.02    141,149       -770 
      0.01    202,208     -584.6 

Press return for next plot...

Press return for next plot...

Press return for next plot...

Press return for next plot...

simone documentation built on May 2, 2019, 2:37 a.m.