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???移除無用的單維度: 讓?msa,?resolution,?deletion_matrix?等數據符合 AlphaFold3 預期格式。
3???轉換?seq_length?和?num_alignments?為標量: 確保它們不會以張量形式存在,而是整數。

💡?最終作用:保證輸入數據的維度符合 AlphaFold3 訓練時的輸入要求,提高數據處理效率。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/71893.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/71893.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/71893.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【打卡d4】日期類--分組輸入

第一題:根據一年中的第 n 天計算日期 📌 知識點 判斷閏年: 閏年條件:能被 400 整除,或 能被 4 整除但不能被 100 整除。平年:2 月 28 天;閏年:2 月 29 天。 累加月份,找…

JAVA(5)-基礎概念

*固定格式 一.注釋和關鍵字 關鍵字:被賦予特定關系的詞 字母全部小寫,如class表示一個類 二.字面量 1.字面量類型 *字符串里面的類型是一句話,用雙引號 字符里面的類型只有一個字或字母 null只能用字符串的方式打印 2.制表符 \t 至少補…

本地部署Navidrome個人云音樂平臺隨時隨地暢聽本地音樂文件

文章目錄 前言1. 安裝Docker2. 創建并啟動Navidrome容器3. 公網遠程訪問本地Navidrome3.1 內網穿透工具安裝3.2 創建遠程連接公網地址3.3 使用固定公網地址遠程訪問 前言 今天我要給大家安利一個超酷的私有化音樂神器——Navidrome!它不僅讓你隨時隨地暢享本地音樂…

C++ 中的RAII(資源獲取及初始化)

C 中的RAII(資源獲取即初始化) RAII(Resource Acquisition Is Initialization)是C中一種重要的編程范式,全稱為“資源獲取即初始化”。它是一種通過對象生命周期管理資源(如內存、文件句柄、網絡連接等)的技術&#x…

藍橋杯嵌入式組第七屆省賽題目解析+STM32G431RBT6實現源碼

文章目錄 1.題目解析1.1 分而治之,藕斷絲連1.2 模塊化思維導圖1.3 模塊解析1.3.1 KEY模塊1.3.2 ADC模塊1.3.3 IIC模塊1.3.4 UART模塊1.3.5 LCD模塊1.3.6 LED模塊1.3.7 TIM模塊 2.源碼3.第七屆題目 前言:STM32G431RBT6實現嵌入式組第七屆題目解析源碼&…

DeepSeek技術名詞全解析:一場屬于中國AI的“覺醒時刻”

在2025年的人工智能浪潮中,一個名為DeepSeek的中國團隊,用一系列技術突破改寫了全球AI競爭的敘事。從“頓悟時刻”到“群體策略優化”,從“冷啟動”到“長鏈思考”,這些晦澀的技術術語背后,是一場關乎人類智能邊界的革…

【Go語言圣經1.1】

目標 學習Go 的編譯方式、包的組織方式以及工具鏈的統一調用方式 概念與定義 package Go 語言通過包來組織代碼。包類似于其它語言的庫librarries或模塊modules,每個包通常對應一個目錄,目錄中的所有 .go 文件都屬于同一個包。特殊的 main 包 : 當代碼…

主流大語言模型中Token的生成過程本質是串行的

主流大語言模型中Token的生成過程本質是串行的 flyfish 1. 串行生成 自回歸模型的核心邏輯: 大模型(如GPT-2)采用自回歸架構,每個Token的生成必須基于已生成的完整歷史序列。例如,生成“今天天氣很好”時&#xff1a…

基于PySide6的CATIA零件自動化著色工具開發實踐

引言 在汽車及航空制造領域,CATIA作為核心的CAD設計軟件,其二次開發能力對提升設計效率具有重要意義。本文介紹一種基于Python的CATIA零件著色工具開發方案,通過PySide6實現GUI交互,結合COM接口操作實現零件著色自動化。該方案成…

Python——計算機網絡

一.ip 1.ip的定義 IP是“Internet Protocol”的縮寫,即“互聯網協議”。它是用于計算機網絡通信的基礎協議之一,屬于TCP/IP協議族中的網絡層協議。IP協議的主要功能是負責將數據包從源主機傳輸到目標主機,并確保數據能夠在復雜的網絡環境中正…

Python實例:PyMuPDF實現PDF翻譯,英文翻譯為中文,并按段落創建中文PDF

基于PyMuPDF與百度翻譯的PDF翻譯處理系統開發:中文亂碼解決方案與自動化排版實踐 一 、功能預覽:將英文翻譯為中文后創建的PDF 二、完整代碼 from reportlab.lib.pagesizes import letter from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle

xunruicms失敗次數已達到5次,已被禁止登錄怎么處理?

針對遇到的“xunruicms失敗次數已達到5次,已被禁止登錄”的問題以下是幾種處理方法: 開啟開發者模式: 您可以開啟開發者模式來忽略賬號的禁止登錄限制。具體操作步驟如下: 訪問迅睿CMS的官方文檔,找到如何開啟開發者模…

復現 MODEST 機器人抓取透明物體 單目 ICRA 2025

MODEST 單目透明物體抓取算法,來自ICRA 2025,本文分享它的復現過程。 輸入單個視角的RGB圖像,模型需要同時處理深度和分割任務,輸出透明物體的分割結果和場景深度預測。 論文地址:Monocular Depth Estimation and Se…

新手學習爬蟲的案例

首先你的電腦上肯定已經安裝了python,沒安裝的去官網安裝,我使用的是Pycharm作為操作的IDE 環境準備 安裝必要的庫 爬蟲需要用到requests和beautifulsoup4 使用命令行或者終端運行下面的命令 pip install requests beautifulsoup4 -i https://mirrors.aliyun.com/pypi/sim…

Octave3D 關卡設計插件

課程參考鏈接 這位大佬有在視頻合集中有詳細的講解,個人體驗過,感覺功能很強大 https://www.bilibili.com/video/BV1Kq4y1C72P/?share_sourcecopy_web&vd_source0a41d8122353e3e841ae0a39908c2181 Prefab資源管理 第一步 在場景中創建一個空物體…

【Transformer優化】Transformer的局限在哪?

自2017年Transformer橫空出世以來,它幾乎重寫了自然語言處理的規則。但當我們在享受其驚人的并行計算能力和表征能力時,是否真正理解了它的局限性?本文將深入探討在復雜度之外被忽視的五大核心缺陷,并試圖在數學維度揭示其本質。 …

SpringBoot(一)--搭建架構5種方法

目錄 一、?Idea從spring官網下載打開 2021版本idea 1.打開創建項目 2.修改pom.xml文件里的版本號 2017版本idea 二、從spring官網下載再用idea打開 三、Idea從阿里云的官網下載打開 ?編輯 四、Maven項目改造成springboot項目 五、從阿里云官網下載再用idea打開 Spri…

Python爬蟲實戰:一鍵采集電商數據,掌握市場動態!

電商數據分析是個香餑餑,可市面上的數據采集工具要不貴得嚇人,要不就是各種廣告彈窗。干脆自己動手寫個爬蟲,想抓啥抓啥,還能學點技術。今天咱聊聊怎么用Python寫個簡單的電商數據爬蟲。 打好基礎:搞定請求頭 別看爬蟲…

樂鑫打造全球首款 PSA Certified Level 2 RISC-V 芯片

樂鑫科技 (688018.SH) 榮幸宣布 ESP32-C6 于 2025 年 2 月 20 日獲得 PSA Certified Level 2 認證。這一重要突破使 ESP32-C6 成為全球首款基于 RISC-V 架構獲此認證的芯片,體現了樂鑫致力于為全球客戶提供安全可靠、性能卓越的物聯網解決方案的堅定承諾。 PSA 安全…

圖像滑塊對比功能的開發記錄

背景介紹 最近,公司需要開發一款在線圖像壓縮工具,其中的一個關鍵功能是讓用戶直觀地比較壓縮前后的圖像效果。因此,我們設計了一個對比組件,它允許用戶通過拖動滑塊,動態調整兩張圖像的顯示區域,從而清晰…