1313
1414
1515# --------------------- Helper functions ---------------------
16- def _normalize_spectrum_sum (s ):
17- """Return a *copy* of s with intensities normalized to sum=1 (if possible)."""
16+ def normalize_spectrum_sum (s ):
17+ """Return a spectrum with intensities normalized to sum=1 (if possible)."""
1818 mz = np .asarray (s .peaks .mz , dtype = float )
1919 intens = np .asarray (s .peaks .intensities , dtype = float )
2020 tot = intens .sum ()
2121 if tot > 0 :
2222 intens = intens / tot
23+
2324 # Build a shallow copy with normalized peaks but same metadata
2425 md = dict (s .metadata ) if hasattr (s , "metadata" ) else {}
2526 return Spectrum (mz = mz , intensities = intens , metadata = md )
@@ -39,10 +40,10 @@ def _merge_cluster_to_consensus(cluster_spectra, mz_tol=0.01, min_frac=0.25):
3940 n = len (cluster_spectra )
4041 if n == 1 :
4142 # Shouldn’t happen here, but keep it safe.
42- return _normalize_spectrum_sum (cluster_spectra [0 ])
43+ return normalize_spectrum_sum (cluster_spectra [0 ])
4344
4445 # Normalize each spectrum (sum=1)
45- specs = [_normalize_spectrum_sum (s ) for s in cluster_spectra ]
46+ specs = [normalize_spectrum_sum (s ) for s in cluster_spectra ]
4647
4748 # Collect all peaks with a spectrum index
4849 all_mz = []
@@ -195,7 +196,7 @@ def get_merged_spectra(spectra, clusters, mz_tol=0.01, min_frac=0.25):
195196 spectra_new .append (merged )
196197 else :
197198 # singletons: normalize to sum=1 for consistency
198- spectra_new .append (_normalize_spectrum_sum (spectra [cluster [0 ]]))
199+ spectra_new .append (normalize_spectrum_sum (spectra [cluster [0 ]]))
199200 return spectra_new
200201
201202
0 commit comments