Skip to content

Releases: scverse/anndataR

Version 1.1.1 (Bioconductor 3.23 - Development)

25 Feb 18:06
f4b1f33

Choose a tag to compare

  • Fix CI (PR #418).
  • Add continuous benchmarking using bencher (PR #423, PR #425).
  • Handle unnamed SingleCellExperiment assays in as_AnnData() by automatically assigning names with a warning (PR #420).
  • Optimise sparse matrix reading performance by avoiding Matrix::sparseMatrix and 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).

Version 1.0.1 (Bioconductor 3.22)

25 Feb 05:15
1d2a797

Choose a tag to compare

Patch update to fix a few issues.

  • Update author email address (PR #410).
  • Fix linting issues (PR #412).
  • Fix roundtrip test; ensure that X is always 2-dimensional (PR #413).
  • Fix HDF5 write test; make sure to only pass CsparseMatrix to Seurat (PR #413).

Version 1.1.0 (Bioconductor 3.23 - Development)

25 Feb 05:36
fde00e3

Choose a tag to compare

First release for Bioconductor 3.23 (devel)

Version 1.0.0 (Bioconductor 3.22)

31 Oct 08:10
d9c38ce

Choose a tag to compare

{anndataR} brings the AnnData object to R. It enables native reading and writing of H5AD files and conversion to/from SingleCellExperiment and Seurat objects.

Features

  • An {R6} class to work with AnnData objects in R (either in-memory or on-disk)
  • Natively read/write H5AD files without needing a Python environment
  • Convert to/from SingleCellExperiment objects
  • Convert to/from Seurat objects

Changes from v0.99.0

New features

  • Implemented an AnnDataView class, which provides a lazy view of an AnnData object without copying data (PR #324)
  • Implemented S3 methods for AbstractAnnData objects: dim, nrow, ncol, dimnames, rownames, colnames, and [ (PR #324)
  • Add a ReticulateAnnData class for seamless Python integration via {reticulate} (PR #322, PR #372)
  • Add a get_generator_types() function that returns allowed/example types for generate_dataset() (PR #354)

Major changes

  • Refactor obs_names/var_names handling for improved data consistency (PR #328)
    • InMemoryAnnData now stores obs_names and var_names as separate private fields instead of relying on rownames of obs/var `data frames
    • HDF5AnnData maintains separate obs/var names management to ensure consistency between obs/var data frames and dim names
    • All matrix data (X, layers, obsm, varm, obsp, varp) is now stored internally without dim names for consistency
    • Dim names are added on-the-fly when users access data, ensuring proper obs/var` name display

Minor changes

  • 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)
  • Add a compression parameter to additional write operations in HDF5AnnData for consistency (PR #328)
  • Refactor setter methods in HDF5AnnData and InMemoryAnnData to use pipe operators for cleaner code (PR #328)
  • Generalise the layers created by generate_dataset() when format = "Seurat" (PR #354)
  • Add checks for type arguments to generate_dataset() (PR #354)

Bug fixes

  • Avoid writing character datasets to H5AD files with LZF compression as it causes R to crash (PR #356)
  • Fix Seurat conversion for PCA loadings with variable feature subsets (PR #328)
    • Seurat PCA loadings only contain variable features, not all genes
    • {anndataR} now properly expands loadings matrix to include all genes with zeros for non-variable features
    • Adds a warning when rownames don't match var_names during conversion
  • Directly use obs_names and var_names properties instead of corresponding indirect S3 methods rownames and colnames inside the package (PR #328)
  • Fix the error message variable name in .validate_aligned_array() method (expected_colnamesexpected_rownames) (PR #328)

Documentation

  • Add a citation file, citation("anndataR") now returns details of the {anndataR} preprint (PR #351)
  • Update vignettes to clarify and expand text and improve formatting, including adding mapping figures to conversion vignettes (PR #360, PR #372)
  • Minor updates to function documentation (PR #319)
  • Add explanatory comments for matrix generation alignment with Python dummy-anndata (PR #328)
  • Replace \donttrun with \donttest in man pages (PR #371)

Development

  • Add an AGENTS.md with instructions for AI agents used during development (PR #367)

Full Changelog: v0.99.0...v1.0.0

Version 0.99.0

08 Aug 07:16
5972f20

Choose a tag to compare

  • Bump required R version to 4.5 in preparation for Bioconductor submission (PR #309)
  • Remove deprecated functions and arguments (PR #311, PR #313)
  • Minor cleanups and improvements (PR #312, PR #313).
  • Add more tests to increase coverage (PR #315)
  • Clean up test output (PR #316)
  • Minor updates to documentation (PR #310)

Full Changelog: v0.2.0...v0.99.0

Version 0.2.0

01 Aug 09:35
084a187

Choose a tag to compare

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 NULL values to/from H5AD files
    • Writing of NULL values can be disabled by setting option(anndataR.write_null = FALSE) to allow the files to be read by Python anndata < 0.12.0
  • A counts or data layer is no longer required during Seurat conversion (PR #284)
    • There will still be a warning if neither of this is present as it may affect compatibility with {Seurat} functions

Minor changes

  • Use accessor functions/methods instead of direct slot access where possible (PR #291)
  • Refactor superfluous for loops (PR #298)
  • Change uses of sapply() to vapply() (PR #294)
  • Ignore development_status.Rmd vignette when building package (PR #296)
  • Remove anndataR.Rproj file from repository (PR #292)

Bug fixes

  • Fix a bug where string arrays were not transposed correctly when writing to H5AD files (PR #305)
  • Fix a bug where the dimensions of dense arrays were not properly conserved when reading from H5AD (PR #305)

Documentation

  • Simplify and update vignettes (PR #282)
  • Add Bioconductor installation instructions in preparation for submission (PR #297)

Testing

  • Improvements to round trip testing (PR #283, PR #293, PR #305)
    • Most round trip tests are now enabled and pass successfully
    • Conversion helpers have been added to assist with {reticulate} tests

Full Changelog: v0.1.0...v0.2.0

Version 0.1.0

18 Jun 10:45
a10a4c3

Choose a tag to compare

Initial release candidate of {anndataR} including:

  • Native reading and writing of H5AD files
  • R implementations of InMemoryAnnData and HDF5AnnData objects
  • Conversion between AnnData and SingleCellExperiment or Seurat objects
  • Extensive function documentation and vignettes demonstrating usage
  • Comprehensive unit testing and identification of known issues

Contributors

Full Changelog: https://github.com/scverse/anndataR/commits/v0.1.0