【AlphaFold3】符号说明+Data_pipline学习笔记

前言

这个AlphaFold3系列主要根据其补充材料,对算法细节进行精读(本人目前为计算机专业本科生,文中有不合适的讲解欢迎大家指出,一起交流w(゚Д゚)w

1. Notation

下文使用的符号主要遵循AlphaFold 2论文的约定,为方便读者在此进行总结。

我们定义以下符号:

  • 输入Pairformer的基本序列单元token数量为 N t o k e n N_{token} Ntoken(训练时会被crop)
  • 模型中使用的模板数量为 N t e m p l N_{templ} Ntempl
  • 模型中使用的MSA(多序列比对)行数为 N m s a N_{msa} Nmsa
    这些参数的具体数值data-pipline(第2节)和训练细节(第5节)中给出。在模型方面,我们还定义:
  • Pairformer类堆栈(Pairformer-like stacks)中的块数为 N b l o c k N_{block} Nblock(第3.6小节)
  • 循环迭代次数为 N c y c l e N_{cycle} Ncycle

我们在算法中展示架构细节,使用以下约定:

  • 对于包含学习参数的运算符使用大写名称,如Linear表示带有权重矩阵W和偏置向量**b** 的线性变换(Linear transformation) ,LinearNoBias表示不带偏置向量的线性变换。注意当同一算法行中Linear运算符有多个输出时,我们暗示每个输出使用不同的可训练权重。线性运算符的下标索引(如 L i n e a r N o B i a s a LinearNoBias_a LinearNoBiasa)也表示不同的可训练权重集,其中a选择用于该样本的权重矩阵(Algorithm31)。
  • 使用LayerNorm表示在通道维度上进行层归一化[2],具有可学习的每通道增益和偏置。
  • 对于随机运算符(如随机增强生成器)也使用大写名称。
  • 对于无参数 的函数使用小写运算符名称,如sigmoidsoftmaxstopgrad
  • 使用表示逐元素乘法,表示外积,表示外和,aᵀb表示两个向量的点积。

索引约定:

  • 索引i、j、k始终作用于token维度
  • 索引l、m作用于扁平原子维度
  • 索引s、t作用于序列维度(如索引MSA序列或扩散时间维度)
  • 索引h作用于注意力头维度
  • 通道维度是隐式的,我们用粗体表示通道向量,如 z i j z_{ij} zij。算法作用于这些向量的集合,如用 z i j z_{ij} zij表示所有配对表示。

原子位置(欧几里得空间中的向量)表示为 x ⃗ ∈ R 3 . \vec{\mathbf{x}}\in\mathbb{R}^3. x ∈R3.。完整的原子结构表示为扁平原子列表 { x ⃗ l } \{\vec{\mathbf{x}}_l\} {x l},其中l索引原子。token与其对应原子之间的映射表示为 i ( l ) ∈ N \textbf{ i}(l)\in\textbf{ N} i(l)∈ N,将扁平原子索引l映射到token索引i;以及a=token_atom_idx(l),将扁平原子索引l映射到token内原子索引a∈{1,...,N_max_atoms_per_token}。

2. Data pipline(数据流水线)

数据管道负责将输入的mmCIF文件转换为模型可处理的特征,主要步骤包括:

  • 解析(Parsing):处理mmCIF文件,提取原子坐标、元数据,清理结构(如移除水分子、修复残基命名歧义)。
  • 遗传搜索(Genetic search):使用Jackhmmer、HHBlits等工具从UniRef90、RNACentral等数据库搜索同源序列,构建多序列比对(MSA)。
  • MSA处理:将搜索结果整合为最多16,384行的MSA,包含查询序列和同源序列。
  • 模板搜索:为蛋白质链检索PDB模板,过滤掉发布时间过近或覆盖率低的模板,最多保留4个。
  • 训练数据:混合5类数据集(如加权PDB、蛋白质单体蒸馏数据、RNA蒸馏数据等),通过聚类和过滤减少冗余。
  • 令牌化(Tokenization):标准氨基酸/核酸以残基为令牌,修饰残基和配体以单个原子为令牌。
  • 裁剪(Cropping):通过连续裁剪、空间裁剪、空间界面裁剪等方式,从输入中提取关键区域用于训练。

2.1 Parsing

AlphaFold数据预处理流水线的解析阶段,主要包含以下关键点:

  1. 输入输出

    • 输入:mmCIF格式文件(结构生物学中常用的蛋白质结构数据格式)
    • 输出:模型可用的输入特征
  2. 解析内容

    • 核心数据:原子坐标(_atom_site部分)
    • 元数据:分辨率/日期/实验方法等
    • 辅助信息:生物组装细节(Biological Assembly)、化学组分、链信息、共价键等

ps:关于"生物组装":

最通俗的类比:玩具积木

想象你买了一盒乐高积木:

  • 单独积木块 = 实验室测得的蛋白质晶体结构("不对称单元")
  • 拼装完成的模型 = 生物组装(蛋白质在体内的真实工作形态)
    关键区别:实验室里蛋白质被迫排成整齐晶体(像积木块装在盒子里),但在你体内它们会自发组成特定形状(像拼好的乐高模型)。
  1. 数据清洗

    • 位置歧义处理:选择占据率最高的原子位置(晶体结构中原子可能有多个位置)
    • 残基标准化:将硒代甲硫氨酸(MSE)转为普通甲硫氨酸(MET)
    • 溶剂处理:移除水分子(可能干扰模型预测)
    • 命名一致性:规范精氨酸残基中NH1/NH2原子的命名(确保结构比对一致性)
  2. 生物组装处理

    • 优先扩展第一个生物组装(蛋白质在生理状态下最有可能存在的多聚体形式)
    • 使模型能预测有生物学意义的复合物结构
  3. 推理阶段特殊处理

    • 使用"虚拟mmCIF"(零坐标模板)
    • 两种构建方式:
      • 基于PDB已有结构(去除坐标)
      • 基于用户提供的序列和化学分子(SMILES)信息

2.2 Genetic Search(遗传搜索)

遗传搜索是 AlphaFold 3 数据处理流程的关键步骤,其目的是通过搜索同源序列数据库,构建多序列比对(MSA),为模型提供进化信息 ------ 同源序列的保守性和变异模式能帮助模型推断目标分子的三维结构(例如,保守残基往往在结构核心或功能位点,对维持结构至关重要)。

关键细节

  1. 数据库与工具匹配

    • 蛋白质链:使用5个数据库(如UniRef90、UniProt),搭配Jackhmmer和HHBlits工具。其中,UniRef90和UniProt覆盖范围广,Uniclust30+BFD则包含更多宏基因组数据,能捕捉罕见序列的信息。

    • RNA链:专用3个数据库(如Rfam、RNACentral),结合mmseqs聚类和nhmmer搜索,适配RNA序列的特性(如二级结构保守性)。

  2. 参数设置的意义

    • 搜索工具的参数(如Jackhmmer的-E 0.0001)用于控制搜索的严格性,过滤低置信度的同源序列,确保MSA质量。
    • 数据库特定参数(如--seq_limit)限制最大序列数,平衡计算效率与信息丰富度(例如,UniProt保留50,000条序列,既避免冗余,又能覆盖足够的进化多样性)。
  3. 数据库版本控制

    • 训练、PDB推理、PoseBusters推理使用不同版本的数据库,且训练数据截止到2021-09-30,推理数据包含更新的序列,避免数据泄露(即模型不会"见过"待预测的结构相关数据)。
  4. MSA构建策略

    • 主MSA通过堆叠去重形成,确保信息无冗余;UniProt结果单独用于跨链信息(如蛋白质-蛋白质相互作用中,不同链的同源序列关联)。
    • 训练时随机子采样MSA长度,增强模型对不同规模进化信息的适应性,避免过拟合特定MSA结构。

对模型的影响

高质量的MSA是AlphaFold系列模型预测准确性的核心支撑。本部分通过精细化的数据库选择、工具参数调优和MSA处理策略,为AlphaFold 3提供了跨分子类型(蛋白质、RNA)的进化信息,使其能处理更广泛的生物分子相互作用预测任务。

2.3 MSA处理

2.3节介绍了AlphaFold 3中多序列比对(MSA)的构建方式。MSA是模型获取进化信息的关键输入,通过整合同源序列的保守性和变异模式,帮助模型推断目标分子的三维结构(例如,保守残基通常位于结构核心或功能位点,对维持结构稳定性至关重要)。

  1. MSA规模限制

    最多包含16,384行,这是平衡信息丰富度与计算效率的结果:行数过多会增加计算负担,过少则可能丢失关键进化信号。

  2. 分层构建策略

    • 第一行:查询序列(即待预测结构的目标序列),作为MSA的基准。
    • 接下来的8,191行:基于物种配对的UniProt MSA序列。这一步参考了AlphaFold-Multimer的方法,通过物种关联筛选同源序列,优先保留与目标序列在进化上更相关的条目(例如,同一物种的同源蛋白可能具有更相似的功能和结构)。
    • 剩余行(密集构建):与AlphaFold-Multimer的关键差异在于,剩余行直接取自2.2节生成的原始MSA的前几行,而非稀疏填充。例如,若已有72行配对序列,则剩余的(16384-72)行直接从原始MSA的起始部分选取,确保MSA的密集性和信息完整性。
  3. 与AlphaFold-Multimer的差异

    AlphaFold-Multimer中,MSA的非配对部分可能存在稀疏性(即部分位置序列缺失),而AlphaFold 3通过"密集方式"填充,确保更多原始同源序列被纳入,增强了对复杂分子(如蛋白质-核酸复合物)的进化信息覆盖。

对模型的影响

这种构建方式使MSA既能保留物种特异性的关键进化信号(前8,191行),又能通过密集填充纳入更多同源序列(剩余行),为AlphaFold 3处理更广泛的生物分子类型(如RNA、配体)提供了更全面的进化信息支撑,提升了复杂结构预测的准确性。

2.4 模板搜索

核心作用

模板搜索是AlphaFold 3获取结构参考信息的关键步骤。通过从已知PDB结构中检索与目标序列相似的模板,为模型提供"参考案例",帮助其更准确地预测目标结构(尤其是当目标序列与已知结构有较高同源性时,模板可显著降低预测难度)。

关键细节

  1. 模板的范围与限制

    • 仅支持单链模板 :不提供多链模板,避免模型依赖已知复合物结构来预测链间相互作用,迫使模型自主学习分子间相互作用规律。
    • 来源:模板来自PDB数据库的蛋白质序列,通过hmmsearch工具基于HMM(由目标序列的MSA转换而来)检索,确保模板与目标序列具有进化相关性。
  2. 过滤规则的意义

    • 时间过滤:训练时模板需早于目标结构60天以上,推理时模板截止到2021-09-30,避免"数据泄露"(即模型不会使用待预测结构发布后才出现的模板,确保预测的客观性)。
    • 序列相似性过滤:移除与目标序列相似度过高(>95%覆盖)的模板,防止模型直接复制已知结构,鼓励其学习泛化能力;同时过滤过短或覆盖率低的模板,保证模板的有效性。
  3. 模板的使用策略

    • 数量控制:最多返回20个模板,模型实际使用不超过4个,平衡信息冗余与计算效率。
    • 训练与推理的差异:推理时固定选取前4个(e值最小,即最相似的模板),确保结果稳定性;训练时随机选择模板,避免模型过度依赖特定模板,增强泛化能力。
  4. 模板的特征化

    模板结构经对齐后,其特征(如原子坐标、残基类型)会被转换为模型可处理的输入,与目标序列的特征结合,为结构预测提供参考。

对模型的影响

模板搜索为AlphaFold 3提供了已知结构的"先验知识",尤其对同源性较高的序列预测帮助显著。而严格的过滤规则和随机选择策略,则确保模型不会过度依赖模板,而是通过学习进化信息(MSA)和模板信息的结合,自主推断结构,最终提升对新颖序列(低同源性)的预测能力。

2.5 训练数据

介绍了AlphaFold 3的训练数据构成与抽样策略 。训练数据是模型学习生物分子结构规律的"教材",其多样性和代表性直接影响模型的预测能力。AlphaFold 3通过混合多类型数据集并优化抽样方式,确保模型能学习到蛋白质、RNA、转录因子复合物等多种分子的结构特征。

使用五种结构数据集的混合数据进行训练,如下表 3 所示。

名称 描述 抽样策略 权重
加权PDB 真实的PDB结构 加权 0.5
无序蛋白质PDB蒸馏数据 含未解析残基的蛋白质 加权 0.02
蛋白质单体蒸馏数据 来自MGnify的蛋白质单体预测结果 均匀 0.495
短蛋白质单体蒸馏数据 来自MGnify的短蛋白质单体预测结果 均匀 0.005
RNA蒸馏数据 来自Rfam的RNA单体预测结果 均匀 0.05
转录因子阴性数据 MGnify蛋白质+随机DNA 均匀 0.01
转录因子阳性数据 来自JASPAR的DNA+蛋白质预测结果 均匀 0.02
  1. 数据集构成与目的

    • 加权PDB(权重0.5):来自PDB数据库的真实结构,是最核心的训练数据,提供天然状态下的分子结构信息(如蛋白质折叠、分子间相互作用)。
    • 无序蛋白质PDB蒸馏数据(0.02):针对含未解析残基的蛋白质(如柔性区域),帮助模型学习无序结构的特征(传统结构预测对无序区域准确性较低)。
    • 蛋白质单体蒸馏数据(0.495)和短蛋白质单体数据(0.005):基于MGnify数据库的预测结构("蒸馏数据"指由模型预测生成的数据),补充真实数据的不足,覆盖更多蛋白质序列,尤其是短序列(4-200残基)。
    • RNA蒸馏数据(0.05):专注于RNA结构,弥补传统蛋白质结构数据中RNA信息的缺失,提升模型对核酸的预测能力。
    • 转录因子阴/阳性数据(0.01+0.02):阳性数据来自JASPAR(含真实蛋白质-DNA结合信息),阴性数据为蛋白质与随机DNA的组合,帮助模型学习"特异性相互作用"(区分真实结合与随机配对)。
  2. 抽样策略的设计逻辑

    • 加权抽样(针对PDB和无序蛋白质数据):并非均匀抽取样本,而是根据结构的"重要性"(如分子类型、聚类规模)分配权重(详见2.5.1),优先学习更有代表性的结构(如蛋白质-核酸界面、配体结合位点)。
    • 均匀抽样(其他数据集):保证数据覆盖的广泛性,避免过度集中于某类序列或结构。
    • 三步抽样流程:先按权重选数据集,再从数据集抽样本,最后抽结构片段(如分子界面区域),确保每次训练都能聚焦关键结构信息,提升学习效率。
  3. 权重分配的意义

    • 加权PDB占比50%,确保模型以真实结构为基础;
    • 蛋白质单体数据占比近50%,补充大量序列多样性;
    • RNA和转录因子数据占比7%,针对性提升对核酸和复合物的预测能力,体现AlphaFold 3对多分子类型的支持。

对模型的影响

多样化的数据集和精细化的抽样策略,使AlphaFold 3突破了AlphaFold 2仅专注于蛋白质的局限,能够处理RNA、蛋白质-DNA复合物等更广泛的生物分子系统。同时,通过"真实数据+蒸馏数据"的混合,既保证了结构的真实性,又扩展了数据覆盖范围,最终提升模型的泛化能力(对未知结构的预测准确性)。

2.5.1 加权PDB数据集

翻译:

在使用PDB数据进行训练时,我们采用定制加权方式对单链和链对界面进行抽样,目的是通过聚类减少冗余,并通过权重因子对底层数据中存在的分子类型进行分层。

首先,从过滤后的PDB训练集中收集链和界面的列表(过滤方法见2.5.4小节),其中界面定义为重原子(即非氢原子)最小间距小于5Å的链对。该数据集的每个条目要么是一条链,要么是一个界面,其抽样权重 w w w取决于条目类型 r ∈ { 链 , 界面 } r \in \{链, 界面\} r∈{链,界面}、每种类型的链计数 n { 蛋白质 , 核酸 , 配体 } n_{\{蛋白质, 核酸, 配体\}} n{蛋白质,核酸,配体},以及聚类规模 N c l u s t N_{clust} Nclust:

w ∝ β r N c l u s t ( α p r o t ∗ n p r o t + α m u c ∗ n n u c + α l i g a n d ∗ n l i g a n d ) . (1) w\propto\frac{\beta_{r}}{N_{\mathrm{clust}}}(\alpha_{\mathrm{prot}}*n_{\mathrm{prot}}+\alpha_{\mathrm{muc}}*n_{\mathrm{nuc}}+\alpha_{\mathrm{ligand}}*n_{\mathrm{ligand}}).\text{(1)} w∝Nclustβr(αprot∗nprot+αmuc∗nnuc+αligand∗nligand).(1)

我们选择的参数为: β c h a i n = 0.5 \beta_{chain}=0.5 βchain=0.5, β i n t e r f a c e = 1 \beta_{interface}=1 βinterface=1, α p r o t = 3 \alpha_{prot}=3 αprot=3, α n u c = 3 \alpha_{nuc}=3 αnuc=3, α l i g a n d = 1 \alpha_{ligand}=1 αligand=1。聚类规模 N c l u s t N_{clust} Nclust由下文2.5.3小节描述的聚类过程确定。

选中的链或界面会用于偏向cropping过程,使cropping更可能选择靠近该链或界面的区域(见2.7小节)。

核心目的

加权PDB数据集的设计是为了优化训练数据的代表性:通过定制权重,让模型更关注生物意义更重要的结构(如分子界面)和多样性不足的分子类型(如核酸、配体),同时减少冗余数据的影响。

分子界面(Molecular Interface)是指两个或多个生物分子(如蛋白质、核酸、小分子配体等)在形成复合物时,彼此直接接触并发生相互作用的表面区域。这一界面通常由分子间的原子或残基构成.

关键细节

  1. 权重公式的含义

    权重 w w w由三部分决定:

    • 条目类型( β r \beta_{r} βr) :界面(interface)的权重 ( β i n t e r f a c e = 1 (\beta_{interface}=1 (βinterface=1)高于单链( β c h a i n = 0.5 \beta_{chain}=0.5 βchain=0.5),因为界面(如蛋白质-核酸结合位点)是生物功能的关键,需要模型重点学习。
    • 分子类型( α \alpha α和 n n n)
      • 蛋白质( α p r o t = 3 \alpha_{prot}=3 αprot=3)和核酸( α n u c = 3 \alpha_{nuc}=3 αnuc=3)的权重更高,因为它们是生物分子相互作用的核心;
      • 配体(ligand)( α l i g a n d = 1 \alpha_{ligand}=1 αligand=1)权重较低,因其在训练数据中占比相对较高或结构多样性较低。
      • n p r o t n_{prot} nprot、 n n u c n_{nuc} nnuc、 n l i g a n d n_{ligand} nligand分别表示条目(链或界面)中蛋白质、核酸、配体的数量(例如,蛋白质-蛋白质界面的 n p r o t = 2 n_{prot}=2 nprot=2, ( n n u c = 0 (n_{nuc}=0 (nnuc=0)。
    • 聚类规模( N c l u s t N_{clust} Nclust) :权重与聚类规模成反比( 1 / N c l u s t 1/N_{clust} 1/Nclust),即同类结构(如高度相似的蛋白质链)会被降权,减少冗余,确保模型学习到更多样化的结构。
  2. 对训练的影响

    • 加权抽样使模型在训练中更多接触界面和核酸相关结构,提升对复合物(如蛋白质-DNA)的预测能力;
    • 结合聚类(2.5.3小节),通过 N c l u s t N_{clust} Nclust调整权重,避免模型过度学习某类常见结构(如高频出现的蛋白质折叠),增强泛化能力;
    • 偏向裁剪(2.7小节)确保抽样的结构片段聚焦于权重高的链或界面,进一步强化对关键区域的学习。

总结

该加权策略是AlphaFold 3能处理多分子类型(蛋白质、核酸、配体)和复杂界面的重要基础,通过"重质不重量"的抽样逻辑,让有限的训练数据发挥更大效用。

2.5.2 蒸馏数据集

翻译

除了PDB真实结构外,我们的其他四个数据集通过AlphaFold蒸馏获得,其中三个来自AlphaFold 2的预测结果,一个来自AlphaFold 3的预测结果。

  1. 蛋白质单体蒸馏数据(Protein monomer distillation):AlphaFold 2对MGnify数据库中长度超过200个残基的序列的预测结果(与AlphaFold-Multimer使用的数据相同)。

  2. 短蛋白质单体蒸馏数据(Short protein monomer distillation):AlphaFold 2对MGnify数据库中长度为4-200个残基的序列的预测结果(与蛋白质单体蒸馏数据来自同一推理过程)。长、短蛋白质单体蒸馏数据集共包含约4100万个结构。

对于无序区域也是在尽量利用现有信息来构建可供模型学习的 "近似真实" 情况 。

  1. 无序蛋白质PDB蒸馏数据(Disordered protein PDB distillation):使用AlphaFold-Multimer v2.3对训练集中的PDB蛋白质进行预测,将真实核酸和小分子插入与真实蛋白质对齐后的预测结构中。筛选条件为:至少包含40个未解析残基、与真实结构的GDT(全局距离测试)至少为60、插入核酸和小分子后无原子冲突。最终的蒸馏结构包含真实PDB结构中所有已解析的实体,其中所有蛋白质残基(包括未解析的)的坐标为预测值,非蛋白质实体的坐标为真实值。该蒸馏数据集用于确保对无序区域的预测与AlphaFoldDB中观察到的无序链一致。仅使用第一个生物组装体构建该数据集,包含约25000个结构。

  2. RNA蒸馏数据(RNA distillation):使用MMseqs2对Rfam(v14.9)数据库进行聚类(序列一致性90%、覆盖率80%),每个聚类选取一个代表性序列。AlphaFold 3对该集合中的序列进行预测,筛选出长度至少为10个残基且平均预测距离误差(PDE)最大为2Å的结构,作为RNA蒸馏训练集。过滤后包含约65000个结构。

  3. 转录因子阳性蒸馏数据(Transcription factor positive distillation) :通过以下方式构建蛋白质-DNA阳性示例数据集:

    首先,从JASPAR 9数据库[20]中筛选出与两个高通量SELEX数据集[21,22]基因ID匹配的转录因子图谱。对于该筛选后的每个图谱,通过两种方式分配蛋白质序列:1)采用该图谱UniProt ID对应的 canonical序列;2)在上述两个SELEX数据集中搜索与UniProt序列相似度最高且基因ID匹配的序列(相似度定义为比对序列中无缺口匹配的数量除以两个预比对序列的最小长度,通过Kalign v2.0[19]比对)。

    接着,对转录因子序列进行聚类(序列一致性10%、覆盖率60%),随机选取50%的聚类用于训练。然后为每个转录因子生成应结合的阳性DNA序列:对于每个蛋白质序列,从对应的JASPAR图谱位置频率矩阵(PFM)中随机抽取10个单链基序,去除重复样本。每个随机基序与蛋白质序列、DNA链及其反向互补链组合,形成一个蒸馏示例。最终得到16439个蛋白质-DNA复合物,包含1165个独特的蛋白质序列。

    该集合的预测使用未经过转录因子阳性蒸馏数据训练的AlphaFold 3进行,进一步筛选出蛋白质-DNA预测距离误差(PDE)至少为5Å的结构(大多数预测的PDE更低,99%小于3Å)。

    训练期间,该集合中的DNA螺旋会通过以下步骤随机延伸为理想化DNA螺旋:

    • a) 从原始预测中移除DNA的离去原子(leaving atoms)(OP3)。
    • b) 抽样 N n e w ∼ U { 0 , 100 − N o r i g } \text{ }N_{\mathrm{new}}\sim U\{0,100-N_{\mathrm{orig}}\} Nnew∼U{0,100−Norig},其中 N o r i g N_{orig} Norig是原始预测中的碱基对数量。
    • c) 抽样 N s t a r t ∼ U { 0 , N n e w } N_{start} \sim U\{0, N_{new}\} Nstart∼U{0,Nnew},并设置 N e n d ← N n e w − N s t a r t N_{end} \leftarrow N_{new}-N_{start} Nend←Nnew−Nstart。
    • d) 构建两个具有随机互补碱基对的理想化B-DNA螺旋,长度分别为 N s t a r t N_{start} Nstart和 N e n d N_{end} Nend。
    • e) 将其中一个随机螺旋的最后一个碱基对与原始预测的第一个碱基对对齐,将另一个随机螺旋的第一个碱基对与原始预测的最后一个碱基对对齐。
    • f) 若延伸后的结构出现新的冲突或违背,则保留原始结构未作修改。冲突定义为两个重原子间距小于1.5Å(排除相邻残基);违背定义为键角与RDKit参考构象相差超过20度,或键长相差超过0.2Å。
  4. 转录因子阴性蒸馏数据:通过以下步骤构建蛋白质-DNA阴性示例数据集:

    • a) 以30%的概率抽样DNA长度 N ∼ U { 60 , 100 } N \sim U\{60, 100\} N∼U{60,100},以70%的概率从PDB中DNA长度的经验分布中抽样。
    • b) 随机生成长度为N的DNA序列及其反向互补链。
    • c) 使用AlphaFold 3预测该双链DNA的结构。
    • d) 从蛋白质单体蒸馏数据集中随机抽取一个蛋白质预测结构。
    • e) 对蛋白质和DNA进行中心化和随机旋转,然后平移使两者的最小距离至少为25Å + N(2,3)Å。

核心意义

蒸馏数据集是AlphaFold 3训练数据的重要补充,其核心作用是扩展训练数据的多样性和覆盖范围------通过模型(AlphaFold 2/3)预测生成真实数据中稀缺或难以获取的结构(如短蛋白质、RNA、转录因子复合物),帮助模型学习更广泛的生物分子结构规律。

关键细节与设计逻辑

  1. 蛋白质单体蒸馏数据(长/短)

    • 来源:基于MGnify数据库(包含大量未解析的宏基因组序列)的AlphaFold 2预测结果。
    • 目的:补充真实PDB数据中蛋白质序列的覆盖度,尤其是短序列(4-200残基)------这类序列在真实结构中占比低,但生物学意义重要(如肽段、短酶)。
    • 规模:4100万个结构,远超PDB中已知的蛋白质单体数量,为模型提供了海量多样化的蛋白质折叠信息。
  2. 无序蛋白质PDB蒸馏数据

    • 特点:聚焦于含"未解析残基"的蛋白质(如柔性区域、无序链),这类区域在实验中难以解析,但对蛋白质功能至关重要(如信号传导中的动态相互作用)。
    • 构建逻辑:将真实核酸/小分子插入模型预测的蛋白质结构中,确保无序区域的预测与已知无序特征(AlphaFoldDB)一致,提升模型对柔性结构的预测能力。
  3. RNA蒸馏数据

    • 针对性:RNA结构在真实PDB中数量远少于蛋白质,且折叠规律更复杂(依赖碱基配对和二级结构)。
    • 筛选条件:通过聚类(90%序列一致性)减少冗余,保留PDE≤2Å的高质量预测结构,确保数据可靠性,帮助模型学习RNA的折叠和相互作用规律。
  4. 转录因子正负蒸馏数据

    • 作用:专门训练模型区分蛋白质与DNA的"特异性结合"(阳性)和"随机作用"(阴性),这对理解基因调控(如转录启动)至关重要。
    • 阳性数据:基于JASPAR(转录因子结合图谱)和SELEX(高通量筛选)构建,确保DNA序列是转录因子的真实结合靶标;通过DNA延伸步骤增加序列多样性,避免模型过拟合特定长度的DNA。
    • 阴性数据:蛋白质与随机DNA的组合,且两者间距足够远(≥25Å+...),确保无特异性相互作用,作为"对照"帮助模型学习结合的特异性。
    • 质量控制:阳性数据筛选PDE≤5Å的结构(99%<3Å),保证结合界面预测的准确性。

对模型的影响

蒸馏数据集通过"真实数据+模型预测数据"的组合,突破了真实实验数据的局限:

  • 覆盖更多分子类型(RNA、蛋白质-DNA复合物)和序列长度(短蛋白质);
  • 针对性强化模型对特殊结构(无序区域、转录因子结合界面)的学习;
  • 正负数据对比训练,提升模型对生物分子"特异性相互作用"的预测能力,这是AlphaFold 3能处理复杂生物分子相互作用的关键之一。

2.5.3 训练集聚类

翻译

为了减少训练集和评估集中的偏差,对PDB链和界面(interface) 进行了如下聚类:

  • 基于链的聚类规则:蛋白质以40%的序列同源性聚类,核酸以100%的同源性聚类,肽段(<10个残基)以100%的同源性聚类,小分子则根据CCD(化学组件词典)身份聚类(即只有完全相同的分子才属于同一聚类)。

  • 含修饰残基 (modified residues) 的聚合物的基于链的聚类:首先根据SCOP[23,24]规范(参考链接)将修饰残基映射为标准残基。如果修饰残基未在映射键中找到,或映射结果超过单个字符,则将其归为"未知"类型。

  • 基于界面(interface)的聚类:通过组成链的聚类ID关联实现。即界面 I I I和 J J J属于同一界面聚类 C i n t e r f a c e C^{interface} Cinterface的前提是,它们的组成链对 { I 1 , I 2 } \{I_1, I_2\} {I1,I2}、 { J 1 , J 2 } \{J_1, J_2\} {J1,J2}具有相同的链聚类对 { C 1 c h a i n , C 2 c h a i n } \{C_1^{chain}, C_2^{chain}\} {C1chain,C2chain}。

核心目的

训练集聚类是AlphaFold 3减少数据冗余、平衡样本代表性的关键步骤。通过将相似的链或界面归为同一聚类,避免模型过度学习高频出现的相似结构 (如高度同源的蛋白质链),同时确保训练集和评估集的结构多样性,提升模型的泛化能力

聚类规模( N c l u s t N_{clust} Nclust):指一个聚类中包含的样本数量(例如,一个蛋白质链聚类里有多少条相似的链,一个界面聚类里有多少个相似的分子界面)。

关键细节与逻辑

  1. 基于链的聚类:根据分子类型制定规则

    • 蛋白质(40%序列同源性):同源性阈值较低,允许一定差异的蛋白质链聚类(如家族成员),既减少冗余,又保留进化多样性。
    • 核酸和短肽(100%同源性):核酸的功能依赖严格的序列匹配(如碱基配对),短肽的结构受序列影响极大,因此要求完全同源才能聚类,确保同类结构的一致性。
    • 小分子(CCD身份):仅完全相同的小分子(如同一配体)聚类,因小分子的结构细微差异(如手性、取代基)会显著影响其与生物分子的相互作用。
  2. 修饰残基的特殊处理

    含修饰残基(如磷酸化、甲基化的氨基酸)的聚合物,需先映射为标准残基(如将磷酸化丝氨酸映射为丝氨酸),再进行聚类。这是因为修饰残基的种类繁多,直接聚类会导致类别过多,而映射为标准残基可简化聚类,同时保留核心结构特征。无法映射的残基归为"未知",避免干扰聚类逻辑。

  3. 基于界面的聚类:关联链的聚类结果

    界面(如蛋白质-DNA结合位点)的聚类依赖于其组成链的聚类ID。例如,若链A和链B分别属于聚类 C 1 C_1 C1和 C 2 C_2 C2,则由A和B组成的界面属于聚类 { C 1 , C 2 } \{C_1, C_2\} {C1,C2}。这一规则确保功能相似的界面(如同一类蛋白质与DNA的结合模式)被归为同一聚类,帮助模型学习界面的通用特征。

对模型的影响

聚类通过以下方式优化训练:

  • 减少冗余:同类结构(如高度同源的蛋白质)仅保留代表性样本,降低计算成本,避免模型过拟合。
  • 平衡数据分布:确保低频结构(如罕见的蛋白质折叠、特殊界面)在训练集中有足够代表性,提升模型对小众结构的预测能力。
  • 支持加权抽样 :结合2.5.1节的加权策略,聚类规模( N c l u s t N_{clust} Nclust)会影响样本权重(权重与 1 / N c l u s t 1/N_{clust} 1/Nclust成正比),使模型更关注多样性高的聚类。

总之,聚类是AlphaFold 3实现"高效学习、广泛泛化"的重要基础,尤其对处理多分子类型(蛋白质、核酸、小分子)的复杂结构至关重要。

2.5.4 过滤

核心目的

PDB数据过滤是AlphaFold 3确保训练和评估数据质量的关键步骤。通过严格筛选,去除低质量、冗余或无关的结构信息,保留生物学意义明确、结构可靠的样本,为模型训练提供"干净且有效的素材",避免噪声数据干扰模型学习。

关键细节与逻辑

  1. 目标过滤:确保数据的时效性、质量和合理性

    • 截止日期(2021-09-30):避免"数据泄露"------训练数据不包含模型未来需要预测的结构(如2021年9月30日后发布的PDB),保证评估的客观性。
    • 分辨率≤9Å:分辨率越低,结构解析的准确性越差。保留高分辨率结构(如≤9Å),确保模型学习到的是可靠的原子坐标信息。
    • 链数量限制:训练集≤300链、评估集≤1000链,平衡计算效率与结构复杂度(过多链会导致计算负担激增,且对模型基础能力的学习帮助有限)。
    • 链长度≥4残基:过短的聚合物链(如<4残基)难以形成稳定结构,也缺乏生物学功能代表性,过滤后可减少无意义样本。
  2. 生物组装体过滤:优化结构细节,聚焦核心信息

    • 移除氢原子:氢原子对大分子整体结构影响较小,且在实验解析中常被忽略,移除后可减少计算量,聚焦重原子(如C、N、O)的相互作用。
    • 处理冲突链:原子间距<1.7Å属于严重空间冲突(正常原子间距离通常≥2Å),说明结构可能存在实验误差或建模错误。通过明确规则移除冲突链,保证结构的化学合理性。
    • 标准化原子类型:根据CCD代码移除"异常原子"(如配体中未定义的原子),确保分子结构符合化学规范,避免模型学习错误的原子组成。
    • 过滤离去原子:离去原子(如配体中可能脱离的原子)会影响分子间相互作用的稳定性,移除后可简化模型对核心结合模式的学习。
    • 连续Cα原子距离限制:蛋白质中连续Cα原子间距通常在3.8Å左右,若>10Å说明肽链断裂或结构异常,过滤后可保留折叠完整的蛋白质链。
    • 链数量精简(>20链时):过多链的生物组装体(如大型复合物)中,多数链可能与核心功能无关。通过聚焦"界面附近的20条链",既保留关键相互作用信息,又控制计算规模。
    • 移除结晶辅助剂:结晶辅助剂(如用于促进晶体形成的小分子)与生物分子的天然相互作用无关,移除后可避免模型学习非生理性的结合模式。

对模型的影响

过滤步骤通过"去粗取精",为模型提供了高质量、标准化的训练数据:

  • 确保结构的化学合理性和生物学相关性,减少噪声干扰;
  • 平衡数据复杂度与计算效率,使模型能高效学习核心结构规律(如蛋白质折叠、分子界面相互作用);
  • 统一数据格式(如原子类型、链长度),降低模型学习难度,提升预测准确性。

这是AlphaFold 3能稳定预测复杂生物分子结构的重要基础。

2.6 Tokenization

翻译

在 AlphaFold 2 中,蛋白质残基是进入 Evoformer single stack 和pair stack的基本序列单元

在本研究中,我们对tokenization方案进行了泛化,以适应更广泛的分子类型。具体流程如下:

  • A standard amino acid residue (标准氨基酸残基)(表 13)被表示为单个token。
  • A standard nucleotide residue(标准核苷酸残基)(表 13)被表示为单个token。
  • A modified amino acid or nucleotide reisidue(修饰的氨基酸或核苷酸残基)按原子进行tokenize(即一个含 N 个原子的残基对应 N 个)。
  • 所有ligands(配体)均按原子进行令牌化。

p.s.:modified amino acid or nucleotide 即修饰氨基酸或修饰核苷是指在标准氨基酸或核苷酸的基础上,其化学结构发生改变而形成的物质。从而功能和特性发生改变。

核心目的

Tokenization是 AlphaFold 3 处理多分子类型的 基础语言改革"。它定义了模型理解分子结构的 "基本单位"(token),通过泛化tokenization规则,使模型能同时处理蛋白质、核酸、配体、修饰残基等多种分子,突破了 AlphaFold 2 仅支持蛋白质的局限。

关键细节与设计逻辑

  1. tokenization规则:分分子类型定制
    • 标准氨基酸 / 核苷酸→单个token:这类分子结构稳定(如 20 种天然氨基酸、DNA/RNA 的 A/T/C/G/U),以残基为单位的token既能保留完整的化学信息(如氨基酸的侧链特征、核苷酸的碱基),又能减少计算量(避免按原子拆分带来的冗余)。
    • 修饰残基→按原子令牌化 :修饰残基(如磷酸化的丝氨酸、甲基化的赖氨酸)结构变异大,单个残基的原子组成可能与标准残基差异显著。按原子拆分能精确捕捉这些特殊结构,避免因 "一刀切" 的残基级令牌化丢失关键信息。
    • 配体→按原子 :配体(如药物分子、辅酶)化学结构多样(从简单离子到复杂小分子),且通常无固定的残基结构,按原子令牌化是最灵活的方式,能适应任意配体的结构特征。
  2. token中心原子的作用
    中心原子是token的 "空间锚点",用于后续的空间计算(如裁剪、距离测量、注意力机制)。例如:
  • 蛋白质的 Cα 原子是肽链骨架的核心,其位置能反映残基的整体空间分布;
  • 核苷酸的 C1′原子是碱基连接的关键位点,可作为核酸链的空间参考点;
  • 配体的首个原子直接作为中心,简化非标准分子的空间定位。

对模型的影响

这种泛化的令牌化方案是 AlphaFold 3 实现多分子类型预测的核心基础:

  • 兼容性:统一了蛋白质、核酸、配体等分子的输入格式,使模型能在同一框架下处理复杂复合物(如蛋白质 - DNA - 配体三元复合体)。
  • 精确性:对修饰残基和配体按原子令牌化,确保模型捕捉到细微的结构差异(如配体与蛋白质的特异性结合位点)。
  • 效率平衡:标准分子保留残基级令牌,避免计算量激增;复杂分子按原子拆分,保证信息完整性,兼顾效率与准确性。

简言之,令牌化方案的升级使 AlphaFold 3 从 "蛋白质专属模型" 转变为 "通用生物分子结构预测工具"。

2.7 裁剪(Cropping)

翻译

我们的裁剪流程与 AlphaFold-Multimer基本一致,但不同之处在于:此前裁剪针对蛋白质残基,而现在针对令牌(tokens)。我们有三种主要裁剪策略(如下所述),会从中随机选择,且不同数据集的选择权重不同(见表 4)。

表4 裁剪策略的抽样权重

数据集 裁剪权重
连续裁剪 空间裁剪 空间界面裁剪
加权PDB 0.20 0.40 0.40
无序蛋白质PDB复合物 0.20 0.40 0.40
单体蒸馏数据 0.25 0.75 0.00
短蛋白质蒸馏数据 0.25 0.75 0.00
RNA蒸馏数据 0.25 0.75 0.00

2.7.1 连续裁剪

为每条链选择连续的聚合物残基和/或配体原子序列。细节参见《AlphaFold-Multimer论文》[18]的7.2.1节和算法1。

2.7.2 空间裁剪

在该流程中,选择与参考原子空间距离较近的聚合物残基和配体原子。参考原子从令牌中心原子集(定义见2.6节)中随机选择。对于来自加权PDB或无序蛋白质PDB复合物数据集的样本(这些样本会提供偏好链或界面,见2.5节),参考原子会从该链或界面内的令牌中心原子中随机选择。

参考原子选定后,最终裁剪区域通过《AlphaFold-Multimer》[18]的算法2确定。

2.7.3 空间界面裁剪

在该流程中,选择与界面原子空间距离较近的聚合物残基和配体原子。界面原子从令牌中心原子集(定义见2.6节)中随机选择,且需满足与另一链的令牌中心原子距离<15Å。对于来自加权PDB或无序蛋白质PDB复合物数据集的样本(提供偏好链或界面,见2.5节),参考原子会从该链或界面内的界面令牌中心原子中随机选择。

界面原子选定后,最终裁剪区域通过《AlphaFold-Multimer》[18]的算法2确定。


讲解------cropping(裁剪):聚焦关键区域,平衡效率与信息

是AlphaFold 3训练过程中"数据精简"的核心步骤,目的是在保留关键结构信息的同时,减少计算负担(尤其是对大型复合物)。其设计逻辑与AlphaFold-Multimer一脉相承,但因支持多分子类型(基于token)而更具通用性。

  1. 三种裁剪策略的核心差异

    • 连续裁剪:按序列连续性选择片段(如蛋白质的连续残基、配体的连续原子),适用于学习分子的线性结构特征(如肽链折叠)。
    • 空间裁剪:按空间距离选择参考原子附近的区域,适用于学习分子的局部空间相互作用(如蛋白质的结构域内部折叠)。
    • 空间界面裁剪:专门针对分子间界面(如蛋白质-DNA结合位点),选择界面原子附近的区域,强化对生物功能关键的"分子间相互作用"的学习。
  2. 数据集特异性权重的意义

    • 加权PDB和无序蛋白质PDB复合物数据集:空间裁剪和空间界面裁剪权重更高(各0.4),因需重点学习复合物的界面特征和空间排布。
    • 单体蒸馏数据(蛋白质、RNA):空间裁剪权重占75%,因单分子的核心是局部空间结构(如RNA的茎环结构),无需关注界面。
    • 连续裁剪权重普遍较低(最高0.25),因多数生物功能依赖空间相互作用而非单纯的序列连续性。
  3. 与tokenization的协同

    裁剪对象从"蛋白质残基"改为"token",使策略能覆盖核酸、配体等分子(如配体的原子级token可通过空间裁剪纳入蛋白质结合口袋(packet)区域),体现了AlphaFold 3对多分子类型的兼容性。

2.8 特征化与模型输入 ⭐

表5列出了模型的主要输入特征,分为以下几类:

  • Token features :由每个token的特征组成,如位置索引(token_index )、链标识符(asym_id )、掩码(is_protein)等。
  • 参考特征Reference features :来自残基、核苷酸或配体的参考构象(reference conformer)。给定输入的CCD代码或SMILES字符串,构象通常使用RDKit v.2023_03_3[25]和ETKDGv3[26]生成。若生成失败,会 fallback到CCD理想坐标;若坐标来自训练截止日期(除非另有说明,为2021-09-30)之前,最终使用代表性坐标。最后,所有缺失的原子坐标均设为0。
  • MSA特征:来自遗传搜索的特征,如MSA本身、缺失矩阵、分布谱等。
  • Template 特征:来自模板搜索的特征,如模板原子位置。
  • Bond 特征:提供键信息的特征,如聚合物-配体键、配体内/配体间键的预期位置。

在算法中,特征以"f "表示,上标为特征名称,下标为元素索引。例如,形状为 [ N m s a , N t o k e n , 32 ] [N_{\mathrm{msa}},N_{\mathrm{token}},32] [Nmsa,Ntoken,32]的独热编码MSA特征表示为 f s i m s a ∈ N 32 f_{si}^{msa} \in \mathbb{N}^{32} fsimsa∈N32。

表5 模型输入特征(特征维度: N t o k e n N_{token} Ntoken为令牌数, N m s a N_{msa} Nmsa为MSA序列数, N t e m p l N_{templ} Ntempl为模板数, N a t o m N_{atom} Natom为原子数, N c h a i n s N_{chains} Nchains为链数, N b o n d s N_{bonds} Nbonds为键数, N p e r m N_{perm} Nperm为原子排列数)

特征及形状 描述
residue_index [ N t o k e n ] [N_{\mathrm{token}}] [Ntoken] token在原始输入链中的残基编号。
token_index [ N t o k e n ] [N_{\mathrm{token}}] [Ntoken] 编号。单调递增,新链不会从1重启。
asym_id [ N t o k e n ] [N_{\mathrm{token}}] [Ntoken] 每条不同链的唯一整数标识。
entity_id [ N t o k e n ] [N_{\mathrm{token}}] [Ntoken] 每个不同序列的唯一整数标识。
sym_id [ N t o k e n ] [N_{\mathrm{token}}] [Ntoken] 同一序列的链内唯一整数。例如,若链A、B、C共享序列,D不共享,则它们的sym_id为[0,1,2,0]。
restype [ N t o k e n N_{\mathrm{token}} Ntoken , 32] 序列的独热编码。32种可能值:20种氨基酸+未知、4种RNA核苷酸+未知、4种DNA核苷酸+未知、空缺。配体表示为"未知氨基酸"。
is_protein / rna / dna / ligand [ N t o k e n ] [N_{\mathrm{token}}] [Ntoken] 4个掩码,指示特定令牌的分子类型。
ref_pos [ N a t o m N_{\mathrm{atom}} Natom, 3] 参考构象中的原子位置(单位:Å),已应用随机旋转和平移。
ref_mask [ N a t o m N_{\mathrm{atom}} Natom] 指示参考构象中哪些原子位置被使用的掩码。
ref_element [ N a t o m N_{\mathrm{atom}} Natom, 128] 参考构象中每个原子的元素原子序数的独热编码(最多到128)。
ref_charge [ N a t o m N_{\mathrm{atom}} Natom] 参考构象中每个原子的电荷。
ref_atom_name_chars [ N a t o m N_{\mathrm{atom}} Natom, 4, 64] 参考构象中唯一原子名称的独热编码。每个字符编码为ord©-32,名称填充至4个字符长度。
ref_space_uid [ N a t o m N_{\mathrm{atom}} Natom] 与参考构象关联的链ID和残基索引的数值编码。每个(链ID,残基索引)元组首次出现时被分配一个整数。
msa [ N m s a N_{msa} Nmsa, N t o k e n N_{token} Ntoken, 32] 处理后的MSA的独热编码,使用与restype相同的类别。
has_deletion [ N m s a N_{msa} Nmsa, N t o k e n N_{token} Ntoken] 二进制特征,指示MSA中每个位置左侧是否有缺失。
deletion_value [ N m s a N_{msa} Nmsa, N t o k e n N_{token} Ntoken] 原始缺失计数(MSA每个位置左侧的缺失数)通过 2 / π ⋅ arctan ⁡ ( d / 3 ) 2/\pi \cdot \arctan(d/3) 2/π⋅arctan(d/3)转换至[0,1]。
profile [ N t o k e n N_{token} Ntoken, 32] 主MSA中残基类型的分布。在MSA处理前计算(见2.3节)。
deletion_mean [ N t o k e n N_{token} Ntoken] 主MSA中每个位置的平均缺失数。在MSA处理前计算(见2.3节)。
template_restype [ N t e m p l N_{templ} Ntempl, N t o k e n N_{token} Ntoken] 模板序列的独热编码,见restype。
template_pseudo_beta_mask [ N t e m p l N_{templ} Ntempl, N t o k e n N_{token} Ntoken] 指示模板中该残基是否有Cβ(甘氨酸为Cα)坐标的掩码。
template_backbone_frame_mask [ N t e m p l N_{templ} Ntempl, N t o k e n N_{token} Ntoken] 指示是否存在计算骨架框架所需的所有原子坐标的掩码(用于template_unit_vector特征)。
template_distogram [ N t e m p l N_{templ} Ntempl, N t o k e n N_{token} Ntoken, N t o k e n N_{token} Ntoken, 39] 独热 pairwise特征,指示Cβ原子(甘氨酸为Cα)间的距离。成对距离被离散为38个等宽 bins(3.25Å至50.75Å);第39个bin包含所有更大的距离。
template_unit_vector [ N t e m p l N_{templ} Ntempl, N t o k e n N_{token} Ntoken, N t o k e n N_{token} Ntoken, 3] 所有残基的Cα原子在每个残基局部框架内的位移单位向量。局部框架计算见[1]。
token_bonds [ N t o k e n N_{token} Ntoken, N t o k e n N_{token} Ntoken] 二维矩阵,指示令牌i中任意原子与令牌j中任意原子是否存在键(训练时仅限聚合物-配体键、配体-配体键,且键长<2.4Å)。

讲解------ 特征化:为模型提供"分子语言"

特征化是将原始分子信息转换为模型可理解的"输入信号"的过程,这些特征涵盖分子的序列、结构、进化和化学属性,是模型学习结构规律的基础。

  1. 核心特征类别的作用

    • token特征:定义分子的"身份信息"(如属于哪条链、是蛋白质还是配体),帮助模型区分不同分子类型。
    • 参考特征:提供分子的"化学蓝图"(如原子类型、电荷、参考构象),是模型预测原子坐标的基础(尤其对配体等非标准分子)。
    • MSA特征:传递进化信息(如同源序列的保守性),帮助模型推断"哪些残基/原子位置对结构稳定至关重要"。
    • 模板特征:提供已知相似结构的参考(如模板的距离分布、骨架向量),辅助模型快速定位合理的结构排布。
    • Bond特征:指示分子内/间的化学键(如蛋白质与配体的共价键),约束模型预测的化学合理性(如避免键长异常)。
  2. 设计亮点

    • 参考特征的"fallback机制":确保即使参考构象生成失败,仍能提供可用的坐标信息,保证数据完整性。
    • 多维度的pairwise特征(如template_distogram、token_bonds):直接编码分子间的距离和相互作用,帮助模型学习空间约束。
    • 与裁剪的协同:裁剪后的区域通过特征化转换为输入,使模型能聚焦关键区域的特征(如界面的键特征、MSA保守性),提升学习效率。
相关推荐
菜还不练就废了13 分钟前
7.19-7.20 Java基础 | File类 I/O流学习笔记
java·笔记·学习
文浩(楠搏万)37 分钟前
TensorFlow+CNN垃圾分类深度学习全流程实战教程
深度学习·ai·cnn·tensorflow·卷积神经网络·模型训练·全流程指导
心平愈三千疾1 小时前
学习秒杀系统-页面优化技术
java·学习·面试
为什么名字不能重复呢?1 小时前
Day1||Vue指令学习
前端·vue.js·学习
明早你自己说1 小时前
学习寄存器——GPIO(二)学习BSRR BRR ODR寄存器的原子性和在HAL库的应用
单片机·嵌入式硬件·学习
倔强青铜三1 小时前
苦练Python第27天:嵌套数据结构
人工智能·python·面试
xinzheng新政1 小时前
纸板制造学习2
学习·制造
试着1 小时前
零基础学习性能测试第一章-性能测试和功能测试的区别
功能测试·学习·零基础·性能测试
倔强青铜三1 小时前
苦练Python第26天:精通字典8大必杀技
人工智能·python·面试
试着1 小时前
零基础学习性能测试第一章:核心性能指标-并发量
学习·零基础·性能测试·性能指标·并发量