JGL-package: Joint Graphical Lasso

Description Details Author(s) References Examples

Description

Runs the Fused Graphical Lasso and the Group Graphical Lasso for network estimation and sparse inverse covariance estimation across multiple classes of data.

Details

Package: JGL
Type: Package
Version: 2.3
Date: 2013-04-16
License: GPL (>= 2)
LazyLoad: yes

The Fused Graphical Lasso (FGL) and the Group Graphical Lasso (GGL) are two methods for estimating sparse inverse covariance matrices that are similar across classes. A motivating example is the analysis of gene expression data from tumor and healthy cells: FGL and GGL allow joint estimation of gene expression conditional dependency networks in both cancer and healthy cells FGL is recommended over GGL for most purposes. The function JGL can implement either of these methods.

The JGL package includes a number of functions to help analyze estimated networks: subnetworks(), net.degree(), net.edges(), net.hubs(), net.neighbors(), print.jgl() and plot.jgl(). These functions rely on the igraph package.

A large number of other functions are called by the above functions, and are not generally useful when called by the user.

Author(s)

Patrick Danaher

Maintainer: Patrick Danaher - pdanaher at uw dot edu

References

Patrick Danaher, Pei Wang and Daniela Witten (2011). The joint graphical lasso for inverse covariance estimation across multiple classes. http://arxiv.org/abs/1111.0324

Examples

1
2
3
4
5
6
7
8
9
## load an example dataset with K=two classes, p=200 features, and n=100 samples per class:
data(example.data)
str(example.data)
## run FGL:
fgl.results = JGL(Y=example.data,penalty="fused",lambda1=.25,lambda2=.1)
str(fgl.results)
print.jgl(fgl.results)
## get subnetwork membership of FGL results:
subnetworks(fgl.results$theta)

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

List of 2
 $ : num [1:100, 1:200] 0.395 -2.03 -1.704 -0.469 1.75 ...
  ..- attr(*, "dimnames")=List of 2
  .. ..$ : NULL
  .. ..$ : chr [1:200] "gene 1" "gene 2" "gene 3" "gene 4" ...
 $ : num [1:100, 1:200] -1.548 1.45 -0.812 -0.589 0.69 ...
  ..- attr(*, "dimnames")=List of 2
  .. ..$ : NULL
  .. ..$ : chr [1:200] "gene 1" "gene 2" "gene 3" "gene 4" ...
List of 3
 $ theta            :List of 2
  ..$ : num [1:47, 1:47] 1.04 0 0 0 0 ...
  .. ..- attr(*, "dimnames")=List of 2
  .. .. ..$ : chr [1:47] "gene 5" "gene 7" "gene 9" "gene 15" ...
  .. .. ..$ : chr [1:47] "gene 5" "gene 7" "gene 9" "gene 15" ...
  ..$ : num [1:47, 1:47] 1.04 0 0 0 0 ...
  .. ..- attr(*, "dimnames")=List of 2
  .. .. ..$ : chr [1:47] "gene 5" "gene 7" "gene 9" "gene 15" ...
  .. .. ..$ : chr [1:47] "gene 5" "gene 7" "gene 9" "gene 15" ...
 $ theta.unconnected:List of 2
  ..$ : Named num [1:153] 1.243 0.909 0.976 1.069 1.009 ...
  .. ..- attr(*, "names")= chr [1:153] "gene 1" "gene 2" "gene 3" "gene 4" ...
  ..$ : Named num [1:153] 1.243 0.909 0.976 1.289 1.009 ...
  .. ..- attr(*, "names")= chr [1:153] "gene 1" "gene 2" "gene 3" "gene 4" ...
 $ connected        : logi [1:200] FALSE FALSE FALSE FALSE TRUE FALSE ...
 - attr(*, "class")= chr "jgl"

Number of connected nodes:  47 
Number of subnetworks in each class:  15 11 
Number of edges in each class:  17 14 
Number of edges shared by all classes:  4 
L1 norm of off-diagonal elements of classes' Thetas:  0.8156875 0.6878476 
[[1]]
[[1]][[1]]
[1] "gene 5"   "gene 126"

[[1]][[2]]
[1] "gene 15"  "gene 177"

[[1]][[3]]
[1] "gene 18"  "gene 32"  "gene 61"  "gene 155"

[[1]][[4]]
[1] "gene 25" "gene 76"

[[1]][[5]]
[1] "gene 49"  "gene 199"

[[1]][[6]]
[1] "gene 57"  "gene 130"

[[1]][[7]]
[1] "gene 60"  "gene 123"

[[1]][[8]]
[1] "gene 63"  "gene 186"

[[1]][[9]]
[1] "gene 67"  "gene 168"

[[1]][[10]]
[1] "gene 68" "gene 90"

[[1]][[11]]
[1] "gene 80"  "gene 114"

[[1]][[12]]
[1] "gene 86"  "gene 158"

[[1]][[13]]
[1] "gene 95"  "gene 122"

[[1]][[14]]
[1] "gene 98"  "gene 175"

[[1]][[15]]
[1] "gene 140" "gene 146"


[[2]]
[[2]][[1]]
[1] "gene 5"   "gene 61"  "gene 126" "gene 155"

[[2]][[2]]
[1] "gene 7"   "gene 172" "gene 181"

[[2]][[3]]
[1] "gene 9"  "gene 24"

[[2]][[4]]
[1] "gene 15"  "gene 135"

[[2]][[5]]
[1] "gene 25" "gene 76"

[[2]][[6]]
[1] "gene 56"  "gene 178"

[[2]][[7]]
[1] "gene 63"  "gene 186"

[[2]][[8]]
[1] "gene 64"  "gene 128"

[[2]][[9]]
[1] "gene 83"  "gene 194"

[[2]][[10]]
[1] "gene 96"  "gene 116"

[[2]][[11]]
[1] "gene 102" "gene 140"

JGL documentation built on May 2, 2019, 12:40 p.m.