PyMOL中高dot density计算蛋白配体互作面积出现负值问题
蛋白-配体互作面积计算的PyMOL参数问题
计算PDB ID为1r0r的蛋白与配体互作面积,测试不同dot_density参数的影响。使用PDBFixer处理后的文件与直接从PDB下载的原始文件计算结果存在差异。
PyMOL计算步骤
在PyMOL中执行以下命令计算互作面积:
remove solvent set dot_density, x create 'sel1', E// #First selection is chain E create 'sel2', * and not E// #Second selection is everything else, in this case chain I create 'whole', * #To get the entire surface print cmd.get_area('sel1') + cmd.get_area('sel2') - cmd.get_area('whole')
理论上,该公式通过单独链表面积之和减去复合物表面积得到互作面积。但测试发现dot_density为1和2时结果为正但差异极大,设为3及以上时出现负值,原因不明。
测试结果
PDBFixer修复后文件的计算结果
[in] set dot_density, 1 print cmd.get_area('sel1') + cmd.get_area('sel2') - cmd.get_area('whole') [out] 6462.04248046875 [in] set dot_density, 2 print cmd.get_area('sel1') + cmd.get_area('sel2') - cmd.get_area('whole') [out] 2663.0439453125 [in] set dot_density, 3 print cmd.get_area('sel1') + cmd.get_area('sel2') - cmd.get_area('whole') [out] -357.0478515625 [in] set dot_density, 4 print cmd.get_area('sel1') + cmd.get_area('sel2') - cmd.get_area('whole') [out] -152.4716796875
直接下载的原PDB文件计算结果
[in] set dot_density, 1 print cmd.get_area('sel1') + cmd.get_area('sel2') - cmd.get_area('whole') [out] 14053.78369140625 [in] set dot_density, 2 print cmd.get_area('sel1') + cmd.get_area('sel2') - cmd.get_area('whole') [out] 2272.84228515625 [in] set dot_density, 3 print cmd.get_area('sel1') + cmd.get_area('sel2') - cmd.get_area('whole') [out] -735.10107421875 [in] set dot_density, 4 print cmd.get_area('sel1') + cmd.get_area('sel2') - cmd.get_area('whole') [out] 124.2021484375
需求与疑问
期望不同dot_density参数下的结果相近且均为正值,高dot_density参数本应提升计算准确性,但实际结果不符合预期。已完成Python批量处理PDB列表的脚本编写,需确定可靠的PyMOL参数设置,后续计划测试set dot_solvent, on的效果。
内容的提问来源于stack exchange,提问作者amy-elouise
相关产品推荐
相关产品推荐

