AlphaFold3
feature_processing_multimer
模块的 pair_and_merge 函数是 AlphaFold3 数据处理管道 中的重要函数,它主要负责:
- 处理各个链的特征(
all_chain_features
); - 决定是否对 MSA 特征进行配对(
pair_msa_sequences
); - 合并各个链的特征,并最终返回一个包含所有特征的字典。
源代码:
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