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)