Skip to main content

mixture of experts single cell malignancy classifier

Project description

pip install aeacus

from source:

git clone https://github.com/pandey-ps/aeacus.git
cd aeacus
pip install -e .

Usage

from aeacus import Profiler

result = Profiler(test_input="query.h5ad").load().profile()
result.obs["malignancy_call"].value_counts()

Input

Format Notes
.h5ad genes in var_names, cells in obs_names
.txt / .tsv rows = genes, columns = cells
.csv rows = genes, columns = cells
AnnData object passed directly

Parameters

Parameter Default Description
test_input required path to data or AnnData object
pretrain_dir auto path to folder with moe.pt, geneorder.tsv, train_mean.npy, train_std.npy, config.json.
norm_type False normalization to apply before inference (see below)
use_raw False if True, reads from adata.raw.X instead of adata.X
batch_size 8192 cells per batch, lower if out of memory
device auto "cuda" or "cpu"

norm_type

model was trained on CPM + log1p normalized data, choose norm_type based on your input:

Input norm_type
raw UMI counts (10x, etc.) "cpm_log1p" (or True)
CPM + log1p normalized False (default) or "already_normalized"
TPM data (smart-seq, etc.) "tpm_log1p"

Examples:

# raw counts - normalize 
Profiler(test_input="raw_counts.h5ad", norm_type="cpm_log1p")

# normalized - skip
Profiler(test_input="normalized.h5ad", norm_type=False)

# TPM - log1p
Profiler(test_input="tpm_data.h5ad", norm_type="tpm_log1p")

use_raw

use_raw chooses which data slot to read from:

Input use_raw norm_type
raw counts in .X, no .raw False "cpm_log1p"
raw counts in .raw, normalized in .X True "cpm_log1p"
normalized in .X False False

Example - AnnData with raw counts stored in .raw:

Profiler(
    test_input="adata.h5ad",
    use_raw=True,          # read from adata.raw.X
    norm_type="cpm_log1p", # then normalize
)

Inference

result = Profiler(test_input="data.h5ad", norm_type="cpm_log1p").load().profile()

Output

all predictions are added to result.obs:

Column Description
malignancy_call "Malignant" or "Normal"
malignancy_score probability per cell
normal_expert_weight weight assigned to the normal expert
malignant_expert_weight weight assigned to the malignant expert
result.obs[["malignancy_call", "malignancy_score"]].head()

Note

  • missing genes are filled with zeros after aligning to geneorder.tsv; warning showed if >20% of model genes are missing.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aeacus-0.6.0.tar.gz (16.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aeacus-0.6.0-py3-none-any.whl (15.9 MB view details)

Uploaded Python 3

File details

Details for the file aeacus-0.6.0.tar.gz.

File metadata

  • Download URL: aeacus-0.6.0.tar.gz
  • Upload date:
  • Size: 16.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for aeacus-0.6.0.tar.gz
Algorithm Hash digest
SHA256 2308db023b3709e1859c86ccf065979c1050974bc09d305af23c913136ffa1a8
MD5 882305aaa8f53185845c012d09d8ac47
BLAKE2b-256 a513447a99293dbcce4cb37feeed5313d35a73efce75d52870021e8e08783f0c

See more details on using hashes here.

File details

Details for the file aeacus-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: aeacus-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 15.9 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for aeacus-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6dda498db84160f5eaea299e2ac49339664f0acbcb7441a5618d121ad8f65ce7
MD5 19ef82d33c4a9c94b61b09acc8bad5ce
BLAKE2b-256 62823f4bb000c4e3202efc3862d3d2753fd8005050e4c73857287025e713cb65

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page