Skip to main content

LIANA+: an all-in-one cell-cell communication framework

main GitHub issues Documentation Status codecov Downloads

LIANA+ is a scalable framework that adapts and extends existing methods and knowledge to study cell-cell communication in single-cell, spatially-resolved, and multi-modal omics data. It is part of the scverse ecosystem, and relies on AnnData & MuData objects as input.

Contributions

We welcome suggestions, ideas, and contributions! Please do not hesitate to contact us, open issues, and check the contributions guide.

Vignettes

A set of extensive vignettes can be found in the LIANA+ documentation.

Decision Tree

Use the tree below to find a starting point for your analysis. Broad, data-driven choices sit at the top and trickle down to specific methods (click a node to open its tutorial).

flowchart TD
    Start{What is your data?}

    %% ===== Spatially-resolved =====
    Start -->|Spatially-resolved| Res{Resolution?}
    Res -->|Single-cell| ScType{Analysis type?}
    ScType -->|Interaction scoring| Inflow[Inflow Score]
    ScType -->|Interaction scoring| ScConstr[Standard LR methods<br/>spatially-constrained]
    ScType -->|Spatial co-occurrence| LRIC[LRIC]
    ScType -->|Unsupervised| InflowMofa[Communication Programs<br/>Inflow + MOFA-Flex]
    Res -->|Spot-based| SpType{Analysis type?}
    SpType -->|Bivariate| LocalQ{Local<br/>interactions?}
    LocalQ -->|Yes| Local[Local Bivariate Metrics]
    LocalQ -->|No| Global[Global Bivariate Metrics]
    SpType -->|Unsupervised| MISTy[Multi-view Learning<br/>MISTy]

    %% ===== Dissociated single-cell =====
    Start -->|Dissociated single-cell| Compare{Compare across<br/>samples?}
    Compare -->|No| Steady[Steady-state LR Inference]
    Compare -->|Yes| Contrast{Specific<br/>contrast?}
    Contrast -->|Yes| Targeted[Targeted Differential]
    Contrast -->|Yes| CrossTalk[pyCrossTalkeR<br/>network differential]
    Contrast -->|No| MOFA[MOFA+]
    Contrast -->|No| Tensor[Tensor-cell2cell]
    Tensor --> TensorExt[Extended Tutorials<br/>ccc-protocols]
    Tensor --> TensorMet[CCC Patterns: protein + metabolite<br/>Tensor-cell2cell CTCA]

    %% ===== Multi-modal =====
    Start -->|Multi-modal| ModalSp{Spatial?}
    ModalSp -->|Yes| SMA[Multi-Modal Spatial]
    ModalSp -->|No| SCMulti[Multi-Modal Single-Cell]
    SCMulti --> Metab[Metabolite-mediated CCC]

    %% ===== Styling =====
    classDef decision fill:#f5f5f5,stroke:#37474f,stroke-width:1px,color:#263238;
    classDef spatial fill:#e3f2fd,stroke:#1565c0,color:#0d47a1;
    classDef dissoc fill:#e8f5e9,stroke:#2e7d32,color:#1b5e20;
    classDef multimodal fill:#f3e5f5,stroke:#6a1b9a,color:#4a148c;
    classDef external fill:#ffffff,stroke:#9e9e9e,stroke-dasharray:5 3,color:#424242;

    class Start,Res,ScType,SpType,LocalQ,Compare,Contrast,ModalSp decision;
    class Inflow,LRIC,ScConstr,InflowMofa,Local,Global,MISTy spatial;
    class Steady,Targeted,CrossTalk,MOFA,Tensor dissoc;
    class SMA,SCMulti,Metab multimodal;
    class TensorExt,TensorMet external;

    %% ===== Links (click events) =====
    click Inflow "https://liana-py.readthedocs.io/en/latest/notebooks/inflow_score.html"
    click LRIC "https://liana-py.readthedocs.io/en/latest/notebooks/LRIC_tutorial.html"
    click InflowMofa "https://liana-py.readthedocs.io/en/latest/notebooks/inflow_mofaflex.html"
    click ScConstr "https://liana-py.readthedocs.io/en/latest/notebooks/inflow_score.html"
    click Local "https://liana-py.readthedocs.io/en/latest/notebooks/bivariate.html"
    click Global "https://liana-py.readthedocs.io/en/latest/notebooks/bivariate.html"
    click MISTy "https://liana-py.readthedocs.io/en/latest/notebooks/misty.html"
    click Steady "https://liana-py.readthedocs.io/en/latest/notebooks/basic_usage.html"
    click Targeted "https://liana-py.readthedocs.io/en/latest/notebooks/targeted.html"
    click CrossTalk "https://liana-py.readthedocs.io/en/latest/notebooks/liana_pyCrossTalkeR.html"
    click MOFA "https://liana-py.readthedocs.io/en/latest/notebooks/mofatalk.html"
    click Tensor "https://liana-py.readthedocs.io/en/latest/notebooks/liana_c2c.html"
    click TensorExt "https://ccc-protocols.readthedocs.io/en/latest/"
    click TensorMet "https://earmingol.github.io/cell2cell/tutorials/Version2/Tensor-cell2cell-CTCA-LIANA/"
    click SMA "https://liana-py.readthedocs.io/en/latest/notebooks/sma.html"
    click SCMulti "https://liana-py.readthedocs.io/en/latest/notebooks/sc_multi.html"
    click Metab "https://liana-py.readthedocs.io/en/latest/notebooks/sc_multi.html#metabolite-mediated-ccc-from-transcriptomics-data"

This tree is a guide rather than an exhaustive map: the methods are modular and can be adapted or combined across data types and questions, and all of them typically build on curated prior knowledge (see the prior knowledge tutorial for working with ligand–receptor and other resources).

API

For further information please check LIANA's API documentation.

Cite LIANA+:

@article {Dimitrov2024,
    author = {Dimitrov, Daniel and Sch{\"a}fer, Philipp Sven Lars and  Farr, Elias and Rodriguez-Mier, Pablo and Lobentanzer, Sebastian and Badia-i-Mompel, Pau and Dugourd, Aurelien and Tanevski, Jovan and Ramirez Flores, Ricardo Omar and Saez-Rodriguez, Julio},
    title = {LIANA+ provides an all-in-one framework for cell--cell communication inference},
    journal = {Nature Cell Biology},
    year = {2024},
    volume = {26},
    number = {9},
    pages = {1613--1622},
    DOI = {10.1038/s41556-024-01469-w},
    URL = {https://doi.org/10.1038/s41556-024-01469-w}
}
@article {Dimitrov2022,
    author = {Dimitrov, Daniel and T{\"u}rei, D{\'e}nes and Garrido-Rodriguez, Martin and Burmedi, Paul L. and Nagai, James S. and Boys, Charlotte and Ramirez Flores, Ricardo O. and Kim, Hyojin and Szalai, Bence and Costa, Ivan G. and Valdeolivas, Alberto and Dugourd, Aur{\'e}lien and Saez-Rodriguez, Julio},
    title = {Comparison of methods and resources for cell-cell communication inference from single-cell RNA-Seq data},
    journal = {Nature Communications},
    year = {2022},
    volume = {13},
    number = {1},
    pages = {3224},
    DOI = {10.1038/s41467-022-30755-0},
    URL = {https://doi.org/10.1038/s41467-022-30755-0}
}

Please also consider citing any of the methods and/or resources that were particularly relevant for your research!

Download files

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

Source Distribution

liana-1.8.1.tar.gz (42.1 MB view details)

Uploaded Source

Built Distribution

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

liana-1.8.1-py3-none-any.whl (579.5 kB view details)

Uploaded Python 3

File details

Details for the file liana-1.8.1.tar.gz.

File metadata

  • Download URL: liana-1.8.1.tar.gz
  • Upload date:
  • Size: 42.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for liana-1.8.1.tar.gz
Algorithm Hash digest
SHA256 1f9123f5618597da42caa36612eba35c9d09d804dc5e8e0b104ecae5b4f3ad9b
MD5 db93a3e4553ccd12ee9a43bc7a98ad0a
BLAKE2b-256 466de320f6d0268b72c863d842c279a89d137aa6327c6692583b6f28330ff2f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for liana-1.8.1.tar.gz:

Publisher: release.yaml on saezlab/liana-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file liana-1.8.1-py3-none-any.whl.

File metadata

  • Download URL: liana-1.8.1-py3-none-any.whl
  • Upload date:
  • Size: 579.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for liana-1.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5cc6eee300b47633120d2a0a87ed51beb8cbac3fc2724c95f6cf3914fb003d00
MD5 5ad5aff8165f4412c191a3ef26800156
BLAKE2b-256 2e4705901a4c956ca5c2a2d1e15e099c9d0190ea29516b076f55f268fd8dfbd0

See more details on using hashes here.

Provenance

The following attestation bundles were made for liana-1.8.1-py3-none-any.whl:

Publisher: release.yaml on saezlab/liana-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

1.9.0

2 files

This release

1.8.1 This release

2 files

1.8.0

2 files

1.7.3

2 files

1.7.1

2 files

1.7.0

2 files

1.6.1

2 files

1.6.0

2 files

1.5.1

2 files

1.5.0

2 files

1.4.0

2 files

1.3.0

2 files

1.2.1

1 file

1.2.0

2 files

1.1.0

2 files

1.0.5

2 files

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page