AF3 pair_and_merge函数解读

 AlphaFold3 feature_processing_multimer 模块的 pair_and_merge 函数是 AlphaFold3 数据处理管道 中的重要函数,它主要负责:

  1. 处理各个链的特征all_chain_features);
  2. 决定是否对 MSA 特征进行配对pair_msa_sequences);
  3. 合并各个链的特征,并最终返回一个包含所有特征的字典。

源代码:

def pair_and_merge(
        all_chain_features: MutableMapping[str, Mapping[str, np.ndarray]],
) -> Mapping[str, np.ndarray]:
    """Runs processing on features to augment, pair and merge.

  Args:
    all_chain_features: A MutableMap of dictionaries of features for each chain.

  Returns:
    A dictionary of features.
  """

    process_unmerged_features(all_chain_features)

    np_chains_list = list(all_chain_features.values())

    pair_msa_sequences = not _is_homomer_or_monomer(np_chains_list)

    if pair_msa_sequences:
        np_chains_list = msa_pairing.create_paired_features(
            chains=np_chains_list
        )
        np_chains_list = msa_pairing.deduplicate_unpaired_sequences(np_chains_list)
    np_chains_list = crop_chains(
        np_chains_list,
        msa_crop_size=MSA_CROP_SIZE,
        pair_msa_seque

你可能感兴趣的:(python,开发语言,深度学习,人工智能,生物信息学)