-
Notifications
You must be signed in to change notification settings - Fork 29
Description
(Pretty much a regurgitation of const-ae/glmGamPoi#52, but while Constantin is finishing his thesis...)
I see you're still using the old-school beachmat interface, which is fine and will still be around.
But perhaps you'll consider switching to the new tatami interface, which is now on BioC-devel via beachmat v2.17.3.
This does away with the need for integer/numeric templates, it makes it easier to parallelize at the C++ level, and some delayed operations are captured natively (i.e., some DelayedArrays are translated to their C++ equivalents). Other R matrices are still supported, of course, but are handled more slowly by calling back into DelayedArray::extract_array().
It also greatly simplifies compilation. In the coolest and most experimental part of this update, beachmat will generate external pointers to matrix instances that can be passed to bsseq's shared libraries. This means that bsseq doesn't need to actually need to compile support for the various matrix implementations in its own *.so file, which makes it easier to extend tatami's C++ support to, e.g., HDF5, TileDB, Zarr-backed matrices. (WIP in this direction at the beachmat.hdf5 repo.)
I've already switched SingleR to this latest paradigm and it seems to have gotten through on BioC-devel. I'd like a non-Aaron package developer to test out this new approach, and you're next on my hitlist after Constantin.