Support for RleListMatrix (?)
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
Research direction
Review related issue #27 and the DelayedArray/VariantAnnotation example first. Investigate whether an RleListMatrix would provide useful compression for matrices of lists, then establish the required support and validation criteria. Done would require an agreed implementation scope and evidence that the representation is beneficial.
Written by the indexing model from the issue text.
Description
Related to #27, though I note that the following now works
library(DelayedArray)
DelayedArray(
matrix(
IntegerList(
c(list(c(1L, 1L)), list(c(1L,1L)), list(c(1L,1L)), list(c(2L,2L)))
),
nrow = 2, ncol = 2)
)
#> <2 x 2> matrix of class DelayedMatrix and type "list":
#> [,1] [,2]
#> [1,] 1, 1 1, 1
#> [2,] 1, 1 2, 2
Created on 2020-02-28 by the reprex package (v0.3.0)
Is there a motivation to support RleListMatrix? For the same use case as above, I'm using VariantAnnotation to build a CompressedVcf object and it has matrices of lists. The list elements are in many cases NA so it may be efficient to be able to store these as an Rle-derived object. I can't go as far as to verify that such a structure would benefit from Rle - would the elements be sufficiently contiguous?
My workaround at the moment is to collapse the list elements into single delimited strings, in which case DelayedArray or RleMatrix work out of the box. In this case the string concatenation results in the matrix object decreasing in size by a factor of ~8 (potentially due to global string pooling). Converting to RleMatrix reduces it again by an additional factor of ~16. Total compression from matrix of lists to character RleMatrix is 128x. If RleListMatrix was able provide a comparable benefit without converting to string then that could be very useful.
I'll link another issue to this one specific to VariantAnnotation, but I thought I'd check if this was a) possible; b) useful; and c) of interest.
Ping @lawremi who first proposed investigating support for this structure.
- Dominant language
- R
- Stars
- 29
- Forks
- 12
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Bioconductor/DelayedArray
-
Difficulty 4/5 3-5 days Newbie friendliness 38/100
Bioconductor/DelayedArray#129 · 11 comments ·
-
Difficulty 4/5 3-5 days Newbie friendliness 45/100
Bioconductor/DelayedArray#127 · 1 comment ·
-
Difficulty 4/5 3-5 days Newbie friendliness 25/100
Bioconductor/DelayedArray#125 · 1 comment ·
-
Difficulty 3/5 1-2 days Newbie friendliness 45/100
Bioconductor/DelayedArray#123 ·
-
Difficulty 5/5 Over a week Newbie friendliness 20/100
Bioconductor/DelayedArray#122 ·
All issues in Bioconductor/DelayedArray
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
easystats/performance#950 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
briandconnelly/airnow#9 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
OHDSI/CohortConstructor#774 ·
-
pre-review R TeX Track: 5 (DSAIS)
Difficulty 1/5 Under an hour Newbie friendliness 60/100
openjournals/joss-reviews#11330 · 7 comments ·