3dem / relion

Image-processing software for cryo-electron microscopy
https://relion.readthedocs.io/en/latest/
GNU General Public License v2.0
444 stars 198 forks source link

Pair of same helical segments found after symmetry expansion (RELION-3.1-beta-commit-a0af57) #640

Open acook2 opened 4 years ago

acook2 commented 4 years ago

Problem Description Particle symmetry expansion was performed on a helical dataset. After this, 3D auto-refine was performed, which crashed after the maximisation step of the first iteration. Presumed to be because around line 4034 of helix.cpp, particles are tested for equivalence of their rlnHelicalTrackLength value - but after symmetry expansion, the expanded particles have the same rlnHelicalTrackLength as their parent particle. This idea was tested with tubes where the rlnHelicalTrackLength of expanded particles had been edited to be non-identical, which stopped the error.

Environment:

Dataset:

Job options:

Error message:

Compare # 1 with # 0
in: /s/emib/s/relion/v3.1/relion/src/helix.cpp, line 4070
ERROR: 
helix.h::HelicalSegmentPriorInfoEntry::operator<(): A pair of same helical segments is found!
=== Backtrace  ===
/s/emib/s/relion/v3.1/beta6/bin/relion_refine_mpi(_ZN11RelionErrorC1ERKSsS1_l+0x41) [0x49ab71]
/s/emib/s/relion/v3.1/beta6/bin/relion_refine_mpi(_ZNK28HelicalSegmentPriorInfoEntryltERKS_+0x223) [0x4a0923]
/s/emib/s/relion/v3.1/beta6/bin/relion_refine_mpi(_ZSt16__insertion_sortIN9__gnu_cxx17__normal_iteratorIP28HelicalSegmentPriorInfoEntrySt6vectorIS2_SaIS2_EEEENS0_5__ops15_Iter_less_iterEEvT_SA_T0_+0x3b) [0x4d83eb]
/s/emib/s/relion/v3.1/beta6/bin/relion_refine_mpi() [0x4d8e3f]
/s/emib/s/relion/v3.1/beta6/bin/relion_refine_mpi(_ZSt22__stable_sort_adaptiveIN9__gnu_cxx17__normal_iteratorIP28HelicalSegmentPriorInfoEntrySt6vectorIS2_SaIS2_EEEES3_lNS0_5__ops15_Iter_less_iterEEvT_SA_T0_T1_T2_+0x5f) [0x4dd32f]
/s/emib/s/relion/v3.1/beta6/bin/relion_refine_mpi(_Z36updatePriorsForHelicalReconstructionR13MetaDataTableRiS1_dSt6vectorIdSaIdEES4_bbbddddbd+0xc30) [0x4d00d0]
/s/emib/s/relion/v3.1/beta6/bin/relion_refine_mpi(_ZN14MlOptimiserMpi7iterateEv+0xa7a) [0x4873ca]
/s/emib/s/relion/v3.1/beta6/bin/relion_refine_mpi(main+0x5f) [0x43f2af]
/lib64/libc.so.6(__libc_start_main+0xf5) [0x7fe4eae8f555]
/s/emib/s/relion/v3.1/beta6/bin/relion_refine_mpi() [0x441aa5]
==================
ERROR: 
helix.h::HelicalSegmentPriorInfoEntry::operator<(): A pair of same helical segments is found!
biochem-fan commented 4 years ago

Thanks for your report.

Can you try an old commit (git checkout 84d160f)? This might be related to a new helical prior introduced recently.

acook2 commented 4 years ago

Thanks very much for your help.

We don't have that exact version on our system, but the error still occurs with the oldest v3.1 commit we have (b86482).