mindsponge.metrics.compute_renamed_ground_truth
- mindsponge.metrics.compute_renamed_ground_truth(atom14_gt_positions, atom14_alt_gt_positions, atom14_atom_is_ambiguous, atom14_gt_exists, atom14_pred_positions, atom14_alt_gt_exists)[源代码]
由于蛋白质中部分氨基酸侧链存在对称性,因此可能存在等价的构象。本函数根据预测的蛋白质三维坐标与多种等价的构象作比较,并从中选出和预测坐标最接近的构象坐标作为结构标签。
- 参数:
atom14_gt_positions (Tensor) - 按照稠密编码方式编码,蛋白质全原子坐标。shape \((N_{res}, 14, 3)\) 。
atom14_alt_gt_positions (Tensor) - 按稠密编码方式编码,根据对称性变换的等价全原子坐标。shape \((N_{res}, 14, 3)\) 。
atom14_atom_is_ambiguous (Tensor) - 由于部分氨基酸结构具有局部对称性,其对称原子编码可调换,具体原子参考 common.residue_atom_renaming_swaps 该特征记录了原子不确定的编码位置。shape \((N_{res}, 14)\) 。
atom14_gt_exists (Tensor) - 按照稠密编码方式编码,表示蛋白的相应原子在标签中是否存在的掩码。shape \((N_{res}, 14)\) 。
atom14_pred_positions (Tensor) - 按照稠密编码方式编码,预测的蛋白质全原子坐标。shape \((N_{res}, 14, 3)\) 。
atom14_alt_gt_exists (Tensor) - 按照稠密编码方式编码,表示蛋白的等价构象中的相应原子在标签中是否存在的掩码。shape \((N_{res}, 14)\) 。
- 返回:
alt_naming_is_better (Tensor) - 记录了所有氨基酸是否在对称变换后更贴近预测坐标。shape \((N_{res}, )\) 。
renamed_atom14_gt_positions (Tensor) - 对称变换后重命名的,稠密编码的原子所对应的真实三维坐标。shape \((N_{res}, 14, 3)\) 。
renamed_atom14_gt_exists (Tensor) - 对称变换后重命名的、稠密编码的原子在标签中是否存在的掩码。shape \((N_{res}, 14)\) 。
- 符号:
\(N_{res}\) - 蛋白质中氨基酸个数,按蛋白质一级序列排列。
- 支持平台:
Ascend
GPU
样例:
>>> import mindspore as ms >>> from mindspore import Tensor >>> import numpy as np >>> from mindsponge.metrics import compute_renamed_ground_truth >>> atom14_gt_positions = Tensor(np.random.random(size=(50, 14, 3)), ms.float32) >>> atom14_alt_gt_positions = Tensor(np.random.random(size=(50, 14, 3)), ms.float32) >>> atom14_atom_is_ambiguous = Tensor(np.random.random(size=(50, 14)), ms.float32) >>> atom14_gt_exists = Tensor(np.random.random(size=(50, 14)), ms.float32) >>> atom14_pred_positions = Tensor(np.random.random(size=(50, 14, 3)), ms.float32) >>> atom14_alt_gt_exists = Tensor(np.random.random(size=(50, 14)), ms.float32) >>> alt_naming_is_better, renamed_atom14_gt_positions, renamed_atom14_gt_exists = ... compute_renamed_ground_truth(atom14_gt_positions, atom14_alt_gt_positions, atom14_atom_is_ambiguous, ... atom14_gt_exists, atom14_pred_positions, atom14_alt_gt_exists) >>> print(alt_naming_is_better.shape, renamed_atom14_gt_positions.shape, renamed_atom14_gt_exists.shape) (50,) (50, 14, 3) (50, 14)