







pip install scTM
import scanpy as sc
import numpy as np
import sctm
import squidpy as sq
import sklearn
import seaborn as sns
%load_ext autoreload
%autoreload 2
adata = sc.read_h5ad(
"../../../../STAMP/Reproducibility/ProcessedData/Visium_Mousebrain/adata_benchmark.h5ad"
)
adata.var_names_make_unique()
sc.pp.calculate_qc_metrics(adata, inplace=True)
adata.layers["counts"] = adata.X.copy()
sq.gr.spatial_neighbors(adata, library_key="data")
sctm.seed.seed_everything(5)
model = sctm.stamp.STAMP(
adata[:, adata.var.highly_variable],
n_topics=n_topics,
layer = "counts",
categorical_covariate_keys = ["data"],
gene_likelihood = "nb")
model.train(learning_rate = 0.01, min_epochs = 200)
topic_prop = model.get_cell_by_topic()
beta = model.get_feature_by_topic()
for i in topic_prop.columns:
adata.obs[i] = topic_prop[i]
topic_prop = model.get_cell_by_topic()
beta = model.get_feature_by_topic(pseudocount = 0.0)
for i in topic_prop.columns:
adata.obs[i] = topic_prop[i]
top_genes = []
for i in topic_prop.columns:
top_genes += beta.nlargest(1, i).index.tolist()
sctm.pl.spatial(adata, color=top_genes, ncols=5, size=40, vmax="p99") 
topics = ["Topic1", "Topic7", "Topic13", "Topic22", "Topic25", "Topic10", "Topic16"]
fig = sctm.pl.plot_spatial(
adata,
topic_prop.loc[:, topics],
spot_size=7,
display_zeros=True,
axis_y_flipped=True,
)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。