mindsponge.metrics.backbone
- mindsponge.metrics.backbone(traj, backbone_affine_tensor, backbone_affine_mask, fape_clamp_distance, fape_loss_unit_distance, use_clamped_fape)[source]
Backbone FAPE Loss using frame_aligned_point_error_map function. Jumper et al. (2021) Suppl. Alg. 20 "StructureModule" line 17.
- Parameters
traj (Tensor) – The series of backbone frames(trajectory) generated by Structure module, the shape is
with the recycle number of recycle in Structure module, the number of residues in protein, for the last dimension, the first 4 elements are the affine tensor which contains the rotation information, the last 3 elements are the translations in space.backbone_affine_tensor (Tensor) – The ground truth backbone frames of shape
.backbone_affine_mask (Tensor) – The binary mask for backbone frames of shape
.fape_clamp_distance (float) – Distance cutoff on error beyond which gradients will be zero.
fape_loss_unit_distance (float) – The unit distance of backbone FAPE loss, used to scale distances.
use_clamped_fape (float) – The indicator that if backbone FAPE loss is clamped, 0 or 1, 1 means clamping.
- Returns
fape (Tensor) - Backbone FAPE loss (clamped if use_clamped_fape is 1) of last recycle of Structure module with shape
.loss (Tensor) - Averaged Backbone FAPE loss (clamped if use_clamped_fape is 1) of all recycle of Structure module with shape
.no_clamp (Tensor) - Backbone FAPE loss of last recycle of Structure module with shape
.
- Supported Platforms:
Ascend
GPU
Examples
>>> import numpy as np >>> np.random.seed(0) >>> from mindsponge.metrics import backbone >>> from mindspore import dtype as mstype >>> from mindspore import Tensor >>> traj = Tensor(np.random.rand(8, 256, 7)).astype(mstype.float32) >>> backbone_affine_tensor = Tensor(np.random.rand(256, 7)).astype(mstype.float32) >>> backbone_affine_mask = Tensor(np.random.rand(256,)).astype(mstype.float16) >>> fape_clamp_distance = 10.0 >>> fape_loss_unit_distance = 10.0 >>> use_clamped_fape = 1 >>> fape, loss, noclamp = backbone(traj, backbone_affine_tensor, backbone_affine_mask, ... fape_clamp_distance, fape_loss_unit_distance, use_clamped_fape) >>> print(fape, loss, noclamp) 0.12813742 0.12904957 0.12813742