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)[source]
Find optimal renaming of ground truth based on the predicted positions.
Jumper et al. (2021) Suppl. Alg. 26 "renameSymmetricGroundTruthAtoms"
This renamed ground truth is then used for all losses, such that each loss moves the atoms in the same direction. Shape (N).
- Parameters
atom14_gt_positions (Tensor) – Ground truth positions. shape \((N_{res}, 14, 3)\) .
atom14_alt_gt_positions (Tensor) – Ground truth positions with renaming swaps. shape \((N_{res}, 14, 3)\) .
atom14_atom_is_ambiguous (Tensor) – 1.0 for atoms that are affected by renaming swaps. shape \((N_{res}, 14)\) .
atom14_gt_exists (Tensor) – Mask for which atoms exist in ground truth. shape \((N_{res}, 14)\) .
atom14_pred_positions (Tensor) – Array of atom positions in global frame with shape \((N_{res}, 14, 3)\) .
atom14_alt_gt_exists (Tensor) – Mask for which atoms exist in ground truth after renaming. shape \((N_{res}, 14)\) .
- Returns
alt_naming_is_better (Tensor) - Array with 1.0 where alternative swap is better. shape \((N_{res}, )\) .
renamed_atom14_gt_positions (Tensor) - Array of optimal ground truth positions after renaming swaps are performed. shape \((N_{res}, 14, 3)\) .
renamed_atom14_gt_exists (Tensor) - Mask after renaming swap is performed. shape \((N_{res}, 14)\) .
- Symbol:
\(N_{res}\), number of amino acids.
- Supported Platforms:
Ascend
GPU
Examples
>>> 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)