AF3 MSAModule类源码解读

devtools/2025/1/20 12:44:44/

AlphaFold3 中的MSAModule 类 是一个用于处理多序列比对(MSA)的模块,核心功能是通过 MSAModuleBlock 堆叠和梯度检查点优化,实现对 MSA 表征和配对表征的高效计算。调用该类最终返回更新后的配对表征z,更新后的z含有MSA特征和目的蛋白质序列信息。

源代码:

class MSAModule(nn.Module):def __init__(self,no_blocks: int = 4,c_msa: int = 64,c_token: int = 384,c_z: int = 128,c_hidden: int = 32,no_heads: int = 8,c_hidden_tri_mul: int = 128,c_hidden_pair_attn: int = 32,no_heads_tri_attn: int = 4,transition_n: int = 4,pair_dropout: float = 0.25,fuse_projection_weights: bool = False,clear_cache_between_blocks: bool = False,blocks_per_ckpt: int = 1,inf: float = 1e8):"""Initialize the MSA module.Args:no_blocks:number of MSAModuleBlocksc_msa:MSA representation dimc_token:Single representation dimc_z:pair representation dimc_hidden:hidden representation dimno_heads:number of heads in the pair averagingc_hidden_tri_mul:hidden dimensionality of triangular multiplicative updatesc_hidden_pair_attn:hidden dimensionality of triangular attentionno_heads_tri_attn:number of heads in triangular attentiontransition_n:multiplication factor for the hidden dim during the transitionpair_dropout:dropout rate within the pair stackfuse_projection_weights:whether to use FusedTriangleMultiplicativeUpdate or notblocks_per_ckpt:Number of blocks per checkpoint. If None, no checkpointing is used.clear_cache_between_blocks:Whether to clear CUDA's GPU memory cache between blocks of thestack. Slows down each block but can reduce fragmentation"""super(MSAModule, self).__init__()self.blocks = nn.ModuleList([MSAModuleBlock(c_msa=c_msa,c_z=c_z,c_hidden=c_hidden,no_heads=no_heads,c_hidden_tri_mul=c_hidden_tri_mul,c_hidden_pair_attn=c_hidden_pair_attn,no_heads_tri_attn=no_heads_tri_attn,transition_n=transition_n,pair_dropout=pair_dropout,fuse_projection_weights=fuse_projection_weights,inf=inf)for _ in range(no_blocks)

http://www.ppmy.cn/devtools/152087.html

相关文章

自制游戏——国争

自制小游戏,分享给大家 //0——步兵(k) //1——弓箭手(k) //2——炮兵(k) //3——土地(平方公里) //4——能量(t) //5——钱(元宝…

【RK3588 docker编译问题】

问题集合 问题1: 编译lunch出现问题 12:31:21 Build sandboxing disabled due to nsjail error. 12:31:22 Build sandboxing disabled due to nsjail error. In file included from build/make/core/config.mk:313: In file included from build/make/core/envset…

从零创建一个 Django 项目

1. 准备环境 在开始之前,确保你的开发环境满足以下要求: 安装了 Python (推荐 3.8 或更高版本)。安装 pip 包管理工具。如果要使用 MySQL 或 PostgreSQL,确保对应的数据库已安装。 创建虚拟环境 在项目目录中创建并激活虚拟环境&#xff…

Java基础--类和对象

目录 什么是类? 什么是对象 为什么java会设计对象 Java对象该怎么用 程序执行流程 类的加载顺序 什么是类? 类是构建对象的模板,一个类可以创建多个对象,每个对象的数据的最初来源来自对象 public class Student{public in…

Python从0到100(八十四):神经网络-卷积神经网络训练CIFAR-10数据集

前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…

Vue.js组件开发-解决PDF签章预览问题

在Vue.js组件开发中,解决PDF签章预览问题可能涉及多个方面,包括选择合适的PDF预览库、配置PDF.js(或其封装库如vue-pdf)以正确显示签章、以及处理可能的兼容性和性能问题。 步骤和建议: 1. 选择合适的PDF预览库 ‌vu…

数字图像处理:实验三

hello!uu们大家好,这里是我们第三章实验的学习,在这里我们将学到以下几个任务,第一、基本灰度变换操作,第二、二值化的应用,额外的还有GMM模型的操作等,我们先从前面开始,了解知识点…

设计和优化用于 AR、HUD 和高级显示系统的表面浮雕光栅

表面浮雕光栅是许多光学系统中的关键组件,在控制增强现实 (AR) 显示器、平视显示器 (HUD) 和其他先进光子器件中的光传播方面发挥着关键作用。作为在这个领域工作的工程师和设计师,您了解针对特定应用优化这…