graph::edgeMatrix() fails for signature(object="graphBAM")
1
0
Entering edit mode
Robert Castelo ★ 3.3k
@rcastelo
Last seen 8 days ago
Barcelona/Universitat Pompeu Fabra
hi, i have come across the following problem with the graph::edgeMatrix() function when the input object is a 'graphBAM' object: library(graph) g <- graphBAM(data.frame(from="1", to="2", weight=1)) edgeMatrix(g, duplicates=FALSE) [,1] from 1 to 2 edgeMatrix(g, duplicates=TRUE) ## here is the problem !! [,1] from 1 to 2 edgeMatrix(as(g, "graphNEL"), duplicates=TRUE) ## but here works !! [,1] [,2] from 1 2 to 2 1 note that when coercing 'g' to a 'graphNEL' object, then it works as expected. thanks!! robert. ps: sessionInfo() R version 3.0.0 (2013-04-03) Platform: x86_64-unknown-linux-gnu (64-bit) locale: [1] LC_CTYPE=en_US.UTF8 LC_NUMERIC=C [3] LC_TIME=en_US.UTF8 LC_COLLATE=en_US.UTF8 [5] LC_MONETARY=en_US.UTF8 LC_MESSAGES=en_US.UTF8 [7] LC_PAPER=C LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=en_US.UTF8 LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] graph_1.38.2 vimcom_0.9-8 setwidth_1.0-3 colorout_1.0-0 loaded via a namespace (and not attached): [1] BiocGenerics_0.6.0 parallel_3.0.0 stats4_3.0.0 tools_3.0.0
• 1.1k views
ADD COMMENT
0
Entering edit mode
Paul Shannon ▴ 470
@paul-shannon-5944
Last seen 2.0 years ago
United States
Hi Robert, Thanks for your clear bug report. I will take a look at this over the upcoming weekend. - Paul On Jul 3, 2013, at 7:17 AM, Robert Castelo wrote: > hi, > > i have come across the following problem with the graph::edgeMatrix() function when the input object is a 'graphBAM' object: > > library(graph) > g <- graphBAM(data.frame(from="1", to="2", weight=1)) > > edgeMatrix(g, duplicates=FALSE) > [,1] > from 1 > to 2 > edgeMatrix(g, duplicates=TRUE) ## here is the problem !! > [,1] > from 1 > to 2 > edgeMatrix(as(g, "graphNEL"), duplicates=TRUE) ## but here works !! > [,1] [,2] > from 1 2 > to 2 1 > > > note that when coercing 'g' to a 'graphNEL' object, then it works as expected. > > > thanks!! > robert. > ps: sessionInfo() > R version 3.0.0 (2013-04-03) > Platform: x86_64-unknown-linux-gnu (64-bit) > > locale: > [1] LC_CTYPE=en_US.UTF8 LC_NUMERIC=C > [3] LC_TIME=en_US.UTF8 LC_COLLATE=en_US.UTF8 > [5] LC_MONETARY=en_US.UTF8 LC_MESSAGES=en_US.UTF8 > [7] LC_PAPER=C LC_NAME=C > [9] LC_ADDRESS=C LC_TELEPHONE=C > [11] LC_MEASUREMENT=en_US.UTF8 LC_IDENTIFICATION=C > > attached base packages: > [1] stats graphics grDevices utils datasets methods base > > other attached packages: > [1] graph_1.38.2 vimcom_0.9-8 setwidth_1.0-3 colorout_1.0-0 > > loaded via a namespace (and not attached): > [1] BiocGenerics_0.6.0 parallel_3.0.0 stats4_3.0.0 tools_3.0.0 > > _______________________________________________ > Bioconductor mailing list > Bioconductor at r-project.org > https://stat.ethz.ch/mailman/listinfo/bioconductor > Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor
ADD COMMENT
0
Entering edit mode
hi Paul, just in case it helps, the current definition of the edgeMatrix() method for 'graphBAM' is: setMethod("edgeMatrix", "graphBAM", function (object, duplicates = FALSE) { bitvec <- object at edgeSet@bit_vector nds <- nodes(object) df <- .Call(graph_bitarray_rowColPos, bitvec) t(df) }) so clearly the argument 'duplicates' is not taken into account, i believe a possible fix could be the following: setMethod("edgeMatrix", "graphBAM", function(object, duplicates=FALSE) { bitvec <- object at edgeSet@bit_vector nds <- nodes(object) df <- .Call(graph_bitarray_rowColPos, bitvec) if (duplicates) df <- rbind(df, cbind(as.vector(df[, "to"]), as.vector(df[, "from"]))) t(df) }) cheers, robert. On 07/04/2013 04:59 AM, Paul Shannon wrote: > Hi Robert, > > Thanks for your clear bug report. I will take a look at this over the upcoming weekend. > > - Paul > > On Jul 3, 2013, at 7:17 AM, Robert Castelo wrote: > >> hi, >> >> i have come across the following problem with the graph::edgeMatrix() function when the input object is a 'graphBAM' object: >> >> library(graph) >> g<- graphBAM(data.frame(from="1", to="2", weight=1)) >> >> edgeMatrix(g, duplicates=FALSE) >> [,1] >> from 1 >> to 2 >> edgeMatrix(g, duplicates=TRUE) ## here is the problem !! >> [,1] >> from 1 >> to 2 >> edgeMatrix(as(g, "graphNEL"), duplicates=TRUE) ## but here works !! >> [,1] [,2] >> from 1 2 >> to 2 1 >> >> >> note that when coercing 'g' to a 'graphNEL' object, then it works as expected. >> >> >> thanks!! >> robert. >> ps: sessionInfo() >> R version 3.0.0 (2013-04-03) >> Platform: x86_64-unknown-linux-gnu (64-bit) >> >> locale: >> [1] LC_CTYPE=en_US.UTF8 LC_NUMERIC=C >> [3] LC_TIME=en_US.UTF8 LC_COLLATE=en_US.UTF8 >> [5] LC_MONETARY=en_US.UTF8 LC_MESSAGES=en_US.UTF8 >> [7] LC_PAPER=C LC_NAME=C >> [9] LC_ADDRESS=C LC_TELEPHONE=C >> [11] LC_MEASUREMENT=en_US.UTF8 LC_IDENTIFICATION=C >> >> attached base packages: >> [1] stats graphics grDevices utils datasets methods base >> >> other attached packages: >> [1] graph_1.38.2 vimcom_0.9-8 setwidth_1.0-3 colorout_1.0-0 >> >> loaded via a namespace (and not attached): >> [1] BiocGenerics_0.6.0 parallel_3.0.0 stats4_3.0.0 tools_3.0.0 >> >> _______________________________________________ >> Bioconductor mailing list >> Bioconductor at r-project.org >> https://stat.ethz.ch/mailman/listinfo/bioconductor >> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor > > -- Robert Castelo, PhD Associate Professor Dept. of Experimental and Health Sciences Universitat Pompeu Fabra (UPF) Barcelona Biomedical Research Park (PRBB) Dr Aiguader 88 E-08003 Barcelona, Spain telf: +34.933.160.514 fax: +34.933.160.550
ADD REPLY
0
Entering edit mode
Hi Robert, I just added your suggested code to the devel version of methods- graphBAM.R, along with a unit test which first reproduced the bug your found -- and which now testifies to its resolution with your fix in place. Out of what may be an excess of caution on my part, I will wait a couple of days to see the devel build complete, before adding your bug fix to release. Many thanks for helping out. We are grateful. - Paul On Jul 4, 2013, at 12:02 AM, Robert Castelo wrote: > hi Paul, just in case it helps, the current definition of the edgeMatrix() method for 'graphBAM' is: > > setMethod("edgeMatrix", "graphBAM", > function (object, duplicates = FALSE) { > bitvec <- object at edgeSet@bit_vector > nds <- nodes(object) > df <- .Call(graph_bitarray_rowColPos, bitvec) > t(df) > }) > > so clearly the argument 'duplicates' is not taken into account, i believe a possible fix could be the following: > > setMethod("edgeMatrix", "graphBAM", > function(object, duplicates=FALSE) { > bitvec <- object at edgeSet@bit_vector > nds <- nodes(object) > df <- .Call(graph_bitarray_rowColPos, bitvec) > if (duplicates) > df <- rbind(df, cbind(as.vector(df[, "to"]), > as.vector(df[, "from"]))) > t(df) > }) > > > cheers, > robert. > > On 07/04/2013 04:59 AM, Paul Shannon wrote: >> Hi Robert, >> >> Thanks for your clear bug report. I will take a look at this over the upcoming weekend. >> >> - Paul >> >> On Jul 3, 2013, at 7:17 AM, Robert Castelo wrote: >> >>> hi, >>> >>> i have come across the following problem with the graph::edgeMatrix() function when the input object is a 'graphBAM' object: >>> >>> library(graph) >>> g<- graphBAM(data.frame(from="1", to="2", weight=1)) >>> >>> edgeMatrix(g, duplicates=FALSE) >>> [,1] >>> from 1 >>> to 2 >>> edgeMatrix(g, duplicates=TRUE) ## here is the problem !! >>> [,1] >>> from 1 >>> to 2 >>> edgeMatrix(as(g, "graphNEL"), duplicates=TRUE) ## but here works !! >>> [,1] [,2] >>> from 1 2 >>> to 2 1 >>> >>> >>> note that when coercing 'g' to a 'graphNEL' object, then it works as expected. >>> >>> >>> thanks!! >>> robert. >>> ps: sessionInfo() >>> R version 3.0.0 (2013-04-03) >>> Platform: x86_64-unknown-linux-gnu (64-bit) >>> >>> locale: >>> [1] LC_CTYPE=en_US.UTF8 LC_NUMERIC=C >>> [3] LC_TIME=en_US.UTF8 LC_COLLATE=en_US.UTF8 >>> [5] LC_MONETARY=en_US.UTF8 LC_MESSAGES=en_US.UTF8 >>> [7] LC_PAPER=C LC_NAME=C >>> [9] LC_ADDRESS=C LC_TELEPHONE=C >>> [11] LC_MEASUREMENT=en_US.UTF8 LC_IDENTIFICATION=C >>> >>> attached base packages: >>> [1] stats graphics grDevices utils datasets methods base >>> >>> other attached packages: >>> [1] graph_1.38.2 vimcom_0.9-8 setwidth_1.0-3 colorout_1.0-0 >>> >>> loaded via a namespace (and not attached): >>> [1] BiocGenerics_0.6.0 parallel_3.0.0 stats4_3.0.0 tools_3.0.0 >>> >>> _______________________________________________ >>> Bioconductor mailing list >>> Bioconductor at r-project.org >>> https://stat.ethz.ch/mailman/listinfo/bioconductor >>> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor >> >> > > -- > Robert Castelo, PhD > Associate Professor > Dept. of Experimental and Health Sciences > Universitat Pompeu Fabra (UPF) > Barcelona Biomedical Research Park (PRBB) > Dr Aiguader 88 > E-08003 Barcelona, Spain > telf: +34.933.160.514 > fax: +34.933.160.550 > > _______________________________________________ > Bioconductor mailing list > Bioconductor at r-project.org > https://stat.ethz.ch/mailman/listinfo/bioconductor > Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor
ADD REPLY
0
Entering edit mode
hi Paul, the devel version seems to build smoothly, could you push the fix to release? thanks! robert. On 07/08/2013 06:30 AM, Paul Shannon wrote: > Hi Robert, > > I just added your suggested code to the devel version of methods- graphBAM.R, along with a unit test which first reproduced the bug your found -- and which now testifies to its resolution with your fix in place. > > Out of what may be an excess of caution on my part, I will wait a couple of days to see the devel build complete, before adding your bug fix to release. > > Many thanks for helping out. We are grateful. > > - Paul > > On Jul 4, 2013, at 12:02 AM, Robert Castelo wrote: > >> hi Paul, just in case it helps, the current definition of the edgeMatrix() method for 'graphBAM' is: >> >> setMethod("edgeMatrix", "graphBAM", >> function (object, duplicates = FALSE) { >> bitvec<- object at edgeSet@bit_vector >> nds<- nodes(object) >> df<- .Call(graph_bitarray_rowColPos, bitvec) >> t(df) >> }) >> >> so clearly the argument 'duplicates' is not taken into account, i believe a possible fix could be the following: >> >> setMethod("edgeMatrix", "graphBAM", >> function(object, duplicates=FALSE) { >> bitvec<- object at edgeSet@bit_vector >> nds<- nodes(object) >> df<- .Call(graph_bitarray_rowColPos, bitvec) >> if (duplicates) >> df<- rbind(df, cbind(as.vector(df[, "to"]), >> as.vector(df[, "from"]))) >> t(df) >> }) >> >> >> cheers, >> robert. >> >> On 07/04/2013 04:59 AM, Paul Shannon wrote: >>> Hi Robert, >>> >>> Thanks for your clear bug report. I will take a look at this over the upcoming weekend. >>> >>> - Paul >>> >>> On Jul 3, 2013, at 7:17 AM, Robert Castelo wrote: >>> >>>> hi, >>>> >>>> i have come across the following problem with the graph::edgeMatrix() function when the input object is a 'graphBAM' object: >>>> >>>> library(graph) >>>> g<- graphBAM(data.frame(from="1", to="2", weight=1)) >>>> >>>> edgeMatrix(g, duplicates=FALSE) >>>> [,1] >>>> from 1 >>>> to 2 >>>> edgeMatrix(g, duplicates=TRUE) ## here is the problem !! >>>> [,1] >>>> from 1 >>>> to 2 >>>> edgeMatrix(as(g, "graphNEL"), duplicates=TRUE) ## but here works !! >>>> [,1] [,2] >>>> from 1 2 >>>> to 2 1 >>>> >>>> >>>> note that when coercing 'g' to a 'graphNEL' object, then it works as expected. >>>> >>>> >>>> thanks!! >>>> robert. >>>> ps: sessionInfo() >>>> R version 3.0.0 (2013-04-03) >>>> Platform: x86_64-unknown-linux-gnu (64-bit) >>>> >>>> locale: >>>> [1] LC_CTYPE=en_US.UTF8 LC_NUMERIC=C >>>> [3] LC_TIME=en_US.UTF8 LC_COLLATE=en_US.UTF8 >>>> [5] LC_MONETARY=en_US.UTF8 LC_MESSAGES=en_US.UTF8 >>>> [7] LC_PAPER=C LC_NAME=C >>>> [9] LC_ADDRESS=C LC_TELEPHONE=C >>>> [11] LC_MEASUREMENT=en_US.UTF8 LC_IDENTIFICATION=C >>>> >>>> attached base packages: >>>> [1] stats graphics grDevices utils datasets methods base >>>> >>>> other attached packages: >>>> [1] graph_1.38.2 vimcom_0.9-8 setwidth_1.0-3 colorout_1.0-0 >>>> >>>> loaded via a namespace (and not attached): >>>> [1] BiocGenerics_0.6.0 parallel_3.0.0 stats4_3.0.0 tools_3.0.0 >>>> >>>> _______________________________________________ >>>> Bioconductor mailing list >>>> Bioconductor at r-project.org >>>> https://stat.ethz.ch/mailman/listinfo/bioconductor >>>> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor >>> >>> >> >> -- >> Robert Castelo, PhD >> Associate Professor >> Dept. of Experimental and Health Sciences >> Universitat Pompeu Fabra (UPF) >> Barcelona Biomedical Research Park (PRBB) >> Dr Aiguader 88 >> E-08003 Barcelona, Spain >> telf: +34.933.160.514 >> fax: +34.933.160.550 >> >> _______________________________________________ >> Bioconductor mailing list >> Bioconductor at r-project.org >> https://stat.ethz.ch/mailman/listinfo/bioconductor >> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor > > -- Robert Castelo, PhD Associate Professor Dept. of Experimental and Health Sciences Universitat Pompeu Fabra (UPF) Barcelona Biomedical Research Park (PRBB) Dr Aiguader 88 E-08003 Barcelona, Spain telf: +34.933.160.514 fax: +34.933.160.550
ADD REPLY
0
Entering edit mode
Hi Robert, Your fix is now in release as well, graph 1.38.3. Many thanks, - Paul On Jul 16, 2013, at 7:46 AM, Robert Castelo wrote: > hi Paul, > > the devel version seems to build smoothly, could you push the fix to release? > > thanks! > robert. > > On 07/08/2013 06:30 AM, Paul Shannon wrote: >> Hi Robert, >> >> I just added your suggested code to the devel version of methods- graphBAM.R, along with a unit test which first reproduced the bug your found -- and which now testifies to its resolution with your fix in place. >> >> Out of what may be an excess of caution on my part, I will wait a couple of days to see the devel build complete, before adding your bug fix to release. >> >> Many thanks for helping out. We are grateful. >> >> - Paul >> >> On Jul 4, 2013, at 12:02 AM, Robert Castelo wrote: >> >>> hi Paul, just in case it helps, the current definition of the edgeMatrix() method for 'graphBAM' is: >>> >>> setMethod("edgeMatrix", "graphBAM", >>> function (object, duplicates = FALSE) { >>> bitvec<- object at edgeSet@bit_vector >>> nds<- nodes(object) >>> df<- .Call(graph_bitarray_rowColPos, bitvec) >>> t(df) >>> }) >>> >>> so clearly the argument 'duplicates' is not taken into account, i believe a possible fix could be the following: >>> >>> setMethod("edgeMatrix", "graphBAM", >>> function(object, duplicates=FALSE) { >>> bitvec<- object at edgeSet@bit_vector >>> nds<- nodes(object) >>> df<- .Call(graph_bitarray_rowColPos, bitvec) >>> if (duplicates) >>> df<- rbind(df, cbind(as.vector(df[, "to"]), >>> as.vector(df[, "from"]))) >>> t(df) >>> }) >>> >>> >>> cheers, >>> robert. >>> >>> On 07/04/2013 04:59 AM, Paul Shannon wrote: >>>> Hi Robert, >>>> >>>> Thanks for your clear bug report. I will take a look at this over the upcoming weekend. >>>> >>>> - Paul >>>> >>>> On Jul 3, 2013, at 7:17 AM, Robert Castelo wrote: >>>> >>>>> hi, >>>>> >>>>> i have come across the following problem with the graph::edgeMatrix() function when the input object is a 'graphBAM' object: >>>>> >>>>> library(graph) >>>>> g<- graphBAM(data.frame(from="1", to="2", weight=1)) >>>>> >>>>> edgeMatrix(g, duplicates=FALSE) >>>>> [,1] >>>>> from 1 >>>>> to 2 >>>>> edgeMatrix(g, duplicates=TRUE) ## here is the problem !! >>>>> [,1] >>>>> from 1 >>>>> to 2 >>>>> edgeMatrix(as(g, "graphNEL"), duplicates=TRUE) ## but here works !! >>>>> [,1] [,2] >>>>> from 1 2 >>>>> to 2 1 >>>>> >>>>> >>>>> note that when coercing 'g' to a 'graphNEL' object, then it works as expected. >>>>> >>>>> >>>>> thanks!! >>>>> robert. >>>>> ps: sessionInfo() >>>>> R version 3.0.0 (2013-04-03) >>>>> Platform: x86_64-unknown-linux-gnu (64-bit) >>>>> >>>>> locale: >>>>> [1] LC_CTYPE=en_US.UTF8 LC_NUMERIC=C >>>>> [3] LC_TIME=en_US.UTF8 LC_COLLATE=en_US.UTF8 >>>>> [5] LC_MONETARY=en_US.UTF8 LC_MESSAGES=en_US.UTF8 >>>>> [7] LC_PAPER=C LC_NAME=C >>>>> [9] LC_ADDRESS=C LC_TELEPHONE=C >>>>> [11] LC_MEASUREMENT=en_US.UTF8 LC_IDENTIFICATION=C >>>>> >>>>> attached base packages: >>>>> [1] stats graphics grDevices utils datasets methods base >>>>> >>>>> other attached packages: >>>>> [1] graph_1.38.2 vimcom_0.9-8 setwidth_1.0-3 colorout_1.0-0 >>>>> >>>>> loaded via a namespace (and not attached): >>>>> [1] BiocGenerics_0.6.0 parallel_3.0.0 stats4_3.0.0 tools_3.0.0 >>>>> >>>>> _______________________________________________ >>>>> Bioconductor mailing list >>>>> Bioconductor at r-project.org >>>>> https://stat.ethz.ch/mailman/listinfo/bioconductor >>>>> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor >>>> >>>> >>> >>> -- >>> Robert Castelo, PhD >>> Associate Professor >>> Dept. of Experimental and Health Sciences >>> Universitat Pompeu Fabra (UPF) >>> Barcelona Biomedical Research Park (PRBB) >>> Dr Aiguader 88 >>> E-08003 Barcelona, Spain >>> telf: +34.933.160.514 >>> fax: +34.933.160.550 >>> >>> _______________________________________________ >>> Bioconductor mailing list >>> Bioconductor at r-project.org >>> https://stat.ethz.ch/mailman/listinfo/bioconductor >>> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor >> >> > > -- > Robert Castelo, PhD > Associate Professor > Dept. of Experimental and Health Sciences > Universitat Pompeu Fabra (UPF) > Barcelona Biomedical Research Park (PRBB) > Dr Aiguader 88 > E-08003 Barcelona, Spain > telf: +34.933.160.514 > fax: +34.933.160.550 > > _______________________________________________ > Bioconductor mailing list > Bioconductor at r-project.org > https://stat.ethz.ch/mailman/listinfo/bioconductor > Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor
ADD REPLY

Login before adding your answer.

Traffic: 686 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6