I’m trying to make it easy for crYOLO users to import their picked coordinates into cryoSPARC.
I followed the suggestions in this thread and created a STAR file as described in the thread (an image will follow in the next post, I’m not yet allowed to post more then one image ^^).
However, when we try to import this star file into cryoSPARC we run into errors:
Thanks for providing these micrographs, I’ll take a look at all the details here and let you know exactly what fields are required in the .star file to allow particle locations to be imported from crYOLO into CryoSPARC v4.
Looking at your .star file, that should be all the information you need: rlnMicrographName, rlnCoordinateX, and rlnCoordinateY.
The reason your job failed is because of the warning:
Warning: No micrographs were connected as inputs, so correspondences cannot be found, so output will not contain pick locations for particles.
Then connect the imported micrographs to this Import Particles job so that the job can find the correspondences between the particle locations and the micrographs. Try that out and let me know if it works.
We got it to work. So the problem was, when you import motion corrected micrographs they get a 22-letter-prefix. But the path in my star file does not have this prefix so it was not able to match it.
We needed to set the cut-prefix option in cryoSPARC to make it work.
Thats great!! In the next version of crYOLO it will write an star file that is compatible with cryoSPARC.
Follow up question:
As you might know, crYOLO is also supporting filaments. Are they handled any differently? Do I need to provide a special format for them?
Filament picks can be imported if, in the particle star file, each particle pick has an associated rlnHelicalTubeID field that maps the particle to an ID that specifies which filament it belongs to (unique for each filament). Is such a field generated by crYOLO during the tracing procedure? CryoSPARC also can read: rlnAnglePsiPrior (the in-plane rotation angle of the filament, which could be estimated during picking), rlnHelicalRise (the helical rise in Angstroms, if known), and rlnNrHelicalAsymUnits (the number of unique asymmetric units per particle, if known). These are mapped to data fields in the filament result in the Import Particles job. The imported micrographs and their star file shouldn’t need any modifications from the standard case.
It’s also possible to import filaments without any of these fields, but it is preferable to at least have the rlnHelicalTubeID because this can be used downstream in Helical Refinement for proper gold-standard particle splits.
Is there any other filament-related information generated by crYOLO that could be useful when importing filament picks into CryoSPARC?
Right now the format is start-end - however, I will add a format that fits for cryosparc. rlnAnglePsiPrior is calculated internally and can be provided.
Is there any other filament-related information generated by crYOLO that could be useful when importing filament picks into CryoSPARC?
I’ve a confidence value for each and every pick (also for the single particle picks). Can cryoSPARC make use of this?
Best,
Thorsten
Edit:
This is how a filament star file for cryosparc would look like:
Filament picks can be imported if, in the particle star file, each particle pick has an associated rlnHelicalTubeID field that maps the particle to an ID that specifies which filament it belongs to (unique for each filament).
So far, the IDs are only unique for one micrographs, not across all filaments on all micrographs. Is that a problem?
The filament star file looks valid, but right now we do assume rlnHelicalTubeID is unique across the entire dataset when converting it to CryoSPARC’s filament_uid. Do you know if in standard RELION helical datasets rlnHelicalTubeID is only guaranteed to be unique within a single micrograph? If so, we should probably update our import code…
Re: the confidence value – we could certainly read this into CryoSPARC. Currently for other particle picking software like Topaz, we read confidence values into our pick_stats results so that particles can be thresholded/subset by that confidence value in our Inspect Picks job (it overwrites the “normalized cross correlation” value that we normally compute in our in-house template/blob picking algorithms). Which rln field would this confidence value be written to?
Do you know if in standard RELION helical datasets rlnHelicalTubeID is only guaranteed to be unique within a single micrograph? If so, we should probably update our import code…
I’m trying to find out and let you know.
Which rln field would this confidence value be written to?
Hm, right now its not written in any STAR file by crYOLO. Its only written in the crYOLO cbox format. However, I would guess that _rlnAutopickFigureOfMerit is probably the right choice?
Do you know if in standard RELION helical datasets rlnHelicalTubeID is only guaranteed to be unique within a single micrograph? If so, we should probably update our import code…
Takanori Nakane just answered it on the CCPEM mailing list:
This all is perfect, and thank you very much for seeking out the helical tube ID clarification! I’ve made a note to:
allow imports of rlnAutopickFigureOfMerit into our pick_stats/ncc_score so that imported particles from crYOLO, RELION, etc., can be thresholded by the FOM in CryoSPARC’s Inspect Particle Picks job
update our import code to correct the assumptions made on the rlnHelicalTubeID field
These changes should be upcoming in a future patch to CryoSPARC v4.