AF3 nonensembled_transform_fns函数解读
AlphaFold3 input_pipeline 模块 nonensembled_transform_fns
函数执行非集成(non-ensembled)的数据变换操作,用于 AlphaFold3 输入数据预处理,主要负责:
-
转换输入特征(如 MSA, templates, 序列 mask)。
-
生成骨架特征(backbone frames, torsion angles)。
-
处理结构信息(如原子坐标转换)。
源代码:
def nonensembled_transform_fns(common_cfg, mode_cfg):
"""Input pipeline data transformers that are not ensembled."""
transforms = [
data_transforms.cast_to_64bit_ints,
data_transforms.correct_msa_restypes,
data_transforms.squeeze_features,
data_transforms.randomly_replace_msa_with_unknown(0.0),
data_transforms.make_seq_mask,
data_transforms.make_msa_mask,
data_transforms.make_hhblits_profile,
]
if common_cfg.use_templates:
transforms.extend(
[
data_transforms.fix_templates_aatype,
data_transforms.make_template_mask,
data_transforms.make_pseudo_beta("template_"),
]
)
if common_cfg.use_template_torsion_angles:
transforms.extend(
[
data_transforms.atom37_to_torsion_angles("template_"),
]
)
transforms.extend(
[
data_transforms.make_atom14_masks,
]
)
if mode_cfg.supervised:
transforms.extend(
[
data_transforms.make_atom14_posit