MultiNeuronChat is a Python library for inferring condition‑related changes in synaptic cell‑cell communication from scRNA-/snRNA-Seq datasets in case vs control study designs.
Project description
MultiNeuronChat
MultiNeuronChat is a Python library for inferring condition‑related changes in synaptic cell‑cell communication from single‑cell / single‑nucleus RNA‑seq (sc/snRNA‑seq) datasets in case vs control study designs.
It builds on the mathematical model of Zhao et al. 2023 method NeuronChat and extends it to multi‑condition comparisons with subject‑level statistics.
Installation
From PyPI:
pip install multineuronchat
Python ≥ 3.9 is recommended.
Quick start (minimal end-to-end)
MultiNeuronChat expects a cell-wise log-normalized gene expression matrix in Loom format. You can either normalize your matrix manually or use the provided implementation:
from multineuronchat.normalize import cell_wise_log_normalization
cell_wise_log_normalization(
# Path to the input Loom file
path_to_loom="path/to/data.loom",
# Path to the cell-wise log-normalized output Loom file
path_to_normalized_loom='path/to/cellwise_normalized_data.loom',
# Whether to print computational progress
verbose=True
)
This log-normalized loom file can then be used to run MultiNeuronChat:
from multineuronchat.MultiNeuronChatObject import MultiNeuronChatObject
# 1) Configure your analysis
mnc = MultiNeuronChatObject(
condition_label_column="condition", # column attribute in Loom
condition_names=("control", "case"), # order matters
subject_label_column="subject", # column attribute in Loom
cell_type_label_column="cell_types", # column attribute in Loom
db="human_extended" # "human", "mouse", "human_extended", or path to custom DB
)
# 2) Compute communication scores
mnc.compute_communication_scores(
# Path to the cell-wise log-normalized Loom file
path_to_data_loom="path/to/cellwise_normalized_data.loom",
# The row name of the gene attribute in the Loom file
gene_label_row='gene',
# The number of processes to use for the parallel computations of communication scores
n_processes=4,
# The minimum number of cells of a specific cell type within a specific subject to include in the analysis
min_n_cells_threshold=20,
# Whether to print computational progress
verbose=True
)
# 3) (Optional) Focus hypotheses with masks (Wasserstein / EMD)
from multineuronchat.masks import compute_wasserstein_mask
mask = compute_wasserstein_mask(mnc, top_percentile=99.0)
# 4) Significance testing and multiple testing correction
pvals = mnc.compute_significance(
# The statistical test to use when comparing the communication score distributions between conditions
statistical_test='KS',
# Optional mask to focus the significance testing on specific interactions. If None, all interactions are tested.
mask=mask,
# The number of resamples to use for permutation testing when appropriate
n_resamples=10_000,
# The random state for reproducibility
random_state=42
)
# 5) Control FDR (Benjamini–Yekutieli by default; use "bh" for Benjamini–Hochberg)
pvals_adj = mnc.correct_p_values(statistical_test="KS", method="by")
Input data requirements
For MultiNeuronChat to function, your input Loom file must meet the following criteria:
- Row attributes:
- genes that were measured (
gene)
- genes that were measured (
- Column attributes:
- labels assigning a subject to each cell (
subjectin the example above but can be configured) - condition labels (
conditionin the example above but can be configured) - cell type labels (
cell_typesin the example above but can be configured)
- labels assigning a subject to each cell (
Gene symbols should match the selected interaction database (human, mouse, or your custom DB).
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 multineuronchat-2025.11.10.dev0.tar.gz.
File metadata
- Download URL: multineuronchat-2025.11.10.dev0.tar.gz
- Upload date:
- Size: 44.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b658f2363912557ee045e67eb941d50fafdc263d57d58a592ec9bf0629f4c21
|
|
| MD5 |
f0c452c61cce4a64fe5e7e95cbbb0eba
|
|
| BLAKE2b-256 |
b004038b358bca599f16c369af3f23f786574b30a3ed6655012819f6a8e8db62
|
File details
Details for the file multineuronchat-2025.11.10.dev0-py3-none-any.whl.
File metadata
- Download URL: multineuronchat-2025.11.10.dev0-py3-none-any.whl
- Upload date:
- Size: 47.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0851d7b7718c388e898639c7e553f36ef6833eef8493b3f7ce3f8b1ebada62ee
|
|
| MD5 |
d04d5235e5b2c4e638f972c9381f8f78
|
|
| BLAKE2b-256 |
c721543a2451e6389b24cb48299010077a75034ab2c5b47b47ca3e9c832f5b76
|