GET代码的代码和公式

news/2024/10/9 15:17:59/文章来源:https://www.cnblogs.com/csjywu01/p/18453843

1. 数据及代码中的变量

初始化变量

  • B: 存储每个 block(残基)的类型,来自 VOCAB.symbol_to_idx
  • A: 存储原子的类型,来自 VOCAB.get_atom_global_idx()block.to_data()
  • X: 存储原子的坐标信息。
  • atom_positions: 存储原子位置的索引,用于进一步计算原子的几何信息。
  • block_lengths: 记录每个 block(残基)包含的原子数量。
  • segment_ids: 记录这些 block 属于哪个分子或片段(即哪一个 blocks_list)。

2. 坐标的扰动

protein-protein的数据,选择其中一个protein进行扰动

3. 生成每个蛋白质global的坐标

每个蛋白质的首节点为global node

4. Embedding的方式

原子的embedding + 残基的embedding

5. 生成边

三种节点

  1. 基于蛋白质的全局节点:这个全局节点可以表示整个蛋白质的中心或代表整个蛋白质的全局信息。
  2. 基于每个 block (残基)的全局节点:每个 block(通常对应于蛋白质中的一个残基或一组残基)有一个对应的全局节点,这个节点表示该 block 的几何中心,主要用于局部信息的聚合和传播。
  3. block 中的普通节点:这些是 block 内的普通节点,通常代表实际的原子或残基。

block-level的边 (残基-残基)

  • intra_edges: 块内部的边,代表同一块(残基)内原子之间的连接。
  • inter_edges: 块之间的边,代表不同块(残基)之间的连接。
  • global_global_edges: 全局节点之间的边,连接全局节点(每个残基的中心节点)之间的边。
  • global_normal_edges: 全局节点和普通节点之间的边,连接全局节点和残基中的普通节点。

edge attr这个变量
不同种类的边会有不同的embedding,四种边,四种embedding

unit-level的边 (原子-原子)

从函数 _unit_edges_from_block_edges 的逻辑来看,它主要是基于 残基级别的边block_src_dst)来生成 原子级别的边。因此,这个函数处理的边仅限于跨残基(block)的边,不包含同一个残基内部的原子之间的边。

unit-level映射到block-level
xxx

6. 使用rbf实现距离的映射

1 维到 16 维,再到 4 维分组处理:

  • 1 维距离变成 16 维向量:首先,通过 RBF 嵌入,1 维的距离信息被映射到 16 维的向量空间。
  • 多头注意力中的 4 维分组:接着,这个 16 维的向量会被分成 4 份,每个头会负责其中的 4 维信息。这是多头注意力的常见做法,多个头可以在不同的特征空间上并行处理输入信息。

这个设计的好处是,通过 RBF 嵌入,模型可以从简单的 1 维距离中提取更丰富的特征,然后通过 多头注意力 将这些特征并行处理,进而捕捉到不同的特征维度中的相关性。

7. 多头注意力机制的计算

unit-level的注意力机制


由于公式中有下标 \(i,j\),这意味着是以 block 为单位 来计算每个 block 中所有原子对(即 \(p\)\(q\))之间的关系。换句话说,公式中的 \(R_{ij}[p, q]\) 表示的是 block \(i\)block \(j\) 中所有原子对之间的关系。

  • 是以 block 为单位,在每两个 block \(i\)\(j\) 之间计算它们内部所有原子对 \(p\)\(q\) 的关系。

block-level的注意力机制

  • 代码中的这部分逻辑实现了论文中的公式 (5) 和 (6)。它首先通过 scatter_mean 计算两个 block 间所有原子对关系的平均值 \(r_{ij}\),然后通过 scatter_softmax 对 block 间的权重进行 softmax 归一化,得到最终的 block 级别的注意力权重 \(\beta_{ij}\)

8. 更新的计算

9. 坐标的标准化


处理过程就是 对每个 block均值方差,然后对每个 block 中的数据进行标准化和缩放处理。这与公式 (16) 非常类似。

每个 block 的维度上 进行均值和方差的计算,并基于此进行数据的标准化处理。这确保了数据在每个 block 内部被标准化处理,消除不同 block 间的分布差异。

10. GET中transformer的图

11. Equivariant Layer Normalization

12. Equivariant Feed-Forward Network



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/810555.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库属性带下划线的注意事项(下划线bug)

①如果数据库的属性带有下划线,如下②实体类代码1 package com.lian.pojo;2 3 import com.baomidou.mybatisplus.annotation.IdType;4 import com.baomidou.mybatisplus.annotation.TableField;5 import com.baomidou.mybatisplus.annotation.TableId;6 import java.io.Serial…

高效开发最佳实践全面指南

学会表达在写复杂表达式时,可使用一个变量将表达式用变量的方式表示 函数、变量命名要语义化学会复盘花一些时间清理自己的代码 尽量以函数式进行编程拥抱变化在开发功能时,要考虑变化的情况。该死的产品经理在封装时要考虑能否封装成一个 js 模块,后续只需要调用响应的 API…

【 java 安全】Java对象都是堆上分配?看完Java中对象逃逸分析就知道答案了

原创 龙虾编程随着JIT编译期的发展与逃逸分析技术逐渐成熟,所有的对象都分配到堆上也渐渐变得不是一定的。在编译期间JIT会对代码做很多优化,其中有一部分优化是减少内存堆分配压力,这里有一种重要的技术叫逃逸分析。逃逸分析是一种可以有效减少Java程序中同步负载和内存堆分…

【SQL SERVER】PIVOT与UNPIVOT之行列转换

基础例子 在数据处理的过程中,常常遇到行列转换的问题。例如,人员的考勤。可能表格中,1~12月都在同一个字段,实际中,为了查看方便,同一个人的考勤记录,能在同一行,这样查询起来比较方便(行转列)。或者,表格设计的时候就是1~12月,在其他数据分析时需要将列转行。即类…

SkyWalking组件自定义链路追踪

SkyWalking组件通过添加相关配置就可以获取到接口的相关信息,更加方便的追踪和处理问题 接下去讲下步骤: 1、在service层添加两个注解;@Trace@Tags({@Tag(key = "getDataByCode",value = "returnedObj"),@Tag(key = "getDataByCode",value = …

沈师傅食品携手纷享销客CRM系统,加速数字化转型

沈师傅食品有限公司是一家专业研发、生产和销售鸡蛋干系列产品的大型集团 公司,技术与研发实力雄厚,先后获得多项国家专利。公司成立于2006年,开创 了全新的鸡蛋干品类,创办人沈国平先生素有“鸡蛋干之父”之称,先后被央视、 四川电视台、北京卫视、优酷、凤凰网等国内知名…

总奖金高达10万元!华为算法精英实战营“亲和任务调度系统”来啦!

在无线领域,利用AI技术对任务准确建模、多核系统任务最优调度等问题都是非常有价值的算法难题。随着物联网、大数据、AI时代的到来,时延、可靠性等指标要求越来越高,海量的数据分析、大量复杂的运算对CPU的算力要求越来越高。CPU内部的大部分资源用于缓存和逻辑控制,适合运…

webapi 创建(空)

1. 打开vs2019 ,选择创建新项目2. 选择ASP.NET Web 应用程序(.NET Framework)3. 配置项目信息(名称,位置,框架)4. 选择空模板(WebAPI复选框选中)5. 这样里面就没有MVC的三层,因为前后端分离,webapi中只有两层。6. 空的WebApi程序创建完成。

高产胜那啥,带你上线我的新项目!

希望大家能通过这个项目掌握企业级项目的开发、优化和上线方法,得到全方面编程技能和程序员素养的提升。大家好,我是程序员鱼皮。9月,我处于极度爆肝状态,成功完结了最新带大家做的项目 面试刷题平台 。当我们做完一个项目后,一定要记得把项目上线,这样才算是完成了学习的…

创建空webapi服务

1. 打开vs2019 ,选择创建新项目2. 选择ASP.NET Web 应用程序(.NET Framework)3. 配置项目信息(名称,位置,框架)4. 选择空模板(WebAPI复选框选中)5. 这样里面就没有MVC的三层,因为前后端分离,webapi中只有两层。6. 空的WebApi程序创建完成。

.NET 代码混淆工具-JIEJIE.NETWX

阅读目录前言 项目介绍 项目功能 项目效果:蓝猫机场 项目地址 最后前言 JIEJIE.NET是一款强大的开源.NET程序集混淆工具。它利用深度加密技术和多样化的混淆策略,有效地保护了.NET软件的版权和源代码安全,防止未经授权的访问和篡改。 项目介绍 JIEJIE.NET是一个用C#开发的开源…

深入理解 HDFS 错误恢复

我们从动态的角度来看 hdfs 先从场景出发,我们知道 hdfs 的写文件的流程是这样的:数据以 pipeline 的方式写入 hdfs ,然后对于读取操作,客户端选择其中一个保存块副本的 DataNode 来读数据.考虑这样两个场景:hbase rs 在写 wal log 的时候.如果一个 rs 挂了.那么这个 rs 会转移…