import commot as ct
import scanpy as sc
import pandas as pd
import numpy as np
adata = sc.read_visium('./',library_id = 'sample1')
adata
AnnData object with n_obs × n_vars = 135799 × 18085
obs: 'in_tissue', 'array_row', 'array_col'
var: 'gene_ids', 'feature_types', 'genome'
uns: 'spatial'
obsm: 'spatial'
adata.var_names_make_unique()
###QC
# mitochondrial genes, "MT-" for human, "Mt-" for mouse
adata.var["mt"] = adata.var_names.str.startswith("MT-")
# ribosomal genes
adata.var["ribo"] = adata.var_names.str.startswith(("RPS", "RPL"))
# hemoglobin genes
adata.var["hb"] = adata.var_names.str.contains("^HB[^(P)]")
sc.pp.calculate_qc_metrics(adata, qc_vars=["mt", "ribo", "hb"], inplace=True)
adata = adata[adata.obs.pct_counts_mt < 5,]
####每个spot的基因数不能低于500
adata = adata[adata.obs.total_counts > 500,]
sc.pp.filter_genes(adata, min_cells=5)
adata.layers["count"] = adata.X.copy()
sc.pp.normalize_total(adata, inplace=True)
adata.layers["normalize"] = adata.X.copy()
sc.pp.log1p(adata)
sc.pp.highly_variable_genes(adata, n_top_genes=2000)
adata = adata[:, adata.var.highly_variable]
sc.tl.pca(adata, svd_solver='arpack')
sc.pp.neighbors(adata, n_neighbors=10, n_pcs=20)
sc.tl.umap(adata)
sc.tl.leiden(adata, resolution=0.4)
sc.pl.umap(adata, color='leiden')
plt.savefig('sample.HD.umap.png',bbox_inches = 'tight')
sc.pl.spatial(adata,color = 'leiden')
plt.savefig('sample.HD.spatial.png',bbox_inches = 'tight')
df_cellchat = ct.pp.ligand_receptor_database(species='human', signaling_type='Secreted Signaling', database='CellChat')
df_cellchat_filtered = ct.pp.filter_lr_database(df_cellchat, adata, min_cell_pct=0.01)
ct.tl.spatial_communication(adata,
database_name='cellchat', df_ligrec=df_cellchat_filtered, dis_thr=500, heteromeric=True, pathway_sum=True)
ct.tl.communication_direction(adata_dis500, database_name='cellchat', pathway_name='CCL', k=5)
ct.pl.plot_cell_communication(adata_dis500, database_name='cellchat',
pathway_name='CCL', plot_method='grid', background_legend=True,
scale=0.00003, ndsize=8, grid_density=0.4, summary='sender',
background='image', clustering='leiden', cmap='Alphabet',
normalize_v = True, normalize_v_quantile=0.995)
plt.savefig('sample1.CCL.commot.png',bbox_inches = 'tight')
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。