pairOT: Identifying similar cell types and states across single-cell transcriptomic studies#
Align cell annotations across two datasets through annotation-informed optimal transport.
Getting started#
Please refer to the documentation, in particular, the API documentation.
Installation#
For detailed installation instructions, please refer to the installation guide.
Tutorial#
Please take a look at the following tutorials for detailed examples on how to use pairOT:
Detailed explanation#
For a detailed tutorial, please see the in depth tutorial.
Speed up pairOT computations#
For details on how to speed up pairOT model fits and reduce compute requirements, see the reduce compute requirements tutorial
Basics of using pairOT#
import scanpy as sc
import pairot as pr
# 1. Preprocess input data
adata_query, adata_ref = pr.pp.preprocess_adatas(
sc.read_h5ad("path/to/query.h5ad"),
sc.read_h5ad("path/to/reference.h5ad"),
n_top_genes=750,
cell_type_column_adata1="cell_type_column_query",
cell_type_column_adata2="cell_type_column_ref",
sample_column_adata1="sequencing_sample_column_query",
sample_column_adata2="sequencing_sample_column_ref",
)
# 2. Initialize pairOT model
dataset_map = pr.tl.DatasetMap(adata_query, adata_ref)
dataset_map.init_geom(batch_size=512, epsilon=0.05)
dataset_map.init_problem(tau_a=1.0, tau_b=1.0)
# 3. Fit pairOT model
dataset_map.solve()
mapping = dataset_map.compute_mapping()
distance = dataset_map.compute_distance()
# 4. Visualize results
pr.pl.mapping(mapping) # similarity matrix
distance = distance.loc[
mapping.max(axis=1).sort_values(ascending=False).index.tolist(),
mapping.max().sort_values(ascending=False).index.tolist(),
] # order cluster distance matrix the same way as similarity matrix
pr.pl.distance(distance) # cluster distance matrix
Release notes#
See the changelog.
Contact#
If you found a bug, please use the issue tracker.
Citation#
t.b.a
References#
pairOT was written by Felix Fischer <felix.fischer@helmholtz-munich.de>
Support for software development, testing, modeling, and benchmarking provided by the Cell Annotation Platform team (Roman Mukhin)