You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 16:25:14