ExcitedStates / qfit-3.0

qFit: Automated and unbiased multi-conformer models from X-ray and EM maps.
MIT License
31 stars 11 forks source link

:bug: #368

Closed jmholton closed 9 months ago

jmholton commented 9 months ago

Describe the bug qfit_final_refine_xray.sh crashes with "Normalize occupancies did not work!"

To Reproduce Steps to reproduce the behavior:

  1. unpack these data: https://bl831.als.lbl.gov/~jamesh/bugreports/qfit_100423.tgz
  2. run the commands in runme_bugreport.csh
  3. however, it appears this may happen all the time with phenix version 1.21rc1-4903

Expected behavior A clear and concise description of what you expected to happen. expected it to run without error

Additional context I believe the "output" phil parameter has been moved to outside the "refinement" space. If I replace: "refinement.output" with "output" in my copy of qfit_final_refine_xray.sh it seems to run properly. Diff here: 131,132c131,132 < echo "refinement.output.prefix=${pdb_name}" >> ${pdb_name}_refine.params < echo "refinement.output.serial=2" >> ${pdb_name}_refine.params

echo "output.prefix=${pdb_name}" >> ${pdb_name}_refine.params echo "output.serial=2" >> ${pdb_name}_refine.params 145,146c145,146 < echo "refinement.output.prefix=${pdb_name}" >> ${pdb_name}_occ_refine.params < echo "refinement.output.serial=3" >> ${pdb_name}_occ_refine.params

echo "output.prefix=${pdb_name}" >> ${pdb_name}_occ_refine.params echo "output.serial=3" >> ${pdb_name}_occ_refine.params 198,199c198,199 < echo "refinement.output.prefix=${pdb_name}" >> ${pdb_name}_final_refine.params < echo "refinement.output.serial=5" >> ${pdb_name}_final_refine.params

echo "output.prefix=${pdb_name}" >> ${pdb_name}_final_refine.params echo "output.serial=5" >> ${pdb_name}_final_refine.params 218,219c218,219 < echo "refinement.output.prefix=${pdb_name}" >> ${pdb_name}_final_refine_noreduce.params < echo "refinement.output.serial=5" >> ${pdb_name}_final_refine_noreduce.params

echo "output.prefix=${pdb_name}" >> ${pdb_name}_final_refine_noreduce.params echo "output.serial=5" >> ${pdb_name}_final_refine_noreduce.params

Software & OS Version:

Attach files: Unrecognized PHIL parameters:

refinement.output.prefix (file "F_SIGF_occ_refine.params", line 2)
refinement.output.serial (file "F_SIGF_occ_refine.params", line 3)

Sorry: Some PHIL parameters are not recognized by phenix.refine. Please run this program with the --show-defaults option to see what parameters are available. PHIL parameters in files should be fully specified (e.g. "output.overwrite" instead of just "overwrite")

Traceback (most recent call last): File "/home/jamesh/.conda/envs/qfit/bin/redistribute_cull_low_occupancies", line 8, in sys.exit(main()) File "/home/jamesh/.conda/envs/qfit/lib/python3.10/site-packages/qfit/redistribute_cull_low_occupancies.py", line 219, in main structure = Structure.fromfile(args.structure) File "/home/jamesh/.conda/envs/qfit/lib/python3.10/site-packages/qfit/structure/structure.py", line 30, in fromfile pdbfile = PDBFile.read(fname) File "/home/jamesh/.conda/envs/qfit/lib/python3.10/site-packages/qfit/structure/pdbfile.py", line 50, in read with fopen(fname, mode) as f: FileNotFoundError: [Errno 2] No such file or directory: 'F_SIGF_003.pdb' Post refinement zeroes: Normalize occupancies did not work!

stephaniewankowicz commented 9 months ago

Hi James,

Thanks for the bug report. Our post-refinement script only works with Phenix 1.20 (the last official release). This is due the parameter names changing from one Phenix version to another (exactly what you observed here!).

I recommend reaching out to the Phenix team to suggest maintaining consistent parameter names (e.g., "refinement.output" vs. "output") across versions.

Once we get another official release from Phenix we will output a new script.