From b274690b37a07a607d1a3414d85979ff6b36a36c Mon Sep 17 00:00:00 2001 From: Garrett Wright Date: Tue, 3 Sep 2024 10:26:04 -0400 Subject: [PATCH 1/2] fix fuzzy mask dtypes --- src/aspire/abinitio/commonline_base.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/aspire/abinitio/commonline_base.py b/src/aspire/abinitio/commonline_base.py index e3d8fa50db..70909d1a42 100644 --- a/src/aspire/abinitio/commonline_base.py +++ b/src/aspire/abinitio/commonline_base.py @@ -91,8 +91,13 @@ def _prepare_pf(self): imgs = self.src.images[:] if self.mask: - fuzz_mask = fuzzy_mask((self.n_res, self.n_res), self.dtype) + # For best results and to reproduce MATLAB: + # Always compute mask (erf) in doubles. + fuzz_mask = fuzzy_mask((self.n_res, self.n_res), np.float64) + # Apply mask in doubles (allow imgs to upcast as needed) imgs = imgs * fuzz_mask + # Cast to desired type + imgs = Image(imgs.asnumpy().astype(self.dtype, copy=False)) # Obtain coefficients of polar Fourier transform for input 2D images pft = PolarFT( From 9c7675821bb685c13fca10e0f5e057eb317a88c7 Mon Sep 17 00:00:00 2001 From: Garrett Wright Date: Tue, 3 Sep 2024 10:38:02 -0400 Subject: [PATCH 2/2] fix rise time --- src/aspire/abinitio/commonline_base.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/aspire/abinitio/commonline_base.py b/src/aspire/abinitio/commonline_base.py index 70909d1a42..3a7d57252d 100644 --- a/src/aspire/abinitio/commonline_base.py +++ b/src/aspire/abinitio/commonline_base.py @@ -4,6 +4,7 @@ import numpy as np import scipy.sparse as sparse +from aspire.image import Image from aspire.operators import PolarFT from aspire.utils import common_line_from_rots, fuzzy_mask, tqdm from aspire.utils.random import choice @@ -92,8 +93,9 @@ def _prepare_pf(self): if self.mask: # For best results and to reproduce MATLAB: + # Set risetime=2 # Always compute mask (erf) in doubles. - fuzz_mask = fuzzy_mask((self.n_res, self.n_res), np.float64) + fuzz_mask = fuzzy_mask((self.n_res, self.n_res), np.float64, risetime=2) # Apply mask in doubles (allow imgs to upcast as needed) imgs = imgs * fuzz_mask # Cast to desired type