前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >课前准备---空间通讯信号流COMMOT(封装版)

课前准备---空间通讯信号流COMMOT(封装版)

原创
作者头像
追风少年i
发布2024-07-15 13:52:39
790
发布2024-07-15 13:52:39

作者,Evil Genius

文章Screening cell–cell communication in spatial transcriptomics via collective optimal transport(nature methods)。

关于空间通讯信号流已经分享了很多了,其实主要就是看通讯的流向。

包括高精度平台的数据分析

当然,10X数据最好看

我们需要实现的目标(小批量数据为例)

至于其生物学意义,我们课上在讲解

封装版代码如下,比较简单

代码语言:javascript
复制
#! usr/python
####zhaoyunfei
####20240715
####https://commot.readthedocs.io/en/latest/index.html
####taskset -c 20 python
import argparse

parse=argparse.ArgumentParser(description='COMMOT')
parse.add_argument('--sp_input',help='the input file of matrix for spatial',type=str,required = True)
parse.add_argument('--sample',help='the sample name',type=str,required = True)
parse.add_argument('--species',help='the species',type=str,required = True,choices = ['mouse','human'])
parse.add_argument('--outdir',help='the outdir',type=str,required = True)

argv=parse.parse_args()
sp_input=args.sp_input
sample = args.sample
species = args.species
outdir = args.outdir


import os
import gc
import ot
import pickle
import anndata
import scanpy as sc
import pandas as pd
import numpy as np
from scipy import sparse
from scipy.stats import spearmanr, pearsonr
from scipy.spatial import distance_matrix
import matplotlib.pyplot as plt

import commot as ct


adata = sc.read_visium(sp_input,library_id = sample)

adata.var_names_make_unique()

sc.pp.normalize_total(adata, inplace=True)

sc.pp.log1p(adata)

adata_dis500 = adata.copy()

sc.pp.highly_variable_genes(adata, min_mean=0.0125, max_mean=3, min_disp=0.5)

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)

df_cellchat = ct.pp.ligand_receptor_database(species=species, signaling_type='Secreted Signaling', database='CellChat')

df_cellchat_filtered = ct.pp.filter_lr_database(df_cellchat, adata_dis500, min_cell_pct=0.05)
###限速
ct.tl.spatial_communication(adata_dis500,database_name='cellchat', df_ligrec=df_cellchat_filtered, dis_thr=500, heteromeric=True, pathway_sum=True)

for pathway in list(set(df_cellchat_filtered.iloc[:,2])):

    ct.tl.communication_direction(adata_dis500, database_name='cellchat', pathway_name=pathway, k=5)

    ct.pl.plot_cell_communication(adata_dis500, database_name='cellchat', pathway_name=pathway, plot_method='grid', background_legend=True,scale=0.00001, ndsize=8, grid_density=0.4, summary='sender', background='image', clustering='leiden', cmap='Alphabet',normalize_v = True, normalize_v_quantile=0.995)

    plt.savefig(outdir + '/' + sample + 'signal.arrow.grid.spatial.png',bbox_inches = 'tight')

    ct.pl.plot_cell_communication(adata_dis500, database_name='cellchat', pathway_name=pathway, plot_method='stream', background_legend=True,scale=0.00001, ndsize=8, grid_density=0.4, summary='sender', background='image', clustering='leiden', cmap='Alphabet',normalize_v = True, normalize_v_quantile=0.995)

    plt.savefig(outdir + '/' + sample + 'signal.arrow.stream.spatial.png',bbox_inches = 'tight')

生活很好,有你更好

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 作者,Evil Genius
  • 文章Screening cell–cell communication in spatial transcriptomics via collective optimal transport(nature methods)。
  • 关于空间通讯信号流已经分享了很多了,其实主要就是看通讯的流向。
  • 包括高精度平台的数据分析
  • 当然,10X数据最好看
  • 我们需要实现的目标(小批量数据为例)
  • 至于其生物学意义,我们课上在讲解
  • 封装版代码如下,比较简单
  • 生活很好,有你更好
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档