PASTE alignment tutorial

[2]:
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import numpy as np
import scanpy as sc
import paste as pst
import os.path as osp
import glob
from utils.function_utils import *

import ot
ot.backend.get_backend_list()

import torch
torch.cuda.is_available()

iters = 1
save_dir_gt = './paste_result'

Mouse Hypothalamus data integration (pair-wise)

[ ]:
"""mhypo"""
section_ids_list = [['-0.04', '-0.09'], ['-0.09', '-0.14'], ['-0.14', '-0.19'], ['-0.19', '-0.24']]
run_times = []
for section_ids in section_ids_list:
    dataset = section_ids[0] + '_' + section_ids[1]
    output = '.'
    slice1 = load_mHypothalamus(section_id=section_ids[0])
    slice2 = load_mHypothalamus(section_id=section_ids[1])

    # run paste pairwise alignment
    pi0 = pst.match_spots_using_spatial_heuristic(slice1.obsm['spatial'],slice2.obsm['spatial'],use_ot=True)
    pi12 = pst.pairwise_align(slice1, slice2, G_init=pi0, norm=True, backend = ot.backend.TorchBackend(), use_gpu=True)

    # save alignment matrix
    if not os.path.exists(os.path.join(save_dir_gt, dataset)):
        os.makedirs(os.path.join(save_dir_gt, dataset))
    np.save(osp.join(save_dir_gt, dataset, 'iter'+str(0)+'embedding.npy'), pi12)

DLPFC data integration (pair-wise)

[ ]:
section_ids_list = [['151507', '151508'], ['151508', '151509'], ['151509', '151510']]
run_times = []

for section_ids in section_ids_list:
    dataset = section_ids[0] + '_' + section_ids[1]
    slice1 = load_DLPFC(section_id=section_ids[0])
    slice2 = load_DLPFC(section_id=section_ids[1])


    # run paste pairwise alignment
    pi0 = pst.match_spots_using_spatial_heuristic(slice1.obsm['spatial'],slice2.obsm['spatial'],use_ot=True)
    pi12 = pst.pairwise_align(slice1, slice2, G_init=pi0, norm=True, backend = ot.backend.TorchBackend(), use_gpu=True)

    # save alignment matrix
    if not os.path.exists(os.path.join(save_dir_gt, dataset)):
        os.makedirs(os.path.join(save_dir_gt, dataset))
    np.save(osp.join(save_dir_gt, dataset, 'iter'+str(0)+'embedding.npy'), pi12)