Browse code

Small tweak to "updateObject" method for BSseq objects

The method now calls the "updateObject" method for RangedSummarizedExperiment
objects (via callNextMethod()) early rather than late. The earlier the better
because very few things actually work in general on an outdated BSseq object
before that call is made. In particular the endoapply() loop that now follows
the call to callNextMethod() was failing if the BSseq object had "old"
DelayedArray objects in its assays.

Hervé Pagès authored on 27/04/2018 05:47:48
Showing 2 changed files

... ...
@@ -1,5 +1,5 @@
1 1
 Package: bsseq
2
-Version: 1.15.4
2
+Version: 1.15.5
3 3
 Encoding: UTF-8
4 4
 Title: Analyze, manage and store bisulfite sequencing data
5 5
 Description: A collection of tools for analyzing and visualizing bisulfite
... ...
@@ -12,7 +12,7 @@ Depends:
12 12
     methods,
13 13
     BiocGenerics,
14 14
     GenomicRanges (>= 1.29.14),
15
-    SummarizedExperiment (>= 1.7.8),
15
+    SummarizedExperiment (>= 1.9.18),
16 16
     parallel
17 17
 Imports:
18 18
     IRanges (>= 2.11.16),
... ...
@@ -29,7 +29,7 @@ Imports:
29 29
     DelayedMatrixStats (>= 1.1.12),
30 30
     permute,
31 31
     limma,
32
-    DelayedArray (>= 0.5.27),
32
+    DelayedArray (>= 0.5.34),
33 33
     HDF5Array
34 34
 Suggests:
35 35
     RUnit,
... ...
@@ -265,6 +265,8 @@ setMethod("updateObject", "BSseq",
265 265
                   object@trans <- plogis
266 266
               }
267 267
               if (.hasSlot(object, "assays")) {
268
+                  # call method for RangedSummarizedExperiment objects
269
+                  object <- callNextMethod()
268 270
                   assays(object) <- endoapply(
269 271
                       assays(object, withDimnames = FALSE), function(assay) {
270 272
                           if (is.null(assay)) {
... ...
@@ -273,8 +275,7 @@ setMethod("updateObject", "BSseq",
273 275
                               .DelayedMatrix(assay)
274 276
                           }
275 277
                       })
276
-                  # call method for RangedSummarizedExperiment objects
277
-                  callNextMethod()
278
+                  object
278 279
               } else {
279 280
                   BSseq(gr = object@gr, M = object@M, Cov = object@Cov,
280 281
                         coef = object@coef, se.coef = object@se.coef,