Skip to content

Commit

Permalink
Merge pull request #855 from fractal-analytics-platform/853-include-n…
Browse files Browse the repository at this point in the history
…ew-task-metadata-in-manifest

Preliminary support for new task metadata
  • Loading branch information
tcompa authored Nov 26, 2024
2 parents b67aa73 + 74a1481 commit 7947d87
Show file tree
Hide file tree
Showing 5 changed files with 87 additions and 2 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
**Note**: Numbers like (\#123) point to closed Pull Requests on the fractal-tasks-core repository.

# 1.3.3

* Add new metadata (authors, category, modality, tags) to manifest models and to tasks (\#855).

# 1.3.2

* Tasks:
* Add percentile-based rescaling to calculate registration task to make it more robust (\#848)
* Dependencies:
Expand Down
46 changes: 45 additions & 1 deletion fractal_tasks_core/__FRACTAL_MANIFEST__.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@
"task_list": [
{
"name": "Convert Cellvoyager to OME-Zarr",
"category": "Conversion",
"modality": "HCS",
"tags": [
"Yokogawa",
"Cellvoyager"
],
"executable_non_parallel": "tasks/cellvoyager_to_ome_zarr_init.py",
"executable_parallel": "tasks/cellvoyager_to_ome_zarr_compute.py",
"meta_non_parallel": {
Expand Down Expand Up @@ -265,6 +271,12 @@
},
{
"name": "Convert Cellvoyager Multiplexing to OME-Zarr",
"category": "Conversion",
"modality": "HCS",
"tags": [
"Yokogawa",
"Cellvoyager"
],
"executable_non_parallel": "tasks/cellvoyager_to_ome_zarr_init_multiplex.py",
"executable_parallel": "tasks/cellvoyager_to_ome_zarr_compute.py",
"meta_non_parallel": {
Expand Down Expand Up @@ -551,6 +563,11 @@
"output_types": {
"is_3D": false
},
"category": "Image Processing",
"modality": "HCS",
"tags": [
"Preprocessing"
],
"executable_non_parallel": "tasks/copy_ome_zarr_hcs_plate.py",
"executable_parallel": "tasks/projection.py",
"meta_non_parallel": {
Expand Down Expand Up @@ -672,6 +689,10 @@
"output_types": {
"illumination_corrected": true
},
"category": "Image Processing",
"tags": [
"Preprocessing"
],
"executable_parallel": "tasks/illumination_correction.py",
"meta_parallel": {
"cpus_per_task": 1,
Expand Down Expand Up @@ -736,6 +757,12 @@
},
{
"name": "Cellpose Segmentation",
"category": "Segmentation",
"tags": [
"Deep Learning",
"Convolutional Neural Network",
"Instance Segmentation"
],
"executable_parallel": "tasks/cellpose_segmentation.py",
"meta_parallel": {
"cpus_per_task": 4,
Expand Down Expand Up @@ -1030,6 +1057,11 @@
},
{
"name": "Calculate Registration (image-based)",
"category": "Registration",
"modality": "HCS",
"tags": [
"Multiplexing"
],
"executable_non_parallel": "tasks/image_based_registration_hcs_init.py",
"executable_parallel": "tasks/calculate_registration_image_based.py",
"meta_non_parallel": {
Expand Down Expand Up @@ -1161,6 +1193,11 @@
},
{
"name": "Find Registration Consensus",
"category": "Registration",
"modality": "HCS",
"tags": [
"Multiplexing"
],
"executable_non_parallel": "tasks/init_group_by_well_for_multiplexing.py",
"executable_parallel": "tasks/find_registration_consensus.py",
"meta_non_parallel": {
Expand Down Expand Up @@ -1263,6 +1300,11 @@
"output_types": {
"registered": true
},
"category": "Registration",
"modality": "HCS",
"tags": [
"Multiplexing"
],
"executable_parallel": "tasks/apply_registration_to_image.py",
"meta_parallel": {
"cpus_per_task": 1,
Expand Down Expand Up @@ -1378,6 +1420,7 @@
},
{
"name": "Napari Workflows Wrapper",
"category": "Measurement",
"executable_parallel": "tasks/napari_workflows_wrapper.py",
"meta_parallel": {
"cpus_per_task": 8,
Expand Down Expand Up @@ -1539,5 +1582,6 @@
}
],
"has_args_schemas": true,
"args_schema_version": "pydantic_v2"
"args_schema_version": "pydantic_v2",
"authors": "Fractal Core Team"
}
7 changes: 6 additions & 1 deletion fractal_tasks_core/dev/create_manifest.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@

def create_manifest(
package: str = "fractal_tasks_core",
authors: Optional[str] = None,
manifest_version: str = "2",
has_args_schemas: bool = True,
docs_link: Optional[str] = None,
Expand Down Expand Up @@ -76,6 +77,8 @@ def create_manifest(
)
if has_args_schemas:
manifest["args_schema_version"] = ARGS_SCHEMA_VERSION
if authors is not None:
manifest["authors"] = authors

# Prepare a default value of docs_link
if package == "fractal_tasks_core" and docs_link is None:
Expand Down Expand Up @@ -148,4 +151,6 @@ def create_manifest(


if __name__ == "__main__":
create_manifest()
PACKAGE = "fractal_tasks_core"
AUTHORS = "Fractal Core Team"
create_manifest(package=PACKAGE, authors=AUTHORS)
27 changes: 27 additions & 0 deletions fractal_tasks_core/dev/task_list.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,19 @@
executable="tasks/cellvoyager_to_ome_zarr_compute.py",
meta_init={"cpus_per_task": 1, "mem": 4000},
meta={"cpus_per_task": 1, "mem": 4000},
category="Conversion",
modality="HCS",
tags=["Yokogawa", "Cellvoyager"],
),
CompoundTask(
name="Convert Cellvoyager Multiplexing to OME-Zarr",
executable_init="tasks/cellvoyager_to_ome_zarr_init_multiplex.py",
executable="tasks/cellvoyager_to_ome_zarr_compute.py",
meta_init={"cpus_per_task": 1, "mem": 4000},
meta={"cpus_per_task": 1, "mem": 4000},
category="Conversion",
modality="HCS",
tags=["Yokogawa", "Cellvoyager"],
),
CompoundTask(
name="Project Image (HCS Plate)",
Expand All @@ -38,39 +44,59 @@
output_types={"is_3D": False},
meta_init={"cpus_per_task": 1, "mem": 4000},
meta={"cpus_per_task": 1, "mem": 4000},
category="Image Processing",
modality="HCS",
tags=["Preprocessing"],
),
ParallelTask(
name="Illumination Correction",
input_types=dict(illumination_corrected=False),
executable="tasks/illumination_correction.py",
output_types=dict(illumination_corrected=True),
meta={"cpus_per_task": 1, "mem": 4000},
category="Image Processing",
tags=["Preprocessing"],
),
ParallelTask(
name="Cellpose Segmentation",
executable="tasks/cellpose_segmentation.py",
meta={"cpus_per_task": 4, "mem": 16000, "needs_gpu": True},
category="Segmentation",
tags=[
"Deep Learning",
"Convolutional Neural Network",
"Instance Segmentation",
],
),
CompoundTask(
name="Calculate Registration (image-based)",
executable_init="tasks/image_based_registration_hcs_init.py",
executable="tasks/calculate_registration_image_based.py",
meta_init={"cpus_per_task": 1, "mem": 1000},
meta={"cpus_per_task": 1, "mem": 8000},
category="Registration",
modality="HCS",
tags=["Multiplexing"],
),
CompoundTask(
name="Find Registration Consensus",
executable_init="tasks/init_group_by_well_for_multiplexing.py",
executable="tasks/find_registration_consensus.py",
meta_init={"cpus_per_task": 1, "mem": 1000},
meta={"cpus_per_task": 1, "mem": 1000},
category="Registration",
modality="HCS",
tags=["Multiplexing"],
),
ParallelTask(
name="Apply Registration to Image",
input_types=dict(registered=False),
executable="tasks/apply_registration_to_image.py",
output_types=dict(registered=True),
meta={"cpus_per_task": 1, "mem": 4000},
category="Registration",
modality="HCS",
tags=["Multiplexing"],
),
NonParallelTask(
name="Import OME-Zarr",
Expand All @@ -83,5 +109,6 @@
"cpus_per_task": 8,
"mem": 32000,
},
category="Measurement",
),
]
4 changes: 4 additions & 0 deletions fractal_tasks_core/dev/task_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
from typing import Optional

from pydantic import BaseModel
from pydantic import Field


class _BaseTask(BaseModel):
Expand All @@ -31,6 +32,9 @@ class Config:
meta: Optional[dict[str, Any]] = None
input_types: Optional[dict[str, bool]] = None
output_types: Optional[dict[str, bool]] = None
category: Optional[str] = None
modality: Optional[str] = None
tags: list[str] = Field(default_factory=list)


class CompoundTask(_BaseTask):
Expand Down

0 comments on commit 7947d87

Please sign in to comment.