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
AnnDataobject
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.tsvcontrols 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aeacus-0.4.0.tar.gz.
File metadata
- Download URL: aeacus-0.4.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c5afe111a4c25eb879a190f4252e94df2a5e36be26db5a7de61be4d8654734f4
|
|
| MD5 |
afe7bfb00d1761fa18c74cc9c64ff87b
|
|
| BLAKE2b-256 |
88134b859fcb85c31ccce853031bed99282f524b44885dbb016d503931dd8b21
|
File details
Details for the file aeacus-0.4.0-py3-none-any.whl.
File metadata
- Download URL: aeacus-0.4.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8d4afd90e2af4f0a457c5e01dfcccbdc66a350cf506ea24e4f3d8b1bcb77645
|
|
| MD5 |
71f4160f25eb246731e239bf96b5ec98
|
|
| BLAKE2b-256 |
c3a312168243b34b74a466affe7cfb03696ca6cfd9eec506704c5b743d6cf28b
|