Skip to main content

Semi-paired single-cell multimodal integration with Champollion

Project description

Champollion

Tests Lint Docs Build codecov

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.

Champollion model overview

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


Download files

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

Source Distribution

champollion_omics-0.1.0.tar.gz (34.8 kB view details)

Uploaded Source

Built Distribution

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

champollion_omics-0.1.0-py3-none-any.whl (36.5 kB view details)

Uploaded Python 3

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

Hashes for champollion_omics-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2e4748985efef96dfd4b67e7c19873cc1ccb93c1ac922fb395178e0aa0f4318c
MD5 1a8c57af396c9b5ad44939b628a00caa
BLAKE2b-256 a06a9f1e4794bd343a785c9d88191902d1f1dae59bb3db8383d0bbda0f532e6f

See more details on using hashes here.

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

Hashes for champollion_omics-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 efa1ac88604297f75db2a1ca7e6fdb4fc8adab9ccac7b08655e62a0d070dd3fe
MD5 26c031fd1eabc48eae2492988ff4e43d
BLAKE2b-256 d74237c64f3759a3dccb4401d30092fd0aa03d729d28d48661c1273071d040b2

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