phenix.real_space_refine crashes for very large pdb files
Dear developers and users, My phenix.real_space_refine run crashes with the error mentioned below when I have used following command to run it on a complete ribosome (containing coordinates for small subunit and large subunit in a single pdb file): phenix.real_space_refine model.pdb map.mrc resolution=4.5 reference_coordinate_restraints.enabled=true reference_coordinate_restraints.selection="chain A and resseq 2:700" reference_coordinate_restraints.sigma=0.05 secondary_structure.enabled=True res.eff > out.out
From the out.out file I can see that, it ran for 5 macro_cycles and started group b-factor refinement which reads (last few lines):
|-----------------------------------------------------------------------------| |-group b-factor refinement (macro cycle = 0; iterations = 0)-----------------| | r_work = 0.3809 r_free = 0.3809 target = 0.153923 restraints weight = None | |-----------------------------------------------------------------------------| |-group b-factor refinement (macro cycle = 1; iterations = 32)----------------| | r_work = 0.3687 r_free = 0.3687 target = 0.144348 restraints weight = 1067.479| |-----------------------------------------------------------------------------| |-group b-factor refinement (macro cycle = 2; iterations = 37)----------------| | r_work = 0.3724 r_free = 0.3724 target = 0.147257 restraints weight = 482.176| |-----------------------------------------------------------------------------| |-group b-factor refinement (macro cycle = 3; iterations = 32)----------------| | r_work = 0.3747 r_free = 0.3747 target = 0.149066 restraints weight = 262.900| |-----------------------------------------------------------------------------| The run crashes at this point.... However, phenix.real_space_refine runs fine when I am refining a protein chain or a complex (for eg: just the large or the small subunit of a ribosome). Does it have to do with my pdb file being so big after merging of both subunits where I have also crossed 99999 atoms and atom serial numbers start from A0000? A related question: What is the latest consensus of using chain IDs and atom serial numbers to use in phenix.real_space_refine for handling large files like ribosome pdbs ? I have found some information on: http://cci.lbl.gov/hybrid_36/ The error in terminal reads: Traceback (most recent call last): File "/usr/local/phenix-1.11.1-2575/build/../modules/phenix/phenix/command_line/real_space_refine.py", line 782, in <module> o = run(sys.argv[1:]) File "/usr/local/phenix-1.11.1-2575/build/../modules/phenix/phenix/command_line/real_space_refine.py", line 518, in __init__ self.caller(func = self.run_macro_cycles, prefix="Macro-cycles") File "/usr/local/phenix-1.11.1-2575/build/../modules/phenix/phenix/command_line/real_space_refine.py", line 547, in caller status = func(prefix=prefix, **kwargs) File "/usr/local/phenix-1.11.1-2575/build/../modules/phenix/phenix/command_line/real_space_refine.py", line 540, in run_macro_cycles log = self.log) File "/usr/local/phenix-1.11.1-2575/modules/phenix/phenix/refinement/macro_cycle_real_space.py", line 66, in __init__ self.caller(self.refine_adp, "ADP refinement") File "/usr/local/phenix-1.11.1-2575/modules/phenix/phenix/refinement/macro_cycle_real_space.py", line 71, in caller status = func(prefix=prefix) File "/usr/local/phenix-1.11.1-2575/modules/phenix/phenix/refinement/macro_cycle_real_space.py", line 317, in refine_adp adp_refinery.refine() File "/usr/local/phenix-1.11.1-2575/modules/cctbx_project/mmtbx/refinement/real_space/adp.py", line 78, in refine b_isos_refined = self.refine_box_with_selected(selection=sel) File "/usr/local/phenix-1.11.1-2575/modules/cctbx_project/mmtbx/refinement/real_space/adp.py", line 56, in refine_box_with_selected fmodel.update_all_scales(update_f_part1=False, apply_back_trace=True) File "/usr/local/phenix-1.11.1-2575/modules/cctbx_project/mmtbx/f_model/f_model.py", line 1452, in update_all_scales self.apply_scale_k1_to_f_obs() File "/usr/local/phenix-1.11.1-2575/modules/cctbx_project/mmtbx/f_model/f_model.py", line 1500, in apply_scale_k1_to_f_obs r_start = self.r_work() File "/usr/local/phenix-1.11.1-2575/modules/cctbx_project/mmtbx/f_model/f_model.py", line 2004, in r_work selection = selection) File "/usr/local/phenix-1.11.1-2575/modules/cctbx_project/mmtbx/f_model/f_model.py", line 1972, in _r_factor f_model = self.f_model_scaled_with_k1_w().data() File "/usr/local/phenix-1.11.1-2575/modules/cctbx_project/mmtbx/f_model/f_model.py", line 1730, in f_model_scaled_with_k1_w data = self.scale_k1_w()*self.f_model_work().data()) File "/usr/local/phenix-1.11.1-2575/modules/cctbx_project/mmtbx/f_model/f_model.py", line 2048, in scale_k1_w selection=selection) File "/usr/local/phenix-1.11.1-2575/modules/cctbx_project/mmtbx/f_model/f_model.py", line 182, in _scale_helper raise RuntimeError("Zero denominator in scale calculation.") RuntimeError: Zero denominator in scale calculation. Best regards, Tofayel
Hi Tofayel,
My phenix.real_space_refine run crashes with the error mentioned below when I have used following command to run it on a complete ribosome (containing coordinates for small subunit and large subunit in a single pdb file):
phenix.real_space_refine model.pdb map.mrc resolution=4.5 reference_coordinate_restraints.enabled=true reference_coordinate_restraints.selection="chain A and resseq 2:700" reference_coordinate_restraints.sigma=0.05 secondary_structure.enabled=True res.eff > out.out
From the out.out file I can see that, it ran for 5 macro_cycles and started group b-factor refinement which reads (last few lines):
|-----------------------------------------------------------------------------| |-group b-factor refinement (macro cycle = 0; iterations = 0)-----------------| | r_work = 0.3809 r_free = 0.3809 target = 0.153923 restraints weight = None | |-----------------------------------------------------------------------------| |-group b-factor refinement (macro cycle = 1; iterations = 32)----------------| | r_work = 0.3687 r_free = 0.3687 target = 0.144348 restraints weight = 1067.479| |-----------------------------------------------------------------------------| |-group b-factor refinement (macro cycle = 2; iterations = 37)----------------| | r_work = 0.3724 r_free = 0.3724 target = 0.147257 restraints weight = 482.176| |-----------------------------------------------------------------------------| |-group b-factor refinement (macro cycle = 3; iterations = 32)----------------| | r_work = 0.3747 r_free = 0.3747 target = 0.149066 restraints weight = 262.900| |-----------------------------------------------------------------------------|
The run crashes at this point....
It crashes trying to refine B-factors in reciprocal space (which is not the best idea anyway, I mean using reciprocal space for this, but that's at we have at present!). So, please disable B factor refinement by adding this to your command line: "run=minimization_global" (by default it is "run=minimization_global+adp").
However, phenix.real_space_refine runs fine when I am refining a protein chain or a complex (for eg: just the large or the small subunit of a ribosome). Does it have to do with my pdb file being so big after merging of both subunits where I have also crossed 99999 atoms and atom serial numbers start from A0000?
No, it has nothing to do with this.
A related question: What is the latest consensus of using chain IDs and atom serial numbers to use in phenix.real_space_refine for handling large files like ribosome pdbs ? I have found some information on: http://cci.lbl.gov/hybrid_36/
Using hybrid36 and two-letter chain IDs allows to fit into PDB virtually any size model. Such files work fine across Phenix and some good graphics programs. But PDB would not like these files. Since PDB files will go away anyway with mmCIF being replacement, I'd say best is to use mmCIF that can fit any size models too and are supported in/out across Phenix. Tools to convert PDB <> mmCIF: phenix.cif_as_pdb phenix.pdb_as_cif Please let us know should you have more questions or need any help! Pavel
Hi Pavel,
Thanks so much for your reply ! Disabling the b-factor refinement solved my problem.
Best regards,
Tofayel
________________________________
From: Pavel Afonine
From the out.out file I can see that, it ran for 5 macro_cycles and started group b-factor refinement which reads (last few lines):
|-----------------------------------------------------------------------------| |-group b-factor refinement (macro cycle = 0; iterations = 0)-----------------| | r_work = 0.3809 r_free = 0.3809 target = 0.153923 restraints weight = None | |-----------------------------------------------------------------------------| |-group b-factor refinement (macro cycle = 1; iterations = 32)----------------| | r_work = 0.3687 r_free = 0.3687 target = 0.144348 restraints weight = 1067.479| |-----------------------------------------------------------------------------| |-group b-factor refinement (macro cycle = 2; iterations = 37)----------------| | r_work = 0.3724 r_free = 0.3724 target = 0.147257 restraints weight = 482.176| |-----------------------------------------------------------------------------| |-group b-factor refinement (macro cycle = 3; iterations = 32)----------------| | r_work = 0.3747 r_free = 0.3747 target = 0.149066 restraints weight = 262.900| |-----------------------------------------------------------------------------| The run crashes at this point.... It crashes trying to refine B-factors in reciprocal space (which is not the best idea anyway, I mean using reciprocal space for this, but that's at we have at present!). So, please disable B factor refinement by adding this to your command line: "run=minimization_global" (by default it is "run=minimization_global+adp"). However, phenix.real_space_refine runs fine when I am refining a protein chain or a complex (for eg: just the large or the small subunit of a ribosome). Does it have to do with my pdb file being so big after merging of both subunits where I have also crossed 99999 atoms and atom serial numbers start from A0000? No, it has nothing to do with this. A related question: What is the latest consensus of using chain IDs and atom serial numbers to use in phenix.real_space_refine for handling large files like ribosome pdbs ? I have found some information on: http://cci.lbl.gov/hybrid_36/ Using hybrid36 and two-letter chain IDs allows to fit into PDB virtually any size model. Such files work fine across Phenix and some good graphics programs. But PDB would not like these files. Since PDB files will go away anyway with mmCIF being replacement, I'd say best is to use mmCIF that can fit any size models too and are supported in/out across Phenix. Tools to convert PDB <> mmCIF: phenix.cif_as_pdb phenix.pdb_as_cif Please let us know should you have more questions or need any help! Pavel
participants (2)
-
#AHMED TOFAYEL#
-
Pavel Afonine