GRN前沿:scGeneRAI:基于可解释AI的单细胞基因调控网络预测
1.论文原名:Single-cell gene regulatory network prediction by explainable AI
2.发表日期:2023
摘要:
癌细胞的分子异质性导致对靶向治疗的通常部分反应和由于耐药细胞群的逃逸而导致的疾病复发。虽然单细胞测序已经开始改善我们对这种异质性的理解,但它提供了对细胞类型和状态的主要描述性观点。为了获得更多的功能性见解,我们提出了scGeneRAI,这是一种可解释的深度学习方法,它使用逐层相关传播(LRP)来从单个细胞的静态单细胞RNA测序数据中推断基因调控网络。我们用合成数据对我们的方法进行基准测试,并将其应用于一组人类肺癌的单细胞RNA测序数据。从预测的单细胞网络中,我们的方法揭示了肿瘤细胞和正常上皮细胞的特征网络模式,并确定了仅在某些患者的肿瘤细胞(亚组)中观察到的子网络。虽然目前最先进的方法仅限于预测细胞群体的平均网络,但我们的方法有助于将网络重建到单细胞水平,可用于表征肿瘤内和肿瘤间基因调控的异质性。
scGeneRAI框架
数据准备与预处理
1. 数据来源
论文中使用了两种类型的数据:合成数据和单细胞RNA测序数据。
-
合成数据:
-
用于验证方法的准确性和鲁棒性。
-
数据通过Beeline框架的BoolODE方法生成,包含三个生物网络模型(GSD、HSC、VSC),分别对应不同的生物学过程(性腺性别决定、造血干细胞分化、腹侧脊髓发育)。
-
每个网络生成5000个合成单细胞样本,共15000个样本。
-
通过设置dropout参数(drop cutoff = 0.5,drop prob = 0.5)模拟单细胞RNA测序中的技术dropout现象。
-
-
单细胞RNA测序数据:
-
来自10名非小细胞肺癌(NSCLC)患者的单细胞转录组数据。
-
数据包含13439个肿瘤细胞、875个Club细胞、1665个Ciliated细胞、1547个AT2细胞和511个AT1细胞。
-
仅选择800个高表达的蛋白编码基因进行分析。
-
2. 数据预处理
预处理的主要目标是将数据转换为适合神经网络训练的格式,并减少技术噪声的影响。
(1) 数据划分
-
将数据集随机划分为训练集(90%)和测试集(10%)。
-
训练集用于神经网络的训练,测试集用于验证网络的性能,防止过拟合。
(2) 特征选择
-
基因选择:
-
对于单细胞RNA测序数据,仅选择800个高表达的蛋白编码基因作为特征。
-
这些基因的平均表达值最高,能够更好地反映细胞的生物学特性。
-
-
细胞类型选择:
-
排除样本量较少的细胞类型(如神经内分泌细胞,仅77个细胞)。
-
仅分析肿瘤细胞和正常上皮细胞(如Club细胞、Ciliated细胞、AT1/AT2细胞)。
-
(3) 特征编码
为了将基因表达数据输入神经网络,论文采用了以下编码方式:
-
基因表达值编码:
-
每个基因的表达值
a
被编码为一个二元组(a, 1 - a)
。 -
如果某个基因的表达值为0,则编码为
(0, 1)
;如果表达值为1,则编码为(1, 0)
。 -
这种编码方式保留了基因表达的连续性,并为未表达的基因提供了一个明确的表示。
-
-
细胞类型和患者ID编码:
-
为了消除细胞类型和患者之间的群体效应,论文将细胞类型(
ct
)和患者ID(pid
)作为额外的特征加入输入向量。 -
使用独热编码(one-hot encoding)将细胞类型和患者ID转换为二进制向量。
-
将这些独热编码向量与基因表达向量拼接,形成完整的输入向量。
-
(4) 处理技术dropout
-
单细胞RNA测序数据中常见的技术dropout会导致许多基因表达值为0,这可能影响模型的训练。
-
论文中通过以下方式减少dropout的影响:
-
使用**低批量大小(batch size = 5)**进行训练,以减少dropout带来的噪声。
-
使用对数双曲余弦损失函数(log cosh loss),这种损失函数对异常值(如dropout导致的0值)具有更好的鲁棒性。
-
神经网络训练
2. 训练目标
神经网络的任务是基于其他基因的表达值预测某个目标基因的表达值。具体来说:
-
对于每个细胞,随机选择一组基因作为输入,预测另一个基因的表达值。
-
这种设计允许网络学习基因之间的相互关系。
3. 训练过程
训练过程包括以下步骤:
-
数据准备:
-
将数据集随机划分为 训练集(90%) 和 测试集(10%),以防止过拟合。
-
训练集用于网络训练,测试集用于验证模型性能。
-
-
输入向量构建:
-
对于每个细胞,构建输入向量:
-
将每个基因的表达值 a 编码为 (a,1−a)。
-
将细胞类型和患者ID的独热编码拼接到输入向量中。
-
-
-
随机掩码:
-
在训练过程中,随机选择一组基因作为输入,隐藏其他基因的表达值(设置为 (0,0))。
-
这种方法模拟了基因之间的相互作用。
-
-
前向传播:
-
输入向量通过神经网络进行前向传播,预测目标基因的表达值。
-
-
反向传播与优化:
-
使用 随机梯度下降(SGD) 进行优化,学习率为 0.02。
-
使用 PyTorch 的学习率调度器,设置弱指数衰减(γ=0.995),以确保网络收敛。
-
设置批量大小为 5,动量为 0.9。
-
-
早停法:
-
训练最多 1500 个 epoch。
-
使用早停法(early stopping),选择在验证集上表现最佳的网络模型。
-
4. 超参数设置
-
学习率:0.02
-
批量大小:5
-
动量:0.9
-
最大训练轮数:1500 个 epoch
-
学习率衰减:γ=0.995(弱指数衰减)
-
损失函数:对数双曲余弦损失函数
5. 训练目标与输出
-
目标:训练一个能够基于其他基因的表达值预测目标基因表达值的神经网络。
-
输出:训练好的神经网络模型,用于后续的基因调控网络推断。
基因调控网络预测
1. 目标
基因调控网络预测的目标是基于单细胞RNA测序数据,推断出每个细胞中基因之间的调控关系。具体来说,是通过预测基因之间的相互作用强度来构建基因调控网络。
2. 预测流程
基因调控网络的预测分为以下几个关键步骤:
(1) 目标基因预测
对于每个细胞,神经网络的任务是基于其他基因的表达值预测某个目标基因的表达值。具体步骤如下:
-
选择目标基因:对于每个基因 G∗,将其作为目标基因。
-
随机选择输入基因:从其他基因中随机选择 K 组基因作为输入,每组基因的表达值用于预测目标基因 G∗ 的表达值。
-
网络预测:使用训练好的神经网络,基于每组输入基因的表达值预测目标基因 G∗ 的表达值。
(2) 层相关性传播(LRP)
LRP是一种可解释人工智能技术,用于量化每个输入基因对目标基因预测的贡献。具体步骤如下:
-
计算LRP分数:对于每次预测,使用LRP技术计算每个输入基因对目标基因预测的相关性分数。
-
重复计算:重复上述过程 K 次(论文中 K=100),计算每组输入基因的LRP分数。
-
平均LRP分数:对 K 次计算的LRP分数取平均值,得到每个输入基因对目标基因预测的最终相关性分数 LRPr。