jamaliki / qscore

Q-score in pure Python without requiring Chimera
MIT License
1 stars 1 forks source link

error when interpolating over map #1

Closed fede-pe closed 1 month ago

fede-pe commented 3 months ago

I am getting the following error in several EM maps.

Traceback (most recent call last): File "/home/fpdeisidro/app/qscore/qscore/run_qscore.py", line 35, in main(parsed_args) File "/home/fpdeisidro/app/qscore/qscore/run_qscore.py", line 29, in main calculate_per_residue_q_scores(parsed_args.structure_path, parsed_args.volume_path, parsed_args.output_path) File "/tmp_mnt/filer1/cryo-em/manual_processing/fpdeisidro/app/qscore/qscore/q_score.py", line 49, in calculate_per_residue_q_scores q_scores = calculate_q_score(atoms, map) File "/tmp_mnt/filer1/cryo-em/manual_processing/fpdeisidro/app/qscore/qscore/q_score.py", line 25, in calculate_q_score map_values_at_points = interpolate_grid_at_points(radial_points[0], map) File "/tmp_mnt/filer1/cryo-em/manual_processing/fpdeisidro/app/qscore/qscore/utils.py", line 66, in interpolate_grid_at_points return interpn((x, y, z), map.grid, p) File "/home/fpdeisidro/.conda/envs/qscore/lib/python3.8/site-packages/scipy/interpolate/_rgi.py", line 651, in interpn raise ValueError("One of the requested xi is out of bounds " ValueError: One of the requested xi is out of bounds in dimension 1

After debugging it looks like in the mapping from 'points' to 'p' in 'interpolate_grid_at_points' method sometimes values mapped very close to zero (the origin of my grid) fall with a negative value, and raise an out of bounds exception.

I have fixes this by clipping those values to 0. If you provide me access i can create a branch with the changes and PR it :)

jamaliki commented 1 month ago

Hi Federico,

Sorry I missed this! That looks like a great change, would you like to make a PR and I can review it?

Best, Kiarash

fede-pe commented 1 month ago

Hi Kiarash,

I’m afraid I’ve lost the changes. Sorry about that, If I remember I think it was a easy fix, if I have time y will PR it. From now I close the issue.

Cheers, Fede