mindsponge.metrics.between_residue_bond

mindsponge.metrics.between_residue_bond(pred_atom_positions, pred_atom_mask, residue_index, aatype, tolerance_factor_soft=12.0, tolerance_factor_hard=12.0)[源代码]

该函数主要用于计算序列上连续氨基酸残基之间是否存在肽键长度及角度冲突,可以对蛋白质结构冲突进行惩罚。(针对蛋白质全原子坐标编码分为两种形式:分别为稀疏编码和稠密编码,详见:common.make_atom14_positions

参数:
  • pred_atom_positions (Tensor) - 以稠密或稀疏编码方式编码的蛋白质所有原子三维坐标,shape \((N_{res}, 37, 3)\) (稠密编码)。

  • pred_atom_mask (Tensor) - 以稠密或稀疏编码方式编码的蛋白质全原子mask, shape \((N_{res}, 37, 3)\) (稠密编码)。

  • residue_index (Tensor) - 蛋白质序列编码index信息,大小从1到 \(N_{res}\) 。shape \((N_{res}, )\)

  • aatype (Tensor) - 蛋白质一级序列编码,编码方式参考 common.residue_constants.restype_order,取值范围 \([0,20]\) ,若为20表示该氨基酸为unkown(UNK)。 shape \((N_{res}, )\)

  • tolerance_factor_soft (float) - 根据蛋白质结构分布的标准偏差测量的软公差因子,默认为 12.0 。

  • tolerance_factor_hard (float) - 根据蛋白质结构分布的标准偏差测量的硬公差因子,默认为 12.0 。

返回:
  • c_n_loss_mean (Tensor) C-N 肽键长度冲突损失。shape: ( )

  • ca_c_n_loss_mean (Tensor) CA-C-N键角的冲突损失。shape: ( )

  • c_n_ca_loss_mean (Tensor) C-N-CA键角的冲突损失。shape: ( )

  • per_residue_loss_sum (Tensor) 所有氨基酸残基的冲突损失总和,包括键角键长损失。shape \((N_{res}, )\)

  • per_residue_violation_mask (Tensor) 指示每个氨基酸残基是否存在键长或键角损失;1代表存在,0代表不存在。shape \((N_{res}, )\)

符号:
  • \(N_{res}\) - 蛋白质中氨基酸个数,按蛋白质一级序列排列。

支持平台:

Ascend GPU

样例:

>>> import mindspore as ms
>>> from mindspore import Tensor
>>> import numpy as np
>>> from mindsponge.metrics import between_residue_bond
>>> np.random.seed(1)
>>> pred_atom_positions = Tensor(np.random.random(size=(50,37,3)), ms.float32)
>>> pred_atom_mask = Tensor(np.random.randint(2,size=(50,37)), ms.int32)
>>> residue_index = Tensor(np.array(range(50)), ms.int32)
>>> aatype = Tensor(np.random.randint(20, size=(50,)), ms.int32)
>>> tolerance_factor_soft = 12.0
>>> tolerance_factor_hard = 12.0
>>> result = between_residue_bond(pred_atom_positions, pred_atom_mask, residue_index, aatype,
>>>                              tolerance_factor_soft, tolerance_factor_hard)
>>> for x in result:
>>>    print(x)
0.52967054
0.6045412
0.39251995
[0.62809587 1.6770853  1.7221183  1.0325309  1.3417522  1.79882
1.7718308  1.5092779  1.5653987  1.9564128  1.6804926  1.6051245
1.5033073  1.5895741  2.1686926  2.126039   1.3837843  1.2554975
1.8135165  2.1593785  1.9408598  1.7281027  1.8666006  1.9623451
1.8177024  1.7543832  1.5969353  1.2150483  0.9833115  1.219868
1.7008476  1.6968286  1.7648234  1.5584714  1.370602   1.8525059
1.7938454  1.5313196  1.6940074  1.8512855  1.8222975  1.6600168
1.9163743  1.7201058  1.6288358  1.6055745  1.521946   1.6553445
1.6175683  0.894606 ]
[1. 1. 0. 1. 1. 0. 0. 1. 1. 1. 1. 0. 0. 0. 0. 1. 1. 1. 1. 1. 0. 1. 1. 0.
0. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 1. 1. 1. 1. 0.
1. 1.]