Twocan Documentation
A Bayesian optimization framework for multimodal registration of highly multiplexed single-cell spatial proteomics data
Twocan is a Python package that uses Bayesian optimization (via Optuna) to automatically find optimal parameters for registering images from different spatial proteomics technologies like IF (Immunofluorescence), IMC (Imaging Mass Cytometry), FISH, and IMS.
Getting Started
Tutorials
API Reference
Key Features
Automated parameter optimization using Bayesian optimization
Multiple imaging modalities support (IF, IMC, FISH, IMS)
Scikit-learn compatible API for easy integration
Flexible preprocessing with modality-specific processors
Quality metrics for registration assessment
Extensible design for custom objectives and preprocessors
Quick Example
import optuna
from twocan import IFProcessor, IMCProcessor, iou_corr_single_objective
from spatialdata import read_zarr
# Load your spatial data
images = read_zarr('path/to/your/data.zarr')
# Setup optimization
study = optuna.create_study(direction='maximize')
# Register images
study.optimize(
lambda trial: iou_corr_single_objective(
trial, images,
registration_channels=['DAPI', 'DNA1', 'DNA2'],
moving_image='IMC',
static_image='IF'
),
n_trials=50
)