-
Notifications
You must be signed in to change notification settings - Fork 26
Ab-initio Cn #733
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ab-initio Cn #733
Conversation
Codecov Report
@@ Coverage Diff @@
## develop #733 +/- ##
===========================================
+ Coverage 88.69% 89.29% +0.60%
===========================================
Files 116 118 +2
Lines 9440 10634 +1194
===========================================
+ Hits 8373 9496 +1123
- Misses 1067 1138 +71
... and 13 files with indirect coverage changes 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
…otations() is called from super.
V estimator
…ython into abinitio_cn
It definitely has some visual appeal. In the related publication this molecule is only used to generate simulated data, but it might be good to add to have some more cyclically symmetric molecules with order > 4. |
Cool, I generally just want to continually keep track of any molecules we are using so it isn't a guessing game for future developers/researchers :). |
Added to the target dataset list. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for putting this together. Some comments and questions here.
|
Follow up on reconstruction pipelines. I ran an A/B test on the initial code and after first refactor. Appears to be performing well. I will run one more reconstruction with the code in its current state and follow up. The initial reconstruction (prior to Garrett's review) was using 500 images with a low level of noise generated from the volume map of this C11 molecule. A subsequent reconstruction was performed after significant refactor. The refactor included; restriction of "equator" candidate rotations during generation, using synchronized-mean to estimate In order to replicate the conditions of the initial reconstruction I supplied the same candidate rotations to the refactored algorithm (414 out of 500 of the initial candidates were non-equator candidates). Here is that reconstruction: |
|
@janden Thanks for the review! I've addressed all your questions/comments so it's in a good place for you to take another look. Thanks! |
Very nice Josh! |
| corrs = corrs_ij[cijs_inds[..., 0], cijs_inds[..., 1]] | ||
| corrs = np.reshape( | ||
| corrs, | ||
| ( | ||
| self.n_points_sphere, | ||
| self.n_points_sphere, | ||
| self.order, | ||
| n_theta_ijs // self.order, | ||
| ), | ||
| ) | ||
|
|
||
| # Take the mean over all symmetry induced common lines. | ||
| corrs = np.mean(corrs, axis=-2) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@janden I misspoke during the dev meeting regarding candidate rotations and just wanted to correct myself here.
In this section we arrange the correlation between pairwise images based on the common line indices, cijs_inds, induced by the candidate rotations. These common line indices are formed using the relative rotation Ris_tilde[i].T @ R_theta_ijs @ Ris_tilde[j], Where Ris_tilde are arbitrary candidate rotations in SO(3) and R_theta_ijs is the set of in-plane rotations about the z-axis, [0, 2pi). The true relative rotation between pairwise images is Ri.T @ gs @ Rj, where gs is an in-plane rotation about the axis of symmetry (z-axis) by 2pi/order to some power s. We need to find an in-plane rotation R_theta_ijs that best approximates gs for any s (there will be exactly self.order of them). Since we don't care which in-plane rotation we find we can reduce the search, in this case by taking the mean on line 166. This effectively reduces our search space from SO(3) to what is called SOn(3) in the paper. To be clear, the reduction to SOn(3) does not place the remaining candidate rotations in a single wedge of the sphere, but just reduces the candidates that are in redundant parts of the sphere (ie. symmetric locations), they will still be spread throughout SO(3).
This is why we are still able to perform a reconstruction with out symmetry boosting.
|
@janden, I fixed the |
|
@j-c-c Just a few more things, then we should be good to go. |


This PR adds the common lines method for Cn Symmetric molecules, n>4.