RFDiffusion 計算鍵角函數get_ang解讀

get_ang?函數(kinematics.py包中)計算三組原子?a,b,c 所形成的平面角(planar angle),即?b?為頂點,?a,b,c?所確定的角度。

源代碼:

def get_ang(a, b, c):"""calculate planar angles for all consecutive triples (a[i],b[i],c[i])from Cartesian coordinates of three sets of atoms a,b,c Parameters----------a,b,c : pytorch tensors of shape [batch,nres,3]store Cartesian coordinates of three sets of atomsReturns-------ang : pytorch tensor of shape [batch,nres]stores resulting planar angles"""v = a - bw = c - bv /= torch.norm(v, dim=-1, keepdim=True)w /= torch.norm(w, dim=-1, keepdim=True)vw = torch.sum(v*w, dim=-1)return torch.acos(vw)c6d[b,i,j,torch.full_like(b,3)] = get_ang(Ca[b,i], Cb[b,i], Cb[b,j])

代碼解讀:

輸入參數

  • a, b, c:形狀為?[batch, nres, 3]?的 PyTorch 張量,表示多個樣本中各殘基的三組原子笛卡爾坐標。
    • batch:批量大小。
    • nres:每個樣本的殘基數量。
    • 3:表示每個原子的三維坐標?(x,y,z)(x,y,z)。
輸出
  • ang:形狀為?[batch, nres]?的張量,表示每個樣本中殘基對?a,b,ca,b,c?形成的平面角(弧度)。
步驟解析
  1. 計算向量

    • v = a - b:從?bb?指向?aa?的向量。
    • w = c - b:從?bb?指向?cc?的向量。
  2. 單位化向量

    • v /= torch.norm(v, dim=-1, keepdim=True):將向量?vv?歸一化。
    • w /= torch.norm(w, dim=-1, keepdim=True):將向量?ww?歸一化。
  3. 計算夾角的余弦值

    • vw = torch.sum(v*w, dim=-1):向量?vv?和?ww?的點積,結果是每個殘基間的余弦值。
  4. 余弦值轉角度

    • torch.acos(vw):使用反余弦函數計算角度,返回弧度制的角度。

? ? ? ? ? 函數調用

c6d[b, i, j, torch.full_like(b, 3)] = get_ang(Ca[b, i], Cb[b, i], Cb[b, j])
  • Ca[b, i]:第?bb?個樣本中,第?i 個殘基的?CαCα??坐標。
  • Cb[b, i]?和?Cb[b, j]:第?b?個樣本中,第?i?和第?j?個殘基的?Cβ?坐標。
  • get_ang(Ca[b, i], Cb[b, i], Cb[b, j]):計算第?b?個樣本中,以 i 殘基?Cβ?為頂點、以 i 殘基?Cα 和 j 殘基 Cβ 確定的角度。
  • c6d[b, i, j, torch.full_like(b, 3)]:將計算結果存儲到一個 6D 張量(可能用于結構表征)。

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

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

相關文章

Bananna Pi開源社區聯合矽昌通信打造開源的低成本Wifi5路由器

香蕉派 BPI-Wifi5 路由器采用矽昌SF19A2890S2芯片方案設計。它是一款高性能無線路由器,適用于小微企業、家庭和其他網絡環境。Banana Pi開源社區提供整體解決方案。所有代碼開源,用戶可以在上面自由開發自己的應用。 Banana Pi wifi5 路由器github代碼: …

圖像融合算法筆記2024 CDTNet

目錄 ControlCom-Image-Composition CDTNet-High-Resolution-Image-Harmonization 依賴項: trilinear 推理代碼ok: ControlCom-Image-Composition diffusesion https://github.com/bcmi/ControlCom-Image-Composition CDTNet-High-Resolution-Image-Harmonization

item2 for macos

安裝Item2 brew install iterm2 查看終端類型 cat /etc/shells Mac OS X 10.15 已經將默認的shell從Bash換成了zsh,所以不用安裝,10.15以前的可以使用下面的命令進行安裝 brew install zsh 安裝Oh My ZSH # curl sh -c "$(curl -fsSL https://ra…

https證書生成、linux 生成https證書、nginx 配置https證書

1. 檢查 Certbot 是否已安裝 which certbot 2. 安裝 Certbot 2.1啟用 EPEL 倉庫(如果尚未啟用): sudo yum install epel-release 2.2 安裝 Certbot 和 Nginx 插件: sudo yum install certbot python3-certbot-nginx 2.3驗證安…

Pytest-Bdd-Playwright 系列教程(14):Docstring 參數

Pytest-Bdd-Playwright 系列教程(14):Docstring 參數 前言一、什么是docstring?二、基本語法三、主要特點四、實際例子五、注意事項六、使用建議總結 前言 在自動化測試的過程中,我們經常需要處理復雜的測試數據或需要輸入多行文…

手機租賃系統開發指南一站式服務流程解析

內容概要 手機租賃系統的開發是一個復雜但有趣的過程,像搭建樂高一樣,只要找到合適的模塊,就能打造出一個賓至如歸的租賃平臺。在這部分,我們將對開發流程的整體結構進行簡要概述,并指出每個環節的重要性。 首先&…

OpenAI 正式賦予 ChatGPT 通過視頻實時與用戶互動的能力

每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎?訂閱我們的簡報,深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同,從行業內部的深度分析和實用指南中受益。不要錯過這個機會,成為AI領…

深入了解C++中const的用法

文章目錄 一、C中的const如何理解?二、C中的const與C語言中的const有何區別?三、const與指針、引用的結合使用 一、C中的const如何理解? 在C中,const是一個關鍵字,用來表示常量性,意在告訴編譯器某些變量或…

EasyExcel設置表頭上面的那種大標題(前端傳遞來的大標題)

1、首先得先引用easyExcel的版本依賴&#xff0c;我那 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.6</version> </dependency> 2、然后得弄直接的實體類&#xff0c;&…

純血鴻蒙崛起,原生Android挑戰?兩大操作系統巔峰對決,智能設備未來誰主沉浮?

鴻蒙HarmonyOS和原生Android系統雖然在一些方面相似&#xff0c;但在架構、設計理念、API、開發工具等方面存在一些差異。鴻蒙系統的目標是跨設備、分布式的操作系統&#xff0c;強調多設備協同和資源共享&#xff0c;而Android則主要集中在智能手機和移動設備領域。 下面將從…

計算機網絡:傳輸層、應用層、網絡安全、視頻/音頻/無線網絡、下一代因特網

目錄 &#xff08;五&#xff09;傳輸層 1&#xff0e;傳輸層尋址與端口 2&#xff0e;無連接服務與面向連接服務 3. 傳輸連接的建立與釋放 4. UDP 的優點 5. UDP 和 TCP 報文段報頭格式 6. TCP 的流量控制 7&#xff0e;TCP 的擁塞控制 8. TCP 傳送連接的管理 &#…

【前端開發】HTML+CSS網頁,可以拿來當作業(免費開源)

HTML代碼 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content_lizhongyu"widthdevice-width, initial-scale1.0"><title>小兔鮮兒-新鮮、惠民、快捷<…

CV(4)--邊緣提取和相機模型

前言 僅記錄學習過程&#xff0c;有問題歡迎討論 邊緣提取&#xff08;涉及語義分割&#xff09;&#xff1a; 圖象的邊緣是指圖象局部區域亮度變化顯著的部分,也有正負之分&#xff0c;暗到亮為正 求邊緣的幅度&#xff1a;sobel&#xff0c;Canny算子 圖像分高頻分量和低…

【信息系統項目管理師】高分論文:論信息系統項目的整合管理(陽光信訪工作平臺)

更多內容請見: 備考信息系統項目管理師-專欄介紹和目錄 文章目錄 正文一、明確目標,制定項目章程二、精心規劃,制定項目管理計劃三、細心嚴謹,指導和管理項目執行四、組織學習,管理項目知識五、多措并舉,對項目進行有效的監控六、規范流程,控制項目整體變更七、嚴謹高效…

智能技術引領未來:自動圖像標注的創新應用與發展

&#x1f351;個人主頁&#xff1a;Jupiter. &#x1f680; 所屬專欄&#xff1a;傳知代碼 歡迎大家點贊收藏評論&#x1f60a; 目錄 概述算法原理核心邏輯效果演示使用方式參考文獻 參考文獻&#xff1a;需要本文的詳細復現過程的項目源碼、數據和預訓練好的模型可從該地址處獲…

C語言-排序

常見的排序算法分為以下四種&#xff0c;插入排序&#xff0c;選擇排序&#xff0c;交換排序&#xff0c;歸并排序。 一、插入排序 (一)直接插入排序 直接插入排序&#xff0c;將一段數組看做被分成已排序序列和未排序序列&#xff0c;排序過程是從未排序序列的元素開始&…

【Java筆記】LinkedList 底層結構

一、LinkedList 的全面說明 LinkedList底層實現了雙向鏈表和雙端隊列特點可以添加任意元素(元素可以重復)&#xff0c;包括null線程不安全&#xff0c;沒有實現同步 二、LinkedList 的底層操作機制 三、LinkedList的增刪改查案例 public class LinkedListCRUD { public stati…

網管平臺(基礎篇):路由器的介紹與管理

路由器簡介 路由器&#xff08;Router&#xff09;是一種計算機網絡設備&#xff0c;它的主要作用是將數據通過打包&#xff0c;并按照一定的路徑選擇算法&#xff0c;將網絡傳送至目的地。路由器能夠連接兩個或更多個網絡&#xff0c;并根據信道的情況自動選擇和設定路由&…

排序算法(2):選擇排序

問題 排序 [30, 24, 5, 58, 18, 36, 12, 42, 39] 選擇排序 選擇排序每次從待排序序列中選出最小&#xff08;或最大&#xff09;的元素&#xff0c;將其放到序列的起始位置&#xff0c;然后&#xff0c;再從剩余未排序元素中繼續尋找最小&#xff08;或最大&#xff09;元素…

Tongweb8命令行使用收集(by lqw)

文章目錄 聲明對應版本修改thanos用戶密碼部署應用到默認實例節點相關操作新增節點(一般一個服務器ip只能裝一個節點)啟動節點(需確認節點沒有運行)停止節點刪除節點節點新增應用節點查看應用節點啟動應用節點停止應用節點卸載應用(謹慎操作,卸載后應用就沒有了,建議備份后…