diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 9abc356..03d6a60 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -16,11 +16,11 @@ jobs: tests: strategy: matrix: - os: [ubuntu-22.04, macos-latest] - python-version: ["3.10", "3.11", "3.12"] - exclude: - - os: macos-latest - python-version: '3.10' + os: [ubuntu-22.04] #, macos-latest + python-version: ["3.10"] #, "3.11", "3.12" + # exclude: + # - os: macos-latest + # python-version: '3.10' name: "Core, Python ${{ matrix.python-version }}, ${{ matrix.os }}" runs-on: ${{ matrix.os }} timeout-minutes: 10 diff --git a/pyproject.toml b/pyproject.toml index d4d55cd..81a5a07 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,11 +25,12 @@ authors = [ ] # Required Python version and dependencies -requires-python = ">=3.10" +requires-python = ">=3.10,<3.11" # relax Python upwards versions once itk is unpinned dependencies = [ "fractal-tasks-core == 1.4.0", - "itk", - "itk-elastix", + "itk==5.3.0", + "itk-elastix==0.17.1", + "numpy<2", "h5py", "ngio == 0.1.4", "scikit-image", diff --git a/src/abbott/__FRACTAL_MANIFEST__.json b/src/abbott/__FRACTAL_MANIFEST__.json index d2c7b23..cda32da 100644 --- a/src/abbott/__FRACTAL_MANIFEST__.json +++ b/src/abbott/__FRACTAL_MANIFEST__.json @@ -9,11 +9,42 @@ "Multiplexing" ], "docs_info": "### Purpose\n- **Computes image-based registration** transformations for acquisitions in **HCS** OME-Zarr datasets using the elastix library.\n- Needs Elastix profiles to configure the registration.\n- Processes images grouped by well, under the assumption that each well contains one image per acquisition.\n- Calculates transformations for **specified regions of interest (ROIs)** and stores the results in a registration subfolder per OME-Zarr image.\n- Typically used as the first task in a workflow, followed by `Apply Registration (elastix)`.\n\n### Limitations\n- Supports only HCS OME-Zarr datasets, leveraging their acquisition metadata and well-based image grouping.\n- Assumes each well contains a single image per acquisition.\n", + "executable_non_parallel": "fractal_tasks/init_registration_hcs.py", "executable_parallel": "fractal_tasks/compute_registration_elastix.py", "meta_parallel": { "cpus_per_task": 4, "mem": 16000 }, + "args_schema_non_parallel": { + "additionalProperties": false, + "properties": { + "zarr_urls": { + "items": { + "type": "string" + }, + "title": "Zarr Urls", + "type": "array", + "description": "List of paths or urls to the individual OME-Zarr image to be processed. (standard argument for Fractal tasks, managed by Fractal server)." + }, + "zarr_dir": { + "title": "Zarr Dir", + "type": "string", + "description": "path of the directory where the new OME-Zarrs will be created. Not used by this task. (standard argument for Fractal tasks, managed by Fractal server)." + }, + "reference_acquisition": { + "default": 0, + "title": "Reference Acquisition", + "type": "integer", + "description": "Which acquisition to register against. Needs to match the acquisition metadata in the OME-Zarr image." + } + }, + "required": [ + "zarr_urls", + "zarr_dir" + ], + "type": "object", + "title": "InitRegistrationHcs" + }, "args_schema_parallel": { "$defs": { "InitArgsRegistration": { diff --git a/src/abbott/dev/task_list.py b/src/abbott/dev/task_list.py index 5a2db8b..46c5696 100644 --- a/src/abbott/dev/task_list.py +++ b/src/abbott/dev/task_list.py @@ -1,10 +1,11 @@ """Contains the list of tasks available to fractal.""" -from fractal_tasks_core.dev.task_models import ParallelTask +from fractal_tasks_core.dev.task_models import CompoundTask, ParallelTask TASK_LIST = [ - ParallelTask( + CompoundTask( name="Compute Registration (elastix)", + executable_init="fractal_tasks/init_registration_hcs.py", executable="fractal_tasks/compute_registration_elastix.py", meta={"cpus_per_task": 4, "mem": 16000}, category="Registration",