Ignore CTF for refinements to use CTF pre-multiplied particles

Dear CryoSPARC developers,

I would like to use CTF pre-multiplied particles from Relion to do refinement in CryoSPARC. I believe this is currently not possible as of v3.2. Is it possible to modify the CTF values before importing the particle star file so CTF values would not affect the images during refinement?

Merely increasing the size of the box size instead of pre-multiplication has disadvantages in some cases. When I use the same particle set with a very big particle box size, a very large particle box size always yields lower resolution reconstructions. I believe some of the refinement parameters depend on the box size and limiting the alignment (if so, then those parameters I think should depend on the inner window size, instead of particle box size). Another reason is that we can keep the box size fairly small with CTF pre-multiplication so it saves us some computational time and also GPU ram.

Please let me know if I can manually change the CTF values to something that won’t affect the particles, if possible, I hope there is nothing like normalization or so depends on CTF values.

Thank you



Have you tried just refining the particle stack without running it through any CTF refinement jobs (like turning off the on-the-fly global and local CTF refinements in your refinement jobs or not putting your particles through the stand-alone CTF refinement jobs)?

If I had to guess that could do the job, but I could also be wrong.


silly idea but maybe you could try setting defocus and Cs to (or very near to) zero in the star file prior to import?

I think you can make this happen using “output constant CTF” in Import Micrographs. Like output the constant CTF, then import the particles linking these micrographs. Maybe then re-extract the particles, and use these at inputs to a job, but replacing the particles blob with your imported pre-corrected ones.

I believe that will only not do the further refinement of the CTF parameters during refinement, but the images will still be modulated with the imported CTF parameters.


If I re-extract then the images will not be CTF pre-multiplied.


That is what I thought to do but should not I set this equation equal to 1 instead of 0? There is also an envelop function in front of the sin term so I really do not know how the images are actually modulated with this formula.

@apunjani any input?

That’s why I said to make some particles with constant CTF values, then replace the particle blob with the particle blob from the imported (pre-multiplied) particles.

1 Like

Ah, ok so I should use the CTF pre multiplied particles during refinement with the ctf info from the reextracted particles. That I think makes sense. I will try and update. Thank you.

Like this:

I think this is the only way to do it entirely in the GUI, with the extra constant CTF extraction. Possibly you could make the extraction very fast by using a 2px box, not sure if it will work.

The other way is to alter some .cs files in Python, make a .csg file, and import the group to cryoSPARC. Probably you could make some constant-CTF particles and then inspect the .cs file to figure out what value makes cryoSPARC use the constant CTF.

Thank you Daniel, I will give this a try.

Unfortunately, the result of the refinement is not good with the method you suggested Daniel. it is very similar to the results without changing the CTF info. Thank you though, that was a great suggestion.

@apunjani is there a way to ignore CTF completely to use CTF pre-multiplied particles for refinement?