@@ -126,59 +126,14 @@ def __init__(
126
126
self ._include_bond_order = include_bond_order
127
127
self ._skip_feats = skip_feats if skip_feats is not None else []
128
128
self ._counted = counted
129
- self ._feature_definition = self . _handle_feature_definition_input (
130
- feature_definition ,
131
- )
132
- self ._distance_bins = self ._handle_distance_bins_input ( distance_bins )
129
+ self ._feature_definition = feature_definition or Gobbi_Pharm2D . fdef
130
+ self . _distance_bins = distance_bins or Gobbi_Pharm2D . defaultBins
131
+
132
+ self ._validate_distance_bins ( self ._distance_bins )
133
133
134
134
# Initialize factories and calculate fingerprint size
135
135
self ._initialize_factories ()
136
136
137
- @staticmethod
138
- def _handle_feature_definition_input (
139
- feature_definition : str | None ,
140
- ) -> str :
141
- """Handle feature definition input.
142
-
143
- Parameters
144
- ----------
145
- feature_definition : str | None
146
- Content of a feature definition file (.fdef).
147
-
148
- Returns
149
- -------
150
- str
151
- Content of the feature definition file.
152
-
153
- """
154
- if feature_definition is None :
155
- # Set default feature factory path if not provided
156
- return Gobbi_Pharm2D .fdef
157
- return feature_definition
158
-
159
- def _handle_distance_bins_input (
160
- self ,
161
- distance_bins : list [tuple [float , float ]] | None ,
162
- ) -> list [tuple [float , float ]]:
163
- """Handle distance bins input.
164
-
165
- Parameters
166
- ----------
167
- distance_bins : list[tuple[float, float]] | None
168
- List of distance bins as (min_distance, max_distance) tuples.
169
-
170
- Returns
171
- -------
172
- list[tuple[float, float]]
173
- Validated list of distance bins.
174
-
175
- """
176
- if distance_bins is None :
177
- # Set default distance bins if not provided
178
- distance_bins = Gobbi_Pharm2D .defaultBins
179
- self ._validate_distance_bins (distance_bins )
180
- return distance_bins
181
-
182
137
def _initialize_factories (self ) -> None :
183
138
"""Initialize the feature factory and signature factory.
184
139
@@ -418,58 +373,49 @@ def set_params(self, **parameters: Any) -> Self:
418
373
"""
419
374
parameter_copy = dict (parameters )
420
375
421
- # Extract pharmacophore-specific parameters
422
- feature_definition = parameter_copy .pop ("feature_definition" , None )
423
- min_point_count = parameter_copy .pop ("min_point_count" , None )
424
- max_point_count = parameter_copy .pop ("max_point_count" , None )
425
- triangular_pruning = parameter_copy .pop ("triangular_pruning" , None )
426
- shortest_paths_only = parameter_copy .pop ("shortest_paths_only" , None )
427
- include_bond_order = parameter_copy .pop ("include_bond_order" , None )
428
- skip_feats = parameter_copy .pop ("skip_feats" , None )
429
- distance_bins = parameter_copy .pop ("distance_bins" , None )
430
- counted = parameter_copy .pop ("counted" , None )
431
-
432
376
# Set parameters that require reinitialization
433
377
needs_reinit = False
434
378
435
- if feature_definition is not None :
436
- self ._feature_definition = self ._handle_feature_definition_input (
437
- feature_definition ,
438
- )
379
+ if "feature_definition" in parameter_copy :
380
+ self ._feature_definition = parameter_copy .pop ("feature_definition" )
439
381
needs_reinit = True
440
382
441
- if min_point_count is not None :
383
+ if "min_point_count" in parameter_copy :
384
+ min_point_count = parameter_copy .pop ("min_point_count" )
442
385
self ._validate_min_max_point_count (min_point_count , self ._max_point_count )
443
386
self ._min_point_count = min_point_count
444
387
needs_reinit = True
445
388
446
- if max_point_count is not None :
389
+ if "max_point_count" in parameter_copy :
390
+ max_point_count = parameter_copy .pop ("max_point_count" )
447
391
self ._validate_min_max_point_count (self ._min_point_count , max_point_count )
448
392
self ._max_point_count = max_point_count
449
393
needs_reinit = True
450
394
451
- if triangular_pruning is not None :
452
- self ._triangular_pruning = triangular_pruning
395
+ if " triangular_pruning" in parameter_copy :
396
+ self ._triangular_pruning = parameter_copy . pop ( " triangular_pruning" )
453
397
needs_reinit = True
454
398
455
- if shortest_paths_only is not None :
456
- self ._shortest_paths_only = shortest_paths_only
399
+ if " shortest_paths_only" in parameter_copy :
400
+ self ._shortest_paths_only = parameter_copy . pop ( " shortest_paths_only" )
457
401
needs_reinit = True
458
402
459
- if include_bond_order is not None :
460
- self ._include_bond_order = include_bond_order
403
+ if " include_bond_order" in parameter_copy :
404
+ self ._include_bond_order = parameter_copy . pop ( " include_bond_order" )
461
405
needs_reinit = True
462
406
463
- if skip_feats is not None :
464
- self ._skip_feats = skip_feats if skip_feats is not None else []
407
+ if " skip_feats" in parameter_copy :
408
+ self ._skip_feats = parameter_copy . pop ( " skip_feats" )
465
409
needs_reinit = True
466
410
467
- if distance_bins is not None :
468
- self ._distance_bins = self ._handle_distance_bins_input (distance_bins )
411
+ if "distance_bins" in parameter_copy :
412
+ distance_bins = parameter_copy .pop ("distance_bins" )
413
+ self ._validate_distance_bins (distance_bins )
414
+ self ._distance_bins = distance_bins
469
415
needs_reinit = True
470
416
471
- if counted is not None :
472
- self ._counted = counted
417
+ if " counted" in parameter_copy :
418
+ self ._counted = parameter_copy . pop ( " counted" )
473
419
needs_reinit = True
474
420
475
421
# Reinitialize factories if needed
0 commit comments