Source code for stereoAlign.alignment.spatialign_alignment

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 8/24/23 9:51 AM
# @Author  : zhangchao
# @File    : _spatialign_alignment.py
# @Email   : zhangchao5@genomics.cn
from anndata import AnnData


[docs]def spatialign_alignment(adata: AnnData, batch_key="batch", latent_dims=100, n_neigh=15, is_verbose=False, tau1=0.2, tau2=1., tau3=0.5, save_path="./spatialign_output"): """spatiAlign wrapper function Based on `sptiAlign package <https://github.com/zhangchao162/Spatialign.git>`_ :param adata: preprocessed ``anndata`` object :param batch_key: batch key in ``adata.obs`` :param latent_dims: The number of embedding dimensions, default, 100. :param n_neigh: The number of neighbors selected when constructing a spatial neighbor graph. default, 15. :param is_verbose: Whether the detail information is print, default, True. :param tau1: Instance level and pseudo prototypical cluster level contrastive learning parameters, default, 0.2 :param tau2: Pseudo prototypical cluster entropy parameter, default, 1. :param tau3: Cross-batch instance self-supervised learning parameter, default, 0.5 :param save_path: The path of alignment dataset and saved spatialign. :return: ``anndata`` object containing the corrected feature matrix """ try: from spatialign import Spatialign except ImportError: raise ImportError("\nplease install desc:\n\n\t$ pip install spatialign==0.0.2a0") model = Spatialign( merge_data=adata, batch_key=batch_key, is_hvg=False, is_reduce=False, n_pcs=100, n_hvg=2000, n_neigh=n_neigh, is_undirected=True, latent_dims=latent_dims, is_verbose=is_verbose, seed=42, gpu=None, save_path=save_path ) model.train(lr=1e-3, max_epoch=500, alpha=0.5, patient=15, tau1=tau1, tau2=tau2, tau3=tau3) corrected_data = model.alignment() return corrected_data