anndataR 1.3.1
- Add support for reading backed objects using
DelayedArraymatrices, including abackedargument forHDF5AnnDataandInMemoryAnnData, and conversion of backedAnnDataobjects toSingleCellExperiment/Seurat(PR #387). - Add support for writing Zarr v3 stores, using (i)
zarr_formatargument ofwrite_zarr()/as_ZarrAnnData()or (ii) theanndataR.zarr_formatoption. New stores are written as Zarr v3 by default (PR #455). - Write strings as VLen-UTF8 rather than as fixed-width, so that string arrays read back as variable length strings in Python
anndata(PR #455). - Use the format of an existing Zarr store when writing to it and truncate the store when
mode = "w", so that a store can no longer end up with a mix of Zarr v2 and v3 nodes (PR #455). - Enable additional linters and optimise several suboptimal code patterns (PR #453).
- Fix
create_zarr()so that Zarr stores can be created at relative paths and at paths containing regex metacharacters (PR #478). - Fix use of
&instead of&&when validating column names inAbstractAnnData(PR #487). - Update tests to take into account the
Rarrstructured datatype breaking change (PR #462). - Temporarily require Python
anndata < 0.13.0in tests, workflows and the Python usage vignette (PR #481). - Add Zarr to the benchmarks (PR #446).
- Add Bioconductor R-universe checks (PR #470).
- Fix CI runners (PR #457).
- Upgrade to roxygen2 8.0.0.
- Simplify roxygen documentation for the H5AD and Zarr helpers by using
@inheritParams(PR #479). - Update
CITATIONwith the published paper (PR #464). - Mark Zarr support as implemented in the class diagram (PR #460).
anndataR 1.1.1
- Fix CI (PR #418).
- Add continuous benchmarking using bencher (PR #423, PR #425).
- Handle unnamed
SingleCellExperimentassays inas_AnnData()by automatically assigning names with a warning (PR #420). - Optimise sparse matrix reading performance by avoiding
Matrix::sparseMatrixand constructing objects manually (PR #417). - Allow manually setting chunk size for HDF5 writes (PR #424).
- Add auto-chunking for HDF5 writes to improve performance (PR #424).
anndataR 1.1.0
- Bioconductor 3.23 devel
- Separate reading and writing keys in
HDF5AnnData(PR #392). - Add a check for 0 dimensions when converting to
Seurat(PR #393). - Warn that matrix dim names will not be written to H5AD files (PR #396).
- Add a warning to
.from_SCE_convert()(PR #402). - Warn when a rotation is provided but not stored in a
LinearEmbeddingMatrix(PR #407). - Fix linting issues (PR #389).
- Add Bioconductor badges (PR #375).
- Update {pkgdown} rendering (PR #379).
- Force loading the environment in the Python vignette (PR #394).
- Add issue templates (PR #395).
- Update GitHub Actions based on those used by {rhdf5} (PR #378).
- Set different cache versions in GitHub Actions (PR #403).
- Update CI (PR #416).
anndataR 1.0.2
- Fix broken links (PR #430).
anndataR 0.99.4
- Address minor issues from Bioconductor checks (PR #371)
- Combine the
opts_chunks$set()calls in the Python usage vignette - Replace
\donttrunwith\donttestin man pages
- Combine the
anndataR 0.99.3
New functionality
- Implemented an
AnnDataViewclass, which provides a lazy view of anAnnDataobject without copying data (PR #324) - Implemented S3 methods for
AbstractAnnDataobjects:dim,nrow,ncol,dimnames,rownames,colnames, and[(PR #324) - Add
ReticulateAnnDataclass for seamless Python integration via {reticulate} (PR #322) - Add
AGENTS.mdwith instructions for developers (PR #367).
Major changes
- Refactor obs/var_names handling for improved data consistency (PR #328)
-
InMemoryAnnDatanow storesobs_namesandvar_namesas separate private fields instead of relying on rownames ofobs/vardata.frames -
HDF5AnnDatamaintains separate obs/var names management to ensure consistency between obs/var data.frames and dimnames - All matrix data (
X,layers,obsm,varm,obsp,varp) is now stored internally without dimnames for consistency - Dimnames are added on-the-fly when users access data, ensuring proper obs/var name display
-
Minor changes
- Refactor setter methods in
HDF5AnnDataandInMemoryAnnDatato use pipe operators for cleaner code (PR #328) - Add explanatory comments for matrix generation alignment with Python dummy-anndata (PR #328)
- Add
get_generator_types()function return allowed/example types forgenerate_dataset()(PR #354) - Add checks for type arguments to
generate_dataset()(PR #354) - Generalise the layers created by
generate_dataset()whenformat = "Seurat"(PR #354)
Bug fixes
- Add compression parameter to additional write operations in
HDF5AnnDatafor consistency (PR #328) - Directly use
obs_namesandvar_namesproperties instead of corresponding indirect S3 methodsrownamesandcolnames(PR #328) - Fix error message variable name in
.validate_aligned_array()method (expected_colnames → expected_rownames) (PR #328) - Fix Seurat conversion for PCA loadings with variable feature subsets (PR #328)
- Seurat PCA loadings only contain variable features, not all genes
- Now properly expands loadings matrix to include all genes with zeros for non-variable features
- Adds warning when rownames don’t match var_names during conversion
- Avoid writing character datasets to H5AD files with LZF compression as it causes R to crash (PR #356)
- Handle slots that may have incomplete dimensions when converting from
Seurat. These are now skipped with a warning instead of indirectly raising an error. (PR #369)
anndataR 0.99.2
- Add
@returnto R6 object man pages to address {BiocCheck} warning (PR #319)
anndataR 0.99.1
- Resubmit because of failing Bioc checks (PR #318)
anndataR 0.2.0
Breaking changes
- Switch the HDF5 back end to use the {rhdf5} package instead of {hdf5r} (PR #283, Fixes #272, #175, #299)
- This addresses various issues related to H5AD files and allows better integration with Bioconductor. Most of the previous known issues have now been resolved.
- It also greatly improves compatibility with H5AD files written by Python anndata
- NOTE: Make sure to install {rhdf5} instead of {hdf5r} to be able to read and write H5AD files!
Major changes
- Updates for compatibility with Python anndata >= 0.12.0 (PR #305, Fixes #304)
- Add helpers for reading/writing
NULLvalues to/from H5AD files - Writing of
NULLvalues can be disabled by settingoption(anndataR.write_null = FALSE)to allow the files to be read by Python anndata < 0.12.0
- Add helpers for reading/writing
- A
countsordatalayer is no longer required duringSeuratconversion (PR #284)- There will still be a warning if neither of this is present as it may affect compatibility with {Seurat} functions
anndataR 0.1.0 (initial release candidate)
Initial release candidate of {anndataR} including:
- Native reading and writing of H5AD files
- R implementations of
InMemoryAnnDataandHDF5AnnDataobjects - Conversion between
AnnDataandSingleCellExperimentorSeuratobjects - Extensive function documentation and vignettes demonstrating usage
- Comprehensive unit testing and identification of known issues