Local refinement enforce non-negativity does not seem to [bug?]


There is an option in local refinement (and elsewhere) which is labeled “enforce non-negativity”. In local refinement, this option defaults to on. My assumption was that this would convert all negative density values to zero, and hence there would not be negative values in the output map. However, the output map from local refinement does have negative values (see histogram). Is this expected?


Hi @olibclarke,

Currently, the “enforce non-negativity” option in local refinement results in bringing all negative density up to zero as you said, but this only happens just prior to the alignment of particle images with the 3D map (the main reason we have this option is that negative density can sometimes adversely affect alignment). After reconstruction of the 3D map, non-negativity isn’t enforced until the next iteration starts, so the resulting output maps at each iteration may still have some negative density. Given this, the results you have observed are expected, but we are experimenting with different ways of dealing with negative density so it’s possible this may change in future versions.

Best regards,