Hi Yao-wang,
Thanks for reporting. It turns out this was a minor bug in the code: for
helices it wasn't possible to set the initial healpix sampling larger or
equal to the local-searches one. This has now been fixed in the github.
You can update code using 'git pull' and then recompile. Note that
non-helical objects were not affected by this bug.
HTH,
Sjors
On 07/18/2017 08:40 AM, [log in to unmask] wrote:
> Dear all,
>
> I am confuse on the parameters on the Helix tab of 3D auto-refine.
> what I input are
>
> Number of asymmetrical units: == 29
> Range factor of local averaging: == 2
> Helical rise search (A) - Step: == 0.1
> Initial helical rise (A): == 4.5
> Helical rise search (A) - Max: == 5.5
> Helical rise search (A) - Min: == 4.5
> Tube diameter - inner (A): == 0
> Tube diameter - outer (A): == 135
> Helical twist search (deg) - Step: == 0.1
> Initial helical twist (deg): == 0.8
> Helical twist search (deg) - Max: == 1.6
> Helical twist search (deg) - Min: == 0.8
> Central Z length (%): == 40
> Initial low-pass filter (A): == 40
> Minimum dedicated cores per node: == 1
> Number of MPI procs: == 3
> Number of pooled particles: == 3
> Number of threads: == 1
> Initial offset range (pix): == 5
> Initial offset step (pix): == 1
> Additional arguments: ==
> Mask diameter (A): == 200
> Symmetry: == c2
>
>
> I thought they should be fine, but actually not, there is an error output.
> ERROR:
> helix.cpp::getHelicalSigma2Rot: Helical offset step, rot step or sigma2_rot cannot be negative!
> File: /Share/home/yli/relion/src/helix.cpp line: 603
> ERROR:
> helix.cpp::getHelicalSigma2Rot: Helical offset step, rot step or sigma2_rot cannot be negative!
> File: /Share/home/yli/relion/src/helix.cpp line: 603
>
> Then I checked this file (helix.cpp), and found the following function
> RFLOAT getHelicalSigma2Rot(
> RFLOAT helical_rise_pix,
> RFLOAT helical_twist_deg,
> RFLOAT helical_offset_step_pix,
> RFLOAT rot_step_deg,
> RFLOAT old_sigma2_rot)
> {
> if ( (helical_offset_step_pix < 0.) || (rot_step_deg < 0.) || (old_sigma2_rot < 0.) )
> REPORT_ERROR("helix.cpp::getHelicalSigma2Rot: Helical offset step, rot step or sigma2_rot cannot be negative!");
>
> RFLOAT nr_samplings_along_helical_axis = (fabs(helical_rise_pix)) / helical_offset_step_pix;
> RFLOAT rot_search_range = (fabs(helical_twist_deg)) / nr_samplings_along_helical_axis;
> RFLOAT new_rot_step = rot_search_range / 6.;
> RFLOAT factor = ceil(new_rot_step / rot_step_deg);
> RFLOAT new_sigma2_rot = old_sigma2_rot;
> //RFLOAT factor_max = 10.;
> if (factor > 1.)
> {
> // Avoid extremely big sigma_rot!!! Too expensive in time and memory!!!
> //if (factor > factor_max)
> // factor = factor_max;
> new_sigma2_rot *= factor * factor;
> }
> return new_sigma2_rot;
> };
>
>
> this function was called, but I do not where it was called (I am not familiar with relion source code ), therefore I have no diea how these parameters were processed and why they were negative.
> so could you please tell what is problem in these parameters?
>
>
> Best wishes,
>
>
>
>
>
> Yao-Wang Li
> School of Life Science, Tsinghua University
> Room 255, New Biology Building, Beijing, China, 100084
--
Sjors Scheres
MRC Laboratory of Molecular Biology
Francis Crick Avenue, Cambridge Biomedical Campus
Cambridge CB2 0QH, U.K.
tel: +44 (0)1223 267061
http://www2.mrc-lmb.cam.ac.uk/groups/scheres
|