Tutorial 4: VisiumHD dataset ============================ .. raw:: html
In this tutorial, we show how to apply scSTADE to identify spatial domains on VisiumHD dataset. As a example, we analyse the VisiumHD dataset.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. raw:: html
The source code package is freely available at https://github.com/cuiyaxuan/scSTADE/tree/master. The datasets used in this study can be found at https://drive.google.com/drive/folders/1H-ymfCqlDR1wpMRX-bCewAjG5nOrIF51?usp=sharing.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code:: ipython3 import sys sys.path.append("/.../scSTADE-master/scSTADE_Cluster_Functions") # Input the path. from scSTADE_HD import scSTADE import os import torch import pandas as pd import scanpy as sc from sklearn import metrics import multiprocessing as mp def setup_seed(seed=41): import torch import os import numpy as np import random torch.manual_seed(seed) np.random.seed(seed) # Numpy module. random.seed(seed) # Python random module. if torch.cuda.is_available(): # torch.backends.cudnn.benchmark = False torch.backends.cudnn.deterministic = True torch.cuda.manual_seed(seed) torch.cuda.manual_seed_all(seed) #os.environ['PYTHONHASHSEED'] = str(seed) setup_seed(41) device = torch.device('cpu') # call 24 cpu cores torch.set_num_threads(24) n_clusters = 20 ###### the number of spatial domains. file_fold = '/home/cuiyaxuan/spatialLIBD/square_016um/' #### to your path adata = sc.read_visium(file_fold, count_file='filtered_feature_bc_matrix.h5', load_images=True) #### project name adata.var_names_make_unique() model = scSTADE(adata,device=device,n_top_genes=5000) adata = model.train() radius = 50 tool = 'mclust' # mclust, leiden, and louvain from utils import clustering if tool == 'mclust': clustering(adata, n_clusters, radius=radius, method=tool, refinement=False) elif tool in ['leiden', 'louvain']: clustering(adata, n_clusters, radius=radius, method=tool, start=0.1, end=2.0, increment=0.01, refinement=False) adata.obs['domain'] adata.obs['domain'].to_csv("label.csv") .. parsed-literal:: /home/cuiyaxuan/anaconda3/envs/pytorch/lib/python3.8/site-packages/tqdm/auto.py:22: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html from .autonotebook import tqdm as notebook_tqdm /home/cuiyaxuan/anaconda3/envs/pytorch/lib/python3.8/site-packages/anndata/_core/anndata.py:1830: UserWarning: Variable names are not unique. To make them unique, call `.var_names_make_unique`. utils.warn_names_duplicates("var") /home/cuiyaxuan/anaconda3/envs/pytorch/lib/python3.8/site-packages/scanpy/readwrite.py:413: DtypeWarning: Columns (1,2,3,4,5) have mixed types. Specify dtype option on import or set low_memory=False. positions = pd.read_csv(files['tissue_positions_file'], header=None) .. image:: 4_Example_VisiumHD_test/human_colon_cancer_domain20-1.png :width: 315px :height: 277px