Skip to content

Commit 2d19b26

Browse files
committed
deprecate _rlnAmplitude in favor of private __amplitude field.
1 parent 52fcf59 commit 2d19b26

4 files changed

Lines changed: 16 additions & 7 deletions

File tree

src/aspire/source/image.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -483,15 +483,21 @@ def offsets(self, values):
483483

484484
@property
485485
def amplitudes(self):
486-
return np.atleast_1d(
487-
self.get_metadata(
488-
"_rlnAmplitude", default_value=np.array(1.0, dtype=self.dtype)
486+
if self.has_metadata("__amplitude"):
487+
values = self.get_metadata("__amplitude")
488+
else:
489+
values = self.get_metadata(
490+
"_rlnAmplitude",
491+
default_value=np.array(1.0, dtype=np.float64),
489492
)
490-
)
493+
return np.atleast_1d(np.asarray(values, dtype=np.float64))
491494

492495
@amplitudes.setter
493496
def amplitudes(self, values):
494-
return self.set_metadata("_rlnAmplitude", np.array(values, dtype=self.dtype))
497+
values = np.asarray(values, dtype=np.float64)
498+
self.set_metadata("__amplitude", values)
499+
# Drop the legacy field if we encountered it while loading a STAR file.
500+
self._metadata.pop("_rlnAmplitude", None)
495501

496502
@property
497503
def angles(self):

src/aspire/utils/relion_interop.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
# of certain key fields used in the codebase,
1313
# which are originally read from Relion STAR files.
1414
relion_metadata_fields = {
15+
"__amplitude": float,
1516
"_rlnVoltage": float,
1617
"_rlnDefocusU": float,
1718
"_rlnDefocusV": float,

tests/test_array_image_source.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -323,10 +323,10 @@ def test_dtype_passthrough(dtype):
323323
# Check dtypes
324324
np.testing.assert_equal(src.dtype, dtype)
325325
np.testing.assert_equal(src.images[:].dtype, dtype)
326-
np.testing.assert_equal(src.amplitudes.dtype, dtype)
327326

328-
# offsets are always stored as doubles
327+
# offsets and amplitudes are always stored as doubles
329328
np.testing.assert_equal(src.offsets.dtype, np.float64)
329+
np.testing.assert_equal(src.amplitudes.dtype, np.float64)
330330

331331

332332
def test_stack_1d_only():

tests/test_simulation.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -882,6 +882,8 @@ def check_metadata(sim_src, relion_src):
882882
those in a RelionSource.
883883
"""
884884
for k, v in sim_src._metadata.items():
885+
if k.startswith("__"):
886+
continue
885887
try:
886888
np.testing.assert_array_equal(v, relion_src._metadata[k])
887889
except AssertionError:

0 commit comments

Comments
 (0)