6 releases

0.3.2 Mar 13, 2024
0.3.1 Feb 28, 2024
0.2.2 Feb 21, 2024
0.2.1 Dec 20, 2023
0.2.0 Dec 8, 2022

#668 in Parser implementations

Download history 33/week @ 2023-12-28 51/week @ 2024-01-04 18/week @ 2024-01-11 1/week @ 2024-01-18 4/week @ 2024-01-25 9/week @ 2024-02-01 3/week @ 2024-02-08 189/week @ 2024-02-15 364/week @ 2024-02-22 135/week @ 2024-02-29 291/week @ 2024-03-07 89/week @ 2024-03-14 11/week @ 2024-03-21 127/week @ 2024-03-28 17/week @ 2024-04-04

157 downloads per month
Used in 2 crates

MIT license

400KB
10K SLoC

anndata-rs: A Rust/Python package for reading data in the h5ad format

Motivation

The goal of this library is to complement the anndata package by providing an out-of-core AnnData implementation.

Unlike the backed mode in the anndata package, anndata-rs's AnnData object is fully backed and always stays in sync with the data stored in the hard drive.

Here are the key features of this implementation:

  • AnnData is fully backed by the underlying hdf5 file. Any operations on the AnnData object will be reflected on the hdf5 file.
  • All elements are lazily loaded. No matter how large is the file, opening it consume almost zero memory. Matrix data can be accessed and processed by chunks, which keeps the memory usage to the minimum.
  • In-memory cache can be turned on to speed up the repetitive access of elements.
  • An AnnDataSet object to lazily concatenate multiple AnnData objects.

Limitations:

  • Only a subset of the h5ad specifications are implemented. For example, the .layer and .raw is not supported. To request a missing feature, please open a new issue.
  • No views. Subsetting the AnnData will modify the data inplace or make a copy.

Installation

We do not provide installation instructions here. Right now this package is bundled with the SnapATAC2 package. Please install SnapATAC2 to get these features.

Tutorials

Click here to read tutorials.

Dependencies

~27–39MB
~606K SLoC