Hi all - I am encountering the following error in my 3DFlex Mesh Prep job:
File “cryosparc_master/cryosparc_compute/run.py”, line 129, in cryosparc_master.cryosparc_compute.run.main
File “cryosparc_master/cryosparc_compute/jobs/flex_refine/run_meshprep.py”, line 138, in cryosparc_master.cryosparc_compute.jobs.flex_refine.run_meshprep.run
IndexError: boolean index did not match indexed array along dimension 0; dimension is 128 but corresponding boolean dimension is 350
My full box size is 350px, and I am trying to prepare everything for training at 128px.
As inputs for this job, I have:
- Consensus volume from my Flex Data Prep job in which the training box size was set to 128px;
- Solvent mask that comes from a Volume Tools job in which I resampled to 128px box size;
- .seg segmentation file that I created by using chimerax segger on the 128px consensus volume.
After receiving this error the first time, I also tried ‘resample #X onGrid #Y’ in chimerax, where #X was the segmentation file and #Y was the consensus map from the flex data prep job, but got the same error when running the mesh prep with the resampled .seg file.
If anyone has any advice I would be very grateful!
Hi @amy_roberts !
Thanks for your question about 3D Flex Mesh Prep.
We recommend that you use the output consensus volume from 3D Flex Data Prep to make both the segmentation file and the mask for 3D Flex Mesh Prep. Creating a new mask in Volume Tools using the same consensus volume will avoid any issues with mask binary values that can happen with mask downsampling, and ensures that the pixel size and box size of the mask and map for 3D Flex match correctly.
Hi @hbridges1, thank you so much for taking the time to respond!
I tried cloning the failed job (where the segmentation file was already created using the Flex Data Prep consensus volume) and made sure to input a solvent mask that was also based on the consensus volume (Data Prep consensus volume –> Volume Tools low pass filter and pad –> Mesh Prep), and the job unfortunately failed with the same error. I didn’t downsample the mask in this case because it was already 128px from the Data Prep job. Do you know if there is something else that I can check to see where the mismatch might be?
Thanks again!
Thanks for getting back to us @amy_roberts!
Unfortunately, we have not been able to reproduce this error when we run 3D Flex Mesh Prep using the consensus volume from 3D Flex Data Prep, and a mask generated directly from the same consensus volume, and a segmentation generated also from the same consensus volume, so we are not able to debug this issue.
One last suggestion is to perhaps load up the exact volume files used for 3D Flex Mesh Prep in ChimeraX one more time (the consensus volume and mask) and check the box dimensions to see if this can identify any discrepancy. If you still have your local copy of the .seg file before upload to CryoSPARC then this might load up in ChimeraX along with its parent volume which will also display its dimensions. If there is any ambiguity then it might be worth remaking the segmentation and mask again.
Hi again @hbridges1 - and thanks again for the responses.
In the end I tried a new picking strategy so ended up with a new stack of particles, and running the pipeline with this new stack (and generating everything from the Data Prep job consensus volume) seemed to work with no error. So I am not sure where the discrepancy was the first time. All working now though, and thanks for looking into it for me!
1 Like