生信碱移
细胞间-细胞内通讯网络分析
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细胞为第三步设置参数时选择的细胞。
细胞通讯+细胞类调控网络
一鱼多吃?还是半监督学习
各位佬哥佬姐可以试试