From 9e8191cd0ee03277de16b570dbc927025a469e7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 29 Jan 2026 18:43:45 +0000 Subject: [PATCH 1/5] chore: add reporting as dependency --- .gitignore | 1 + pyproject.toml | 2 ++ uv.lock | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 81 insertions(+) diff --git a/.gitignore b/.gitignore index 9075af1..fef88c0 100644 --- a/.gitignore +++ b/.gitignore @@ -181,3 +181,4 @@ lightning_logs/ # Project /data playground.ipynb +/outputs diff --git a/pyproject.toml b/pyproject.toml index 37038f3..180f5a9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,6 +26,7 @@ dependencies = [ [dependency-groups] dev = ["mypy", "ruff", "ipykernel"] run = ["rationai-kube-jobs"] +report = ["report"] [tool.uv.sources] rationai-mlkit = { git = "https://gitlab.ics.muni.cz/rationai/digital-pathology/libraries/mlkit.git" } @@ -34,3 +35,4 @@ rationai-tiling = { git = "https://gitlab.ics.muni.cz/rationai/digital-pathology rationai-kube-jobs = { git = "ssh://git@gitlab.ics.muni.cz/rationai/infrastructure/kube-jobs" } rationai-sdk = { git = "https://gitlab.ics.muni.cz/rationai/infrastructure/rationai-sdk-python.git" } ratiopath = { git = "https://github.com/RationAI/ratiopath.git", branch = "fix/read-overlay" } +report = { git = "https://gitlab.ics.muni.cz/rationai/digital-pathology/tools/report.git" } diff --git a/uv.lock b/uv.lock index b8f001d..1cf6b0b 100644 --- a/uv.lock +++ b/uv.lock @@ -1566,6 +1566,29 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/7a/5e/5958555e09635d09b75de3c4f8b9cae7335ca545d77392ffe7331534c402/opentelemetry_semantic_conventions-0.60b1-py3-none-any.whl", hash = "sha256:9fa8c8b0c110da289809292b0591220d3a7b53c1526a23021e977d68597893fb", size = 219982, upload-time = "2025-12-11T13:32:36.955Z" }, ] +[[package]] +name = "orjson" +version = "3.11.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/70/a3/4e09c61a5f0c521cba0bb433639610ae037437669f1a4cbc93799e731d78/orjson-3.11.6.tar.gz", hash = "sha256:0a54c72259f35299fd033042367df781c2f66d10252955ca1efb7db309b954cb", size = 6175856, upload-time = "2026-01-29T15:13:07.942Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/14/ba/759f2879f41910b7e5e0cdbd9cf82a4f017c527fb0e972e9869ca7fe4c8e/orjson-3.11.6-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:6f03f30cd8953f75f2a439070c743c7336d10ee940da918d71c6f3556af3ddcf", size = 249988, upload-time = "2026-01-29T15:11:58.294Z" }, + { url = "https://files.pythonhosted.org/packages/f0/70/54cecb929e6c8b10104fcf580b0cc7dc551aa193e83787dd6f3daba28bb5/orjson-3.11.6-cp312-cp312-macosx_15_0_arm64.whl", hash = "sha256:af44baae65ef386ad971469a8557a0673bb042b0b9fd4397becd9c2dfaa02588", size = 134445, upload-time = "2026-01-29T15:11:59.819Z" }, + { url = "https://files.pythonhosted.org/packages/f2/6f/ec0309154457b9ba1ad05f11faa4441f76037152f75e1ac577db3ce7ca96/orjson-3.11.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c310a48542094e4f7dbb6ac076880994986dda8ca9186a58c3cb70a3514d3231", size = 137708, upload-time = "2026-01-29T15:12:01.488Z" }, + { url = "https://files.pythonhosted.org/packages/20/52/3c71b80840f8bab9cb26417302707b7716b7d25f863f3a541bcfa232fe6e/orjson-3.11.6-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d8dfa7a5d387f15ecad94cb6b2d2d5f4aeea64efd8d526bfc03c9812d01e1cc0", size = 134798, upload-time = "2026-01-29T15:12:02.705Z" }, + { url = "https://files.pythonhosted.org/packages/30/51/b490a43b22ff736282360bd02e6bded455cf31dfc3224e01cd39f919bbd2/orjson-3.11.6-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba8daee3e999411b50f8b50dbb0a3071dd1845f3f9a1a0a6fa6de86d1689d84d", size = 140839, upload-time = "2026-01-29T15:12:03.956Z" }, + { url = "https://files.pythonhosted.org/packages/95/bc/4bcfe4280c1bc63c5291bb96f98298845b6355da2226d3400e17e7b51e53/orjson-3.11.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f89d104c974eafd7436d7a5fdbc57f7a1e776789959a2f4f1b2eab5c62a339f4", size = 144080, upload-time = "2026-01-29T15:12:05.151Z" }, + { url = "https://files.pythonhosted.org/packages/01/74/22970f9ead9ab1f1b5f8c227a6c3aa8d71cd2c5acd005868a1d44f2362fa/orjson-3.11.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2e2e2456788ca5ea75616c40da06fc885a7dc0389780e8a41bf7c5389ba257b", size = 142435, upload-time = "2026-01-29T15:12:06.641Z" }, + { url = "https://files.pythonhosted.org/packages/29/34/d564aff85847ab92c82ee43a7a203683566c2fca0723a5f50aebbe759603/orjson-3.11.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a42efebc45afabb1448001e90458c4020d5c64fbac8a8dc4045b777db76cb5a", size = 145631, upload-time = "2026-01-29T15:12:08.351Z" }, + { url = "https://files.pythonhosted.org/packages/e7/ef/016957a3890752c4aa2368326ea69fa53cdc1fdae0a94a542b6410dbdf52/orjson-3.11.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:71b7cbef8471324966c3738c90ba38775563ef01b512feb5ad4805682188d1b9", size = 147058, upload-time = "2026-01-29T15:12:10.023Z" }, + { url = "https://files.pythonhosted.org/packages/56/cc/9a899c3972085645b3225569f91a30e221f441e5dc8126e6d060b971c252/orjson-3.11.6-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:f8515e5910f454fe9a8e13c2bb9dc4bae4c1836313e967e72eb8a4ad874f0248", size = 421161, upload-time = "2026-01-29T15:12:11.308Z" }, + { url = "https://files.pythonhosted.org/packages/21/a8/767d3fbd6d9b8fdee76974db40619399355fd49bf91a6dd2c4b6909ccf05/orjson-3.11.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:300360edf27c8c9bf7047345a94fddf3a8b8922df0ff69d71d854a170cb375cf", size = 155757, upload-time = "2026-01-29T15:12:12.776Z" }, + { url = "https://files.pythonhosted.org/packages/ad/0b/205cd69ac87e2272e13ef3f5f03a3d4657e317e38c1b08aaa2ef97060bbc/orjson-3.11.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:caaed4dad39e271adfadc106fab634d173b2bb23d9cf7e67bd645f879175ebfc", size = 147446, upload-time = "2026-01-29T15:12:14.166Z" }, + { url = "https://files.pythonhosted.org/packages/de/c5/dd9f22aa9f27c54c7d05cc32f4580c9ac9b6f13811eeb81d6c4c3f50d6b1/orjson-3.11.6-cp312-cp312-win32.whl", hash = "sha256:955368c11808c89793e847830e1b1007503a5923ddadc108547d3b77df761044", size = 139717, upload-time = "2026-01-29T15:12:15.7Z" }, + { url = "https://files.pythonhosted.org/packages/23/a1/e62fc50d904486970315a1654b8cfb5832eb46abb18cd5405118e7e1fc79/orjson-3.11.6-cp312-cp312-win_amd64.whl", hash = "sha256:2c68de30131481150073d90a5d227a4a421982f42c025ecdfb66157f9579e06f", size = 136711, upload-time = "2026-01-29T15:12:17.055Z" }, + { url = "https://files.pythonhosted.org/packages/04/3d/b4fefad8bdf91e0fe212eb04975aeb36ea92997269d68857efcc7eb1dda3/orjson-3.11.6-cp312-cp312-win_arm64.whl", hash = "sha256:65dfa096f4e3a5e02834b681f539a87fbe85adc82001383c0db907557f666bfc", size = 135212, upload-time = "2026-01-29T15:12:18.3Z" }, +] + [[package]] name = "packaging" version = "24.2" @@ -1654,6 +1677,34 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/cb/28/3bfe2fa5a7b9c46fe7e13c97bda14c895fb10fa2ebf1d0abb90e0cea7ee1/platformdirs-4.5.1-py3-none-any.whl", hash = "sha256:d03afa3963c806a9bed9d5125c8f4cb2fdaf74a55ab60e5d59b3fde758104d31", size = 18731, upload-time = "2025-12-05T13:52:56.823Z" }, ] +[[package]] +name = "polars" +version = "1.37.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "polars-runtime-32" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/84/ae/dfebf31b9988c20998140b54d5b521f64ce08879f2c13d9b4d44d7c87e32/polars-1.37.1.tar.gz", hash = "sha256:0309e2a4633e712513401964b4d95452f124ceabf7aec6db50affb9ced4a274e", size = 715572, upload-time = "2026-01-12T23:27:03.267Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/08/75/ec73e38812bca7c2240aff481b9ddff20d1ad2f10dee4b3353f5eeaacdab/polars-1.37.1-py3-none-any.whl", hash = "sha256:377fed8939a2f1223c1563cfabdc7b4a3d6ff846efa1f2ddeb8644fafd9b1aff", size = 805749, upload-time = "2026-01-12T23:25:48.595Z" }, +] + +[[package]] +name = "polars-runtime-32" +version = "1.37.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/40/0b/addabe5e8d28a5a4c9887a08907be7ddc3fce892dc38f37d14b055438a57/polars_runtime_32-1.37.1.tar.gz", hash = "sha256:68779d4a691da20a5eb767d74165a8f80a2bdfbde4b54acf59af43f7fa028d8f", size = 2818945, upload-time = "2026-01-12T23:27:04.653Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/a2/e828ea9f845796de02d923edb790e408ca0b560cd68dbd74bb99a1b3c461/polars_runtime_32-1.37.1-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:0b8d4d73ea9977d3731927740e59d814647c5198bdbe359bcf6a8bfce2e79771", size = 43499912, upload-time = "2026-01-12T23:25:51.182Z" }, + { url = "https://files.pythonhosted.org/packages/7e/46/81b71b7aa9e3703ee6e4ef1f69a87e40f58ea7c99212bf49a95071e99c8c/polars_runtime_32-1.37.1-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:c682bf83f5f352e5e02f5c16c652c48ca40442f07b236f30662b22217320ce76", size = 39695707, upload-time = "2026-01-12T23:25:54.289Z" }, + { url = "https://files.pythonhosted.org/packages/81/2e/20009d1fde7ee919e24040f5c87cb9d0e4f8e3f109b74ba06bc10c02459c/polars_runtime_32-1.37.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc82b5bbe70ca1a4b764eed1419f6336752d6ba9fc1245388d7f8b12438afa2c", size = 41467034, upload-time = "2026-01-12T23:25:56.925Z" }, + { url = "https://files.pythonhosted.org/packages/eb/21/9b55bea940524324625b1e8fd96233290303eb1bf2c23b54573487bbbc25/polars_runtime_32-1.37.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8362d11ac5193b994c7e9048ffe22ccfb976699cfbf6e128ce0302e06728894", size = 45142711, upload-time = "2026-01-12T23:26:00.817Z" }, + { url = "https://files.pythonhosted.org/packages/8c/25/c5f64461aeccdac6834a89f826d051ccd3b4ce204075e562c87a06ed2619/polars_runtime_32-1.37.1-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:04f5d5a2f013dca7391b7d8e7672fa6d37573a87f1d45d3dd5f0d9b5565a4b0f", size = 41638564, upload-time = "2026-01-12T23:26:04.186Z" }, + { url = "https://files.pythonhosted.org/packages/35/af/509d3cf6c45e764ccf856beaae26fc34352f16f10f94a7839b1042920a73/polars_runtime_32-1.37.1-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:fbfde7c0ca8209eeaed546e4a32cca1319189aa61c5f0f9a2b4494262bd0c689", size = 44721136, upload-time = "2026-01-12T23:26:07.088Z" }, + { url = "https://files.pythonhosted.org/packages/af/d1/5c0a83a625f72beef59394bebc57d12637997632a4f9d3ab2ffc2cc62bbf/polars_runtime_32-1.37.1-cp310-abi3-win_amd64.whl", hash = "sha256:da3d3642ae944e18dd17109d2a3036cb94ce50e5495c5023c77b1599d4c861bc", size = 44948288, upload-time = "2026-01-12T23:26:10.214Z" }, + { url = "https://files.pythonhosted.org/packages/10/f3/061bb702465904b6502f7c9081daee34b09ccbaa4f8c94cf43a2a3b6dd6f/polars_runtime_32-1.37.1-cp310-abi3-win_arm64.whl", hash = "sha256:55f2c4847a8d2e267612f564de7b753a4bde3902eaabe7b436a0a4abf75949a0", size = 41001914, upload-time = "2026-01-12T23:26:12.997Z" }, +] + [[package]] name = "prompt-toolkit" version = "3.0.52" @@ -2136,6 +2187,20 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl", hash = "sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231", size = 26766, upload-time = "2025-10-13T15:30:47.625Z" }, ] +[[package]] +name = "report" +version = "1.1.5" +source = { git = "https://gitlab.ics.muni.cz/rationai/digital-pathology/tools/report.git#23ff289aa833e1c42924ad2d0efd1e5ee2490240" } +dependencies = [ + { name = "hydra-core" }, + { name = "jinja2" }, + { name = "mlflow" }, + { name = "orjson" }, + { name = "polars" }, + { name = "setuptools" }, + { name = "types-pyyaml" }, +] + [[package]] name = "requests" version = "2.32.5" @@ -2582,6 +2647,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ab/a8/cdf8b3e4c98132f965f88c2313a4b493266832ad47fb52f23d14d4f86bb5/triton-3.6.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:74caf5e34b66d9f3a429af689c1c7128daba1d8208df60e81106b115c00d6fca", size = 188266850, upload-time = "2026-01-20T16:00:43.041Z" }, ] +[[package]] +name = "types-pyyaml" +version = "6.0.12.20250915" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7e/69/3c51b36d04da19b92f9e815be12753125bd8bc247ba0470a982e6979e71c/types_pyyaml-6.0.12.20250915.tar.gz", hash = "sha256:0f8b54a528c303f0e6f7165687dd33fafa81c807fcac23f632b63aa624ced1d3", size = 17522, upload-time = "2025-09-15T03:01:00.728Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bd/e0/1eed384f02555dde685fff1a1ac805c1c7dcb6dd019c916fe659b1c1f9ec/types_pyyaml-6.0.12.20250915-py3-none-any.whl", hash = "sha256:e7d4d9e064e89a3b3cae120b4990cd370874d2bf12fa5f46c97018dd5d3c9ab6", size = 20338, upload-time = "2025-09-15T03:00:59.218Z" }, +] + [[package]] name = "typing-extensions" version = "4.15.0" @@ -2640,6 +2714,9 @@ dev = [ { name = "mypy" }, { name = "ruff" }, ] +report = [ + { name = "report" }, +] run = [ { name = "rationai-kube-jobs" }, ] @@ -2669,6 +2746,7 @@ dev = [ { name = "mypy" }, { name = "ruff" }, ] +report = [{ name = "report", git = "https://gitlab.ics.muni.cz/rationai/digital-pathology/tools/report.git" }] run = [{ name = "rationai-kube-jobs", git = "ssh://git@gitlab.ics.muni.cz/rationai/infrastructure/kube-jobs" }] [[package]] From d098d17927acaa3926ecc9bbbaf30650c5f511c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 29 Jan 2026 18:44:14 +0000 Subject: [PATCH 2/5] feat: download reporting confs --- reporting/default.yaml | 20 +++++++++++++++++++ reporting/hydra/default.yaml | 6 ++++++ reporting/mlflow/base.yaml | 1 + reporting/mlflow/kubas_cluster.yaml | 1 + reporting/mlflow/kubas_external.yaml | 1 + reporting/mlflow/local.yaml | 1 + reporting/reporter/background/drive.yaml | 3 +++ .../reporter/background/mlflow_artifact.yaml | 3 +++ .../reporter/background/mlflow_run_id.yaml | 4 ++++ .../reporter/background/mlflow_tyler.yaml | 6 ++++++ reporting/reporter/save/local.yaml | 2 ++ .../reporter/save/mlflow_attach_to_run.yaml | 3 +++ .../reporter/save/mlflow_standalone_run.yaml | 3 +++ 13 files changed, 54 insertions(+) create mode 100644 reporting/default.yaml create mode 100644 reporting/hydra/default.yaml create mode 100644 reporting/mlflow/base.yaml create mode 100644 reporting/mlflow/kubas_cluster.yaml create mode 100644 reporting/mlflow/kubas_external.yaml create mode 100644 reporting/mlflow/local.yaml create mode 100644 reporting/reporter/background/drive.yaml create mode 100644 reporting/reporter/background/mlflow_artifact.yaml create mode 100644 reporting/reporter/background/mlflow_run_id.yaml create mode 100644 reporting/reporter/background/mlflow_tyler.yaml create mode 100644 reporting/reporter/save/local.yaml create mode 100644 reporting/reporter/save/mlflow_attach_to_run.yaml create mode 100644 reporting/reporter/save/mlflow_standalone_run.yaml diff --git a/reporting/default.yaml b/reporting/default.yaml new file mode 100644 index 0000000..1523d3b --- /dev/null +++ b/reporting/default.yaml @@ -0,0 +1,20 @@ +defaults: + - _self_ + - hydra: default + - mlflow: kubas_cluster + +user: ??? + +reporter: + save: ??? + background: ??? + title: ??? + mask_retrievers: [] + metrics_run_ids: [] + template_asset_path: report_template.html + +metadata: + user: ${user} + experiment_name: ??? + run_name: ??? + description: ??? diff --git a/reporting/hydra/default.yaml b/reporting/hydra/default.yaml new file mode 100644 index 0000000..e0c5ec3 --- /dev/null +++ b/reporting/hydra/default.yaml @@ -0,0 +1,6 @@ +job: + name: report + chdir: true + +help: + app_name: Experiment Report diff --git a/reporting/mlflow/base.yaml b/reporting/mlflow/base.yaml new file mode 100644 index 0000000..f7d7be1 --- /dev/null +++ b/reporting/mlflow/base.yaml @@ -0,0 +1 @@ +tracking_uri: ??? diff --git a/reporting/mlflow/kubas_cluster.yaml b/reporting/mlflow/kubas_cluster.yaml new file mode 100644 index 0000000..55b2fcb --- /dev/null +++ b/reporting/mlflow/kubas_cluster.yaml @@ -0,0 +1 @@ +tracking_uri: http://mlflow.rationai-mlflow:5000/ diff --git a/reporting/mlflow/kubas_external.yaml b/reporting/mlflow/kubas_external.yaml new file mode 100644 index 0000000..0b66b2c --- /dev/null +++ b/reporting/mlflow/kubas_external.yaml @@ -0,0 +1 @@ +tracking_uri: https://mlflow.rationai.cloud.trusted.e-infra.cz/ diff --git a/reporting/mlflow/local.yaml b/reporting/mlflow/local.yaml new file mode 100644 index 0000000..a98101a --- /dev/null +++ b/reporting/mlflow/local.yaml @@ -0,0 +1 @@ +tracking_uri: file:./mlflow_store diff --git a/reporting/reporter/background/drive.yaml b/reporting/reporter/background/drive.yaml new file mode 100644 index 0000000..2d264a9 --- /dev/null +++ b/reporting/reporter/background/drive.yaml @@ -0,0 +1,3 @@ +_target_: report.masks.DriveMasksRetriever +dir_name: ??? +layer_name: ??? diff --git a/reporting/reporter/background/mlflow_artifact.yaml b/reporting/reporter/background/mlflow_artifact.yaml new file mode 100644 index 0000000..bba3aa3 --- /dev/null +++ b/reporting/reporter/background/mlflow_artifact.yaml @@ -0,0 +1,3 @@ +_target_: report.masks.ArtifactURIMasksRetriever +artifact_uri: ??? +layer_name: ??? diff --git a/reporting/reporter/background/mlflow_run_id.yaml b/reporting/reporter/background/mlflow_run_id.yaml new file mode 100644 index 0000000..78aa3c4 --- /dev/null +++ b/reporting/reporter/background/mlflow_run_id.yaml @@ -0,0 +1,4 @@ +_target_: report.masks.RunIDMlflowMaskRetriever +dir_name: ??? +run_id: ??? +layer_name: ??? diff --git a/reporting/reporter/background/mlflow_tyler.yaml b/reporting/reporter/background/mlflow_tyler.yaml new file mode 100644 index 0000000..157b02d --- /dev/null +++ b/reporting/reporter/background/mlflow_tyler.yaml @@ -0,0 +1,6 @@ +_target_: report.masks.TylerMLFlowMaskRetriever +artifact_uris: ??? +item_name_col: ??? +background_masks_directory: ??? +ground_truth_col: ??? +layer_name: ??? diff --git a/reporting/reporter/save/local.yaml b/reporting/reporter/save/local.yaml new file mode 100644 index 0000000..a9bb139 --- /dev/null +++ b/reporting/reporter/save/local.yaml @@ -0,0 +1,2 @@ +_target_: report.save.LocalReportStorer +output_path: report.html diff --git a/reporting/reporter/save/mlflow_attach_to_run.yaml b/reporting/reporter/save/mlflow_attach_to_run.yaml new file mode 100644 index 0000000..6dbe11a --- /dev/null +++ b/reporting/reporter/save/mlflow_attach_to_run.yaml @@ -0,0 +1,3 @@ +_target_: report.save.RunIDMLFlowReportAttacher +artifact_path: report.html +run_id: ??? diff --git a/reporting/reporter/save/mlflow_standalone_run.yaml b/reporting/reporter/save/mlflow_standalone_run.yaml new file mode 100644 index 0000000..d610c54 --- /dev/null +++ b/reporting/reporter/save/mlflow_standalone_run.yaml @@ -0,0 +1,3 @@ +_target_: report.save.MLFlowReportStorer +artifact_path: report.html +metadata: ${metadata} From 312ce62313706b9d2f694880628586e71aeef2db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 29 Jan 2026 18:44:27 +0000 Subject: [PATCH 3/5] feat: create preprocessing confs --- reporting/reporter/preprocessing/ftn.yaml | 76 +++++++++++++++++++ reporting/reporter/preprocessing/ikem.yaml | 76 +++++++++++++++++++ .../reporter/preprocessing/knl_patos.yaml | 76 +++++++++++++++++++ 3 files changed, 228 insertions(+) create mode 100644 reporting/reporter/preprocessing/ftn.yaml create mode 100644 reporting/reporter/preprocessing/ikem.yaml create mode 100644 reporting/reporter/preprocessing/knl_patos.yaml diff --git a/reporting/reporter/preprocessing/ftn.yaml b/reporting/reporter/preprocessing/ftn.yaml new file mode 100644 index 0000000..25a68a0 --- /dev/null +++ b/reporting/reporter/preprocessing/ftn.yaml @@ -0,0 +1,76 @@ +defaults: + - background: drive + - save: mlflow_standalone_run + +title: Ulcerative Colitis Preprocessing - ftn + +background: + dir_name: /mnt/data/FTN/colon/IBD_AI + layer_name: Ulcerative Colitis + +mask_retrievers: + - _target_: report.masks.RunIDMlflowMaskRetriever + run_id: TODO + dir_name: tissue_masks + layer_name: Tissue mask + shader_conf: + type: heatmap + opacity: 0.5 + color: "#ffff00" + visible: False + + - _target_: report.masks.RunIDMlflowMaskRetriever + run_id: TODO + dir_name: blur_per_pixel + layer_name: Blur + shader_conf: + type: heatmap + opacity: 0.5 + color: "#00ffff" + visible: False + + - _target_: report.masks.RunIDMlflowMaskRetriever + run_id: TODO + dir_name: artifacts_per_pixel + layer_name: Residual artifacts + shader_conf: + type: heatmap + opacity: 0.5 + color: "#00ffff" + visible: False + + - _target_: report.masks.RunIDMlflowMaskRetriever + run_id: TODO + dir_name: clean_tiles + layer_name: Used Tiles + shader_conf: + type: heatmap + opacity: 1.0 + color: "#00ff00" + visible: False + + - _target_: report.masks.RunIDMlflowMaskRetriever + run_id: TODO + dir_name: blur_tiles + layer_name: Blur Tiles + shader_conf: + type: heatmap + opacity: 1.0 + color: "#ff0000" + visible: False + + - _target_: report.masks.RunIDMlflowMaskRetriever + run_id: TODO + dir_name: artifacts_tiles + layer_name: Artifacts Tiles + shader_conf: + type: heatmap + opacity: 1.0 + color: "#ff0000" + visible: False + +save: + metadata: + experiment_name : 'Ulcerative Colitis' + run_name : '📊 Report: Preprocessing - ftn' + description: Report \ No newline at end of file diff --git a/reporting/reporter/preprocessing/ikem.yaml b/reporting/reporter/preprocessing/ikem.yaml new file mode 100644 index 0000000..6842dde --- /dev/null +++ b/reporting/reporter/preprocessing/ikem.yaml @@ -0,0 +1,76 @@ +defaults: + - background: drive + - save: mlflow_standalone_run + +title: Ulcerative Colitis Preprocessing - IKEM + +background: + dir_name: /mnt/data/IKEM/colon/IBD_AI/20x + layer_name: Ulcerative Colitis + +mask_retrievers: + - _target_: report.masks.RunIDMlflowMaskRetriever + run_id: TODO + dir_name: tissue_masks + layer_name: Tissue mask + shader_conf: + type: heatmap + opacity: 0.5 + color: "#ffff00" + visible: False + + - _target_: report.masks.RunIDMlflowMaskRetriever + run_id: TODO + dir_name: blur_per_pixel + layer_name: Blur + shader_conf: + type: heatmap + opacity: 0.5 + color: "#00ffff" + visible: False + + - _target_: report.masks.RunIDMlflowMaskRetriever + run_id: TODO + dir_name: artifacts_per_pixel + layer_name: Residual artifacts + shader_conf: + type: heatmap + opacity: 0.5 + color: "#00ffff" + visible: False + + - _target_: report.masks.RunIDMlflowMaskRetriever + run_id: TODO + dir_name: clean_tiles + layer_name: Used Tiles + shader_conf: + type: heatmap + opacity: 1.0 + color: "#00ff00" + visible: False + + - _target_: report.masks.RunIDMlflowMaskRetriever + run_id: TODO + dir_name: blur_tiles + layer_name: Blur Tiles + shader_conf: + type: heatmap + opacity: 1.0 + color: "#ff0000" + visible: False + + - _target_: report.masks.RunIDMlflowMaskRetriever + run_id: TODO + dir_name: artifacts_tiles + layer_name: Artifacts Tiles + shader_conf: + type: heatmap + opacity: 1.0 + color: "#ff0000" + visible: False + +save: + metadata: + experiment_name : 'Ulcerative Colitis' + run_name : '📊 Report: Preprocessing - ikem' + description: Report \ No newline at end of file diff --git a/reporting/reporter/preprocessing/knl_patos.yaml b/reporting/reporter/preprocessing/knl_patos.yaml new file mode 100644 index 0000000..1c1c7df --- /dev/null +++ b/reporting/reporter/preprocessing/knl_patos.yaml @@ -0,0 +1,76 @@ +defaults: + - background: drive + - save: mlflow_standalone_run + +title: Ulcerative Colitis Preprocessing - KNL Patos + +background: + dir_name: /mnt/data/KNL_PATOS/colon/IBD_AI + layer_name: Ulcerative Colitis + +mask_retrievers: + - _target_: report.masks.RunIDMlflowMaskRetriever + run_id: TODO + dir_name: tissue_masks + layer_name: Tissue mask + shader_conf: + type: heatmap + opacity: 0.5 + color: "#ffff00" + visible: False + + - _target_: report.masks.RunIDMlflowMaskRetriever + run_id: TODO + dir_name: blur_per_pixel + layer_name: Blur + shader_conf: + type: heatmap + opacity: 0.5 + color: "#00ffff" + visible: False + + - _target_: report.masks.RunIDMlflowMaskRetriever + run_id: TODO + dir_name: artifacts_per_pixel + layer_name: Residual artifacts + shader_conf: + type: heatmap + opacity: 0.5 + color: "#00ffff" + visible: False + + - _target_: report.masks.RunIDMlflowMaskRetriever + run_id: TODO + dir_name: clean_tiles + layer_name: Used Tiles + shader_conf: + type: heatmap + opacity: 1.0 + color: "#00ff00" + visible: False + + - _target_: report.masks.RunIDMlflowMaskRetriever + run_id: TODO + dir_name: blur_tiles + layer_name: Blur Tiles + shader_conf: + type: heatmap + opacity: 1.0 + color: "#ff0000" + visible: False + + - _target_: report.masks.RunIDMlflowMaskRetriever + run_id: TODO + dir_name: artifacts_tiles + layer_name: Artifacts Tiles + shader_conf: + type: heatmap + opacity: 1.0 + color: "#ff0000" + visible: False + +save: + metadata: + experiment_name : 'Ulcerative Colitis' + run_name : '📊 Report: Preprocessing - knl patos' + description: Report \ No newline at end of file From 804c8627339d0a910430ed595070a81afc831b1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Mon, 2 Feb 2026 15:50:01 +0000 Subject: [PATCH 4/5] feat: reporting conf --- .../reporter/preprocessing/knl_patos.yaml | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/reporting/reporter/preprocessing/knl_patos.yaml b/reporting/reporter/preprocessing/knl_patos.yaml index 1c1c7df..35a7233 100644 --- a/reporting/reporter/preprocessing/knl_patos.yaml +++ b/reporting/reporter/preprocessing/knl_patos.yaml @@ -1,16 +1,18 @@ defaults: - - background: drive - save: mlflow_standalone_run title: Ulcerative Colitis Preprocessing - KNL Patos background: - dir_name: /mnt/data/KNL_PATOS/colon/IBD_AI + _target_: report.masks.BasicImageRetriever + source_dir: /mnt/data/KNL_PATOS/colon/IBD_AI + globs: + - "*.czi" layer_name: Ulcerative Colitis mask_retrievers: - _target_: report.masks.RunIDMlflowMaskRetriever - run_id: TODO + run_id: 8ef6d6f0c9af4f35a087596960f675aa dir_name: tissue_masks layer_name: Tissue mask shader_conf: @@ -20,7 +22,7 @@ mask_retrievers: visible: False - _target_: report.masks.RunIDMlflowMaskRetriever - run_id: TODO + run_id: 75fc3e53112f4634ae5238777d87e88c dir_name: blur_per_pixel layer_name: Blur shader_conf: @@ -30,7 +32,7 @@ mask_retrievers: visible: False - _target_: report.masks.RunIDMlflowMaskRetriever - run_id: TODO + run_id: 75fc3e53112f4634ae5238777d87e88c dir_name: artifacts_per_pixel layer_name: Residual artifacts shader_conf: @@ -40,8 +42,8 @@ mask_retrievers: visible: False - _target_: report.masks.RunIDMlflowMaskRetriever - run_id: TODO - dir_name: clean_tiles + run_id: 4775c5688189427e803a154a213acb0e + dir_name: tile_masks/clean_tiles layer_name: Used Tiles shader_conf: type: heatmap @@ -50,8 +52,8 @@ mask_retrievers: visible: False - _target_: report.masks.RunIDMlflowMaskRetriever - run_id: TODO - dir_name: blur_tiles + run_id: 4775c5688189427e803a154a213acb0e + dir_name: tile_masks/blur_tiles layer_name: Blur Tiles shader_conf: type: heatmap @@ -60,8 +62,8 @@ mask_retrievers: visible: False - _target_: report.masks.RunIDMlflowMaskRetriever - run_id: TODO - dir_name: artifacts_tiles + run_id: 4775c5688189427e803a154a213acb0e + dir_name: tile_masks/artifacts_tiles layer_name: Artifacts Tiles shader_conf: type: heatmap From 24e6e7cc3fe942cb73457bc093e72ecfe6d03eb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 12 Feb 2026 20:44:04 +0000 Subject: [PATCH 5/5] chore: pyproject --- pyproject.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index a3066a1..811d61c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,5 +34,4 @@ rationai-masks = { git = "https://gitlab.ics.muni.cz/rationai/digital-pathology/ rationai-tiling = { git = "https://gitlab.ics.muni.cz/rationai/digital-pathology/libraries/tiling.git" } rationai-kube-jobs = { git = "ssh://git@gitlab.ics.muni.cz/rationai/infrastructure/kube-jobs" } rationai-sdk = { git = "https://gitlab.ics.muni.cz/rationai/infrastructure/rationai-sdk-python.git" } -ratiopath = { git = "https://github.com/RationAI/ratiopath.git", branch = "fix/read-overlay" } report = { git = "https://gitlab.ics.muni.cz/rationai/digital-pathology/tools/report.git" }