Semi-paired single-cell multimodal integration with Champollion
Project description
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!
Project details
Release history Release notifications | RSS feed
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 champollion_omics-0.1.0.tar.gz.
File metadata
- Download URL: champollion_omics-0.1.0.tar.gz
- Upload date:
- Size: 34.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.12.12 Darwin/25.2.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e4748985efef96dfd4b67e7c19873cc1ccb93c1ac922fb395178e0aa0f4318c
|
|
| MD5 |
1a8c57af396c9b5ad44939b628a00caa
|
|
| BLAKE2b-256 |
a06a9f1e4794bd343a785c9d88191902d1f1dae59bb3db8383d0bbda0f532e6f
|
File details
Details for the file champollion_omics-0.1.0-py3-none-any.whl.
File metadata
- Download URL: champollion_omics-0.1.0-py3-none-any.whl
- Upload date:
- Size: 36.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.12.12 Darwin/25.2.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
efa1ac88604297f75db2a1ca7e6fdb4fc8adab9ccac7b08655e62a0d070dd3fe
|
|
| MD5 |
26c031fd1eabc48eae2492988ff4e43d
|
|
| BLAKE2b-256 |
d74237c64f3759a3dccb4401d30092fd0aa03d729d28d48661c1273071d040b2
|