@@ -15,6 +15,7 @@ use serde::{
15
15
Serialize ,
16
16
} ;
17
17
use timsrust:: converters:: {
18
+ ConvertableDomain ,
18
19
Scan2ImConverter ,
19
20
Tof2MzConverter ,
20
21
} ;
@@ -179,10 +180,8 @@ fn denoise_frame_slice_window(
179
180
mz_converter : & Tof2MzConverter ,
180
181
min_n : usize ,
181
182
min_intensity : u64 ,
182
- _mz_scaling : f64 ,
183
- _max_mz_extension : f64 ,
184
- _ims_scaling : f32 ,
185
- _max_ims_extension : f32 ,
183
+ max_mz_extension : f64 ,
184
+ max_ims_extension : f32 ,
186
185
) -> DenseFrameWindow {
187
186
let timer = utils:: ContextTimer :: new ( "dbscan_dfs" , true , utils:: LogLevel :: TRACE ) ;
188
187
let fsw = FrameSliceWindow :: new ( frameslice_window) ;
@@ -208,6 +207,13 @@ fn denoise_frame_slice_window(
208
207
}
209
208
210
209
let mut i_timer = timer. start_sub_timer ( "dbscan" ) ;
210
+ // TODO make this API better ... its kind of dumb having to "know" what each index
211
+ // means in the tolerances...
212
+ let max_extensions_use = [
213
+ ( mz_converter. invert ( 1000.0 + max_mz_extension) - mz_converter. convert ( 1000.0 ) ) . abs ( )
214
+ as f32 ,
215
+ ( ims_converter. invert ( 1.0 + max_ims_extension) - ims_converter. convert ( 1.0 ) ) . abs ( ) as f32 ,
216
+ ] ;
211
217
let cluster_labels = dbscan_label_clusters (
212
218
& fsw,
213
219
& fsw,
@@ -217,7 +223,7 @@ fn denoise_frame_slice_window(
217
223
intensity_sorted_indices,
218
224
None :: < & ( dyn Fn ( & f32 ) -> bool + Send + Sync ) > ,
219
225
false ,
220
- & [ 10. , 100. ] ,
226
+ & max_extensions_use ,
221
227
) ;
222
228
i_timer. stop ( true ) ;
223
229
@@ -449,8 +455,6 @@ impl<'a> Denoiser<'a, Frame, Vec<DenseFrameWindow>, Converters, Option<usize>>
449
455
// to have them be not hard-coded I need a way to convert
450
456
// m/z space ranges to tof indices ... which is not exposed
451
457
// by timsrust ...
452
- warn ! ( "Using prototype function for denoising, scalings are hard-coded" ) ;
453
-
454
458
let num_windows = break_points. len ( ) - 1 ;
455
459
let mut out = Vec :: with_capacity ( num_windows) ;
456
460
let frame_window_slices: Vec < ( usize , & [ FrameSlice ] ) > = ( 0 ..num_windows)
@@ -468,9 +472,7 @@ impl<'a> Denoiser<'a, Frame, Vec<DenseFrameWindow>, Converters, Option<usize>>
468
472
& self . mz_converter ,
469
473
self . min_n ,
470
474
self . min_intensity ,
471
- self . mz_scaling ,
472
475
self . max_mz_extension ,
473
- self . ims_scaling ,
474
476
self . max_ims_extension ,
475
477
)
476
478
} ;
0 commit comments