- Backend classes (e.g. HDF5Array) should be defined as:
setClass("HDF5Array",
contains="DelayedArray",
representation(seed="HDF5ArraySeed")
)
This would avoid the need for a validity method.
This change was made for RleArray, HDF5Array and TENxMatrix between Dec 2018
and Jan 2019.
Still need to be done for DelayedArray backends implemented in other
packages.
- In 02-Implementing_a_backend.Rmd, add a "Other optional (but highly
recommended) methods" subsection after "The seed contract" subsection.
The optional methods are "chunkdim", "path", "path<-". See HDF5ArraySeed
and TENxMatrixSeed for examples.
- Subsetting:
- A[A == 1] should work on a 1D DelayedArray object (and return a 1D
DelayedArray object).
- If A and B are conformable DelayedArray objects, and type(B) is logical,
it should be possible to compute A[B] by walking simultaneously on A
and B. Right now we first do i <- which(B) and then A[i] so we complete
the walk on B before we walk on A.
- Support subsetting an arbitrary object by a DelayedArray or
DelayedMatrix of type logical?
- Add unit tests for all the DelayedOp types.
- Add man page and unit tests for statistical methods defined in
DelayedArray-stats.R
- Make DelayedArray contain Annotated from S4Vectors?
- Add more examples to the man pages (using the toy dataset).
- Add unit tests for round() and signif() (Math2 group).
- Explore DelayedAtomicVector. Could be used in situations where
1D DelayedArray objects are currently used (e.g. VariantExperiment
package). Then reconsider what subsetting does when 'drop' is TRUE.
Should it return the result as an ordinary vector instead of a 1D
DelayedArray object? We're not doing this right now because it would
be inconvenient for people using 1D DelayedArray objects (it triggers
realization when the user probably doesn't want it). But if people
switch to DelayedAtomicVector objects then maybe it's ok to make this
change.
- Support more matrix- and array-like operations.
- How well supported are DelayedArray of type "character"?
- Add more unit tests.