From 787487439634db29b70283b3d46a2b6a60b0311f Mon Sep 17 00:00:00 2001 From: Wenjie Zhang <119016668+LAZARUSj@users.noreply.github.com> Date: Tue, 1 Sep 2026 15:30:02 +0800 Subject: [PATCH 1/2] Avoid chained assignment when filling spectrum columns --- alpharaw/ms_data_base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/alpharaw/ms_data_base.py b/alpharaw/ms_data_base.py index a69dc92..76015bb 100644 --- a/alpharaw/ms_data_base.py +++ b/alpharaw/ms_data_base.py @@ -410,7 +410,7 @@ def add_column_in_spec_df_by_spec_idxes( na_value=np.nan, ): self.spectrum_df.loc[spec_idxes, column_name] = values - self.spectrum_df[column_name].fillna(na_value, inplace=True) + self.spectrum_df[column_name] = self.spectrum_df[column_name].fillna(na_value) self.spectrum_df[column_name] = self.spectrum_df[column_name].astype(dtype) def add_column_in_df_by_scan_num( From fc1988a80a7f0dc0f74e023458a725b071f2108e Mon Sep 17 00:00:00 2001 From: Wenjie Zhang <119016668+LAZARUSj@users.noreply.github.com> Date: Tue, 1 Sep 2026 15:30:14 +0800 Subject: [PATCH 2/2] Add regression test for pandas chained assignment warning --- tests/unit/test_ms_data_base.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 tests/unit/test_ms_data_base.py diff --git a/tests/unit/test_ms_data_base.py b/tests/unit/test_ms_data_base.py new file mode 100644 index 0000000..18d3ab3 --- /dev/null +++ b/tests/unit/test_ms_data_base.py @@ -0,0 +1,23 @@ +import warnings + +import numpy as np + +from alpharaw.ms_data_base import MSData_Base + + +def test_add_column_in_spec_df_avoids_chained_assignment_warning(): + ms_data = MSData_Base() + ms_data.create_spectrum_df(3) + + with warnings.catch_warnings(): + warnings.simplefilter("error", FutureWarning) + ms_data.add_column_in_spec_df_by_spec_idxes( + "ms_level", + np.array([2, 3]), + np.array([0, 2]), + dtype=np.int8, + na_value=1, + ) + + np.testing.assert_array_equal(ms_data.spectrum_df["ms_level"], [2, 1, 3]) + assert ms_data.spectrum_df["ms_level"].dtype == np.int8