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

AF3 gdt函数解读

AlphaFold3的函数gdt、gdt_ts以及gdt_ha实现了 Global Distance Test (GDT) 评分计算,用于衡量蛋白质结构预测的准确性。GDT 评分衡量的是 预测结构(p1) 和 真实结构(p2) 之间的相似度,主要用于蛋白质结构比较。

源代码:

def gdt(p1, p2, mask, cutoffs):
    """
    Calculate the Global Distance Test (GDT) score for protein structures.

    Args:
        p1 (torch.Tensor): Coordinates of the first structure [..., N, 3].
        p2 (torch.Tensor): Coordinates of the second structure [..., N, 3].
        mask (torch.Tensor): Mask for valid residues [..., N].
        cutoffs (list): List of distance cutoffs for GDT calculation.

    Returns:
        torch.Tensor: GDT score [...].
    """
    # Ensure inputs are float
    p1 = p1.float()
    p2 = p2.float()
    mask = mask.float()

    # Calculate number of valid residues per batch
    n = torch.sum(mask, dim=-1)

    # Calculate pairwise distances
    distances = torch.sqrt(torch.sum((p1 - p2)**2, dim=-1))

    scores = []
    for c in cutoffs:
        # Calculate score for each cutoff, accounting for the mask
        score = torch.sum((distances <= c).float() * mask, dim=-1) / (n + 1e-8)
        scores.append(score)

    # Stack scores and average across cutoffs
    scores = torch.stack(scores, dim=-1)
    return torch.mean(scores, dim=-1)


def gdt_ts(p1, p2, mask):
    """
    Calculate the Global Distance Test Total Score (GDT_TS).

    Args:
        p1 (torch.Tensor): Coordinates of the first structure [..., N, 3].
        p2 (torch.Tensor): Coordinates of the second structure [..., N, 3].
        mask (torch.Tensor): Mask for valid residues [..., N].

    Returns:
        torch.Tensor: GDT_TS score [...].
    """
    return gdt(p1, p2, mask, [1., 2., 4., 8.])


def gdt_ha(p1, p2, mask):
    """
    Calculate the Global Distance Test High Accuracy (GDT_HA) score.

    Args:
        p1 (torch.Tensor): Coo

http://www.kler.cn/a/542883.html

相关文章:

  • MySQL 索引失效案例:字符集不匹配的隐蔽影响
  • Wiki文档转换为Word技术
  • DeepSeek模型架构及优化内容
  • NO.13十六届蓝桥杯备战|条件操作符|三目操作符|逻辑操作符|!||||(C++)
  • 模块的加载机制
  • 1.1 单元测试核心原则
  • nginx安装并部署前端项目【包括Linux与Windows系统】
  • 前端性能分析常见内容
  • C语言蓝桥杯1003: [编程入门]密码破译
  • 香港中文大学 Adobe 推出 MotionCanvas:开启用户掌控的电影级图像视频创意之旅。
  • 基于Springboot(Maven项目)——分页
  • 在 debian 12 上安装 mysqlclient 报错
  • 代码随想录--977有序数组的平方
  • Java Stream 全面解析
  • 使用EVE-NG-锐捷实现三层数据通信
  • 曝苹果2026年秋季推首款折叠iPhone
  • Git 安全与权限管理
  • 深入探索现代CSS:从基础到未来趋势
  • 128,【1】buuctf [极客大挑战 2019]PHP
  • 浅谈自己对RPC的理解
  • AspectJ 下 Advisor 的排序过程
  • untiy3d 触发和碰撞区别
  • innovus如何分步长func和dft时钟
  • MacBook Pro M2安装deepseek
  • C++20 新特性解析
  • 科技查新要怎么做