前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >空间转录组细胞通讯分析:COMMOT(Nature Methods,IF: 36.1)

空间转录组细胞通讯分析:COMMOT(Nature Methods,IF: 36.1)

作者头像
生信技能树
发布2025-06-16 11:15:32
发布2025-06-16 11:15:32
16000
代码可运行
举报
文章被收录于专栏:生信技能树生信技能树
运行总次数:0
代码可运行

空间转录组的细胞通讯分析算法很多,今天来学习一个可以得到通讯结果信息流向的一个算法COMMOT,这个算法被封装为了一个Python模块,算法于2023年1月23号发表在顶刊Nature Methods杂志上,标题为《Screening cell–cell communication in spatial transcriptomics via collective optimal transport》

学习节奏:1看文献了解原理,2看官方说明手册,3运行官网示例,最后就是看这个算法在一些高分文献中的应用啦!

先把官网网址放出来:

官网的参考文档(https://github.com/zcang/COMMOT)

python官网:https://commot.readthedocs.io/en/latest/index.html(这里比较详细)

文献中的简单原理介绍

先看看几个缩写的含义:cell–cell communication (CCC),COMMOT (COMMunication analysis by Optimal Transport, 基于最优传输的通信分析)

这个算法不一样的地方在于加入了:不同配体和受体之间的竞争以及细胞之间的空间距离。

集体最优传输(collective optimal transport)在细胞间通信(CCC)分析中的应用及其三个关键特点:

  • 非概率质量分布:通过控制传输计划的边际分布,确保不同种类配受体之间的可比性。
  • 空间距离约束:避免连接空间上相距较远的细胞,从而更真实地反映细胞间通信的物理限制。
  • 多种类相互作用:允许配体和受体的多种分布之间进行传输,以更好地模拟复杂的生物相互作用。

下面是这个算法的Overview

图片
图片

因为这篇文献的作者来自数学系,嗯,给了一个数学公式说明其原理:

给定一个包含 ns个细胞或点的空间转录组学数据集,以及 nl 种配体和 nr 种受体。

通过集体最优传输,确定一个最优的多物种耦合 P∗,其维度为 nl×nr×ns×ns。

矩阵 P∗ 中的元素 P*~i,j,k,l~ 表示通过配体 i 和受体 j 从发送细胞 k 到接收细胞 l 的信号强度。

通过解决一个最小化问题来找到最优耦合矩阵 P∗。该问题的目标函数涉及:

  • α(i,j):权重因子,用于调整不同配体-受体对的重要性;
  • C(i,j):成本矩阵,表示配体 i 和受体 j 之间的传输成本;
  • ⟨⋅,⋅⟩F:Frobenius内积,用于衡量传输计划与成本矩阵之间的匹配程度;
  • Γ:约束条件集合,确保传输计划满足边际分布等约束。
图片
图片

文献中的案例应用

这个文献用了五种测序技术来表明其方法的可靠性。

细胞间通信(CCC)在人类皮肤发育中的作用

b,c,两个示例配体-受体对GAS6-TYRO3和PROS1-TYRO3在细胞水平(b)和细胞簇水平(c)上推断出的接收信号量

图片
图片

展示了四种主要信号通路的信号传导方向。信号传导方向可能通过向量场或其他可视化方式表示,反映了信号在细胞或组织中的传播路径:

图片
图片

单细胞分辨率的空间转录组:小鼠下丘脑视前区的MERFISH数据中推断信号传导方向

图片
图片

使用Visium空间转录组学数据进行CCC推理

人乳腺癌组织:

图片
图片

小鼠脑组织中的信号:

图片
图片

这些案例的分析代码可以去这里看:https://doi.org/10.5281/zenodo.7272562

环境准备

安装在conda小环境spatial中,然后运行使用vscode的jupter插件,非常方便:

代码语言:javascript
代码运行次数:0
运行
复制
conda activate spatial
pip install commot -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

新建jupter脚本

代码语言:javascript
代码运行次数:0
运行
复制
touch commot.ipynb

加载python模块测试是否成功:

代码语言:javascript
代码运行次数:0
运行
复制
import commot as ct
import scanpy as sc
import pandas as pd
import numpy as np

示例数据

使用的还是10x genomics官网发布的很有名的数据:V1_Mouse_Brain_Sagittal_Posterior

下载地址:https://www.10xgenomics.com/datasets/mouse-brain-serial-section-1-sagittal-posterior-1-standard-1-0-0

下载并整理成如下格式:

代码语言:javascript
代码运行次数:0
运行
复制
#V1_Mouse_Brain_Sagittal_Posterior
.
├── filtered_feature_bc_matrix.h5
├── spatial
│   ├── aligned_fiducials.jpg
│   ├── detected_tissue_image.jpg
│   ├── scalefactors_json.json
│   ├── tissue_hires_image.png
│   ├── tissue_lowres_image.png
│   └── tissue_positions_list.csv
└── web_summary.html

简单读取进来:

代码语言:javascript
代码运行次数:0
运行
复制
import scanpy as sc
adata = sc.read_visium(path="../data/V1_Mouse_Brain_Sagittal_Posterior/")
adata.var_names_make_unique()
adata
图片
图片

后面运行的代码我就不放了,官网写了非常详细:https://commot.readthedocs.io/en/latest/notebooks/visium-mouse_brain.html

需要注意的地方在于 空间细胞通讯的那句:dis_thr=500 这个参数的设定比较重要,dis_thr (Optional[float]) – The threshold of spatial distance of signaling,空间距离通讯的限制参数,需要根据实际情况进行调整~

代码语言:javascript
代码运行次数:0
运行
复制
ct.tl.spatial_communication(adata_dis500,
    database_name='cellchat', df_ligrec=df_cellchat_filtered, dis_thr=, heteromeric=True, pathway_sum=True)

高分文献应用

看看这篇于2024年12月12号发表在Cell杂志上的文献,标题为《Multiparameter imaging reveals clinically relevant cancer cell-stroma interaction dynamics in head and neck cancer》。

这里的细胞通讯作者用的cellphonedb,只是用 使用 COMMOT(版本 0.0.325)通过函数 commot.tl.spatial_communication 计算了选定通路的空间相互作用得分,其中设置了空间距离阈值参数 dis_thr=500。结果通过 squidy.pl.spatial_scatter 和 seaborn(版本 0.13.252)进行可视化,展示了接收方和发送方得分的总和,以小提琴图的形式呈现。

图片
图片
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-06-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信技能树 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文献中的简单原理介绍
  • 文献中的案例应用
    • 细胞间通信(CCC)在人类皮肤发育中的作用
    • 单细胞分辨率的空间转录组:小鼠下丘脑视前区的MERFISH数据中推断信号传导方向
    • 使用Visium空间转录组学数据进行CCC推理
  • 环境准备
    • 示例数据
  • 高分文献应用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档