残基和原子

news/2024/9/30 20:31:36

从您提供的 aa_feature 类的截图信息来看,以下是对 aa_feature 类中各个属性的整理:

主要属性说明

  1. aa_embedding:

    • residue_embedding: 一个嵌入层,形状为 (25, 64),用于表示氨基酸残基的嵌入。
    • res_pos_embedding: 一个嵌入层,形状为 (192, 64),用于表示氨基酸残基的位置嵌入。
    • atom_embedding: 一个嵌入层,形状为 (6, 16),用于表示原子类型的嵌入。
    • atom_pos_embedding: 一个嵌入层,形状为 (9, 16),用于表示原子位置的嵌入。
  2. atom_pad_idx: 值为 0,表示填充原子的索引。

  3. atom_mask_idx: 值为 1,表示掩码原子的索引。

  4. atom_pos_mask_idx: 值为 1,表示原子位置掩码的索引。

  5. atom_pos_bb_idx: 值为 2,表示骨架原子的索引。

  6. num_aa_type: 值为 25,表示氨基酸的种类数量(通常是20种标准氨基酸 + 特殊标记)。

其他属性

  • boa_idx, boh_idx, bol_idx: 分别为 22, 23, 24,可能是用于表示不同链(抗原链、重链、轻链)起始位置的索引。
  • mask_idx: 值为 21,表示掩码索引。
  • num_atom_type: 值为 6,表示原子类型的数量。
  • num_atom_pos: 值为 9,表示原子位置的数量。
  • dump_patches: 一个布尔值,默认 False,是否用于某些调试或保存中间结果。
  • backbone_only: 一个布尔值,默认 False,表示是否仅包含骨架原子。
  • fix_atom_weights: 一个布尔值,表示是否固定原子权重。

关于边和侧链的相关参数

  • sidechain_bonds: 一个张量,表示氨基酸侧链原子的键连接关系。
  • sidechain_bonds_mask: 一个布尔张量,表示侧链键的掩码。
  • sidechain_chi_angles_atoms: 包含 χ 角信息的参数,用于表示侧链旋转构象。

其他

  • edge_constructor: 可能是一个与图结构相关的对象,用于构建图中的边连接关系。
  • residue_atom_pos, residue_atom_type: 表示残基原子位置和类型的参数,分别记录氨基酸残基中原子的位置和类型信息。
  • residue_atom_weight: 存储每个氨基酸的原子权重信息。

总结

aa_feature 类是用于对氨基酸、原子、侧链等信息进行嵌入和编码的类,属性涉及到氨基酸残基、原子位置、原子类型、侧链连接等各种信息,适用于将氨基酸序列转化为模型可处理的嵌入向量,同时考虑了骨架、侧链结构以及不同氨基酸的特征。

def get_atom_weights(self, residue_types):
weights = torch.where(
self.atom_weights_mask,
self.zero_atom_weight,
self.atom_weight
) # [num_aa_classes, max_atom_number(n_channel)]
if not self.fix_atom_weights:
weights = F.normalize(weights, dim=-1)
return weights[residue_types] 我想知道这里对于每个residue,如果它的max channel是14,但实际上它没达到max channel,那么它的atom_weights

在这个代码片段中,get_atom_weights 函数计算了每个氨基酸残基的原子权重 (atom_weights)。由于每个氨基酸的原子数量不同,实际的原子数量通常小于 max_atom_number(即 14)。在这种情况下,未达到最大通道数的部分将通过 atom_weights_mask 被填充为 0。

代码中的关键部分解释

  1. self.atom_weights_mask:

    • 这是一个布尔张量,形状为 [num_aa_classes, max_atom_number]。其中每个元素为 True 表示当前氨基酸在该位置上没有原子,False 表示该位置有原子。
  2. self.zero_atom_weight:

    • 这是一个全零的权重张量,与 atom_weights 的形状相同。当 self.atom_weights_maskTrue 时,原子权重将被设置为 0。
  3. weights = torch.where(self.atom_weights_mask, self.zero_atom_weight, self.atom_weight):

    • 这个操作会将 self.atom_weights_mask 中为 True 的位置填充为 0,表示该位置没有原子,从而确保这些位置不影响计算。
  4. F.normalize(weights, dim=-1):

    • 如果 fix_atom_weightsFalse,则对每个氨基酸的权重向量进行归一化,确保它们在通道维度上(-1 维)具有单位范数。这意味着每个氨基酸的实际原子权重将在它的非零位置上进行归一化。

当实际原子数量小于 max_atom_number 时,atom_weights 的情况

  • 对于每个氨基酸,实际存在的原子位置会有权重值,而超出该氨基酸原子数量的部分(没有实际原子的通道位置)会被 self.atom_weights_mask 设置为 0。最终结果是,atom_weights 中没有实际原子的通道部分的权重值始终为 0。
  • 如果 fix_atom_weightsFalse,实际存在的原子权重会被归一化。

举例说明

假设一个氨基酸残基的实际原子数是 6,而 max_atom_number = 14,那么对应的 atom_weights 在计算后会是一个长度为 14 的向量,其中前 6 个元素包含归一化后的权重值,后 8 个元素全为 0。

总结

对于每个氨基酸残基,如果它的实际原子数量小于 max_atom_number(14),那么 get_atom_weights 函数会将多余的通道位置的权重设为 0,确保只有实际存在的原子通道具有有效的权重值。如果 fix_atom_weightsFalse,这些有效权重还会进行归一化处理。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Windows下安装Nessus 10.8.3安装破解教程

1、下载: 下载地址:https://www.tenable.com/downloads/nessus 浏览器访问 https://127.0.0.1:8834 重点:Register offline,选择“Managed Scanner”, 再选择 “Tenable security center”,最后一步设置账号密码,账号密码没要求。 ​​ 2、获取插件包 2.1在命令行模式下(…

Web入门 ——生成验证码

<!DOCTYPE html> <html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>验证码</title><script>let cu…

[OI] 猫树

喵~>_<概述 猫树是一种与线段树类似的数据结构 线段树在解决不带修区间问题时,对于单次查询是 \(O(\log)\) 的,此时运用猫树就可以将单次查询的复杂度降到 \(O(1)\) 合理运用分块的思想,在区间内分块,思考我们在块上查询的过程设黑色的线段为整个区间,红色的线段为查…

往来现金中五花八门的单据

导语: T+往来现金里有很多单据,收款单、收入单、付款单、费用单、其他应收单、其他应付单…… 每张单据还有不同的单据类型,比如收款单这一种里就有普通收款、预收款、直接收款。 新人难免懵,比如下面这位:很多小伙伴会认为收入单就是收款,其实不是这样的原理,看完下面你…

【Ehviewer绿色版】2.0.8.4最新版本下载2024安卓苹果

Ehviewer开发应用程序(App)是一项综合性的工作,涉及从构思到发布等多个环节。以下是开发一个基本应用程序的教程,Ehviewer包括从概念设计到发布的完整流程。Ehviewer本教程将分别介绍 iOS 和 Android 平台的开发过程。 ehviewer官方安装包下载: http://ez.oubaidu.com/ 一…

为什么一定要学习正则表达式

为什么一定要学正则表达式 前言 为什么有正则表达式,以及为什么一定要学习正则表达式? 本文不去讨论正则表达式的历史,流派以及完整而复杂的用法,仅仅通过一个简单的搜索场景,把你带入正则表达式的世界,从此你将感受到“海阔凭鱼跃、天高任鸟飞”的痛快!,回归正题,假设…