[BioC] graph::subGraph() problem with node attributes

Robert Castelo robert.castelo at upf.edu
Fri Feb 1 23:50:17 CET 2013


dear list, and particularly maintainers of the graph package,

i have encounter a problem with the graph package which i'll reproduce 
using the example code from the help page of the graphBAM() constructor 
function:

example(graphBAM) ## run the entire example code, this creates a 
data.frame called 'df'
df
from to weight
1 a b 2.3
2 a c 2.3
3 b c 4.3
4 c d 1.0
5 d a 3.0

## using the previous data frame, i'm going to re-run some of the 
instructions of the example, starting by creating a fresh new graphBAM 
object 'g'

g <- graphBAM(df)
g
A graphBAM graph with undirected edges
Number of Nodes = 4
Number of Edges = 5

## now i'm going to add a 'color' attribute to the nodes setting its 
default value to 'green', this is taken again from the example

nodeDataDefaults(g, attr ="color") <- "green"
nodeData(g)
$color
$color$a
[1] "green"

$color$b
[1] "green"

$color$c
[1] "green"

$color$d
[1] "green"

## now i'm going to extract the subgraph induced by nodes 'a', 'c' and 
'd' (taken again from the example)

sg <- subGraph(c("a","c","d"), g)
Error in nodeData(g, attr = att) : attribute not found: ‘color’

## as you see i get an error related to the attribute previously added. 
however if, as it happens in the example, i change the value of the 
'color' attribute to some of the nodes, the problem does not show up:

nodeData(g,n=c("b", "c"), attr ="color") <- "red"
nodeData(g, nodes(g))
$color
$color$a
[1] "green"

$color$b
[1] "red"

$color$c
[1] "red"

$color$d
[1] "green"

sg <- subGraph(c("a","c","d"), g)
sg
A graphBAM graph with undirected edges
Number of Nodes = 3
Number of Edges = 3

## the 'green' color in particular does not seem to be problem :)

nodeData(g,n=c("b", "c"), attr ="color") <- "green"
nodeData(g, nodes(g))
$color
$color$a
[1] "green"

$color$b
[1] "green"

$color$c
[1] "green"

$color$d
[1] "green"
sg <- subGraph(c("a","c","d"), g)
sg
A graphBAM graph with undirected edges
Number of Nodes = 3
Number of Edges = 3

i would expect/like that once an attribute has been added with its value 
by default, one can already apply the subGraph() function without having 
to update the attribute. could the package be fixed this way?

thanks!!
robert.
ps: sessionInfo()
R version 2.15.2 (2012-10-26)
Platform: i386-apple-darwin9.8.0/i386 (32-bit)

locale:
[1] C/UTF-8/C/C/C/C

attached base packages:
[1] stats graphics grDevices utils datasets methods base

other attached packages:
[1] graph_1.36.1 vimcom_0.9-5 setwidth_1.0-3 colorout_1.0-0

loaded via a namespace (and not attached):
[1] BiocGenerics_0.4.0 stats4_2.15.2 tools_2.15.2



More information about the Bioconductor mailing list