Skip to content

Commit c567421

Browse files
code review
1 parent 7ac8fc7 commit c567421

File tree

1 file changed

+24
-78
lines changed

1 file changed

+24
-78
lines changed

molpipeline/mol2any/mol2pharmacophore2d_fingerprint.py

Lines changed: 24 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -126,59 +126,14 @@ def __init__(
126126
self._include_bond_order = include_bond_order
127127
self._skip_feats = skip_feats if skip_feats is not None else []
128128
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)
133133

134134
# Initialize factories and calculate fingerprint size
135135
self._initialize_factories()
136136

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-
182137
def _initialize_factories(self) -> None:
183138
"""Initialize the feature factory and signature factory.
184139
@@ -418,58 +373,49 @@ def set_params(self, **parameters: Any) -> Self:
418373
"""
419374
parameter_copy = dict(parameters)
420375

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-
432376
# Set parameters that require reinitialization
433377
needs_reinit = False
434378

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")
439381
needs_reinit = True
440382

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")
442385
self._validate_min_max_point_count(min_point_count, self._max_point_count)
443386
self._min_point_count = min_point_count
444387
needs_reinit = True
445388

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")
447391
self._validate_min_max_point_count(self._min_point_count, max_point_count)
448392
self._max_point_count = max_point_count
449393
needs_reinit = True
450394

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")
453397
needs_reinit = True
454398

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")
457401
needs_reinit = True
458402

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")
461405
needs_reinit = True
462406

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")
465409
needs_reinit = True
466410

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
469415
needs_reinit = True
470416

471-
if counted is not None:
472-
self._counted = counted
417+
if "counted" in parameter_copy:
418+
self._counted = parameter_copy.pop("counted")
473419
needs_reinit = True
474420

475421
# Reinitialize factories if needed

0 commit comments

Comments
 (0)