Support for RleListMatrix (?)

Abierto
#62 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
r
Área
data

Línea de trabajo

Revisa primero el issue relacionado #27 y el ejemplo de DelayedArray/VariantAnnotation. Investiga si una RleListMatrix proporcionaría una compresión útil para matrices de listas y, después, establece los criterios necesarios de soporte y validación. Para darlo por terminado, se requerirían un alcance de implementación acordado y pruebas de que la representación es beneficiosa.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
R
Estrellas
29
Forks
12
Métricas de merge de PR
Sin PR fusionados en 30 d

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de Bioconductor/DelayedArray

Todos los issues de Bioconductor/DelayedArray

Issues similares

Más issues de R

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.