AF3 squeeze_features函数解读

AlphaFold3  data_transforms 模块的 squeeze_features 函数的作用去除 蛋白质特征张量中不必要的单维度(singleton dimensions)和重复维度,以使其适配 AlphaFold3 预期的输入格式。

源代码:

def squeeze_features(protein):
    """Remove singleton and repeated dimensions in protein features."""
    protein["aatype"] = torch.argmax(protein["aatype"], dim=-1)
    for k in [
        "domain_name",
        "msa",
        "num_alignments",
        "seq_length",
        "sequence",
        "superfamily",
        "deletion_matrix",
        "resolution",
        "between_segment_residues",
        "residue_index",
        "template_all_atom_mask",
    ]:
        if k in protein:
            final_dim = protein[k].shape[-1]
            if isinstance(final_dim, int) and final_dim == 1:
                if torch.is_tensor(protein[k]):
                    protein[k] = torch.squeeze(protein[k], dim=-1)
                else:
                    protein[k] = np.squeeze(protein[k], axis=-1)

    for k in ["seq_length", "num_alignments"]:
        if k in protein:
            protein[k] = protein[k][0]

    return protein

源码解读:

  • 该函数接收 protein(一个 包含蛋白质特征的字典)作为输入。
  • 主要任务:
    1. 将 one-hot aatype 转换为索引表示
    2. 移除 shape 为 (N, ..., 1) 的单维度
    3. 提取 seq_length 和 num_alignments 的实际数值
Step 1: 处理 aatype
protein["aatype"] = torch.argmax(protein["aatype"], dim=-1)
  • 输入 aatype(氨基酸类型)通常是 one-hot 编码
  • 通过 torch.argmax(..., dim=-1) 获取 索引
  • 目的:简化 aatype 的数据表示,使其直接存储氨基酸索引,而不是 one-hot 矩阵。
Step 2: 移除单维度
for k in [
    "domain_name",
    "msa",
    "num_alignments",
    "seq_length",
    "sequence",
    "superfamily",
    "deletion_matrix",
    "resolution",
    "between_segment_residues",
    "residue_index",
    "template_all_atom_mask",
]:
    if k in protein:
        final_dim = protein[k].shape[-1]  # 获取最后一维的大小
        if isinstance(final_dim, int) and final_dim == 1:
            if torch.is_tensor(protein[k]):
                protein[k] = torch.squeeze(protein[k], dim=-1)  # 去掉单维度
            else:
                protein[k] = np.squeeze(protein[k], axis=-1)
  • 遍历多个 protein 特征字段,检查它们是否存在。
  • 如果最后一维 final_dim 为 1,说明这个维度是无意义的单维度,需要去除:
    • 如果是 PyTorch 张量torch.Tensor),使用 torch.squeeze(dim=-1)
    • 如果是 NumPy 数组,使用 np.squeeze(axis=-1)
Step 3: 处理 seq_length 和 num_alignments
for k in ["seq_length", "num_alignments"]:
    if k in protein:
        protein[k] = protein[k][0]

seq_length 和 num_alignments 可能是 列表或张量,但它们的数值其实是一个单独的整数,因此需要转换成 标量值

结论

1️⃣ 转换 aatype: 从 one-hot 编码 转换成 索引表示
2️⃣ 移除无用的单维度: 让 msaresolutiondeletion_matrix 等数据符合 AlphaFold3 预期格式。
3️⃣ 转换 seq_length 和 num_alignments 为标量: 确保它们不会以张量形式存在,而是整数。

💡 最终作用:保证输入数据的维度符合 AlphaFold3 训练时的输入要求,提高数据处理效率。

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

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

相关文章

docker启动jenkins,jenkins中调用docker

在jenkins中执行docker 思路 jenkins中安装docker客户端,使用第三方的docker(需要付费)。jenkins中安装docker客户端,另一个容器中安装docker服务, docker-in-docker,需要特权模式,或者第三方的工具。jenkins中什么都…

【GPT入门】第9课 思维树概念与原理

【GPT入门】第9课 思维树概念与原理 1.思维树概念与原理2. 算24游戏的方法 1.思维树概念与原理 思维树(Tree of Thought,ToT )是一种大模型推理框架,旨在解决更加复杂的多步骤推理任务,让大模型能够探索多种可能的解决…

时态--02--⼀般将来时

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 ⼀般将来时1.肯定句结构:主am/is/aregoing to do(v.原型) 2.否定句结构:主am/is/arenotgoing to do(v.原型) 3.一般疑问句结构:Am/Is/Are(提句⾸)主going to do (v.…

模型压缩技术(二),模型量化让模型“轻装上阵”

一、技术应用背景 在人工智能蓬勃发展的浪潮下,大模型在自然语言处理、计算机视觉等诸多领域大放异彩,像知名的GPT以及各类开源大语言模型,其规模与复杂度持续攀升。然而,这一发展也带来了挑战,模型越大,对…

swift-5-汇编分析闭包本质

一、枚举、结构体、类都定义方法 方法占用对象的内存么? 不占用 方法的本质就是函数 方法、函数都存放在代码段,因为方法都是公共的,不管 对象一还是对对象二调用都是一样的,所以放在代码段,但是每个对象的成员不一样所…

通义千问本地配置并实现微调

通义千问本地配置并实现微调 最小Qwen模型大小942mb from modelscope import snapshot_download model_dir = snapshot_download(“qwen/Qwen2.5-0.5B”, cache_dir=“./models2.5”) Qwen2.5-0.5B:942MB from modelscope import snapshot_download model_dir = snapshot_d…

< 自用文儿 > CertBot 申请 SSL 证书 使用 challenge 模式 避开防火墙的阻挡

环境: 腾讯 VPS 腾讯会向你销售 SSL , 这个本是免费的。CertBot 默认申请证书要用到 80 端口,会蹭边什么什么条款,备案法律来阻止80端口的通讯,没有网站也一样被阻拦。 通过腾讯买的域名: bestherbs.cn …

<建模软件安装教程1>Blender4.2系列

Blender4.2安装教程 0注意:Windows环境下安装 第一步,百度网盘提取安装包。百度网盘链接:通过网盘分享的文件:blender.zip 链接: https://pan.baidu.com/s/1OG0jMMtN0qWDSQ6z_rE-9w 提取码: 0309 --来自百度网盘超级会员v3的分…

SpringBoot统一响应类型3.1.1版本

前言: 通过实践而发现真理,又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识,又从理性认识而能动地指导革命实践,改造主观世界和客观世界。实践、认识、再实践、再认识,这种形式,循环往…

如是APP:AI精准匹配需求,信用体系重构信任,双轮驱动打造无套路电商

如是APP:AI精准匹配需求,信用体系重构信任,双轮驱动打造无套路电商 2024年3月,一款结合AI导购与信用体系的电商平台——如是APP即将上线。如是APP通过AI对话帮助用户精准快速购物,并通过全维度信用体系实现产品信息透明化,旨在打造一个“信息对称”的电商平台,实现“无套路”的…

[SAP MM] 查看物料主数据的物料类型

创建物料主数据时,必须为物料分配物料类型,如原材料或半成品 在标准系统中,物料类型ROH(原材料)的所有物料都要从外部采购,而类型为NLAG(非库存物料)的物料则可从外部采购也可在内部生产 ① 特殊物料类型:NLAG 该物料…

Linux中部署DeepSeek,WSL(ubunt)中使用ollama部署deepseek-R1-7b

想在自己的Win11电脑上部署Linux的DeepSeek模型,但在网上一直没有找到合适的相应教程,自己查询各种网上资源,以及询问一些AI大模型后成功安装,并整理了以下步骤。仅作为个人学习笔记使用,由于本人对各方面知识掌握不足…

NoteGen是一款开源跨平台的 AI 笔记应用,专注于 recording 和 writing ,基于 Tauri 开发

一、软件介绍 文末提供程序和源码下载 NoteGen 是一款专注于记录和写作的跨平台 AI 笔记应用,基于 Tauri 开发。NoteGen 的核心理念是将记录、写作和 AI 结合使用,三者相辅相成。记录功能可以帮助用户快速捕捉和整理碎片化知识。整理功能是连接记录和写…

C++性能分析工具

C性能分析工具常用的三种。perf、gprof、pprof perf工具需要root权限,设置perf的suid位并不行,需要设置perf对应的内核参数。 perf使用: g -o example example.cpp -O2 # 运行程序并采样 sudo perf record -g ./example # 查看采样结果 sud…

【编译器】VSCODE搭建ESP32-C3

【编译器】VSCODE搭建ESP32-C3 文章目录 [TOC](文章目录) 前言一、下载配置二、编译三、烧录四、参考资料总结 前言 使用工具: 1. 提示:以下是本篇文章正文内容,下面案例可供参考 一、下载配置 安装IDF,打开例程 二、编译 三…

《云原生监控体系构建实录:从Prometheus到Grafana的观测革命》

PrometheusGrafana部署配置 Prometheus安装 下载Prometheus服务端 Download | PrometheusAn open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach.https://prometheus.io/…

LLM大模型-李宏毅

本博客是对b站上,李宏毅大模型课程的简单记录。 大模型入门到进阶,一套全解决! 第1讲:生成式AI是什么? ChatGPT【Chat Generative Pre-trained Transformer】每一步都是文字接龙,其实就是分类问题 文字接…

Codeforces Round 976 (Div. 2) (部分题解)

先做一个提前的小结,感觉这场每题有很特别的结论或者很难去guess的点,但就是能对,可能在证明上有点复杂吧。 A. Find Minimum Operations 思路:题意的话就是用来代替的最小操作步骤, 这里其实可以转换成求将改写成进…

DMR协议空中接口部分

文章目录 前言DMR 空中接口协议栈模型无线空中接口发送与接收参考模型DMR的TDMA结构帧结构突发结构数据与控制突发语音突发公共广播信道突发 数据信息传送时序语音信息传送时序帧同步 调制解调4-CPFSK正交调制4-CPFSK解调基带成型滤波 信道编码类型参考 前言 DMR 协议的标准号主…

专题二串联所有单词的子串

1.题目 题目分析: 有一个字符串s和字符串数组,如何字符串数组里面的元素可以组成一个字符串,然后要在字符串里面找到连续子串跟组成的字符串一样,返回起始地址。 2.算法原理 这道题可以把字符串数组的元素string看出char&#x…