Metadata-Version: 2.4
Name: exprmat
Version: 0.1.40
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Dist: anndata>=0.8.0
Requires-Dist: multiprocess
Requires-Dist: macs3>=3.0,<3.1
Requires-Dist: natsort
Requires-Dist: numpy
Requires-Dist: pandas>=2.0
Requires-Dist: polars>=1.0,<2.0
Requires-Dist: pooch>=1.6.0,<2.0.0
Requires-Dist: igraph>=0.10.3
Requires-Dist: pyarrow
Requires-Dist: pyfaidx>=0.7.0,<0.8.0
Requires-Dist: rustworkx
Requires-Dist: scipy>=1.11,<2.0.0
Requires-Dist: scikit-learn>=1.1,<2.0.0
Requires-Dist: tqdm>=4.62
Requires-Dist: typeguard>=4.0
Requires-Dist: umap-learn>=0.5.0
Requires-Dist: scvi-tools>=1.3.0
Requires-Dist: scanpy
Requires-Dist: mudata
Requires-Dist: matplotlib
Requires-Dist: seaborn
Requires-Dist: torch>=2.0
Requires-Dist: annoy
Requires-Dist: scikit-image
Requires-Dist: scikit-misc
Requires-Dist: bbknn
Requires-Dist: scanorama
Requires-Dist: harmonypy
Requires-Dist: pymde
Requires-Dist: datashader
Requires-Dist: fa2-modified
Requires-Dist: pynndescent
Requires-Dist: gseapy
Requires-Dist: metacells
Requires-Dist: sh
Requires-Dist: networkx
Requires-Dist: palantir
Requires-Dist: adjusttext
Requires-Dist: h5py
Requires-Dist: cytoolz
Requires-Dist: frozendict
Requires-Dist: dask
Requires-Dist: boltons
Requires-Dist: multiprocessing-on-dill
Requires-Dist: pysam
Requires-Dist: hdbscan
Requires-Dist: graphtools
Requires-Dist: bincsync>=0.3.0
Requires-Dist: pybigwig
Requires-Dist: spatialdata
Requires-Dist: loompy
Requires-Dist: zarr
Requires-Dist: scikit-image
Requires-Dist: spatial-image
Requires-Dist: multiscale-spatial-image
Requires-Dist: tangram-sc
Requires-Dist: shapely>=2.0.0
Requires-Dist: pyogrio>=0.7.2
Requires-Dist: pyproj>=3.3.0
Requires-Dist: geopandas
Requires-Dist: packaging
Requires-Dist: lightmotif
Requires-Dist: pymemesuite
Requires-Dist: formulaic>=1.0.2
Requires-Dist: formulaic-contrasts>=0.2.0
Requires-Dist: cython
Requires-Dist: pyfastx
Requires-Dist: genomicranges
Requires-Dist: rustworkx
Requires-Dist: xgboost
Requires-Dist: dask-expr>=2.0
Requires-Dist: sphinx ; extra == 'dev'
Requires-Dist: twine ; extra == 'dev'
Requires-Dist: ipykernel ; extra == 'dev'
Requires-Dist: ipytree ; extra == 'dev'
Requires-Dist: cudf-cu12==25.8.* ; extra == 'cuda12'
Requires-Dist: dask-cudf-cu12==25.8.* ; extra == 'cuda12'
Requires-Dist: cuml-cu12==25.8.* ; extra == 'cuda12'
Requires-Dist: cugraph-cu12==25.8.* ; extra == 'cuda12'
Requires-Dist: nx-cugraph-cu12==25.8.* ; extra == 'cuda12'
Requires-Dist: cuxfilter-cu12==25.8.* ; extra == 'cuda12'
Requires-Dist: cucim-cu12==25.8.* ; extra == 'cuda12'
Requires-Dist: pylibraft-cu12==25.8.* ; extra == 'cuda12'
Requires-Dist: raft-dask-cu12==25.8.* ; extra == 'cuda12'
Requires-Dist: cuvs-cu12==25.8.* ; extra == 'cuda12'
Requires-Dist: nx-cugraph-cu12==25.8.* ; extra == 'cuda12'
Requires-Dist: cupy-cuda12x ; extra == 'cuda12'
Requires-Dist: rapids-singlecell ; extra == 'cuda12'
Provides-Extra: dev
Provides-Extra: cuda12
License-File: license
Summary: exprmat: Routines for expression matrices
Author-email: Zheng Yang <xornent@outlook.com>
Requires-Python: >=3.9, <3.13
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Repository, https://github.com/yang-z-03/exprmat


# Exprmat

![wheels](https://img.shields.io/pypi/wheel/exprmat)
![version](https://img.shields.io/pypi/v/exprmat)

Exprmat (short for **expr**ession **mat**rix) is a routine package for manipulation 
of single cell expression matrices. It is built based on commonly accepted python
infrastructures for single cell data management (Scanpy, SnapAtac2, and MuData) and
provides integration and wrappers of common routines for preprocessing, annotating,
clustering, visualizations, and downstream analyses with a common interface.

You may refer to these places:

* [Source code repository](https://github.com/yang-z-03/exprmat)
* [Releases in PyPI](https://pypi.org/project/exprmat)
* [Documentation](https://exprmat.readthedocs.io/en/latest)

### Database installation

The package `exprmat` do not come with its reference database. You need to setup
the database and configure the package to find it properly, or else most of the
features from the package will fail.

This package ships with a tool to fetch database distribution on Alibaba Cloud
object storage service. You will first need to register an account and request
a key-secret pair to authenticate your identity, before starting out to download
specified version of the database distribution using the tool `bsync-fetch` 
installed alongside the `exprmat` package.

```
usage: bsync-fetch [-h] --id ID --secret SECRET 
                        --bucket BUCKET [--endpoint ENDPOINT] --version VERSION

fetch from remote bucket.

options:
  -h, --help           show this help message and exit
  --id ID              The requester access id.
  --secret SECRET      The requester access secret.
  --bucket BUCKET      The name of the bucket.
  --endpoint ENDPOINT  The domain names that other services can use to access OSS.
  --version VERSION    The version to fetch from remote.
```

Suppose you are installing the database version `0.1.25` to `~/database`.

```bash
# enter the intended path of installation
cd ~/database

# download the version 0.1.25 of database distribution
# you must download the same version of the database with the package. the database
# and package content are published strictly synchronically.
bsync-fetch --id <your-id> --secret <your-api-secret> \
            --bucket exprmat-data --endpoint oss-cn-wuhan-lr.aliyuncs.com \
            --version 0.1.25
```

The authentication tokens passed to `--id` and `--secret` is provided by the
Alibaba Cloud service (See the [Documentation](https://help.aliyun.com/zh/ram/user-guide/create-an-accesskey-pair)
for details)
