Champollion
Champollion learns an interpretable cross-modality cost from paired bridge cells and uses it to integrate unpaired single-cell profiles across modalities. It is designed for scverse workflows with AnnData and MuData, and exposes utilities for annotation transfer, barycentric projection, and interpretation of the learned interaction matrix.
Install
Install the latest stable release from PyPI (recommended):
pip install champollion-omics
Optional Weights & Biases logging can be installed with:
pip install "champollion-omics[wandb]"
To install the latest development version from GitHub instead:
pip install "git+https://github.com/cantinilab/champollion.git"
Champollion is designed to take advantage of a GPU and runs much faster with one, typically taking only a few minutes on datasets with thousands of cells.
Documentation
Documentation is available at champollion-omics.readthedocs.io.
Two tutorials are available there to demonstrate classic use cases of the package: fitting Champollion on bridge cells, transporting unpaired cells, transferring annotations, building a joint visualization, interpreting the learnt A matrix.
Getting Started
For a concrete application, see the tutorials; the example below is only a compact overview of the API. Champollion is fitted on a paired bridge stored in a MuData object. It can then be applied to modality-specific AnnData objects containing unpaired cells.
from champollion import Champollion
model = Champollion(
epsilon=1.0,
gamma=0.001,
lambda_prior=20.0,
use_keops=False,
device="auto",
random_state=0,
)
model.fit(
mdata_bridge,
modality_1="rna",
modality_2="atac",
x_1_rep="X_pca",
x_2_rep="X_lsi",
y_prior_1_rep="X_prior",
y_prior_2_rep="X_prior",
)
result = model.transport(
{"rna": adata_rna, "atac": adata_atac},
x_reps={"rna": "X_pca", "atac": "X_lsi"},
y_prior_reps={"rna": "X_prior", "atac": "X_prior"},
)
predicted_atac_labels = result.transfer_obs(
key="cell_type",
source="rna",
kind="categorical",
)
The learned matrix can be inspected directly:
A = model.A_dataframe()
top_links = model.top_interactions("CD18", modality="protein", k=10)
Citation
The preprint is in preparation. Citation information will be added before the official release. if you're looking for the repository to reproduce the results in the article, please see the champollion_reproducibility repository!
Metadata
Release files for champollion-omics 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| champollion_omics-0.1.0.tar.gz | 34.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| champollion_omics-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 71.3 kB
Release files / champollion_omics-0.1.0.tar.gz
| Download URL | champollion_omics-0.1.0.tar.gz |
|---|---|
| Size | 34.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2e4748985efef96dfd4b67e7c19873cc1ccb93c1ac922fb395178e0aa0f4318c
|
|
BLAKE2b-256 checksum How to use checksums |
a06a9f1e4794bd343a785c9d88191902d1f1dae59bb3db8383d0bbda0f532e6f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.7.1 CPython/3.12.12 Darwin/25.2.0
|
Release files / champollion_omics-0.1.0-py3-none-any.whl
| Download URL | champollion_omics-0.1.0-py3-none-any.whl |
|---|---|
| Size | 36.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
efa1ac88604297f75db2a1ca7e6fdb4fc8adab9ccac7b08655e62a0d070dd3fe
|
|
BLAKE2b-256 checksum How to use checksums |
d74237c64f3759a3dccb4401d30092fd0aa03d729d28d48661c1273071d040b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.7.1 CPython/3.12.12 Darwin/25.2.0
|