在你的代码中,DDG
代表蛋白质复合物在某种突变下的自由能差异(ΔΔG)。这个值通常用于预测蛋白质突变对其稳定性或结合自由能的影响。在生物化学中,ΔΔG 是一种非常重要的指标,用于评估突变是否会使蛋白质更加稳定或不稳定。
模型的工作流程
-
ComplexEncoder 类:
- 该类用于编码蛋白质复合物的特征,包括残基特征(如氨基酸序列、原子位置等)和残基对特征(如相对位置)。
- 编码的输出是
res_feat
,它包含每个残基的特征表示。
-
DDGReadout 类:
- 该类负责将编码后的残基特征转化为每个残基的 ΔΔG 值。
- 它通过比较野生型和突变体的特征差异来计算 ΔΔG。
- 具体来说,它先将野生型和突变体的特征进行拼接,通过一个 MLP(多层感知机)网络进行变换,然后计算野生型和突变体的特征差异,并将该差异通过一个线性层投影为 ΔΔG 值。
-
DDGPredictor 类:
- 这是整个模型的主类,包含了编码器
ComplexEncoder
和 ΔΔG 读取器DDGReadout
。 - 它接收野生型复合物和突变体复合物,先通过编码器获取它们的特征,然后通过读取器计算 ΔΔG 值。
- 这是整个模型的主类,包含了编码器
ΔΔG 值的含义
在生物化学中,ΔΔG 是通过以下公式计算的:
[
\Delta\Delta G = \Delta G_{\text{mut}} - \Delta G_{\text{wt}}
]
- ΔG_wt 是野生型复合物的自由能。
- ΔG_mut 是突变体复合物的自由能。
ΔΔG 的符号解释如下:
- 如果 ΔΔG > 0,表示突变降低了蛋白质的稳定性(即突变体比野生型更不稳定)。
- 如果 ΔΔG < 0,表示突变增强了蛋白质的稳定性(即突变体比野生型更稳定)。
在你的代码中,模型输出的 ddG
值就是这个 ΔΔG。
总结
DDG
是模型预测的突变后蛋白质复合物的自由能变化值。它反映了突变对蛋白质稳定性或结合能力的影响。通过分析这个值,可以推测出某个突变是否会使蛋白质更稳定或不稳定,这对于药物设计和理解蛋白质功能具有重要意义。
是的,你的理解是正确的。在这个上下文中,ΔΔG (ddG) 值越小,通常表示突变体更稳定或更有利于复合物的形成。如果ΔΔG 小于 0,意味着突变导致了自由能的降低,也就是说突变使得蛋白质复合物更加稳定。因此,通常在预测或设计过程中,会优先选择那些ΔΔG 小于 0 的突变。
让我们更详细地看一下你提供的代码片段:
if mod_cdr == ori_cdr:
ddg = 0
else:
try:
ddg = pred_ddg(items[pdb_id]['pdb_data_path'], mod_pdb)
except Exception:
print(items[pdb_id]['pdb_data_path'], mod_pdb)
idx += 1
continue
-
if mod_cdr == ori_cdr:
- 如果突变后 CDR(互补决定区)与原始 CDR 相同,那么这并不是一个真正的突变,因此 ΔΔG 设置为 0。这表示没有变化,自由能不会改变。
-
else:
- 如果
mod_cdr
与ori_cdr
不同,说明进行了突变,因此调用pred_ddg()
函数来预测这个突变导致的 ΔΔG 值。
- 如果
-
ddg = pred_ddg(items[pdb_id]['pdb_data_path'], mod_pdb)
pred_ddg
函数使用预先训练好的模型来计算突变体相对于野生型的 ΔΔG 值。
在实际使用中的推理
- 如果 ΔΔG 小于 0:这表示突变体在该位置的自由能比野生型低,通常表示突变体更加稳定。
- 如果 ΔΔG 大于 0:这表示突变体在该位置的自由能比野生型高,通常表示突变体不如野生型稳定。
在设计和选择突变体时,你通常会选择那些 ΔΔG 小于 0 的突变,因为这些突变体更可能导致稳定的结构或更强的结合能力。
总结
在你的代码中,通过 pred_ddg()
预测的 ΔΔG 值主要用于评估突变对蛋白质结构稳定性或结合能的影响。通常情况下,ΔΔG 小于 0 是一个更好的结果,因为它表明突变体在能量上更稳定。因此,在设计过程中,选择 ΔΔG 小于 0 的突变可能是优先的选择。