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