细胞内与细胞间网络整合分析!神经网络+细胞通讯,这个单细胞分析工具一箭双雕了(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_XNetimport 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, # timerGRN_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.rhkb.cn/news/41743.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么处理 Vue 项目中的错误的?

一、错误类型 任何一个框架,对于错误的处理都是一种必备的能力 在Vue 中,则是定义了一套对应的错误处理规则给到使用者,且在源代码级别,对部分必要的过程做了一定的错误处理。 主要的错误来源包括: 后端接口错误代码中本身逻辑错误二、如何处理 后端接口错误 通过axi…

05.AI搭建preparationの(transformers01)BertTokenizer实现分词编码

一、下载 bert-base-chinese镜像下载 二、简介作用: 模型每个参数占用的字节大小模型大小模型大小层数头数GPT-14 个字节的 FP32 精度浮点数117M446MB1212GPT-22 个字节的 FP161.5亿到1.75亿0.5GB到1.5GB4816GPT-32 个字节的 FP161.75万亿(17500亿&a…

工业4G路由器赋能智慧停车场高效管理

工业4G路由器作为智慧停车场管理系统通信核心,将停车场内的各个子系统连接起来,包括车牌识别系统、道闸控制系统、车位检测系统、收费系统以及监控系统等。通过4G网络,将这些系统采集到的数据传输到云端服务器或管理中心,实现信息…

git 基础操作

1. git 的安装 与 卸载 1.1. git 的安装 判断是否安装 git git --version 安装 git: centos: sudo yum -y install git ubuntu: sudo apt-get install git -y windows: 3.安装git和图形化界面工具_哔哩哔哩_bilibili 1.2. git 的卸载 判断是否安装 git git --version…

【计算机网络】计算机网络协议、接口与服务全面解析——结合生活化案例与图文详解

协议、接口与服务 导读一、协议1.1 定义1.2 组成 二、接口三、服务3.1 定义3.2 服务与协议的区别3.3 分类3.3.1 面向连接服务于无连接服务3.3.2 可靠服务和不可靠服务3.3.3 有应答服务和无应答服务 结语 导读 大家好,很高兴又和大家见面啦!!…

Vue.js 完全指南:从入门到精通

1. Vue.js 简介 1.1 什么是 Vue.js? Vue.js(通常简称为 Vue)是一个用于构建用户界面的渐进式 JavaScript 框架。所谓"渐进式",意味着 Vue 的设计是由浅入深的,你可以根据自己的需求选择使用它的一部分或全部功能。 Vue 最初由尤雨溪(Evan You)在 2014 年创…

qt QOffscreenSurface详解

1、概述 QOffscreenSurface 是 Qt 中用于离屏渲染的一个类。它允许在不直接与屏幕交互的情况下进行 OpenGL 渲染操作,常用于生成纹理、预渲染场景等。通过 QOffscreenSurface,可以在后台创建一个渲染表面,进行绘制操作,并将结果捕…

如何使用VS中的Android Game Development Extension (AGDE) 来查看安卓 Logcat 日志

一、首先按照以下 指引 中的 第1、2步骤,安装一下 AGDE ,AGDE 的安装包可以在官网上找到。 UE4 使用AndroidGameDevelopmentExtension(AGDE)对安卓客户端做“断点调试”与“代码热更”-CSDN博客 在执行第二步骤前,记得…

NodeJs之fs模块

一、定义: fs 模块可以实现与硬盘的交互。例如:文件的创建、删除、重命名、移动;文件内容的写入、读取;文件夹的操作。 二、引入 fs 模块: const fs require(fs)三、文件写入: 1、异步写入:w…

Android14 Settings应用添加有线网开关条目实现

Android14 Settings应用添加有线网开关条目 文章目录 Android14 Settings应用添加有线网开关条目一、前言二、适配修改1、network_provider_settings.xml2、NetworkProviderSettings.java3、TurnOnOffEthernetNetworkController.java4、去除有线网提示条目。5、效果UI&#xff…

微信小程序如何接入直播功能

一、小程序直播开通背景 1.政府资质要求 政府的要求,小程序开通直播需要注册主体具备互联网直播的资质,普通企业需要《信息网络传播视听节目许可证》,表演性质的直播需要《网络文化经营许可证》,政府主体需要《社会信用代码》及…

【Linux】MAC帧

目录 一、MAC帧 (一)IP地址和MAC地址 (二)MAC帧格式 (三)MTU对IP协议的影响、 (四)MTU对UDP协议的影响 (五)MTU对TCP协议的影响 二、以太网协议 &…

如何查看window电脑的GPU信息

GPU(图形处理器,Graphics Processing Unit)和显卡是两个密切相关但不同的概念 概念 1. ‌基本概念‌ ‌GPU‌:是专门用于处理图像和视频信息的微处理器,拥有强大的并行计算能力,主要负责图形渲染、数值分…

大数据判存算法

所谓的大数据判存算法,就是如何在海量数据中快速判断某个数据是否存在。这里用到的知识是布隆过滤器(Bloom Filter),下面按照 what - why - how 的顺序来学习它。 1、什么是布隆过滤器 布隆过滤器(英语:B…

Solr-搜索引擎-入门到精通

以下是对 Apache Solr 的简介及其常用语法的快速入门指南: 一、Solr 是什么? • 核心定位:Apache Solr 是一个基于 Lucene 的高性能、开源的搜索平台,支持全文检索、分词、高亮、聚合统计等功能。 • 核心功能: • 全…

Ajax与Axios,以及Apifox的入门使用

Ajax与Axios,以及Apifox的入门使用 作者:blue 时间:2025.3.20 文章目录 Ajax与Axios,以及Apifox的入门使用1.Ajax2.Axios3.Apifox的基本使用内容Path 参数定义语法用途 Query 参数定义语法用途 1.Ajax 概念:Asynchr…

Spring MVC拦截器

一、什么是拦截器 拦截器是 SpringMVC 提供的一种可以在请求处理过程中对请求进行预处理或后处理的机制。简单来说,拦截器就像是一位“守门员”,它拦住所有进来的请求,根据设定的规则决定是否放行或者进行某些操作。 拦截器可以&#xff1a…

mysql语句 聚合+分组+内外链接

1.聚合函数 1.count 记数 2.sum 求和 3.avg *语法:select avg(列名) from 表名; 4.max 求最大值 5.min 求最小值 求一个班级数学平均分? select avg(ifnull(math,0&#x…

WPF 与 C# 融合开发:从基础到高级应用(一)

WPF 与 C# 融合开发:从基础到高级应用 一、C# 语言基础回顾 1.1 C# 语言概述 C# 是微软开发的一种现代、面向对象的编程语言,它融合了 C、C 和 Java 等语言的优点,具有简洁、安全、高效等特点。C# 广泛应用于 Windows 平台的应用开发&…

【Linux】IP协议

目录 一、IP协议的概念 二、IP协议的报头 (一)IP协议报文的封装、解包和分用 (二)8位生存时间 (三)IP分片 三、IP协议的网段划分 (一)为什么需要网段划分 (二&am…