当前位置: 首页 > article >正文

细胞内与细胞间网络整合分析!神经网络+细胞通讯,这个单细胞分析工具一箭双雕了(scTenifoldXct)

生信碱移

细胞间-细胞内通讯网络分析

scTenifoldXct,一种结合了细胞内和细胞间基因网络的计算工具,利用 scRNA-seq 数据检测细胞间相互作用。

单细胞 RNA 测序(scRNA-seq)能够以稳健且可重复的方式同时收集数万个细胞的转录组信息。利用 scRNA-seq 数据,可以通过复杂组织中细胞特异性配体-受体(LR)的映射来研究细胞通信网络。不断发展的 scRNA-seq 数据空间已经催生了许多用于挖掘细胞间通信信息的计算工具。然而,在检测结果中获得可靠的统计置信度仍然难以实现。

▲DOI:10.1016/j.cels.2023.01.004。

来自得克萨斯农工大学的研究者开发了一种半监督工具 scTenifoldXct,用于检测配体-受体(LR)介导的细胞间相互作用并绘制细胞通信图,于2023年4月发表于Cell Systems [IF:9.0]。在真实数据集的测试中,scTenifoldXct 方法检测到的相互作用与已有方法具有高度一致性。更重要的是,scTenifoldXct 揭示了其他方法忽略的微弱但具有生物学相关性的相互作用。

▲scTenifoldXct原理示意:scTenifoldXct 方法基于流形对齐,使用 LR 对作为数据间对应关系,将相互作用细胞中表达的配体和受体基因嵌入到统一的潜在空间中。任务损失通过神经网络最小化对应基因之间的距离,同时保持基因回归网络的结构来实现。。

从功能上讲,scTenifoldXct 是半监督的,因此可以①在有或没有参考 LR 对的情况下使用。除了外部的细胞通讯以外,该软件还结合了细胞内基因网络,所以能够②同时分析细胞间-细胞内的整合网络。不仅如此,scTenifoldXct 还能够③进行差异相互作用分析,比较组织样本之间的细胞间相互作用模式。在进行比较分析时,scTenifoldXct 以整合的方式组合和分析两个样本的数据,而不是分别处理这两个样本,使得分析在检测细微差异相互作用方面更加强大

本文简要介绍scTenifoldXct的安装使用,感兴趣的铁子可以参考下述链接:

  • https://github.com/cailab-tamu/scTenifoldXct/tree/main

软件安装

① 使用conda创建独立环境scTenifold

git clone https://github.com/cailab-tamu/scTenifoldXct.git
cd scTenifoldXct
conda env create -f environment.yml
conda activate scTenifold

② 安装scTenifoldXct软件,其主要基于python解释器运行:

pip install git+https://github.com/cailab-tamu/scTenifoldXct.git 

细胞通讯分析示例

① 导入相关库:

import scanpy as sc
import scTenifoldXct as st
from scTenifoldXct.visualization import get_Xct_pairs, plot_XNet

import warnings
warnings.filterwarnings("ignore")

② 读取示例单细胞数据:

# load scRNA-seq data
adata = sc.read_h5ad('data/adata_short_example.h5ad')
adata
#AnnData object with n_obs × n_vars = 202 × 3000
#    obs: 'nCount_RNA', 'nFeature_RNA', 'patient.id', 'condition', 'ident'
#    layers: 'log1p', 'raw'

③ 建立scTenifoldXct对象。注意,此处设置source_celltype与target_celltype两个参数分别指定需要分析的配体细胞与受体细胞,obs_label参数设定注释的列名即adata.obs注释信息的ident列:

# build a scTenifoldXct object, including GRNs
xct = st.scTenifoldXct(data = adata, 
                        source_celltype = 'Inflam. FIB',
                        target_celltype = 'Inflam. DC',
                        obs_label = 'ident',
                        rebuild_GRN = False, # timer
                        GRN_file_dir = 'Net_example',  
                        verbose = True,
                        n_cpus = 8)
#(cell, feature): (121, 3000)
#(cell, feature): (81, 3000)
#selected 107 LR pairs
#load GRN Inflam. FIB
#load GRN Inflam. DC
#build correspondence and initiate a trainer
#scTenifoldXct init completed

获得模型嵌入:

# get embeddings
emb = xct.get_embeds(train = True)
emb.shape

④ 提取显著的受配体对:

# get significant L-R pairs
xct_pairs = xct.null_test()
xct_pairs
#Total enriched: 27 / 9000000
#ligand receptor dist correspondence p_val enriched_rank
#CCL19_CCR7 CCL19 CCR7 0.000128 589.686707 0.001662 1
#CXCL14_CCR7 CXCL14 CCR7 0.000128 504.256439 0.001684 2
#CCL2_CCR7 CCL2 CCR7 0.000133 334.575897 0.001792 3
#CCL19_CXCR4 CCL19 CXCR4 0.000141 412.651093 0.002101 4
#CXCL14_CXCR4 CXCL14 CXCR4 0.000141 352.868683 0.002114 5
#CCL2_CXCR4 CCL2 CXCR4 0.000146 234.129593 0.002230 6
#CXCL12_CCR7 CXCL12 CCR7 0.000169 300.260742 0.002611 7
#CXCL12_CXCR4 CXCL12 CXCR4 0.000182 210.116516 0.002801 8
#VCAM1_ITGB2 VCAM1 ITGB2 0.000419 65.863914 0.005519 9
#CTGF_ITGB2 CTGF ITGB2 0.000982 28.104105 0.008874 10
#CCL2_TNF CCL2 TNF 0.001712 68.953850 0.012622 11
#CYR61_ITGB2 CYR61 ITGB2 0.002227 18.407639 0.015574 12
#CCL26_CCR7 CCL26 CCR7 0.002398 52.882790 0.016629 13
#CCL26_CXCR4 CCL26 CXCR4 0.002411 37.006329 0.016706 14
#CXCL1_CCR7 CXCL1 CCR7 0.002522 56.795914 0.017351 15
#CXCL1_CXCR4 CXCL1 CXCR4 0.002534 39.744656 0.017410 16
#DCN_VEGFA DCN VEGFA 0.002935 120.561394 0.019466 17
#CCL2_VEGFA CCL2 VEGFA 0.002940 45.123440 0.019535 18
#FGF7_VEGFA FGF7 VEGFA 0.004041 7.320776 0.026219 19
#BMP4_VEGFA BMP4 VEGFA 0.004526 6.237480 0.029334 20
#CXCL2_CCR7 CXCL2 CCR7 0.005031 27.005573 0.032559 21
#CXCL2_CXCR4 CXCL2 CXCR4 0.005043 18.897964 0.032684 22
#CCL19_CCR6 CCL19 CCR6 0.005051 35.079029 0.032802 23
#CXCL14_CCR6 CXCL14 CCR6 0.005052 29.996990 0.032805 24
#CCL2_CCR6 CCL2 CCR6 0.005056 19.903107 0.032870 25
#CXCL12_CCR6 CXCL12 CCR6 0.005084 17.861782 0.033104 26
#CCL26_CCR6 CCL26 CCR6 0.006778 3.145869 0.048953 27

⑤ 可视化细胞间-细胞内通讯网络:

# 提取受配体对,看一下前5个
targets = get_Xct_pairs(xct_pairs)
targets[:5]
#(['CCL19', 'CCR7'],
# ['CXCL14', 'CCR7'],
# ['CCL2', 'CCR7'],
# ['CCL19', 'CXCR4'],
# ['CXCL14', 'CXCR4'])

# 可视化第一个受配体对的细胞内-细胞间网络
i = 0
s = xct.plot_pcNet_graph(view='sender', gene_names=[targets[i][0]],
                             top_edges=20, show = False, verbose = True)
t = xct.plot_pcNet_graph(view='receiver', gene_names=[targets[i][1]], 
                             top_edges=20, show = False, verbose = True)

plot_XNet(s, t, gene_pairs = [targets[i]], df_enriched = xct_pairs, show = True, verbose = True)

▲ 第一个受配体对网络的结果,展示了CCL19-CCR7及其附属网络。对应的来源细胞和target细胞为第三步设置参数时选择的细胞。

细胞通讯+细胞类调控网络

一鱼多吃?还是半监督学习

各位佬哥佬姐可以试试


http://www.kler.cn/a/611917.html

相关文章:

  • 【机器学习】——机器学习基础概念
  • python进行数据分析(以A 股为例)
  • uniapp开发中store的基本用法和模块化详解
  • uniapp上传图片之前压缩处理
  • 解构 HarmonyOS:技术神话背后的理性审视
  • 给聊天机器人装“短期记忆“:Flask版实现指南
  • 高级数据结构02AVL树
  • AI编程工具哪家强?对比Cusor、Copilot、Cline
  • C++算法深度解析:快速排序的实现、分析与优化
  • RoMA: 基于Mamba的遥感基础模型, 已开源, 首次验证mamba的scaling能力
  • 用数组遍历出来的页面,随节点创建的ref存储在数据仓库中,如果数据删除,页面相关节点也会删除,数据仓库中随节点创建的ref会不会也同时删除
  • STM32F103C8T6移植DMP解算MPU6050
  • Elasticsearch:使用 Azure AI 文档智能解析 PDF 文本和表格数据
  • linux---------进程概念(完)
  • 字节真题,问a,b,c指的地址是否相同?
  • SQL Server常见问题解析
  • 记录react和vue 属性传组件相关的事宜
  • 微软重磅发布 OmniParser V2.0:AI 视觉解析能力跃升,开启界面自动化新时代
  • 鸿蒙Flutter实战:20. Flutter集成高德地图,同层渲染
  • AG7220替代方案|ASL6328芯片设计|HDMI2.0 Retimer中继器方案