Skip to main content

mixture of experts single cell malignancy classifier

Project description

The aeacus/ folder contains inference code. The model/ folder contains the trained weights and normalization artifacts.

Install

From the repository root:

python -m venv venv
source venv/bin/activate
pip install -e .

Input Format

Input can be:

  • .h5ad
  • .txt / .tsv
  • .csv
  • an AnnData object

For text files, rows should be genes and columns should be cells. For .h5ad, genes should be in adata.var_names and cells in adata.obs_names.

Normalization

To use the same expression scale expected by the model:

  • Already normalized: norm_type="False"
  • Raw UMI counts: norm_type="cpm_log1p"
  • TPM values: norm_type="tpm_log1p"

Do not z-score on new data. The model internally applies the training-set mean and standard deviation

Inference

For raw UMI count data:

from aeacus import Profiler

profiler = Profiler(
    test_input="query.h5ad",
    pretrain_dir="model",
    norm_type="cpm_log1p",
)

result_adata = profiler.load().profile()

For TPM data:

from aeacus import Profiler

result_adata = (
    Profiler(
        test_input="query.h5ad",
        pretrain_dir="model",
        norm_type="tpm_log1p",
    )
    .load()
    .profile()
)

For data already normalized:

from aeacus import Profiler

result_adata = (
    Profiler(
        test_input="query.h5ad",
        pretrain_dir="model",
        norm_type="False",
    )
    .load()
    .profile()
)

Output

Predictions are added to result_adata.obs:

malignancy_call      Normal or Malignant
malignancy_score     malignancy probability-like score
primary_expert       expert with the highest gate weight
primary_expert_label Normal or Malignant label for primary_expert
gate_entropy         uncertainty/spread of gate weights
normal_expert_weight gate weight assigned to the normal expert
malignant_expert_weight gate weight assigned to the malignant expert
expert_weight_0      same value as normal_expert_weight
expert_weight_1      same value as malignant_expert_weight
normal_expert_logit raw logit from the normal expert
malignant_expert_logit raw logit from the malignant expert

View results:

result_adata.obs["malignancy_call"].head()

View all other aeacus output columns:

prediction_cols = [
    "malignancy_call",
    "malignancy_score",
    "primary_expert",
    "primary_expert_label",
    "gate_entropy",
    "normal_expert_weight",
    "malignant_expert_weight",
    "expert_weight_0",
    "expert_weight_1",
    "normal_expert_logit",
    "malignant_expert_logit",
]

result_adata.obs[prediction_cols].head()

Note

  • geneorder.tsv controls the model gene order. Missing genes are filled with zero after alignment.

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.2.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.2.0-py3-none-any.whl (15.9 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aeacus-0.2.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.2.0.tar.gz
Algorithm Hash digest
SHA256 7da4804b1e3795058907b242911d8f383697d8669ac00b6ae56f9c11f9ba6416
MD5 81b09b87aff5f8007014d41e91bbc6a9
BLAKE2b-256 5f602cb172d488295ed9fac1c1268206cbb88dc0b98dc3462ed7c356a60ac191

See more details on using hashes here.

File details

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

File metadata

  • Download URL: aeacus-0.2.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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d4e8bc07adbf5f3b708b880b10a08d7d88fcbcf8c43e587d7d52c1a5bef12775
MD5 2eb1662724f6f4324f30fbc577b8a8ae
BLAKE2b-256 f3cdc6e18cc8933fd572082514e076c77a293bacc6f9ac90dafb516fc80c92fb

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