graph LR
AnnData_Core_Object["AnnData Core Object"]
Aligned_Data_Structures["Aligned Data Structures"]
Sparse_Data_Management["Sparse Data Management"]
Data_Views_and_Slicing["Data Views and Slicing"]
File_Backing_and_Out_of_Core["File Backing and Out-of-Core"]
Raw_Data_Preservation["Raw Data Preservation"]
Xarray_Integration_Layer["Xarray Integration Layer"]
AnnData_Core_Object -- "initiates calls to and constructs objects from" --> Aligned_Data_Structures
AnnData_Core_Object -- "stores and manages sparse data using" --> Sparse_Data_Management
AnnData_Core_Object -- "returns view objects provided by" --> Data_Views_and_Slicing
AnnData_Core_Object -- "manages file-backed data through" --> File_Backing_and_Out_of_Core
AnnData_Core_Object -- "handles raw data through" --> Raw_Data_Preservation
AnnData_Core_Object -- "integrates with" --> Xarray_Integration_Layer
Aligned_Data_Structures -- "are utilized by" --> AnnData_Core_Object
Aligned_Data_Structures -- "can leverage" --> Data_Views_and_Slicing
Sparse_Data_Management -- "is utilized by" --> AnnData_Core_Object
Sparse_Data_Management -- "interacts with" --> File_Backing_and_Out_of_Core
Data_Views_and_Slicing -- "provides view objects to" --> AnnData_Core_Object
Data_Views_and_Slicing -- "is utilized by" --> Aligned_Data_Structures
File_Backing_and_Out_of_Core -- "is managed by" --> AnnData_Core_Object
File_Backing_and_Out_of_Core -- "interacts with" --> Sparse_Data_Management
Raw_Data_Preservation -- "is managed by" --> AnnData_Core_Object
Xarray_Integration_Layer -- "is utilized by" --> AnnData_Core_Object
Xarray_Integration_Layer -- "can be utilized by" --> Aligned_Data_Structures
Analysis of the AnnData Core Model subsystem, which embodies the Data-Centric Architecture pattern and provides a unified, high-level interface for users to interact with complex multi-dimensional annotated datasets.
The central AnnData object (anndata._core.anndata.AnnData) serves as the primary data container and facade. It aggregates and orchestrates access to all other data components (main data matrix, observations, variables, layers, etc.), providing a consistent API for users.
Related Classes/Methods:
This component (anndata._core.aligned_mapping) manages the synchronized storage and access of multi-dimensional annotations such as obs, var, layers, obsm, varm, and uns. It ensures that all these data frames and mappings are consistently indexed and aligned with the main data matrix.
Related Classes/Methods:
Provides efficient handling for sparse matrices (anndata._core.sparse_dataset), which are crucial for memory optimization and performance when dealing with large biological datasets (e.g., single-cell RNA-seq data). It includes classes for backed and in-memory sparse representations.
Related Classes/Methods:
This component (anndata._core.views) enables memory-efficient access to subsets or transformed views of the AnnData object without creating full copies of the data. It provides various view objects for different data types (arrays, dataframes, sparse matrices).
Related Classes/Methods:
Manages the interaction between in-memory AnnData objects and on-disk storage (anndata._core.file_backing), enabling the handling of datasets larger than available RAM (out-of-core computation). It facilitates lazy loading and efficient data retrieval from disk.
Related Classes/Methods:
Manages the raw attribute of an AnnData object (anndata._core.raw), providing a mechanism to store an immutable, unnormalized, or unprocessed version of the main data matrix and its associated annotations.
Related Classes/Methods:
Facilitates interoperability with xarray data structures (anndata._core.xarray), bridging AnnData's internal representation with xarray's labeled multi-dimensional arrays. This allows leveraging xarray's powerful capabilities for array manipulation and computation.
Related Classes/Methods: