Skip to content

Commit

Permalink
Merge pull request #631 from fractal-analytics-platform/600-refactor-…
Browse files Browse the repository at this point in the history
…core-library-modules

Refactor core-library modules
  • Loading branch information
tcompa authored Dec 13, 2023
2 parents a24cf12 + be25157 commit afcada5
Show file tree
Hide file tree
Showing 89 changed files with 944 additions and 905 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
.pytest_cache/
tree.sh
.coverage*
__pycache__
*.cpython-*.pyc
Expand Down
4 changes: 2 additions & 2 deletions examples/01_cardio_tiny_dataset/run_workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@

from devtools import debug

from fractal_tasks_core.lib_channels import OmeroChannel
from fractal_tasks_core.lib_channels import Window
from fractal_tasks_core.channels import OmeroChannel
from fractal_tasks_core.channels import Window
from fractal_tasks_core.tasks.create_ome_zarr import create_ome_zarr
from fractal_tasks_core.tasks.yokogawa_to_ome_zarr import yokogawa_to_ome_zarr

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

from devtools import debug

from fractal_tasks_core.lib_channels import OmeroChannel
from fractal_tasks_core.channels import OmeroChannel
from fractal_tasks_core.tasks.create_ome_zarr import create_ome_zarr
from fractal_tasks_core.tasks.yokogawa_to_ome_zarr import yokogawa_to_ome_zarr

Expand Down
4 changes: 2 additions & 2 deletions examples/02_cardio_tiny_dataset_sparse/run_workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@

from devtools import debug

from fractal_tasks_core.lib_channels import OmeroChannel
from fractal_tasks_core.lib_channels import Window
from fractal_tasks_core.channels import OmeroChannel
from fractal_tasks_core.channels import Window
from fractal_tasks_core.tasks.create_ome_zarr import create_ome_zarr
from fractal_tasks_core.tasks.yokogawa_to_ome_zarr import yokogawa_to_ome_zarr

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@

from devtools import debug

from fractal_tasks_core.lib_channels import OmeroChannel
from fractal_tasks_core.lib_channels import Window
from fractal_tasks_core.channels import OmeroChannel
from fractal_tasks_core.channels import Window
from fractal_tasks_core.tasks.create_ome_zarr import create_ome_zarr
from fractal_tasks_core.tasks.illumination_correction import (
illumination_correction,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@

from devtools import debug

from fractal_tasks_core.lib_channels import OmeroChannel
from fractal_tasks_core.lib_channels import Window
from fractal_tasks_core.channels import OmeroChannel
from fractal_tasks_core.channels import Window
from fractal_tasks_core.tasks.create_ome_zarr import create_ome_zarr
from fractal_tasks_core.tasks.napari_workflows_wrapper import (
napari_workflows_wrapper,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@

from devtools import debug

from fractal_tasks_core.lib_channels import OmeroChannel
from fractal_tasks_core.lib_channels import Window
from fractal_tasks_core.channels import OmeroChannel
from fractal_tasks_core.channels import Window
from fractal_tasks_core.tasks.create_ome_zarr import create_ome_zarr
from fractal_tasks_core.tasks.napari_workflows_wrapper import (
napari_workflows_wrapper,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@

from devtools import debug

from fractal_tasks_core.lib_channels import OmeroChannel
from fractal_tasks_core.lib_channels import Window
from fractal_tasks_core.channels import OmeroChannel
from fractal_tasks_core.channels import Window
from fractal_tasks_core.tasks.create_ome_zarr import create_ome_zarr
from fractal_tasks_core.tasks.napari_workflows_wrapper import (
napari_workflows_wrapper,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@

from devtools import debug

from fractal_tasks_core.lib_channels import OmeroChannel
from fractal_tasks_core.lib_channels import Window
from fractal_tasks_core.channels import OmeroChannel
from fractal_tasks_core.channels import Window
from fractal_tasks_core.tasks.cellpose_segmentation import (
cellpose_segmentation,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@

from devtools import debug

from fractal_tasks_core.lib_channels import OmeroChannel
from fractal_tasks_core.lib_channels import Window
from fractal_tasks_core.channels import OmeroChannel
from fractal_tasks_core.channels import Window
from fractal_tasks_core.tasks.create_ome_zarr import create_ome_zarr
from fractal_tasks_core.tasks.napari_workflows_wrapper import (
napari_workflows_wrapper,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@

from devtools import debug

from fractal_tasks_core.lib_channels import OmeroChannel
from fractal_tasks_core.lib_channels import Window
from fractal_tasks_core.channels import OmeroChannel
from fractal_tasks_core.channels import Window
from fractal_tasks_core.tasks.create_ome_zarr import create_ome_zarr
from fractal_tasks_core.tasks.napari_workflows_wrapper import (
napari_workflows_wrapper,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@

from devtools import debug

from fractal_tasks_core.lib_channels import OmeroChannel
from fractal_tasks_core.lib_channels import Window
from fractal_tasks_core.channels import OmeroChannel
from fractal_tasks_core.channels import Window
from fractal_tasks_core.tasks.cellpose_segmentation import (
cellpose_segmentation,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@

from devtools import debug

from fractal_tasks_core.lib_channels import OmeroChannel
from fractal_tasks_core.lib_channels import Window
from fractal_tasks_core.channels import OmeroChannel
from fractal_tasks_core.channels import Window
from fractal_tasks_core.tasks.cellpose_segmentation import (
cellpose_segmentation,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@

from devtools import debug

from fractal_tasks_core.lib_channels import OmeroChannel
from fractal_tasks_core.lib_channels import Window
from fractal_tasks_core.channels import OmeroChannel
from fractal_tasks_core.channels import Window
from fractal_tasks_core.tasks.cellpose_segmentation import (
cellpose_segmentation,
)
Expand Down
4 changes: 2 additions & 2 deletions examples/08_subset_of_data/run_example_single_channel.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

from devtools import debug

from fractal_tasks_core.lib_channels import OmeroChannel
from fractal_tasks_core.lib_channels import Window
from fractal_tasks_core.channels import OmeroChannel
from fractal_tasks_core.channels import Window
from fractal_tasks_core.tasks.copy_ome_zarr import copy_ome_zarr
from fractal_tasks_core.tasks.create_ome_zarr import create_ome_zarr
from fractal_tasks_core.tasks.maximum_intensity_projection import (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

from devtools import debug

from fractal_tasks_core.lib_channels import OmeroChannel
from fractal_tasks_core.lib_channels import Window
from fractal_tasks_core.channels import OmeroChannel
from fractal_tasks_core.channels import Window
from fractal_tasks_core.tasks.copy_ome_zarr import copy_ome_zarr
from fractal_tasks_core.tasks.create_ome_zarr import create_ome_zarr
from fractal_tasks_core.tasks.maximum_intensity_projection import (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

from devtools import debug

from fractal_tasks_core.lib_channels import OmeroChannel
from fractal_tasks_core.lib_channels import Window
from fractal_tasks_core.channels import OmeroChannel
from fractal_tasks_core.channels import Window
from fractal_tasks_core.tasks.copy_ome_zarr import copy_ome_zarr
from fractal_tasks_core.tasks.create_ome_zarr import create_ome_zarr
from fractal_tasks_core.tasks.maximum_intensity_projection import (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

from devtools import debug

from fractal_tasks_core.lib_channels import OmeroChannel
from fractal_tasks_core.lib_channels import Window
from fractal_tasks_core.channels import OmeroChannel
from fractal_tasks_core.channels import Window
from fractal_tasks_core.tasks.copy_ome_zarr import copy_ome_zarr
from fractal_tasks_core.tasks.create_ome_zarr import create_ome_zarr
from fractal_tasks_core.tasks.maximum_intensity_projection import (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

from devtools import debug

from fractal_tasks_core.lib_channels import OmeroChannel
from fractal_tasks_core.lib_channels import Window
from fractal_tasks_core.channels import OmeroChannel
from fractal_tasks_core.channels import Window
from fractal_tasks_core.tasks.copy_ome_zarr import copy_ome_zarr
from fractal_tasks_core.tasks.create_ome_zarr import create_ome_zarr
from fractal_tasks_core.tasks.maximum_intensity_projection import (
Expand Down
4 changes: 2 additions & 2 deletions examples/09_secondary_labeling/01_images_to_mip.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@

from devtools import debug

from fractal_tasks_core.lib_channels import OmeroChannel
from fractal_tasks_core.lib_channels import Window
from fractal_tasks_core.channels import OmeroChannel
from fractal_tasks_core.channels import Window
from fractal_tasks_core.tasks.copy_ome_zarr import copy_ome_zarr
from fractal_tasks_core.tasks.create_ome_zarr import create_ome_zarr
from fractal_tasks_core.tasks.maximum_intensity_projection import (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

from devtools import debug

from fractal_tasks_core.lib_input_models import Channel
from fractal_tasks_core.channels import ChannelInputModel
from fractal_tasks_core.tasks.cellpose_segmentation import (
cellpose_segmentation,
)
Expand All @@ -31,7 +31,7 @@
output_path=zarr_path_mip,
metadata=metadata,
component=component,
channel=Channel(wavelength_id="A01_C01"),
channel=ChannelInputModel(wavelength_id="A01_C01"),
level=2,
relabeling=True,
diameter_level0=400.0,
Expand All @@ -53,7 +53,7 @@
output_path=zarr_path_mip,
metadata=metadata,
component=component,
channel=Channel(wavelength_id="A01_C01"),
channel=ChannelInputModel(wavelength_id="A01_C01"),
level=2,
relabeling=True,
diameter_level0=20.0,
Expand Down
2 changes: 1 addition & 1 deletion examples/09_secondary_labeling/check_ROI_table.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import sys

from fractal_tasks_core.lib_regions_of_interest import _inspect_ROI_table
from fractal_tasks_core.roi import _inspect_ROI_table


table = sys.argv[1]
Expand Down
2 changes: 1 addition & 1 deletion examples/tools/lib_inspect_ROI_table.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import anndata as ad

from fractal_tasks_core.lib_regions_of_interest import (
from fractal_tasks_core.roi import (
convert_ROI_table_to_indices,
)

Expand Down
4 changes: 3 additions & 1 deletion examples/tools/show_FOV_ROIs/show_FOV_ROIs.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
"""
import matplotlib.pyplot as plt

from fractal_tasks_core.lib_metadata_parsing import parse_yokogawa_metadata
from fractal_tasks_core.cellvoyager.metadata import (
parse_yokogawa_metadata,
)
from fractal_tasks_core.lib_ROI_overlaps import run_overlap_check


Expand Down
16 changes: 8 additions & 8 deletions fractal_tasks_core/__FRACTAL_MANIFEST__.json
Original file line number Diff line number Diff line change
Expand Up @@ -393,12 +393,12 @@
"description": "Pyramid level of the image to be segmented. Choose `0` to process at full resolution."
},
"channel": {
"$ref": "#/definitions/Channel",
"$ref": "#/definitions/ChannelInputModel",
"title": "Channel",
"description": "Primary channel for segmentation; requires either `wavelength_id` (e.g. `A01_C01`) or `label` (e.g. `DAPI`)."
},
"channel2": {
"$ref": "#/definitions/Channel",
"$ref": "#/definitions/ChannelInputModel",
"title": "Channel2",
"description": "Second channel for segmentation (in the same format as `channel`). If specified, cellpose runs in dual channel mode. For dual channel segmentation of cells, the first channel should contain the membrane marker, the second channel should contain the nuclear marker."
},
Expand Down Expand Up @@ -505,8 +505,8 @@
],
"additionalProperties": false,
"definitions": {
"Channel": {
"title": "Channel",
"ChannelInputModel": {
"title": "ChannelInputModel",
"description": "A channel which is specified by either `wavelength_id` or `label`.",
"type": "object",
"properties": {
Expand Down Expand Up @@ -709,8 +709,8 @@
],
"additionalProperties": false,
"definitions": {
"Channel": {
"title": "Channel",
"ChannelInputModel": {
"title": "ChannelInputModel",
"description": "A channel which is specified by either `wavelength_id` or `label`.",
"type": "object",
"properties": {
Expand Down Expand Up @@ -746,9 +746,9 @@
"description": "Label name (for label inputs only)."
},
"channel": {
"$ref": "#/definitions/Channel",
"$ref": "#/definitions/ChannelInputModel",
"title": "Channel",
"description": "Channel object (for image inputs only)."
"description": "`ChannelInputModel` object (for image inputs only)."
}
},
"required": [
Expand Down
1 change: 1 addition & 0 deletions fractal_tasks_core/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import logging


logging.basicConfig(
level=logging.INFO, format="%(asctime)s; %(levelname)s; %(message)s"
)
Expand Down
3 changes: 3 additions & 0 deletions fractal_tasks_core/cellvoyager/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
"""
Subpackage with utilities for tasks converting CellVoyager images to OME-Zarr.
"""
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,54 @@
# Institute for Biomedical Research and Pelkmans Lab from the University of
# Zurich.
"""
Extract metadata from image filename.
Auxiliary functions related to filenames of Yokogawa-microscope images.
"""
import logging
import re
from glob import glob
from pathlib import Path
from typing import Sequence


def glob_with_multiple_patterns(
*,
folder: str,
patterns: Sequence[str] = None,
) -> set[str]:
"""
List all the items (files and folders) in a given folder that
simultaneously match a series of glob patterns.
Args:
folder: Base folder where items will be searched.
patterns: If specified, the list of patterns (defined as in
https://docs.python.org/3/library/fnmatch.html) that item
names will match with.
"""

# Sanitize base-folder path
if folder.endswith("/"):
actual_folder = folder[:-1]
else:
actual_folder = folder[:]

# If not pattern is specified, look for *all* items in the base folder
if not patterns:
patterns = ["*"]

# Combine multiple glob searches (via set intersection)
logging.info(f"[glob_with_multiple_patterns] {patterns=}")
items = None
for pattern in patterns:
new_matches = glob(f"{actual_folder}/{pattern}")
if items is None:
items = set(new_matches)
else:
items = items.intersection(new_matches)
items = items or set()
logging.info(f"[glob_with_multiple_patterns] Found {len(items)} items")

return items


def _get_plate_name(plate_prefix: str) -> str:
Expand Down
File renamed without changes.
Loading

0 comments on commit afcada5

Please sign in to comment.