[BioC] LambdaSets converting the results into a data.frame

Steve Lianoglou mailinglist.honeypot at gmail.com
Mon May 16 17:56:30 CEST 2011


Hi,

On Mon, May 16, 2011 at 11:18 AM, joe j <joe.stata at gmail.com> wrote:
> Thanks, Steve,
> What I've in mind is essentially a matrix of 3 columns:
> 1.vertex label, 2. edge connectivity (from 1 to maximum edge
> connectivity) or let's call it Lambda-K-set,3. a lambda set group
> identifier; let's call it group
>
> For the example:
>  con <- file(system.file("XML/snalambdaex.gxl",package="RBGL"))
>  coex <- fromGXL(con)
>  close(con)
>  lambdaSets(coex)
>
> I'd like the following output:
>
> 1. Node; 2. Lambda-K-set; 3. Group
>
> A1        1        1
> A2        1        1
> --
> A12      1        1
>
>
> A1        2        1
> A2        2        1
> --
> A8        2        1
>
> A9        2       2
> A10      2       2
> --
> A12      2       2
>
>
> A1       3       1
> A2       3       1
> --
> A4       3       1
>
>
> A5      3       2
> A6      3       2
> --
> A8      3       2

Here's a way -- maybe not the prettiest, but I think it's (more or
less) what you're after. The `lsets` variable should have. The parse*
functions may not be so durable/robust, and might require tweaking:

library(RGDL)

con <- file(system.file("XML/snalambdaex.gxl",package="RBGL"))
coex <- fromGXL(con)
close(con)
lset <- lambdaSets(coex)

parse.me <- unlist(lset[[2]], recursive=FALSE)

parseLambda <- function(name) {
  gsub('lambda-(\\d+).*', '\\1', name)
}

parseSet <- function(name) {
  idx <- gsub('lambda-(\\d+) sets(\\d+)', '\\2', name)
  if (nchar(idx) == nchar(name)) {
    ## idx not found, assume 1
    idx <- "1"
  }
  idx
}

lsets <- lapply(names(parse.me), function(name) {
  lambda <- parseLambda(name)
  group <- parseSet(name)
  data.frame(node=parse.me[[name]], lambda=lambda, group=group)
})

lsets <- do.call(rbind, lsets)

head(lsets)
  node lambda group
1   A1      0     1
2   A2      0     1
3   A3      0     1
4   A4      0     1
5   A5      0     1
6   A6      0     1

-- 
Steve Lianoglou
Graduate Student: Computational Systems Biology
 | Memorial Sloan-Kettering Cancer Center
 | Weill Medical College of Cornell University
Contact Info: http://cbio.mskcc.org/~lianos/contact



More information about the Bioconductor mailing list