get_potential_gradients是Denoise类中一个方法。get_potential_gradients方法的目的是计算每个 Cα 原子的势能梯度,用于指导扩散更新。这些梯度可以提供物理或几何约束,使扩散生成的坐标更加合理。
功能:计算结构中的每个原子的引导势梯度(potential gradients),用于指导去噪。
步骤:调用 PotentialManager
计算所有引导势;计算目标坐标上的梯度(对 xx 求导);应用扩散掩码,避免固定区域的梯度计算。
源代码:
def get_potential_gradients(self, xyz, diffusion_mask):
"""
This could be moved into potential manager if desired - NRB
Function to take a structure (x) and get per-atom gradients used to guide diffusion update
Inputs:
xyz (torch.tensor, required): [L,27,3] Coordinates at which the gradient will be computed
Outputs:
Ca_grads (torch.tensor): [L,3] The gradient at each Ca atom
"""
if self.potential_manager == None or self.potential_
get_potential_gradients是Denoise类中一个方法。get_potential_gradients方法的目的是计算每个 Cα 原子的势能梯度,用于指导扩散更新。这些梯度可以提供物理或几何约束,使扩散生成的坐标更加合理。
功能:计算结构中的每个原子的引导势梯度(potential gradients),用于指导去噪。
步骤:调用 PotentialManager
计算所有引导势;计算目标坐标上的梯度(对 xx 求导);应用扩散掩码,避免固定区域的梯度计算。
源代码:
def get_potential_gradients(self, xyz, diffusion_mask):
"""
This could be moved into potential manager if desired - NRB
Function to take a structure (x) and get per-atom gradients used to guide diffusion update
Inputs:
xyz (torch.tensor, required): [L,27,3] Coordinates at which the gradient will be computed
Outputs:
Ca_grads (torch.tensor): [L,3] The gradient at each Ca atom
"""
if self.potential_manager == None or self.potential_