Hi developers,
I'm having difficulty minimizing ribosome structures using real_space_refine. The structures are mostly fine (I think) and there are no sever close-contacts. But it seems to happen in particular with waters and/or hydrogens
present. See below for an example error message.
Searching the mailing list archive, I found an old thread on the same topic where Pavel explained that this can happen when the weights are set improperly.
https://phenix-online.org/pipermail/phenixbb/2017-November/023588.html
I suspect my problems are related to the ad hoc method of setting weights does not work well for a large structure with 150,000+ atoms. When I check the log file, the weight estimation looks like this:
XYZ refinement
**************
Weight determination summary:
number of chunks: 2038
random chunks:
chunk 1215 optimal weight: 50.0000
chunk 784 optimal weight: 5.9990
chunk 1173 optimal weight: 50.0000
chunk 591 optimal weight: 30.0000
chunk 385 optimal weight: 50.0000
chunk 380 optimal weight: 2.9990
chunk 1248 optimal weight: 50.0000
chunk 1338 optimal weight: 50.0000
chunk 971 optimal weight: 50.0000
chunk 183 optimal weight: 50.0000
chunk 1543 optimal weight: 50.0000
overall best weight: 27.7996
So there seems to be a large discrepancy for the optimal weight for different chunks. Out of a 10-macro cycle run (crashed on the last cycle), the overall best weight varied between 3.7 and 34, which I suspect contributes
to the unstable minimization procedure.
overall best weight: 33.9998
overall best weight: 20.5996
overall best weight: 5.0186
overall best weight: 4.6388
overall best weight: 3.7586
overall best weight: 34.1998
overall best weight: 27.7996
overall best weight: 18.1996
overall best weight: 9.1992
Do you think a constant weight could be a solution to this problem? Is it possible to set it manually? Which of the weights are set using the heuristic method? Are there different weights for e.g. bonded restraints and
"extra" metal bond restraints? There are some references to weights in the .eff file and
nonbonded_weight seems to be an interesting option with a default value of 100.
Regards,
Daniel
Example run that explodes:
phenix.real_space_refine resolution=2 run=minimization_global nproc=4 output.prefix=phe
output.suffix=_min ignore_symmetry_conflicts=True
macro_cycles=10 ligands.cif elbow.edits coot-42.pdb
map.mrc
Traceback (most recent call last):
File "/Applications/phenix-1.20.1-4487/build/../modules/phenix/phenix/command_line/real_space_refine.py", line 8, in <module>
run_program(real_space_refine.Program)
File "/Applications/phenix-1.20.1-4487/modules/cctbx_project/iotbx/cli_parser.py", line 79, in run_program
task.run()
File "/Applications/phenix-1.20.1-4487/modules/phenix/phenix/programs/real_space_refine.py", line 207, in run
log
= self.logger)
File "/Applications/phenix-1.20.1-4487/modules/phenix/phenix/refinement/macro_cycle_real_space.py", line 297, in __init__
self.caller(self.refine_xyz)
File "/Applications/phenix-1.20.1-4487/modules/phenix/phenix/refinement/macro_cycle_real_space.py", line 312, in caller
func()
File "/Applications/phenix-1.20.1-4487/modules/phenix/phenix/refinement/macro_cycle_real_space.py", line 653, in refine_xyz
self.minimization_no_ncs()
File "/Applications/phenix-1.20.1-4487/modules/phenix/phenix/refinement/macro_cycle_real_space.py", line 716, in minimization_no_ncs
log
= self.log)
File "/Applications/phenix-1.20.1-4487/modules/cctbx_project/mmtbx/refinement/real_space/individual_sites.py", line 51, in __init__
gradients_method
= gradients_method)
File "/Applications/phenix-1.20.1-4487/modules/cctbx_project/mmtbx/refinement/real_space/weight.py", line 87, in __init__
rms_angles_limit = rms_angles_limit)
File "/Applications/phenix-1.20.1-4487/modules/cctbx_project/mmtbx/refinement/real_space/individual_sites.py", line 368, in refine
rms_angles_limit = rms_angles_limit)
File "/Applications/phenix-1.20.1-4487/modules/cctbx_project/mmtbx/refinement/real_space/individual_sites.py", line 235, in __init__
weight
= weight)
File "/Applications/phenix-1.20.1-4487/modules/cctbx_project/mmtbx/refinement/real_space/individual_sites.py", line 112, in refine
states_collector
= self.states_accumulator)
File "/Applications/phenix-1.20.1-4487/modules/cctbx_project/cctbx/maptbx/real_space_refinement_simple.py", line 174, in __init__
exception_handling_params=lbfgs_exception_handling_params)
File "/Applications/phenix-1.20.1-4487/modules/cctbx_project/scitbx/lbfgs/__init__.py", line 278, in run
line_search)
File "/Applications/phenix-1.20.1-4487/modules/cctbx_project/scitbx/lbfgs/__init__.py", line 131, in run_c_plus_plus
f, g = target_evaluator.compute_functional_and_gradients()
File "/Applications/phenix-1.20.1-4487/modules/cctbx_project/cctbx/maptbx/real_space_refinement_simple.py", line 245, in compute_functional_and_gradients
compute_gradients=True)
File "/Applications/phenix-1.20.1-4487/modules/cctbx_project/cctbx/geometry_restraints/manager.py", line 1479, in energies_sites
flags=flags, sites_cart=sites_cart, site_labels=site_labels)
File "/Applications/phenix-1.20.1-4487/modules/cctbx_project/cctbx/geometry_restraints/manager.py", line 1381, in pair_proxies
check_bonded_distance_cutoff(sites_frac=sites_frac)
File "/Applications/phenix-1.20.1-4487/modules/cctbx_project/cctbx/geometry_restraints/manager.py", line 1262, in check_bonded_distance_cutoff
raise RuntimeError(msg)
RuntimeError: Bond distance > max_reasonable_bond_distance: 58.8204 > 50:
distance: 19 - 25:
20.675
distance: 21 - 22:
4.594
distance: 21 - 23:
14.720
distance: 22 - 24:
27.218
distance: 25 - 26:
15.535
distance: 25 - 138:
20.583
distance: 26 - 27:
10.976
distance: 26 - 29:
9.260
distance: 27 - 28:
6.472
distance: 27 - 34:
28.251
distance: 28 - 135:
26.553
distance: 29 - 30:
30.275
distance: 30 - 31:
45.594
distance: 31 - 32:
42.003
distance: 32 - 33:
58.820
distance: 34 - 35:
15.118
distance: 34 - 40:
32.473
distance: 35 - 36:
10.126
distance: 35 - 38:
33.272
distance: 36 - 37:
36.153
distance: 36 - 41:
14.653
distance: 38 - 39:
31.110
distance: 39 - 40:
31.467
distance: 41 - 42:
36.418
distance: 42 - 43:
13.145
distance: 43 - 44:
8.206
distance: 43 - 45:
40.869
distance: 45 - 46:
12.390
distance: 46 - 47:
25.848
distance: 46 - 49:
16.457
distance: 47 - 48:
15.264
distance: 47 - 53:
38.374
distance: 49 - 50:
27.548
distance: 50 - 51:
46.020
distance: 50 - 52:
31.107
distance: 53 - 54:
25.030
distance: 54 - 55:
33.266
distance: 55 - 56:
15.731
distance: 55 - 57:
17.553
distance: 57 - 58:
8.147
distance: 58 - 59:
15.533
distance: 58 - 61:
3.968
distance: 59 - 60:
32.012
distance: 59 - 66:
13.102
distance: 60 - 143:
27.836
distance: 61 - 62:
21.904
distance: 62 - 63:
22.068
distance: 63 - 64:
40.044
distance: 64 - 65:
14.241
distance: 66 - 67:
13.162
distance: 67 - 68:
14.727
distance: 67 - 70:
18.482
distance: 68 - 69:
7.119
distance: 68 - 74:
16.874
distance: 70 - 71:
23.617
distance: 70 - 72:
26.751
distance: 71 - 73:
31.237
distance: 74 - 75:
24.016
distance: 74 - 146:
23.850
distance: 75 - 76:
10.199
distance: 75 - 78:
26.004
distance: 76 - 77:
12.111
distance: 76 - 81:
13.195
distance: 77 - 157:
10.604
distance: 78 - 79:
24.115
distance: 78 - 80:
26.622
distance: 81 - 82:
9.528
distance: 82 - 83:
10.254
distance: 82 - 85:
9.660