Recipe ====== Segmentation Recipe loader. Recipes are Python scripts that define a `run(effect)` function. This module loads recipes and provides utilities for running them. Example recipe (brain_tumor_1.py): sample_data = "MRBrainTumor1" segment_name = "Tumor" def run(effect): effect.applyPreset("tumor_lesion") effect.brushRadiusMm = 20.0 effect.paintAt(-5.31, 34.77, 20.83) effect.paintAt(-5.31, 25.12, 35.97) Classes ------- .. py:class:: Recipe A loaded recipe ready to execute. Attributes: name: Recipe name (from filename). path: Path to the recipe file. sample_data: Slicer SampleData name to load (or empty if using dicom_source). dicom_source: Path to DICOM directory relative to project root (or empty if using sample_data). segment_name: Name for the segment to create. gold_standard: Name of gold standard to compare against (optional). run: The run(effect) function to execute. module: The loaded Python module. **Methods:** .. py:method:: load() Load a recipe from a Python file. .. py:method:: execute() Execute the recipe with the given effect. Functions --------- .. py:function:: load() Load a recipe from a Python file. Args: path: Path to the recipe file. Returns: Loaded Recipe object. Raises: FileNotFoundError: If recipe file doesn't exist. AttributeError: If recipe doesn't define required attributes. .. py:function:: execute() Execute the recipe with the given effect. Args: effect: The Adaptive Brush scripted effect instance. .. py:function:: list_recipes() List available recipe files. Args: recipes_dir: Directory to search. If None, uses default location. Returns: List of recipe file paths.