自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1337)
  • 收藏
  • 关注

原创 AF3 OpenFoldMultimerDataset类looped_samples方法解读

AlphaFold3 data_modules 模块的 OpenFoldMultimerDataset 类 looped_samples 方法是一个生成器,它会无限生成某个子数据集(指定 dataset_idx)中、经过过滤后的有效数据样本下标,用于训练过程中的采样。

2025-04-04 11:24:46 156

原创 AF3 OpenFoldMultimerDataset类get_stochastic_train_filter_prob方法解读

AlphaFold3 data_modules 模块的 OpenFoldMultimerDataset 类的静态方法 get_stochastic_train_filter_prob 的目的是为多链蛋白(multimer)数据中每条链计算一个随机采样概率列表,这些概率用于后续在训练中对不同链的采样进行加权。

2025-04-04 11:12:09 113

原创 AF3 OpenFoldMultimerDataset类deterministic_train_filter方法解读

AlphaFold3 data_modules 模块的 OpenFoldMultimerDataset 类deterministic_train_filter 方法是该类中最关键的一个静态方法之一。这个方法用于 训练时对样本进行确定性过滤(hard filters),只有通过这些过滤条件的样本才可能参与后续训练。

2025-04-04 09:13:44 73

原创 AF3 OpenFoldMultimerDataset类解读

AlphaFold3 data_modules 模块的 OpenFoldMultimerDataset 类是 OpenFoldDataset 类的子类,专门用于 多链蛋白质(Multimer) 数据集的训练。它通过引入 AlphaFold Multimer 论文 中描述的过滤步骤,来实现多链蛋白质的训练。这个类扩展了父类的功能,特别是为了处理多链蛋白质的数据预处理和样本过滤。

2025-04-03 20:06:15 588

原创 AF3 OpenFoldDataset类解读

AlphaFold3 data_modules 模块的 OpenFoldDataset 类是一个自定义的数据集类,继承自 torch.utils.data.Dataset。它的目的是在训练时实现 随机过滤器(stochastic filters),用于从多个不同的数据集(OpenFoldSingleDataset 或 OpenFoldSingleMultimerDataset)中进行样本选择和过滤。该类具有一些 数据增强 和 过滤 的机制,以提高模型的训练质量。

2025-04-03 19:55:21 229

原创 AF3 OpenFoldDataset类looped_samples方法解读

AlphaFold3 data_modules 模块的 OpenFoldDataset 类的 looped_samples 方法用于 循环采样数据,确保数据能被不断地提供,适用于 PyTorch 的 DataLoader 在训练过程中迭代读取数据。

2025-04-03 19:44:49 561

原创 AF3 OpenFoldDataset类get_stochastic_train_filter_prob方法解读

AlphaFold3 data_modules 模块的 OpenFoldDataset 类的 get_stochastic_train_filter_prob 方法是类的静态方法(@staticmethod),该方法接收一个 cache_entry(字典或类似的结构),用于存储蛋白质的相关信息。返回一个 浮点数,表示当前样本的采样概率。

2025-04-03 18:56:09 197

原创 AF3 OpenFoldDataset类reroll 方法解读

AlphaFold3 data_modules 模块的 OpenFoldDataset 类的 reroll 方法动态确定当前 epoch 需要使用的数据点,确保每次训练时的样本 不是固定的,而是 基于概率重新采样。改变 self.datapoints,即 改变 __getitem__ 方法取数据的方式,从而实现 动态数据增强。在 训练过程中可以多次调用 reroll() 来 重新采样,确保每个 epoch 训练数据的多样性。

2025-04-03 17:15:58 175

原创 AF3 OpenFoldDataset类初始化方法解读

AlphaFold3 data_modules 模块的 OpenFoldDataset 类的 __init__ 方法用于初始化 OpenFoldDataset,它管理多个蛋白质数据集,并在训练时进行加权采样和随机过滤。

2025-04-03 17:04:09 604

原创 AF3 OpenFoldSingleMultimerDataset类解读

AlphaFold3 data_modules 模块的 OpenFoldSingleMultimerDataset类继承自torch.utils.data.Dataset,用于处理多肽复合物(Multimer) 数据,提供数据加载、特征提取、模板匹配等功能。该类支持 训练(train)、验证(eval)、推理(predict) 三种模式,并在__getitem__ 方法中读取 .cif 结构文件、MSA 数据、模板特征,最终返回 标准化的蛋白质特征张量。

2025-04-02 16:36:48 392

原创 AF3 OpenFoldSingleDataset类解读

OpenFoldSingleDataset 是 OpenFold 中的一个数据集类,继承自 torch.utils.data.Dataset,用于加载和处理蛋白质结构数据,以支持 AlphaFold3 相关的深度学习任务。

2025-04-01 20:33:15 739

原创 AF3 FeaturePipeline类解读

AlphaFold3 feature_pipeline 模块 FeaturePipeline 类是一个封装类,通过调用函数np_example_to_features 实现整个数据处理流程。

2025-03-30 19:38:57 652

原创 AF3 make_data_config函数解读

AlphaFold3 input_pipeline 模块 make_data_config 函数用于构造 AlphaFold3 的数据配置,并返回 更新后的配置和所需的特征名称列表。它主要用于 不同模式(如训练、推理)下的数据处理,确保特征选择符合设定,同时设置 裁剪尺寸(crop_size) 以匹配序列长度 num_res。

2025-03-30 15:14:17 295

原创 AF3 process_tensors_from_config函数解读

AlphaFold3 input_pipeline 模块 process_tensors_from_config 函数用于根据配置(common_cfg, mode_cfg) 处理输入 tensors,并应用不同的变换,最终返回处理后的数据。它包含非集成(nonensembled) 和 集成(ensembled) 两种变换策略,适用于不同的模型训练或推理模式。

2025-03-30 11:07:45 792

原创 AF3 ensembled_transform_fns函数解读

AlphaFold3 input_pipeline 模块 ensembled_transform_fns 函数用于构建一个数据变换流水线(transform pipeline),用于 AlphaFold 训练/推理的 输入数据预处理。它返回一个 包含多个数据变换函数的列表,包含了 MSA 采样、Masked MSA、聚类等操作,以模拟数据变化,提高模型泛化能力。

2025-03-30 09:09:39 955

原创 Pytorch torch.repeat_interleave函数介绍

 torch.repeat_interleave 是 PyTorch 用于重复张量元素的函数。它可以沿指定维度对张量的元素进行重复。

2025-03-29 19:33:52 424

原创 AF3 random_crop_to_size函数解读

AlphaFold3 data_transforms 模块 random_crop_to_size 函数的主要作用是随机裁剪蛋白质序列 & 模板(templates),以固定 crop_size(序列长度)和 max_templates(模板数量),从而减少计算量,提高训练效率。

2025-03-29 17:24:17 913

原创 PyTorch 张量的new_tensor方法介绍

在 PyTorch 中,new_tensor是张量(Tensor)的一个方法,用于创建新的张量。它的核心特点是继承原张量的一些属性(如数据类型dtype、设备device等),同时允许传入新的数据。

2025-03-29 11:59:02 391

原创 AF3 crop_extra_msa函数解读

AlphaFold3 data_transforms 模块 crop_extra_msa 函数用于 裁剪额外的 MSA(multiple sequence alignment,多个序列比对),以 减少计算量,优化 AlphaFold3 训练的效率。

2025-03-29 11:23:28 247

原创 AF3 nonensembled_transform_fns函数解读

AlphaFold3 input_pipeline 模块 nonensembled_transform_fns 函数执行非集成(non-ensembled)的数据变换操作,用于 AlphaFold3 输入数据预处理。

2025-03-29 11:05:41 803

原创 AF3 convert_to_af3_simple_features函数解读

AlphaFold3 data_transforms 模块 convert_to_af3_simple_features 函数的作用是提取 AlphaFold3 训练所需的简化骨架(backbone)特征。

2025-03-29 10:52:02 389

原创 Python np.vectorize函数介绍

 np.vectorize 是 NumPy 提供的一个 用于将标量函数(scalar function)向量化 的工具,使其可以作用于 NumPy 数组,类似于 通用函数(ufunc) 的行为。

2025-03-28 20:48:18 481

原创 AF3 _make_rigid_group_constants函数解读

AlphaFold3 residue_constants 模块 _make_rigid_group_constants 函数负责 初始化氨基酸残基的刚体坐标系转换信息。

2025-03-28 19:46:06 903

原创 AF3 atom37_to_frames函数解读

AlphaFold3 data_transforms 模块 atom37_to_frames 函数的核心作用是:基于 37 个原子的坐标计算 8 组刚性基团的局部坐标系,这些刚性基团(rigid groups)用于后续的蛋白质结构建模(如 AlphaFold3 的扩散预测模块)。

2025-03-28 11:41:59 761

原创 AF3 all_atom_positions函数解读

AlphaFold3 data_transforms 模块 all_atom_positions 函数的目标是将37维的压缩成14 维,同时处理氨基酸中存在的原子命名歧义问题。

2025-03-27 15:45:40 770

原创 AF3 make_atom14_masks函数解读

AlphaFold3 data_transforms 模块 make_atom14_masks 函数的作用是为蛋白质的每个氨基酸残基构建一个更密集的原子表示(14个维度而不是37个维度),并生成相应的掩码和映射。这是蛋白质结构预测任务中的一个重要步骤,因为它允许模型专注于更关键的原子,同时忽略一些不太重要的原子,从而提高计算效率和预测精度。

2025-03-27 11:16:52 925

原创 AF3 atom37_to_torsion_angles函数解读

AlphaFold3 data_transforms 模块的 atom37_to_torsion_angles 函数的核心目标是将原子坐标转换为二面角(torsion angles),具体来说,包括主链角 ω、φ、ψ,以及侧链的 χ 角,生成蛋白之结构特征"torsion_angles_sin_cos"、"alt_torsion_angles_sin_cos" 以及 "torsion_angles_mask"。

2025-03-26 21:25:33 802

原创 AF3 Rigid类make_transform_from_reference方法解读

AlphaFold3 rigid_utils模块Rigid类make_transform_from_reference 方法其实是实现从全局坐标到局部坐标的变换,输入的为氨基酸残基的 N(氮原子)、CA(α-碳原子)、C(羧基碳原子)三点坐标,返回一个局部坐标到全局坐标的变换rigid实例。如果从全局坐标转回局部坐标, .invert()方法返回的Rigid实例表示全局 → 局部的变换。

2025-03-24 20:40:29 884

原创 AF3 Rigid类cat方法解读

AlphaFold3 rigid_utils 模块 Rigid 类的 cat 方法的目标是 拼接多个 Rigid 对象,沿指定维度合并它们的旋转和位移,返回一个新的 Rigid 对象。它类似 torch.cat() 的功能,但针对 Rigid 这种特殊的“刚体变换”对象,分别处理旋转和位移两个部分。

2025-03-24 11:29:14 270

原创 AF3 Rigid类unsqueeze方法解读

AlphaFold3 rigid_utils 模块 Rigid 类的 unsqueeze 方法是 “维度扩充” 工具,类似于 torch.unsqueeze(),它可以 在指定维度上增加一个大小为 1 的新维度。

2025-03-24 10:34:27 374

原创 AF3 Rigid类apply_rot_fn 和 apply_trans_fn方法解读

AlphaFold3 rigid_utils 模块Rigid类的apply_rot_fn 和 apply_trans_fn方法是对Rigid变换对象进行旋转和平移操作的类方法。

2025-03-24 10:05:51 588

原创 AF3 Rigid类的from_3_points方法解读

AlphaFold3 rigid_utils 模块Rigid类的 from_3_points 方法主要用来从三个点构建刚体变换 (Rigid transformation),核心思想是 Gram-Schmidt 正交化来生成一个局部坐标系。输入为氨基酸残基的主链原子(N, CA, C)的坐标,返回的 Rigid 实例可以把该氨基酸残基原子的局部坐标转换为全局坐标。如果想反过来(从全局坐标转回局部坐标),用 .invert()。

2025-03-23 19:57:16 790

原创 AF3 Rotation类的map_tensor_fn 方法解读

AlphaFold3 rigid_utils 模块Rotation类的 map_tensor_fn方法主要作用是对旋转矩阵或四元数上的最后一维应用一个函数 (fn) ,并返回一个新的 Rotation 对象。

2025-03-23 17:16:00 379

原创 AF3 Rigid 类解读

AlphaFold3 rigid_utils 模块的 Rigid 类封装了一个旋转 (Rotation) 和一个平移 (Translation),组合成刚体变换。

2025-03-23 17:04:09 508

原创 AF3 Rotation 类解读

Rotation 类(rigid_utils 模块)是 AlphaFold3 中用于 3D旋转 的核心组件,支持两种旋转表示: 1️⃣ 旋转矩阵 (3x3)2️⃣ 四元数 (quaternion, 4元向量)

2025-03-23 16:03:13 891

原创 AF3 Rotation 类 compose_q_update_vec 方法解读

AlphaFold3 rigid_utils 模块 Rotation 类的 compose_q_update_vec方法接受一个形如 [*, 3] 的更新向量更新当前四元数,实现了一个 增量四元数旋转更新 。

2025-03-23 15:28:02 831

原创 Python typing 模块中的 Callable 类型介绍

typing 模块中的 Callable 类型用于在 Python 中对可调用对象进行类型提示。可调用对象是指那些可以像函数一样被调用的对象,包括函数、方法、类以及实现了 __call__ 方法的类实例等。借助 Callable 类型,能让代码的类型更加明确,提高代码的可读性和可维护性,同时也有助于静态类型检查工具(如 mypy)发现潜在的类型错误。

2025-03-23 14:29:28 248

原创 AF3 identity_trans函数解读

AlphaFold3 rigid_utils 模块的 identity_trans 函数的功能是生成带有批次维度的全零平移向量张量。

2025-03-23 09:53:19 403

原创 AF3 quat_to_rot函数解读

AlphaFold3 rigid_utils 模块的 quat_to_rot 函数的功能是把四元数转换为旋转矩阵,函数利用预定义的四元数到旋转矩阵的转换表 _QTR_MAT 来简化计算。

2025-03-22 20:39:33 593

原创 AF3 rot_to_quat函数解读

AlphaFold3 rigid_utils 模块的 rot_to_quat 函数的功能是把旋转矩阵转换为四元数,利用K矩阵提取最大特征值对应的特征向量,即为四元数。

2025-03-22 20:02:19 344

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除