exploding refinement
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 När du har kontakt med oss på Uppsala universitet med e-post så innebär det att vi behandlar dina personuppgifter. För att läsa mer om hur vi gör det kan du läsa här: http://www.uu.se/om-uu/dataskydd-personuppgifter/ E-mailing Uppsala University means that we will process your personal data. For more information on how this is performed, please read here: http://www.uu.se/en/about-uu/data-protection-policy
participants (1)
-
Daniel Larsson