Hi, I have a small error in the 3D classification when converting the .cs to a .star and it has come with the latest version of the software. When the job finish, all the particles are put in the same class. I convert the .cs to a .star with pyem and what I said is verified in this file. On the other hand, I have taken the .cs and loaded it as a numpy array and also confirmed that all the particles are in class 1. Finally, I downgraded CS and with version 4.1.1 it works fine.
Can you clarify the exact problem a bit more please? If I understand correctly, the particles are all classified into a single class (class 1) but when you convert to a
.star file, that class is empty?
I suspect this behaviour might be related to the class reordering in 4.1.2. If possible, could you re-run the same pipeline in 4.1.2, but with the option
Reorder classes by size turned off and see if that fixes things?
Thanks you very much for answering @vperetroukhin.
Maybe I didn’t explain well.
When I execute the 3D classification job, and I want to generate 2 classes(for example), when the job finish, it creates several files with the information of the particles(one for each class: e.g. J192_class_00_00006_particles.cs and J192_class_01_00006_particles .cs) but a file is also generated that contains the information of all the particles (J192_00006_particles.cs). In versions prior to 4.1.2, with pyem package, I converted this last file to .star and everything was fine(each particle is assigned to one of two classes). Now, with version 4.1.2, all particles are assigned to class 1. To check that it’s not a pyem bug, I downgraded CS to 4.1.1 and everything works fine, that is, it is verified that the particles are assigned to both classes. However with 4.1.2 they are all assigned to class 1.
Got it! Thanks for reporting this. This behaviour is definitely a bug that comes from the new class reordering. If you upgrade back to 4.1.2 and turn off the reordering, you should be able to convert the cs file (e.g.,
J192_00006_particles.cs) to a star file correctly as before.
The bug comes from the fact that we don’t correctly update the fields
alignments_class3D_X/class upon re-ordering (namely,
alignments_class3D_X/class is set to 0 no matter what X is). We’ll push a fix for this in the next release! In the mean time, if you do want to use 4.1.2, you can either turn off class reordering or manually adjust the cs file prior to using pyem (i.e., set
alignments_class3D_0/class to 0 and
alignments_class3D_1/class to 1 via
cryosparc-tools or older cli methods).