欢迎关注我的CSDN:https://spike.blog.csdn.net/
本文地址:https://spike.blog.csdn.net/article/details/136165853
CombFold 是一种新的组装技术,可以利用 AlphaFold-Multimer 预测的可能的亚复合物的结构,来构建大型蛋白质复合物的结构。CombFold 的推理步骤如下:
- 第一步:定义亚单位。亚单位是指在组装过程中不会改变结构的单个结构域,例如 PDB: 6YBQ 中的 A0 和 G0。需要创建一个 subunits.json 文件,描述复合物中的所有亚单位的序列和链名。
- 第二步:使用 AlphaFold-Multimer 预测所有亚单位配对的结构。AlphaFold-Multimer 是一种可以预测多个亚单位之间相互作用的结构模型的方法。每个亚单位配对可以有多个结构模型,因为在组装时可以考虑不同的成对相互作用。
- 第三步:[可选] 使用 AlphaFold-Multimer 预测更大的亚单位组合的结构。这一步可以提高组装的准确性,但也会增加计算的复杂度。
- 第四步:运行组合式组装算法,将所有生成的结构组合成一个大型复合物的结构。该算法使用贪心策略,从最大的亚复合物开始,逐步添加更小的亚复合物,直到完成组装或达到最大结果数。
框架图:
GitHub: https://github.com/dina-lab3D/CombFold
步骤1 定义亚基 (Subunits)
第一步是将复合物分割成亚基,并创建 subunits.json
文件来定义复合物。亚基在组装过程中不会改变它们的结构(只会改变它们相对于其他亚基结构的位置),所以我们希望选择亚基是单个结构域的。
简单地说,每个亚基应该是复合物中的完整链。如果链很长,就需要将它切割成几个亚基。这可以通过两种方法实现,一种是简单地将链分割成等长的亚基,另一种是根据序列使用功能域 (Functional Domains) 预测器。还有一种选择是根据序列,预测无序区域(例如使用 IUPred3
),再去除它们。再在这些区域上分割序列。
亚基由4个字段定义:
name
: 亚基的唯一名称sequence
: 亚基的氨基酸序列chain_names
: 代表亚基的化学计量的链名称列表start_res
: 链上序列的起始残基的索引。用于设置同一链上其他亚基的约束。
注意:每个唯一的序列,只应该出现在一个亚基定义中,根据化学计量,它可以被转换成组装复合物中的多个链。
这描述了一个有5条链 (A\B\C\D\E) 的复合物,其中A和B是相同的链 (长度50),C和D也是 (长度50)。另外,在这个例子中,链E (长度100) 被分割成两个亚基。这可能发生在,例如,如果完整的E太大,无法用我们的GPU和其他亚基一起预测。
例如 PDB 6YBQ,即:
>6YBQ_1|Chains A, B, C, D, E, F|Propionyl-CoA carboxylase beta chain|Methylorubrum extorquens (strain ATCC 14718 / DSM 1338 / JCM 2805 / NCIMB 9133 / AM1) (272630)
MKDILEKLEERRAQARLGGGEKRLEAQHKRGKLTARERIELLLDHGSFEEFDMFVQHRSTDFGMEKQKIPGDGVVTGWGTVNGRTVFLFSKDFTVFGGSSSEAHAAKIVKVQDMALKMRAPIIGIFDAGGARIQEGVAALGGHGEVFRRNVAASGVIPQISVIMGPCAGGDVYSPAMTDFIFMVRDTSYMFVTGPDVVKTVTNEVVTAEELGGAKVHTSKSSIADGSFENDVEAILQIRRLLDFLPANNIEGVPEIESFDDVNRLDKSLDTLIPDNPNKPYDMGELIRRVVDEGDFFEIQAAYARNIITGFGRVEGRTVGFVANQPLVLAGVLDSDASRKAARFVRFCNAFSIPIVTFVDVPGFLPGTAQEYGGLIKHGAKLLFAYSQATVPLVTIITRKAFGGAYIVMASKHVGADLNYAWPTAQIAVMGAKGAVEIIFRAEIGDADKVAERTKEYEDRFLSPFVAAERGYIDEVIMPHSTRKRIARALGMLRTKEMEQPRKKHDNIPL
>6YBQ_2|Chains G, H, I, J, K, L|Propionyl-CoA carboxylase alpha subunit|Methylorubrum extorquens (strain ATCC 14718 / DSM 1338 / JCM 2805 / NCIMB 9133 / AM1) (272630)
MFDKILIANRGEIACRIIKTAQKMGIKTVAVYSDADRDAVHVAMADEAVHIGPAPAAQSYLLIEKIIDACKQTGAQAVHPGYGFLSERESFPKALAEAGIVFIGPNPGAIAAMGDKIESKKAAAAAEVSTVPGFLGVIESPEHAVTIADEIGYPVMIKASAGGGGKGMRIAESADEVAEGFARAKSEASSSFGDDRVFVEKFITDPRHIEIQVIGDKHGNVIYLGERECSIQRRNQKVIEEAPSPLLDEETRRKMGEQAVALAKAVNYDSAGTVEFVAGQDKSFYFLEMNTRLQVEHPVTEMITGLDLVELMIRVAAGEKLPLSQDQVKLDGWAVESRVYAEDPTRNFLPSIGRLTTYQPPEEGPLGGAIVRNDTGVEEGGEIAIHYDPMIAKLVTWAPTRLEAIEAQATALDAFAIEGIRHNIPFLATLMAHPRWRDGRLSTGFIKEEFPEGFIAPEPEGPVAHRLAAVAAAIDHKLNIRKRGISGQMRDPSLLTFQRERVVVLSGQRFNVTVDPDGDDLLVTFDDGTTAPVRSAWRPGAPVWSGTVGDQSVAIQVRPLLNGVFLQHAGAAAEARVFTRREAELADLMPVKENAGSGKQLLCPMPGLVKQIMVSEGQEVKNGEPLAIVEAMKMENVLRAERDGTISKIAAKEGDSLAVDAVILEFA
subunits.json
如下:
{
"A0": {
"name": "A0",
"chain_names": [
"A",
"B",
"C",
"D",
"E",
"F"
],
"start_res": 1,
"sequence": "MKDILEKLEERRAQARLGGGEKRLEAQHKRGKLTARERIELLLDHGSFEEFDMFVQHRSTDFGMEKQKIPGDGVVTGWGTVNGRTVFLFSKDFTVFGGSSSEAHAAKIVKVQDMALKMRAPIIGIFDAGGARIQEGVAALGGHGEVFRRNVAASGVIPQISVIMGPCAGGDVYSPAMTDFIFMVRDTSYMFVTGPDVVKTVTNEVVTAEELGGAKVHTSKSSIADGSFENDVEAILQIRRLLDFLPANNIEGVPEIESFDDVNRLDKSLDTLIPDNPNKPYDMGELIRRVVDEGDFFEIQAAYARNIITGFGRVEGRTVGFVANQPLVLAGVLDSDASRKAARFVRFCNAFSIPIVTFVDVPGFLPGTAQEYGGLIKHGAKLLFAYSQATVPLVTIITRKAFGGAYIVMASKHVGADLNYAWPTAQIAVMGAKGAVEIIFRAEIGDADKVAERTKEYEDRFLSPFVAAERGYIDEVIMPHSTRKRIARALGMLRTKEMEQPRKKHDNIPL"
},
"G0": {
"name": "G0",
"chain_names": [
"G",
"H",
"I",
"J",
"K",
"L"
],
"start_res": 1,
"sequence": "MFDKILIANRGEIACRIIKTAQKMGIKTVAVYSDADRDAVHVAMADEAVHIGPAPAAQSYLLIEKIIDACKQTGAQAVHPGYGFLSERESFPKALAEAGIVFIGPNPGAIAAMGDKIESKKAAAAAEVSTVPGFLGVIESPEHAVTIADEIGYPVMIKASAGGGGKGMRIAESADEVAEGFARAKSEASSSFGDDRVFVEKFITDPRHIEIQVIGDKHGNVIYLGERECSIQRRNQKVIEEAPSPLLDEETRRKMGEQAVALAKAVNYDSAGTVEFVAGQDKSFYFLEMNTRLQVEHPVTEMITGLDLVELMIRVAAGEKLPLSQDQVKLDGWAVESRVYAEDPTRNFLPSIGRLTTYQPPEEGPLGGAIVRNDTGVEEGGEIAIHYDPMIAKLVTWAPTRLEAIEAQATALDAFAIEGIRHNIPFLATLMAHPRWRDGRLSTGFIKEEFPEGFIAPEPEGPVAHRLAAVAAAIDHKLNIRKRGISGQMRDPSLLTFQRERVVVLSGQRFNVTVDPDGDDLLVTFDDGTTAPVRSAWRPGAPVWSGTVGDQSVAIQVRPLLNGVFLQHAGAAAEARVFTRREAELADLMPVKENAGSGKQLLCPMPGLVKQIMVSEGQEVKNGEPLAIVEAMKMENVLRAERDGTISKIAAKEGDSLAVDAVILEFA"
}
}
步骤2 预测成对的结构
在这个阶段,我们将对每一对亚基运行 AFM。使用这个仓库中的脚本:
python3 scripts/prepare_fastas.py subunits.json --stage pairs --output-fasta-folder <path_to_output_folder> --max-af-size 1800
将会生成一个文件夹,里面有多达 ((N+1)*N)/2
个 .fasta
文件。这些文件都可以作为 AFM 的输入。注意,所需的 AFM 预测的数量取决于亚基的数量(复合物中的唯一链),而不是复合物中的链的数量。例如,一个有10条链的 同源复合物 (homooligomer) ,在这个阶段只需要一个 AFM 预测。注意,命令行定义了 --max-af-size
,设置为你的预测环境可以预测的最大残基数。
例如,只有2个链 A0 和 G0,预测的复合物 A6B6,包括:
A0*3: AFM_A0_A0_A0_unrelaxed_rank_1_model_3.pdb
A0*3: AFM_A0_A0_A0_unrelaxed_rank_2_model_1.pdb
A0*2+G0: AFM_A0_A0_G0_unrelaxed_rank_1_model_1.pdb
A0*2+G0: AFM_A0_A0_G0_unrelaxed_rank_2_model_3.pdb
A0*2: AFM_A0_A0_unrelaxed_rank_1_model_1.pdb
A0*2: AFM_A0_A0_unrelaxed_rank_2_model_4.pdb
A0+G0: AFM_A0_G0_unrelaxed_rank_1_model_2.pdb
A0+G0: AFM_A0_G0_unrelaxed_rank_2_model_3.pdb
G0*2: AFM_G0_G0_unrelaxed_rank_1_model_4.pdb
G0*2: AFM_G0_G0_unrelaxed_rank_2_model_5.pdb
步骤3 预测大型组的结构 (可选)
在这个阶段,我们将对更大的亚基组合运行 AFM(一次预测最多6个亚基)。为了减少所需的预测次数,我们只会选择基于对的预测分数更有可能得到高分结果的更大的亚基组合。这个阶段是可选的,因为组装可以只使用对的预测来完成,但是,这个阶段显著提高了生成结果的准确性和组装复杂复合物的能力。使用相同的脚本,我们将生成一个包含更大组合的 .fasta
文件的文件夹:
python3 scripts/prepare_fastas.py subunits.json --stage groups --output-fasta-folder <path_to_output_folder>--max-af-size 1800 --input-pairs-results <path_to_AFM_pairs_results>
这里你还需要提供 path_to_AFM_pairs_results
,它是一个包含了前一阶段 AFM 预测的所有 .pdb
文件的文件夹。虽然脚本会生成亚基分组的建议,为了提高结果,用户也被鼓励使用关于目标复合物的生物学知识来手动创建 .fasta
文件,用于已知的、脚本没有建议的亚基分组。生成的和手动定义的 .fasta
文件都要作为输入提供给 AFM,就像在前一阶段一样。
与之前的区别是 stage 参数是 pairs,还是 groups
步骤4 组合组装 (Combinatorial Assembly)
在这个使用阶段,用户已经有了 AlphaFold-Multimer
对不同亚基组合的结构预测 (以 .pdb
文件的形式)。例如,对于一个有27条链 (A9B9C9) 的复合物,将会有所有2条链的 .pdb
模型 (AA,AB,AC,BB,BC,CC) 以及可选的扩展子复合物,如 ABC,AAB,AABC 等。组合式组装的输入将是这些 .pdb
文件加上 subunits.json
。
注意,与原始论文不同,所提供的脚本使用的相互作用评分函数是基于 interface-plDDT
而不是 PAE
。也就是说,一个包含 subunits.json
文件和一个名为 pdbs
的文件夹,该文件夹包含了前几个阶段 AFM 生成的所有 PDB 文件。
使用本地安装 通过运行 scripts/run_on_pdbs.py
:
python3 scripts/run_on_pdbs.py <path_to_subunits.json> <path_to_folder_of_pdbs> <path_to_empty_output_folder>