
import scanpy as sc
import squidpy as sq
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as npxenium_path = "xenium"
zarr_path = "xenium/Xenium.zarr"
sdata = xenium(xenium_path)
sdata.write(zarr_path, overwrite = True)
sdata = sd.read_zarr(zarr_path)
adata = sdata.table['table']
####添加样本信息
## add sample_id information to cells,barcode,sample
mids = pd.read_csv('cell_id.csv', index_col = 0)
mids.index = mids.index.astype('str')
adata.obs = adata.obs.join(mids[['cell_id']])sc.pp.calculate_qc_metrics(adata, percent_top=(10, 20, 50, 150), inplace=True)
cprobes = (
adata.obs["control_probe_counts"].sum() / adata.obs["total_counts"].sum() * 100
)
cwords = (
adata.obs["control_codeword_counts"].sum() / adata.obs["total_counts"].sum() * 100
)
print(f"Negative DNA probe count % : {cprobes}")
print(f"Negative decoding count % : {cwords}")sc.pp.filter_cells(adata, min_counts=100)
sc.pp.filter_genes(adata, min_cells=50)
adata.layers["counts"] = adata.X.copy()
sc.pp.normalize_total(adata, inplace=True)
sc.pp.log1p(adata)
sc.pp.pca(adata)sc.external.pp.harmony_integrate(adata, 'sample_id')
sc.pp.neighbors(adata, use_rep='X_pca_harmony')
sc.tl.umap(adata)
sc.tl.leiden(adata,resolution = 0.5)
sc.tl.rank_genes_groups(adata, 'louvain', method='wilcoxon', key_added = "wilcoxon")
sc.pl.rank_genes_groups(adata, n_genes=25, sharey=False, key="wilcoxon")
sc.pl.umap(adata, color=['leiden'], legend_loc='on data')
sq.pl.spatial_scatter(adata,library_id="spatial",shape=None,color=["leiden",],wspace=0.4)原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。