当前位置: 首页 > article >正文

蛋白质残基的距离计算以及径向基函数变换中的维度变化

1. 计算Ca距离的函数

def _dist(self, X, mask, eps=1E-6):
    mask_2D = torch.unsqueeze(mask,1) * torch.unsqueeze(mask,2)
    dX = torch.unsqueeze(X,1) - torch.unsqueeze(X,2)
    D = mask_2D * torch.sqrt(torch.sum(dX**2, 3) + eps)
    D_max, _ = torch.max(D, -1, keepdim=True)
    D_adjust = D + (1. - mask_2D) * D_max
    sampled_top_k = self.top_k
    D_neighbors, E_idx = torch.topk(D_adjust, np.minimum(self.top_k, X.shape[1]), dim=-1, largest=False)
    return D_neighbors, E_idx

_dist 函数主要用于计算一批数据中每个残基的邻居距离以及相应的邻居索引。输入的 X 是每个残基的 Ca 原子坐标,维度为 (B, L, 3)mask 的维度为 (B, L),用于标记有效的残基。下面解释每个张量的维度变化过程:

输入

  • X 的维度是 (B, L, 3),其中:
    • B 是 batch size。
    • L 是残基的数量。
    • 3 是 Ca 原子的三维坐标。
  • mask 的维度是 (B, L),表示每个残基的有效性(0 或 1)。

计算步骤与维度变化

  1. mask_2D = torch.unsqueeze(mask, 1) * torch.unsqueeze(mask, 2)

    • mask 通过 unsqueeze 变成 (B, 1, L) 和 (B, L, 1) 两个张量。
    • 这两个张量相乘后得到 mask_2D,维度为 (B, L, L)

http://www.kler.cn/news/354208.html

相关文章:

  • 第21~22周Java主流框架入门-Spring 2.SpringAOP面向切面编程
  • 潜水定位通信系统的功能和使用方法_鼎跃安全
  • SpringBoot+Vue+Uniapp智能社区服务小程序系统(源码+lw+部署文档+讲解等)
  • 前缀和--一维和二维模板
  • 【MySQL】索引的机制、使用
  • 机器学习—特性缩放
  • 执行 start.sh 脚本时打开一个单独的运行窗口
  • pdf内容三张以上转图片,使用spire.pdf.free
  • 【选择C++游戏开发技术】
  • 自动驾驶TPM技术杂谈 ———— 惯性导航定位技术
  • 速盾:高防 cdn 提供 cc 防护?
  • 双回路防静电监控仪安全保护生产全流程
  • Linux基础项目开发day2:量产工具——输入系统
  • 【存储设备专栏 2.6 -- linux 启动盘制作详细介绍】
  • Vert.x,Web - Restful API
  • 记EDU某人社局的漏洞挖掘复盘
  • 四种隔离级别是如何逐步加强事务隔离的,以及在底层如何使用锁机制和多版本控制(MVCC)来实现
  • HCIP--1
  • 新媒体优势
  • Spring Boot驱动的在线考试系统:JavaWeb技术实战