Feature #5159
closedCheck all sibling images for CTF info
0%
Description
In order to get per-particle CTF assignment working in makestack, I have to check for all ctf runs associated with an image and its aligned images, since the "transferCTF" function isn't sufficient.
This slows down makestack due to the extra queries, but adds only a minute of extra time for a dataset of 1000 images. We no longer have to transfer CTF values, but there may be users that want to keep CTF estimation on ed, ed-a, and ed-a-DW separate? This shouldn't break anything, but we run the possibility of having an undesired result if you really want to limit your CTF runs to a specific preset for some reason. Anchi you should weigh in on whether this is a bad solution.
Updated by Anchi Cheng over 7 years ago
Gabe,
Is there a flag in the gctf run parameter saved in the database that says it have per-particle information ? Your approach works for makestack.py, but will not work if a per-image ctf star file need to be generated from myamiweb for the specific preset which I think is a function you wrote and is used widely.
Users are not likely to notice the few seconds in the new approach but I want to make sure it does not break the old implementation and that the query is efficient.
Updated by Gabriel Lander over 7 years ago
Yes, there is a new boolean column in the ApCtfFind4ParamsData called "local_refine". There currently aren't any gctf-specific parameters saved into the database. I spoke to Carl about this and he said he was strongly encouraged to use the existing tables when he implemented gctf.
Updated by Anchi Cheng about 7 years ago
- Assignee changed from Anchi Cheng to Gabriel Lander
Gabe,
Could you check the case that made the change in f785f6ba necessary. I added a check earlier the line above to make sure the uploaded image that carry "-a" in its name but not marked as True in CameraEMData[align frames] not to go into the condition 89166068. It should already prevent this bug. If not, I should find the origin and fix that.
Also, if you do this for makestack, you need to do the same for getaceimg.php and getacepreset.php Otherwise it is confusing to the users.
What happens if a user specify ctfrun ?
Updated by Gabriel Lander about 7 years ago
Hi Anchi,
I had to add this yesterday because we were getting an error for a gctf job we were running for a session that had no existing entries in the database, but the --bestdb option was set.
I do want to add the same functionality for the getaceimg.php & getacepreset.php, it would be nice if the best ctf output showed up for all the sibling images, but you could also specify specific ctf runs in the browser if you wanted to compare outputs.
I'm fairly certain that I tested that if the user specifies a run in makestack, it will find the values for that run and apply it to whatever preset is being used. Please let me know if I'm wrong on this or didn't test thoroughly enough.
Updated by Anchi Cheng almost 7 years ago
- Status changed from New to Assigned
Looking at this to prepare for closing. I think we should get rid of the string match, and rely on CameraEMData['align frames'] because it might be a different align label such as "-b" I can do that if you agree.
Updated by Anchi Cheng almost 7 years ago
- Related to Feature #4514: transfer ctf results from non dose-weighted images to dose-weighted ones added
Updated by Gabriel Lander almost 7 years ago
CameraEMData['align frames'] is a better way to go for sure, if you're able to code that in then by all means please do it. Thanks
Updated by Anchi Cheng almost 7 years ago
- Status changed from Assigned to Closed
- Target version changed from Appion/Leginon Future Version to Appion/Leginon 3.3
worked. tested on quickstack.py when getting relion star file with ctf.from a particle pick run that uses aligned preset without ctf estimation.