AF3 DataPipeline类process_multiseq_fasta 方法解读

news/2025/3/1 14:42:45/

AlphaFold3 data_pipeline 模块DataPipeline类的 process_multiseq_fasta 方法用于处理多序列 FASTA 文件,生成 AlphaFold3 结构预测所需的特征,适用于多链复合物的预测。它结合了 Minkyung Baek 在 Twitter 上提出的“AlphaFold-Gap”策略,即通过在多链 MSA 中插入固定长度的 gap 以模拟多链复合物。

源代码:

    def process_multiseq_fasta(self,fasta_path: str,super_alignment_dir: str,ri_gap: int = 200,) -> FeatureDict:"""Assembles features for a multi-sequence FASTA. Uses Minkyung Baek'shack from Twitter (a.k.a. AlphaFold-Gap)."""with open(fasta_path, 'r') as f:fasta_str = f.read()input_seqs, input_descs = parsers.parse_fasta(fasta_str)# No whitespace allowedinput_descs = [i.split()[0] for i in input_descs]# Stitch all of the sequences togetherinput_sequence = ''.join(input_seqs)input_description = '-'.join(input_descs)num_res = len(input_sequence)sequence_features = make_sequence_features(sequence=input_sequence,description=input_description,num_res=num_res,)seq_lens = [len(s) for s in input_seqs]total_offset = 0for sl in seq_lens:total_offset += slsequence_features["residue_index"][total_offset:] += ri_gapmsa_list = []deletion_mat_list = []for seq, desc in zip(input_seqs, input_descs):alignment_dir = os.path.join(super_alignment_dir, desc)msas = self._get_msas(alignment_dir, seq, None)msa_list.append([m.sequences for m in msas])deletion_mat_list.append([m.deletion_matrix for m in msas])final_msa = []final_deletion_mat = []final_msa_obj = []msa_it = enumerate(zip(msa_list, deletion_mat_list))for i, (msas, deletion_mats) in msa_it:prec, post = sum(seq_lens[:i]), sum(seq_lens[i + 1:])msas = [[prec * '-' + seq + post * '-' for seq in msa] for msa in msas]deletion_mats = [[prec * [0] +

http://www.ppmy.cn/news/1575790.html

相关文章

大模型的参数长什么样子,ds回答

嗯,用户问的是大模型的参数长什么样子,还要举个例子。那我得先理解大模型的参数到底是什么样的结构。根据之前提供的搜索结果,比如参考‌12,大模型的参数主要包括权重矩阵、偏置向量等。比如说,像LLaMA或者baichuan这样…

TP-LINK路由器如何设置网段、网关和DHCP服务

目标 ①将路由器的网段由192.168.1.XXX改为192.168.5.XXX ②确认DHCP是启用的,并将DHCP的IP池的范围设置为排除自己要手动指定的IP地址,避免IP冲突。 01-复位路由器 路由器按住复位键10秒以上进行重置操作 02-进入路由器管理界面 电脑连接到路由器&…

win11编译pytorch cuda128版本流程

Geforce 50xx系显卡最低支持cuda128,torch cu128 release版本目前还没有释放,所以自己基于2.6.0源码自己编译wheel包。 1. 前置条件 1. 使用visual studio installer 安装visual studio 2022,工作负荷选择【使用c的桌面开发】,安装完成后将…

React 中 useState 的 基础使用

概念:useState 是一个React Hook(函数),它允许我们向组件添加状态变量,从而影响组件的渲染结果。 本质:和普通JS变量不同的是,状态变量一旦发生变化,组件的视图UI也会跟着变化&…

构建逻辑思维链(CoT)为金融AI消除幻觉(保险赔付篇)

在上一篇文章中,我们介绍了如何利用亚马逊云科技的Amazon Bedrock GuardRails自动推理检查应用于​​​​金融行业中利用AI应用的保险赔付审核场景,提升该场景下审核准确性,消除幻觉。在本案例中,我们将探讨一个利用AI帮助提升保险…

springboot rocketmq配置生产者和消息者

在Spring Boot中集成RocketMQ&#xff0c;你需要进行以下步骤来配置生产者和消费者。下面是一个简化的流程&#xff1a; 1. 添加依赖 首先&#xff0c;在你的pom.xml文件中添加RocketMQ的依赖项。确保你使用的是与Spring Boot兼容的版本。 <dependencies><!-- 其他…

算法日记31:leetcode341整数拆分(DFS->记忆化->DP)

一、题目 二、题解 1、动态规划解题思路&#xff1a; 1、重述问题 2、找到最后一步 3、去掉最后一步&#xff0c;问题变成了什么&#xff1f; 原问题的答案去掉最后一步的问题&#xff1f; 4、考虑边界2、结合题目具体分析&#xff1a; 假设我们拆出了 5 5 5为第k个数 三、…

conda环境管理 kernel注册到jupyter notebook

本文核心目的&#xff1a;解决jupyter notebook找不到自己想要的指定conda环境 首先安装anaconda&#xff0c;在win搜索框打开anaconda prompt 按下ctrlc终止操作的时间很长。需要输入y来确认操作。 国内镜像源不能使用代理服务访问。要尝试代理服务的打开与关闭 下面是cond…