Import particle.star Error (Unsupported MRC datatype: 12) from Relion4.0 beta

Hi All,

I started to use Relion4.0 beta and tried to import one particle.star into CryoSPARC, then I got the following error:

Traceback (most recent call last):
File “cryosparc_master/cryosparc_compute/run.py”, line 84, in cryosparc_compute.run.main
File “/data3/donghua/cryosparc/cryosparc_master/cryosparc_compute/jobs/imports/run.py”, line 438, in run_import_particles
dispparts.read_blobs(proj_dir_abs)
File “/data3/donghua/cryosparc/cryosparc_master/cryosparc_compute/particles.py”, line 93, in read_blobs
dtypes[rel_path] = mrc.mrc_datatype_to_dtype(hdr[‘datatype’])
File “/data3/donghua/cryosparc/cryosparc_master/cryosparc_compute/blobio/mrc.py”, line 57, in mrc_datatype_to_dtype
assert False,‘Unsupported MRC datatype: {0}’.format(datatype)
AssertionError: Unsupported MRC datatype: 12

Please help. Thanks!

I was using the default option “Yes” for “Write output in float16” during Relion4.0 beta Particle extraction. When I changed to No for this option, the importing of particles.star was fine. Maybe CryoSPARC can support the float16 in the future.

1 Like

Hi @donghuachen,

Thanks for bringing this to our attention. We can definitely add float16 support. Keep an eye on the release notes for upcoming patches!

–Harris

1 Like

just got the same error.

Hi all,

We will be releasing support for datatype 12 very soon. Keep an eye on patch notes.

Harris.

Hi @hsnyder,

I just used cryosparc v3.3.1 to do Import Particle Stack from a star file extracted in Relion4.0-beta-2 (float16). Still got the following error. Does this new cryosparc version support float16?

Traceback (most recent call last):
File “cryosparc_master/cryosparc_compute/run.py”, line 85, in cryosparc_compute.run.main
File “/home/cryosparc/cryosparc2_master/cryosparc_compute/jobs/imports/run.py”, line 452, in run_import_particles
fig = plotutil.plot_images_simple(dispparts, rows=4, cols=8, radwn=6, figscale=1.5)
File “/home/cryosparc/cryosparc2_master/cryosparc_compute/plotutil.py”, line 588, in plot_images_simple
rD = img.get_original_real_data()
File “/home/cryosparc/cryosparc2_master/cryosparc_compute/particles.py”, line 22, in get_original_real_data
return self.blob.view().copy()
File “/home/cryosparc/cryosparc2_master/cryosparc_compute/blobio/mrc.py”, line 127, in view
return self.get()
File “/home/cryosparc/cryosparc2_master/cryosparc_compute/blobio/mrc.py”, line 122, in get
_, data, total_time = prefetch.synchronous_native_read(self.fname, idx_start = self.page, idx_limit = self.page+1)
File “cryosparc_master/cryosparc_compute/blobio/prefetch.py”, line 67, in cryosparc_compute.blobio.prefetch.synchronous_native_read
RuntimeError: dtype_to_bytes 462: Invalid argument
[arguments] /P16/J49/imported/011571886103612204036_project_1342_Dec03_09_15_20.mrcs, 0, 0, 90, 91, 2, 40

1 Like

@hsnyder I have the same error even without writing in float16.
Traceback (most recent call last):
File “cryosparc_master/cryosparc_compute/run.py”, line 85, in cryosparc_compute.run.main
File “/lmb/home/miehling/software/csparc/cryosparc_master/cryosparc_compute/jobs/imports/run.py”, line 452, in run_import_particles
fig = plotutil.plot_images_simple(dispparts, rows=4, cols=8, radwn=6, figscale=1.5)
File “/lmb/home/miehling/software/csparc/cryosparc_master/cryosparc_compute/plotutil.py”, line 588, in plot_images_simple
rD = img.get_original_real_data()
File “/lmb/home/miehling/software/csparc/cryosparc_master/cryosparc_compute/particles.py”, line 22, in get_original_real_data
return self.blob.view().copy()
File “/lmb/home/miehling/software/csparc/cryosparc_master/cryosparc_compute/blobio/mrc.py”, line 127, in view
return self.get()
File “/lmb/home/miehling/software/csparc/cryosparc_master/cryosparc_compute/blobio/mrc.py”, line 122, in get
_, data, total_time = prefetch.synchronous_native_read(self.fname, idx_start = self.page, idx_limit = self.page+1)
File “cryosparc_master/cryosparc_compute/blobio/prefetch.py”, line 67, in cryosparc_compute.blobio.prefetch.synchronous_native_read
RuntimeError: dtype_to_bytes 462: Invalid argument
[arguments] /cephfs/asharma/cryosparc_jonas/P8/J100/imported/008476092680802014673_FoilHole_8631204_Data_8623863_8623865_20210409_211525_fractions.mrcs, 0, 0, 127, 128, 2, 40

Did you get an answer to this or figure it out?

Hi everyone,

Apologies for the delay. Support for 16 bit floating point will be deployed in the next cryoSPARC patch. I will reply to this topic again once the patch is available.

–Harris

Hi all,

Support for 16 bit float was deployed in the most recent patch. See full release notes and update instructions here: Patch 220215 is available for cryoSPARC v3.3.1 - Install, Configure and Update - cryoSPARC Discuss

–Harris

Hi Harris,
I had the same error, I have v3.3.1, and i updated the the patch you posted, but now i receive this error:

AssertionError: Version mismatch! Worker version (v3.3.1) and Master version (v3.3.1+220315) are not the same. Please update

then i tried to update both worker and master, but it seems still not working, I still have the same error.

@yli18 Under these circumstances, please follow the patch instructions for worker patching under the Cluster tab. Worker patching involves both the crysparcm and cryosparcw commands, respectively, at specific steps of the procedure and a file cryosparc_worker_patch.tar.gz.
Please let us know any error messages you encounter during the procedure.

Hi, Thanks for the reply, indeed I need to use cryosparcm patch --force --download to have the patch, and then i copied cryosparc_worker_patch.tar.gz file under cryosparc_worker, and it seems working now, at least version matches. but when i run motioncorrection job with .eer file, i received this error:
Traceback (most recent call last):
File “/work/FAC/FBM/DMF/sgruber1/cryoem_gruber/cryosparc/cryosparc_worker/cryosparc_compute/jobs/pipeline.py”, line 53, in exec
return self.process(item)
File “cryosparc_master/cryosparc_compute/jobs/motioncorrection/run.py”, line 109, in cryosparc_compute.jobs.motioncorrection.run.run_rigid_motion_correction_multi.motionworker.process
File “cryosparc_master/cryosparc_compute/jobs/motioncorrection/run.py”, line 145, in cryosparc_compute.jobs.motioncorrection.run.run_rigid_motion_correction_multi.motionworker.process
File “/work/FAC/FBM/DMF/sgruber1/cryoem_gruber/cryosparc/cryosparc_worker/cryosparc_compute/blobio/mrc.py”, line 140, in read_mrc
data = read_mrc_data(file_obj, header, start_page, end_page, out)
File “/work/FAC/FBM/DMF/sgruber1/cryoem_gruber/cryosparc/cryosparc_worker/cryosparc_compute/blobio/mrc.py”, line 88, in read_mrc_data
dtype = mrc_datatype_to_dtype(datatype)
File “/work/FAC/FBM/DMF/sgruber1/cryoem_gruber/cryosparc/cryosparc_worker/cryosparc_compute/blobio/mrc.py”, line 65, in mrc_datatype_to_dtype
assert False,‘Unsupported MRC datatype: {0}’.format(datatype)
AssertionError: Unsupported MRC datatype: 1243414722

Marking J1/imported/007975918221406734972_FoilHole_17683150_Data_17681946_17681948_20220118_195424_EER.eer as incomplete and continuing…

I am using Slurm scheduler.

thanks!