cctbx / cctbx_project

Computational Crystallography Toolbox
https://cci.lbl.gov/docs/cctbx
Other
214 stars 111 forks source link

clashscore.py default args are inconsistent #413

Open martinfalk opened 4 years ago

martinfalk commented 4 years ago

There is an inconsistency regarding the default arguments of clashscore.py, in particular condensed_probe. Running the python script on a molecule produces slightly different results than running the validation in PHENIX.

The default args for the command line are False. See here https://github.com/cctbx/cctbx_project/blob/34685978dccbf7a194fe99be48a51c2c99244c07/mmtbx/programs/clashscore.py#L12-L26 and https://github.com/cctbx/cctbx_project/blob/34685978dccbf7a194fe99be48a51c2c99244c07/mmtbx/programs/clashscore.py#L43-L46


When looking for condensed_probe within mmtbx, I came across model.py where it is defaulted to True https://github.com/cctbx/cctbx_project/blob/34685978dccbf7a194fe99be48a51c2c99244c07/mmtbx/model/model.py#L3020-L3023

When running clashscore.py on the command line using condensed_probe=True it produces the same results as when run within PHENIX.

olegsobolev commented 4 years ago

Thank you for pointing this out.

I introduced these flags (fast_clash and condensed_probe) to optimize the runtime of this utility. For technical reasons in some corner cases you can get slightly more clashes and almost negligible increase of clashscore itself (when using faster version). I believe these new clashes highlight areas that researchers should investigate. This code is used both in Phenix suite and in Molprobity website (http://molprobity.biochem.duke.edu/). We have already switched to a faster version in Phenix which you can see in model.py.

The discrepancy between web servers and Phenix package is the only result of these options. We (@chrissciwilliams) are investigating the possibilities of moving Molprobity web service to use the Phenix package options, but there is some inertia for such a visible service as Molprobity.

martinfalk commented 4 years ago

Got it. This slight difference actually caused me to investigate this. In particular since there is no obvious way in Phenix to access these parameters in order to reproduce the results with Molprobity and/or scripts.