mindsponge.common.find_optimal_renaming
- mindsponge.common.find_optimal_renaming(atom14_gt_positions, atom14_alt_gt_positions, atom14_atom_is_ambiguous, atom14_gt_exists, atom14_pred_positions)[源代码]
通过最大化LDDT值,确定具手性的氨基酸残基的最佳原子坐标。具体计算过程参考: Jumper et al. (2021) Suppl. Alg. 26 “renameSymmetricGroundTruthAtoms” 。
- 参数:
atom14_gt_positions (Tensor) - 全局坐标系中的真实原子坐标值,采用atom14表示,shape为 \((N_{res}, 14, 3)\) 。
atom14_alt_gt_positions (Tensor) - 备选的真实原子坐标,部分氨基酸存在手性,因此使用手性对称的位置作为备选真实原子坐标值,shape为 \((N_{res}, 14, 3)\) 。
atom14_atom_is_ambiguous (Tensor) - 掩码表示是否是手性原子中,shape为 \((N_{res}, 14)\) 。
atom14_gt_exists (Tensor) - 掩码表明真实结构中原子是否存在,shape为 \((N_{res}, 14)\) 。
atom14_pred_positions (Tensor) - 全局坐标系中预测得到的原子坐标值,shape为 \((N_{res}, 14, 3)\) 。
- 返回:
Tensor。 atom14_alt_gt_positions 与 atom14_pred_positions 更接近的位置为1,否则是0,shape为 \((N_{res},)\) 。
- 支持平台:
Ascend
GPU
样例:
>>> import numpy as np >>> from mindsponge.common.utils import find_optimal_renaming >>> from mindspore import Tensor >>> n_res = 16 >>> atom14_gt_positions = Tensor(np.random.randn(n_res, 14, 3).astype(np.float32)) >>> atom14_alt_gt_positions = Tensor(np.random.randn(n_res, 14, 3).astype(np.float32)) >>> atom14_atom_is_ambiguous = Tensor(np.random.randn(n_res, 14).astype(np.float32)) >>> atom14_gt_exists = Tensor(np.random.randn(n_res, 14).astype(np.float32)) >>> atom14_pred_positions = Tensor(np.random.randn(n_res, 14, 3).astype(np.float32)) >>> out = find_optimal_renaming(atom14_gt_positions, atom14_alt_gt_positions, ... atom14_atom_is_ambiguous, atom14_gt_exists, atom14_pred_positions) >>> print(out.shape) (16,)