From ed63499fb5c833db77bd1dce937cf4b7f554c2b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Tue, 5 May 2026 17:08:58 +0000 Subject: [PATCH 01/54] feat: neutrophils --- configs/preprocessing/neutrophils.yaml | 16 ++++ preprocessing/neutrophils.py | 123 +++++++++++++++++++++++++ 2 files changed, 139 insertions(+) create mode 100644 configs/preprocessing/neutrophils.yaml create mode 100644 preprocessing/neutrophils.py diff --git a/configs/preprocessing/neutrophils.yaml b/configs/preprocessing/neutrophils.yaml new file mode 100644 index 00000000..e98cfc18 --- /dev/null +++ b/configs/preprocessing/neutrophils.yaml @@ -0,0 +1,16 @@ +# @package _global_ + +output_dir: ${project_dir}/neutrophils/${dataset.institution} + +model: + weights_url: https://github.com/junfrankohara/neutrophils_detection/releases/download/model/detection_model.pt + confidence: 0.1 + +dataloader: + batch_size: 256 + num_workers: 8 + persistent_workers: True + +metadata: + run_name: '📂 Neutrophils: ${dataset.institution}' + description: Neutrophils detection preprocessing for ${dataset.institution} institution \ No newline at end of file diff --git a/preprocessing/neutrophils.py b/preprocessing/neutrophils.py new file mode 100644 index 00000000..058d9717 --- /dev/null +++ b/preprocessing/neutrophils.py @@ -0,0 +1,123 @@ +import tempfile +from pathlib import Path +from typing import cast + +import hydra +import pandas as pd +import torch +from ml.data.datasets import TilesPredict +from omegaconf import DictConfig +from rationai.mlkit import autolog, with_cli_args +from rationai.mlkit.lightning.loggers import MLFlowLogger +from torch.utils.data import DataLoader +from tqdm import tqdm + + +class NeutrophilDetector(torch.nn.Module): + def __init__(self, confidence: float, weights_url: str) -> None: + super().__init__() + with tempfile.NamedTemporaryFile(suffix=".pt") as temp_file: + torch.hub.download_url_to_file(weights_url, temp_file.name) + self.model = cast( + "torch.nn.Module", + torch.hub.load("ultralytics/yolov5", "custom", path=temp_file.name), + ) + self.model.conf = confidence + + def forward(self, x: torch.Tensor) -> torch.Tensor: + return self.model(x) + + +def save_neutrophils( + x0: torch.Tensor, + y0: torch.Tensor, + x1: torch.Tensor, + y1: torch.Tensor, + probability: torch.Tensor, + neutrophils_path: Path, +) -> None: + neutrophils_path.parent.mkdir(parents=True, exist_ok=True) + + df = pd.DataFrame( + { + "x0": x0.numpy(), + "y0": y0.numpy(), + "x1": x1.numpy(), + "y1": y1.numpy(), + "probability": probability.numpy(), + } + ) + + df.to_parquet(neutrophils_path, index=False, engine="pyarrow") + + +@with_cli_args(["+preprocessing=neutrophils"]) +@hydra.main(config_path="../configs", config_name="preprocessing", version_base=None) +@autolog +def main(config: DictConfig, logger: MLFlowLogger) -> None: + dest = Path(config.output_dir) + device = torch.device("cuda" if torch.cuda.is_available() else "cpu") + neutrophil_detector = NeutrophilDetector(**config.model) + neutrophil_detector = neutrophil_detector.to(device) + + with torch.no_grad(): + dataset = TilesPredict( + config.dataset.mlflow_uris.tiling.values(), to_tensor=False + ) + + for slide_dataset in tqdm(dataset.generate_datasets()): + slide_name = str(slide_dataset.slide_metadata["name"]) + neutrophils_path = (dest / slide_name).with_suffix(".parquet") + + try: + slide_tiles_dataloader = DataLoader( + slide_dataset, + batch_size=config.dataloader.batch_size, + num_workers=config.dataloader.num_workers, + persistent_workers=config.dataloader.persistent_workers, + collate_fn=lambda batch: ( + [x for x, _ in batch], + [m for _, m in batch], + ), + ) + + x0, y0, x1, y1, probability = [], [], [], [], [] + + for x, metadata in slide_tiles_dataloader: + result = neutrophil_detector(x) + + result.xyxy = cast("list[torch.Tensor]", result.xyxy) + for m, xyxy in zip(metadata, result.xyxy, strict=True): + if xyxy.numel() == 0: + continue + xyxy = xyxy.cpu() + x0.append(xyxy[:, 0] + m["x"]) + y0.append(xyxy[:, 1] + m["y"]) + x1.append(xyxy[:, 2] + m["x"]) + y1.append(xyxy[:, 3] + m["y"]) + probability.append(xyxy[:, 4]) + + if len(x0) == 0: + empty = torch.empty((0,), dtype=torch.float32) + save_neutrophils( + empty, empty, empty, empty, empty, neutrophils_path + ) + continue + + save_neutrophils( + torch.concat(x0), + torch.concat(y0), + torch.concat(x1), + torch.concat(y1), + torch.concat(probability), + neutrophils_path, + ) + + except Exception as e: + print(f"Error processing slide {slide_name}: {e}") + + logger.log_artifacts(local_dir=str(dest), artifact_path="neutrophils") + + +if __name__ == "__main__": + main() From 0adec3fc60f66dfb64c846d341927a987cf7b31a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Tue, 5 May 2026 17:10:43 +0000 Subject: [PATCH 02/54] refactor: project_name -> ml --- {project_name => ml}/__init__.py | 0 {project_name => ml}/__main__.py | 4 ++-- {project_name => ml}/data/README.md | 0 ml/data/__init__.py | 4 ++++ {project_name => ml}/data/data_module.py | 2 +- {project_name => ml}/modeling/README.md | 0 {project_name => ml}/modeling/__init__.py | 0 {project_name => ml}/project_name_model.py | 2 +- {project_name => ml}/typing.py | 0 project_name/data/__init__.py | 4 ---- 10 files changed, 8 insertions(+), 8 deletions(-) rename {project_name => ml}/__init__.py (100%) rename {project_name => ml}/__main__.py (90%) rename {project_name => ml}/data/README.md (100%) create mode 100644 ml/data/__init__.py rename {project_name => ml}/data/data_module.py (97%) rename {project_name => ml}/modeling/README.md (100%) rename {project_name => ml}/modeling/__init__.py (100%) rename {project_name => ml}/project_name_model.py (97%) rename {project_name => ml}/typing.py (100%) delete mode 100644 project_name/data/__init__.py diff --git a/project_name/__init__.py b/ml/__init__.py similarity index 100% rename from project_name/__init__.py rename to ml/__init__.py diff --git a/project_name/__main__.py b/ml/__main__.py similarity index 90% rename from project_name/__main__.py rename to ml/__main__.py index 035ecc30..6252c563 100644 --- a/project_name/__main__.py +++ b/ml/__main__.py @@ -6,8 +6,8 @@ from omegaconf import DictConfig, OmegaConf from rationai.mlkit import Trainer, autolog -from project_name.data import DataModule -from project_name.project_name_model import ProjectNameModel +from ml.data import DataModule +from ml.project_name_model import ProjectNameModel OmegaConf.register_new_resolver( diff --git a/project_name/data/README.md b/ml/data/README.md similarity index 100% rename from project_name/data/README.md rename to ml/data/README.md diff --git a/ml/data/__init__.py b/ml/data/__init__.py new file mode 100644 index 00000000..e7058ee5 --- /dev/null +++ b/ml/data/__init__.py @@ -0,0 +1,4 @@ +from ml.data.data_module import DataModule + + +__all__ = ["DataModule"] diff --git a/project_name/data/data_module.py b/ml/data/data_module.py similarity index 97% rename from project_name/data/data_module.py rename to ml/data/data_module.py index d3b8e06b..f803ac5a 100644 --- a/project_name/data/data_module.py +++ b/ml/data/data_module.py @@ -5,7 +5,7 @@ from omegaconf import DictConfig from torch.utils.data import DataLoader -from project_name.typing import Input +from ml.typing import Input class DataModule(LightningDataModule): diff --git a/project_name/modeling/README.md b/ml/modeling/README.md similarity index 100% rename from project_name/modeling/README.md rename to ml/modeling/README.md diff --git a/project_name/modeling/__init__.py b/ml/modeling/__init__.py similarity index 100% rename from project_name/modeling/__init__.py rename to ml/modeling/__init__.py diff --git a/project_name/project_name_model.py b/ml/project_name_model.py similarity index 97% rename from project_name/project_name_model.py rename to ml/project_name_model.py index 85e50bcb..403260d9 100644 --- a/project_name/project_name_model.py +++ b/ml/project_name_model.py @@ -3,7 +3,7 @@ from torch.optim.optimizer import Optimizer from torchmetrics import MetricCollection -from project_name.typing import Input, Outputs +from ml.typing import Input, Outputs class ProjectNameModel(LightningModule): diff --git a/project_name/typing.py b/ml/typing.py similarity index 100% rename from project_name/typing.py rename to ml/typing.py diff --git a/project_name/data/__init__.py b/project_name/data/__init__.py deleted file mode 100644 index cee3ad5d..00000000 --- a/project_name/data/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -from project_name.data.data_module import DataModule - - -__all__ = ["DataModule"] From 517d919090f95f55cf5d9d346df9458f87319e20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Tue, 5 May 2026 19:10:03 +0000 Subject: [PATCH 03/54] chore: new mlkit --- pyproject.toml | 4 +- uv.lock | 332 ++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 301 insertions(+), 35 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index b8b57a84..57a09c60 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ license = { file = "LICENSE" } dependencies = [ "aiohttp>=3.13.2", "lightning>=2.5.6", - "mlflow<3.0.0", + "mlflow", "omegaconf>=2.3.0", "openpyxl>=3.1.5", "pandas>=2.3.3", @@ -29,7 +29,7 @@ dev = ["mypy", "ruff", "ipykernel"] job = ["rationai-kube-jobs"] [tool.uv.sources] -rationai-mlkit = { git = "https://gitlab.ics.muni.cz/rationai/digital-pathology/libraries/mlkit.git" } +rationai-mlkit = { git = "https://github.com/RationAI/mlkit.git" } rationai-masks = { git = "https://gitlab.ics.muni.cz/rationai/digital-pathology/libraries/masks.git" } 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" } diff --git a/uv.lock b/uv.lock index dd32999a..1a8d7ec6 100644 --- a/uv.lock +++ b/uv.lock @@ -329,6 +329,45 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d1/e2/f05240d2c39a1ed228d8328a78b6f44cd695f7ef47beb3e684cf93604f86/contourpy-1.3.3-cp312-cp312-win_arm64.whl", hash = "sha256:07ce5ed73ecdc4a03ffe3e1b3e3c1166db35ae7584be76f65dbbe28a7791b0cc", size = 193655, upload-time = "2025-07-26T12:01:37.999Z" }, ] +[[package]] +name = "cryptography" +version = "46.0.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/47/93/ac8f3d5ff04d54bc814e961a43ae5b0b146154c89c61b47bb07557679b18/cryptography-46.0.7.tar.gz", hash = "sha256:e4cfd68c5f3e0bfdad0d38e023239b96a2fe84146481852dffbcca442c245aa5", size = 750652, upload-time = "2026-04-08T01:57:54.692Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/5d/4a8f770695d73be252331e60e526291e3df0c9b27556a90a6b47bccca4c2/cryptography-46.0.7-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:ea42cbe97209df307fdc3b155f1b6fa2577c0defa8f1f7d3be7d31d189108ad4", size = 7179869, upload-time = "2026-04-08T01:56:17.157Z" }, + { url = "https://files.pythonhosted.org/packages/5f/45/6d80dc379b0bbc1f9d1e429f42e4cb9e1d319c7a8201beffd967c516ea01/cryptography-46.0.7-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b36a4695e29fe69215d75960b22577197aca3f7a25b9cf9d165dcfe9d80bc325", size = 4275492, upload-time = "2026-04-08T01:56:19.36Z" }, + { url = "https://files.pythonhosted.org/packages/4a/9a/1765afe9f572e239c3469f2cb429f3ba7b31878c893b246b4b2994ffe2fe/cryptography-46.0.7-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5ad9ef796328c5e3c4ceed237a183f5d41d21150f972455a9d926593a1dcb308", size = 4426670, upload-time = "2026-04-08T01:56:21.415Z" }, + { url = "https://files.pythonhosted.org/packages/8f/3e/af9246aaf23cd4ee060699adab1e47ced3f5f7e7a8ffdd339f817b446462/cryptography-46.0.7-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:73510b83623e080a2c35c62c15298096e2a5dc8d51c3b4e1740211839d0dea77", size = 4280275, upload-time = "2026-04-08T01:56:23.539Z" }, + { url = "https://files.pythonhosted.org/packages/0f/54/6bbbfc5efe86f9d71041827b793c24811a017c6ac0fd12883e4caa86b8ed/cryptography-46.0.7-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:cbd5fb06b62bd0721e1170273d3f4d5a277044c47ca27ee257025146c34cbdd1", size = 4928402, upload-time = "2026-04-08T01:56:25.624Z" }, + { url = "https://files.pythonhosted.org/packages/2d/cf/054b9d8220f81509939599c8bdbc0c408dbd2bdd41688616a20731371fe0/cryptography-46.0.7-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:420b1e4109cc95f0e5700eed79908cef9268265c773d3a66f7af1eef53d409ef", size = 4459985, upload-time = "2026-04-08T01:56:27.309Z" }, + { url = "https://files.pythonhosted.org/packages/f9/46/4e4e9c6040fb01c7467d47217d2f882daddeb8828f7df800cb806d8a2288/cryptography-46.0.7-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:24402210aa54baae71d99441d15bb5a1919c195398a87b563df84468160a65de", size = 3990652, upload-time = "2026-04-08T01:56:29.095Z" }, + { url = "https://files.pythonhosted.org/packages/36/5f/313586c3be5a2fbe87e4c9a254207b860155a8e1f3cca99f9910008e7d08/cryptography-46.0.7-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:8a469028a86f12eb7d2fe97162d0634026d92a21f3ae0ac87ed1c4a447886c83", size = 4279805, upload-time = "2026-04-08T01:56:30.928Z" }, + { url = "https://files.pythonhosted.org/packages/69/33/60dfc4595f334a2082749673386a4d05e4f0cf4df8248e63b2c3437585f2/cryptography-46.0.7-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:9694078c5d44c157ef3162e3bf3946510b857df5a3955458381d1c7cfc143ddb", size = 4892883, upload-time = "2026-04-08T01:56:32.614Z" }, + { url = "https://files.pythonhosted.org/packages/c7/0b/333ddab4270c4f5b972f980adef4faa66951a4aaf646ca067af597f15563/cryptography-46.0.7-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:42a1e5f98abb6391717978baf9f90dc28a743b7d9be7f0751a6f56a75d14065b", size = 4459756, upload-time = "2026-04-08T01:56:34.306Z" }, + { url = "https://files.pythonhosted.org/packages/d2/14/633913398b43b75f1234834170947957c6b623d1701ffc7a9600da907e89/cryptography-46.0.7-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:91bbcb08347344f810cbe49065914fe048949648f6bd5c2519f34619142bbe85", size = 4410244, upload-time = "2026-04-08T01:56:35.977Z" }, + { url = "https://files.pythonhosted.org/packages/10/f2/19ceb3b3dc14009373432af0c13f46aa08e3ce334ec6eff13492e1812ccd/cryptography-46.0.7-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:5d1c02a14ceb9148cc7816249f64f623fbfee39e8c03b3650d842ad3f34d637e", size = 4674868, upload-time = "2026-04-08T01:56:38.034Z" }, + { url = "https://files.pythonhosted.org/packages/1a/bb/a5c213c19ee94b15dfccc48f363738633a493812687f5567addbcbba9f6f/cryptography-46.0.7-cp311-abi3-win32.whl", hash = "sha256:d23c8ca48e44ee015cd0a54aeccdf9f09004eba9fc96f38c911011d9ff1bd457", size = 3026504, upload-time = "2026-04-08T01:56:39.666Z" }, + { url = "https://files.pythonhosted.org/packages/2b/02/7788f9fefa1d060ca68717c3901ae7fffa21ee087a90b7f23c7a603c32ae/cryptography-46.0.7-cp311-abi3-win_amd64.whl", hash = "sha256:397655da831414d165029da9bc483bed2fe0e75dde6a1523ec2fe63f3c46046b", size = 3488363, upload-time = "2026-04-08T01:56:41.893Z" }, + { url = "https://files.pythonhosted.org/packages/a7/7f/cd42fc3614386bc0c12f0cb3c4ae1fc2bbca5c9662dfed031514911d513d/cryptography-46.0.7-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:462ad5cb1c148a22b2e3bcc5ad52504dff325d17daf5df8d88c17dda1f75f2a4", size = 7165618, upload-time = "2026-04-08T01:57:10.645Z" }, + { url = "https://files.pythonhosted.org/packages/a5/d0/36a49f0262d2319139d2829f773f1b97ef8aef7f97e6e5bd21455e5a8fb5/cryptography-46.0.7-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:84d4cced91f0f159a7ddacad249cc077e63195c36aac40b4150e7a57e84fffe7", size = 4270628, upload-time = "2026-04-08T01:57:12.885Z" }, + { url = "https://files.pythonhosted.org/packages/8a/6c/1a42450f464dda6ffbe578a911f773e54dd48c10f9895a23a7e88b3e7db5/cryptography-46.0.7-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:128c5edfe5e5938b86b03941e94fac9ee793a94452ad1365c9fc3f4f62216832", size = 4415405, upload-time = "2026-04-08T01:57:14.923Z" }, + { url = "https://files.pythonhosted.org/packages/9a/92/4ed714dbe93a066dc1f4b4581a464d2d7dbec9046f7c8b7016f5286329e2/cryptography-46.0.7-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:5e51be372b26ef4ba3de3c167cd3d1022934bc838ae9eaad7e644986d2a3d163", size = 4272715, upload-time = "2026-04-08T01:57:16.638Z" }, + { url = "https://files.pythonhosted.org/packages/b7/e6/a26b84096eddd51494bba19111f8fffe976f6a09f132706f8f1bf03f51f7/cryptography-46.0.7-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:cdf1a610ef82abb396451862739e3fc93b071c844399e15b90726ef7470eeaf2", size = 4918400, upload-time = "2026-04-08T01:57:19.021Z" }, + { url = "https://files.pythonhosted.org/packages/c7/08/ffd537b605568a148543ac3c2b239708ae0bd635064bab41359252ef88ed/cryptography-46.0.7-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:1d25aee46d0c6f1a501adcddb2d2fee4b979381346a78558ed13e50aa8a59067", size = 4450634, upload-time = "2026-04-08T01:57:21.185Z" }, + { url = "https://files.pythonhosted.org/packages/16/01/0cd51dd86ab5b9befe0d031e276510491976c3a80e9f6e31810cce46c4ad/cryptography-46.0.7-cp38-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:cdfbe22376065ffcf8be74dc9a909f032df19bc58a699456a21712d6e5eabfd0", size = 3985233, upload-time = "2026-04-08T01:57:22.862Z" }, + { url = "https://files.pythonhosted.org/packages/92/49/819d6ed3a7d9349c2939f81b500a738cb733ab62fbecdbc1e38e83d45e12/cryptography-46.0.7-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:abad9dac36cbf55de6eb49badd4016806b3165d396f64925bf2999bcb67837ba", size = 4271955, upload-time = "2026-04-08T01:57:24.814Z" }, + { url = "https://files.pythonhosted.org/packages/80/07/ad9b3c56ebb95ed2473d46df0847357e01583f4c52a85754d1a55e29e4d0/cryptography-46.0.7-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:935ce7e3cfdb53e3536119a542b839bb94ec1ad081013e9ab9b7cfd478b05006", size = 4879888, upload-time = "2026-04-08T01:57:26.88Z" }, + { url = "https://files.pythonhosted.org/packages/b8/c7/201d3d58f30c4c2bdbe9b03844c291feb77c20511cc3586daf7edc12a47b/cryptography-46.0.7-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:35719dc79d4730d30f1c2b6474bd6acda36ae2dfae1e3c16f2051f215df33ce0", size = 4449961, upload-time = "2026-04-08T01:57:29.068Z" }, + { url = "https://files.pythonhosted.org/packages/a5/ef/649750cbf96f3033c3c976e112265c33906f8e462291a33d77f90356548c/cryptography-46.0.7-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:7bbc6ccf49d05ac8f7d7b5e2e2c33830d4fe2061def88210a126d130d7f71a85", size = 4401696, upload-time = "2026-04-08T01:57:31.029Z" }, + { url = "https://files.pythonhosted.org/packages/41/52/a8908dcb1a389a459a29008c29966c1d552588d4ae6d43f3a1a4512e0ebe/cryptography-46.0.7-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a1529d614f44b863a7b480c6d000fe93b59acee9c82ffa027cfadc77521a9f5e", size = 4664256, upload-time = "2026-04-08T01:57:33.144Z" }, + { url = "https://files.pythonhosted.org/packages/4b/fa/f0ab06238e899cc3fb332623f337a7364f36f4bb3f2534c2bb95a35b132c/cryptography-46.0.7-cp38-abi3-win32.whl", hash = "sha256:f247c8c1a1fb45e12586afbb436ef21ff1e80670b2861a90353d9b025583d246", size = 3013001, upload-time = "2026-04-08T01:57:34.933Z" }, + { url = "https://files.pythonhosted.org/packages/d2/f1/00ce3bde3ca542d1acd8f8cfa38e446840945aa6363f9b74746394b14127/cryptography-46.0.7-cp38-abi3-win_amd64.whl", hash = "sha256:506c4ff91eff4f82bdac7633318a526b1d1309fc07ca76a3ad182cb5b686d6d3", size = 3472985, upload-time = "2026-04-08T01:57:36.714Z" }, +] + [[package]] name = "cuda-bindings" version = "12.9.4" @@ -371,6 +410,31 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/08/71/ac3a16e620e4de7cea10695d7e926a6b00d7790208a932d81dd0b3136772/databricks_sdk-0.80.0-py3-none-any.whl", hash = "sha256:e654b08b945b4fc9651cfe65389035382c0885d74435123a0e4860d007fc963b", size = 788323, upload-time = "2026-01-22T20:30:49.372Z" }, ] +[[package]] +name = "datasets" +version = "4.8.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "dill" }, + { name = "filelock" }, + { name = "fsspec", extra = ["http"] }, + { name = "httpx" }, + { name = "huggingface-hub" }, + { name = "multiprocess" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "pyarrow" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "tqdm" }, + { name = "xxhash" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/34/14cd8e76f907f7d4dca2334cfeec9f81d30fd15c25a015f99aaea694eaed/datasets-4.8.5.tar.gz", hash = "sha256:0f0c1c3d56ffff2c93b2f4c63c95bac94f3d7e8621aea2a2a576275233bba772", size = 605649, upload-time = "2026-04-27T15:43:57.384Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/65/99/00f3196036501b53032c4b1ab8337a0b978dee832ed276dae3815df4e8b5/datasets-4.8.5-py3-none-any.whl", hash = "sha256:5079900781719c0e063a8efdd2cd95a31ad0c63209178669cd23cf1b926149ff", size = 528973, upload-time = "2026-04-27T15:43:53.702Z" }, +] + [[package]] name = "debugpy" version = "1.8.19" @@ -393,6 +457,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a", size = 9190, upload-time = "2025-02-24T04:41:32.565Z" }, ] +[[package]] +name = "dill" +version = "0.4.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/81/e1/56027a71e31b02ddc53c7d65b01e68edf64dea2932122fe7746a516f75d5/dill-0.4.1.tar.gz", hash = "sha256:423092df4182177d4d8ba8290c8a5b640c66ab35ec7da59ccfa00f6fa3eea5fa", size = 187315, upload-time = "2026-01-19T02:36:56.85Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/77/dc8c558f7593132cf8fefec57c4f60c83b16941c574ac5f619abb3ae7933/dill-0.4.1-py3-none-any.whl", hash = "sha256:1e1ce33e978ae97fcfcff5638477032b801c46c7c65cf717f95fbc2248f79a9d", size = 120019, upload-time = "2026-01-19T02:36:55.663Z" }, +] + [[package]] name = "docker" version = "7.1.0" @@ -487,6 +560,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ec/f9/7f9263c5695f4bd0023734af91bedb2ff8209e8de6ead162f35d8dc762fd/flask-3.1.2-py3-none-any.whl", hash = "sha256:ca1d8112ec8a6158cc29ea4858963350011b5c846a414cdb7a954aa9e967d03c", size = 103308, upload-time = "2025-08-19T21:03:19.499Z" }, ] +[[package]] +name = "flask-cors" +version = "6.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "flask" }, + { name = "werkzeug" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/70/74/0fc0fa68d62f21daef41017dafab19ef4b36551521260987eb3a5394c7ba/flask_cors-6.0.2.tar.gz", hash = "sha256:6e118f3698249ae33e429760db98ce032a8bf9913638d085ca0f4c5534ad2423", size = 13472, upload-time = "2025-12-12T20:31:42.861Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4f/af/72ad54402e599152de6d067324c46fe6a4f531c7c65baf7e96c63db55eaf/flask_cors-6.0.2-py3-none-any.whl", hash = "sha256:e57544d415dfd7da89a9564e1e3a9e515042df76e12130641ca6f3f2f03b699a", size = 13257, upload-time = "2025-12-12T20:31:41.3Z" }, +] + [[package]] name = "fonttools" version = "4.61.1" @@ -684,6 +770,22 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, ] +[[package]] +name = "hf-xet" +version = "1.4.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/53/92/ec9ad04d0b5728dca387a45af7bc98fbb0d73b2118759f5f6038b61a57e8/hf_xet-1.4.3.tar.gz", hash = "sha256:8ddedb73c8c08928c793df2f3401ec26f95be7f7e516a7bee2fbb546f6676113", size = 670477, upload-time = "2026-03-31T22:40:07.874Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ac/9f/9c23e4a447b8f83120798f9279d0297a4d1360bdbf59ef49ebec78fe2545/hf_xet-1.4.3-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:d0da85329eaf196e03e90b84c2d0aca53bd4573d097a75f99609e80775f98025", size = 3805048, upload-time = "2026-03-31T22:39:53.105Z" }, + { url = "https://files.pythonhosted.org/packages/0b/f8/7aacb8e5f4a7899d39c787b5984e912e6c18b11be136ef13947d7a66d265/hf_xet-1.4.3-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:e23717ce4186b265f69afa66e6f0069fe7efbf331546f5c313d00e123dc84583", size = 3562178, upload-time = "2026-03-31T22:39:51.295Z" }, + { url = "https://files.pythonhosted.org/packages/df/9a/a24b26dc8a65f0ecc0fe5be981a19e61e7ca963b85e062c083f3a9100529/hf_xet-1.4.3-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc360b70c815bf340ed56c7b8c63aacf11762a4b099b2fe2c9bd6d6068668c08", size = 4212320, upload-time = "2026-03-31T22:39:42.922Z" }, + { url = "https://files.pythonhosted.org/packages/53/60/46d493db155d2ee2801b71fb1b0fd67696359047fdd8caee2c914cc50c79/hf_xet-1.4.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:39f2d2e9654cd9b4319885733993807aab6de9dfbd34c42f0b78338d6617421f", size = 3991546, upload-time = "2026-03-31T22:39:41.335Z" }, + { url = "https://files.pythonhosted.org/packages/bc/f5/067363e1c96c6b17256910830d1b54099d06287e10f4ec6ec4e7e08371fc/hf_xet-1.4.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:49ad8a8cead2b56051aa84d7fce3e1335efe68df3cf6c058f22a65513885baac", size = 4193200, upload-time = "2026-03-31T22:40:01.936Z" }, + { url = "https://files.pythonhosted.org/packages/42/4b/53951592882d9c23080c7644542fda34a3813104e9e11fa1a7d82d419cb8/hf_xet-1.4.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:7716d62015477a70ea272d2d68cd7cad140f61c52ee452e133e139abfe2c17ba", size = 4429392, upload-time = "2026-03-31T22:40:03.492Z" }, + { url = "https://files.pythonhosted.org/packages/8a/21/75a6c175b4e79662ad8e62f46a40ce341d8d6b206b06b4320d07d55b188c/hf_xet-1.4.3-cp37-abi3-win_amd64.whl", hash = "sha256:6b591fcad34e272a5b02607485e4f2a1334aebf1bc6d16ce8eb1eb8978ac2021", size = 3677359, upload-time = "2026-03-31T22:40:13.619Z" }, + { url = "https://files.pythonhosted.org/packages/8a/7c/44314ecd0e89f8b2b51c9d9e5e7a60a9c1c82024ac471d415860557d3cd8/hf_xet-1.4.3-cp37-abi3-win_arm64.whl", hash = "sha256:7c2c7e20bcfcc946dc67187c203463f5e932e395845d098cc2a93f5b67ca0b47", size = 3533664, upload-time = "2026-03-31T22:40:12.152Z" }, +] + [[package]] name = "httpcore" version = "1.0.9" @@ -712,6 +814,35 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, ] +[[package]] +name = "huey" +version = "2.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/29/3428d52eb8e85025e264a291641a9f9d6407cc1e51d1b630f6ac5815999a/huey-2.6.0.tar.gz", hash = "sha256:8d11f8688999d65266af1425b831f6e3773e99415027177b8734b0ffd5e251f6", size = 221068, upload-time = "2026-01-06T03:01:02.055Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1a/34/fae9ac8f1c3a552fd3f7ff652b94c78d219dedc5fce0c0a4232457760a00/huey-2.6.0-py3-none-any.whl", hash = "sha256:1b9df9d370b49c6d5721ba8a01ac9a787cf86b3bdc584e4679de27b920395c3f", size = 76951, upload-time = "2026-01-06T03:01:00.808Z" }, +] + +[[package]] +name = "huggingface-hub" +version = "1.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "filelock" }, + { name = "fsspec" }, + { name = "hf-xet", marker = "platform_machine == 'AMD64' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'arm64' or platform_machine == 'x86_64'" }, + { name = "httpx" }, + { name = "packaging" }, + { name = "pyyaml" }, + { name = "tqdm" }, + { name = "typer" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/89/ff/ec7ed2eb43bd7ce8bb2233d109cc235c3e807ffe5e469dc09db261fac05e/huggingface_hub-1.13.0.tar.gz", hash = "sha256:f6df2dac5abe82ce2fe05873d10d5ff47bc677d616a2f521f4ee26db9415d9d0", size = 781788, upload-time = "2026-04-30T11:57:33.858Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/93/db/4b1cdae9460ae1f3ca020cd767f013430ce23eb1d9c890ae3a0609b38d26/huggingface_hub-1.13.0-py3-none-any.whl", hash = "sha256:e942cb50d6a08dd5306688b1ac05bda157fd2fcc88b63dae405f7bd0d3234005", size = 660643, upload-time = "2026-04-30T11:57:31.802Z" }, +] + [[package]] name = "hydra-core" version = "1.3.2" @@ -1067,15 +1198,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/87/fb/99f81ac72ae23375f22b7afdb7642aba97c00a713c217124420147681a2f/mako-1.3.10-py3-none-any.whl", hash = "sha256:baef24a52fc4fc514a0887ac600f9f1cff3d82c61d4d700a1fa84d597b88db59", size = 78509, upload-time = "2025-04-10T12:50:53.297Z" }, ] -[[package]] -name = "markdown" -version = "3.10.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b7/b1/af95bcae8549f1f3fd70faacb29075826a0d689a27f232e8cee315efa053/markdown-3.10.1.tar.gz", hash = "sha256:1c19c10bd5c14ac948c53d0d762a04e2fa35a6d58a6b7b1e6bfcbe6fefc0001a", size = 365402, upload-time = "2026-01-21T18:09:28.206Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/59/1b/6ef961f543593969d25b2afe57a3564200280528caa9bd1082eecdd7b3bc/markdown-3.10.1-py3-none-any.whl", hash = "sha256:867d788939fe33e4b736426f5b9f651ad0c0ae0ecf89df0ca5d1176c70812fe3", size = 107684, upload-time = "2026-01-21T18:09:27.203Z" }, -] - [[package]] name = "markdown-it-py" version = "4.0.0" @@ -1156,34 +1278,38 @@ wheels = [ [[package]] name = "mlflow" -version = "2.22.4" +version = "3.12.0" source = { registry = "https://pypi.org/simple" } dependencies = [ + { name = "aiohttp" }, { name = "alembic" }, + { name = "cryptography" }, { name = "docker" }, { name = "flask" }, + { name = "flask-cors" }, { name = "graphene" }, { name = "gunicorn", marker = "sys_platform != 'win32'" }, - { name = "jinja2" }, - { name = "markdown" }, + { name = "huey" }, { name = "matplotlib" }, { name = "mlflow-skinny" }, + { name = "mlflow-tracing" }, { name = "numpy" }, { name = "pandas" }, { name = "pyarrow" }, { name = "scikit-learn" }, { name = "scipy" }, + { name = "skops" }, { name = "sqlalchemy" }, { name = "waitress", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/cd/56/4aaea65472c25dd463ed0855c1d673749cd9050e5c8214642d17434b441a/mlflow-2.22.4.tar.gz", hash = "sha256:cb8cb3b82ec696dc613bcc347b023c20fc0ed6a82170b36d0ded01d3ba06da97", size = 28377569, upload-time = "2025-12-05T13:20:56.105Z" } +sdist = { url = "https://files.pythonhosted.org/packages/3b/e3/b2148a6d6f38731d3dda49a7e46cf6932a458aa0aa5414b80e6e7251fa1d/mlflow-3.12.0.tar.gz", hash = "sha256:227ee31c6abf7ae3b3c38d4ca87c356e107578740c1efee89da43f2a5b9e3b47", size = 9939137, upload-time = "2026-05-05T10:28:58.312Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cb/0b/bf491b0604f2608e97b53b8cc33220fd20855ac4762d18d0ddf0d3ae3a6c/mlflow-2.22.4-py3-none-any.whl", hash = "sha256:c37b312060737cc9197c4a956c730fa6c292580787fe464efe736c339e87649a", size = 29004180, upload-time = "2025-12-05T13:20:52.703Z" }, + { url = "https://files.pythonhosted.org/packages/7e/f8/47f28975c1c1b70d351fa19c5aef21cef5ae1e1aca36bd1858798384bdbb/mlflow-3.12.0-py3-none-any.whl", hash = "sha256:e1c28ed4c48557cc52c766f17f1ca5826753ddf241d43f30f99c45f7ea6b3ce0", size = 10625639, upload-time = "2026-05-05T10:28:55.777Z" }, ] [[package]] name = "mlflow-skinny" -version = "2.22.4" +version = "3.12.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cachetools" }, @@ -1194,19 +1320,41 @@ dependencies = [ { name = "gitpython" }, { name = "importlib-metadata" }, { name = "opentelemetry-api" }, + { name = "opentelemetry-proto" }, { name = "opentelemetry-sdk" }, { name = "packaging" }, { name = "protobuf" }, { name = "pydantic" }, + { name = "python-dotenv" }, { name = "pyyaml" }, { name = "requests" }, { name = "sqlparse" }, + { name = "starlette" }, { name = "typing-extensions" }, { name = "uvicorn" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/4e/73/de6cfdd1bd48fd896c33844b863931bf7215f9401e01e4554019aca0fa94/mlflow_skinny-2.22.4.tar.gz", hash = "sha256:d75ef4c6f38b745d84aef4d6dcb26331c8a3c784ee5a284ec89186398c8d927b", size = 5892192, upload-time = "2025-12-05T12:50:03.045Z" } +sdist = { url = "https://files.pythonhosted.org/packages/0f/c0/9cbe24b4abcbadb3a3cdab65bfd552b6b75de64374b477abac89190d25d0/mlflow_skinny-3.12.0.tar.gz", hash = "sha256:74d27066bc9553d281e0c31d25f07deb39dbe99d190e4f7c257703e5c8ee6d10", size = 2723866, upload-time = "2026-05-05T10:28:46.388Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/95/05/2df60fab37881c490e9364ea697a6c3a78d3b593fde2d9332a75f8cdf1f8/mlflow_skinny-3.12.0-py3-none-any.whl", hash = "sha256:0498f3697abcabcc6204c432ef179840f6a7a34ce123837c98c1913064fda6dd", size = 3261903, upload-time = "2026-05-05T10:28:44.24Z" }, +] + +[[package]] +name = "mlflow-tracing" +version = "3.12.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cachetools" }, + { name = "databricks-sdk" }, + { name = "opentelemetry-api" }, + { name = "opentelemetry-proto" }, + { name = "opentelemetry-sdk" }, + { name = "packaging" }, + { name = "protobuf" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a5/13/d32fe4cca53dde68f09fd38c545ea709e8565fd7c2ffd7c5eff99e504aaf/mlflow_tracing-3.12.0.tar.gz", hash = "sha256:8702a34a1d4f1517ba904d716f5a8fca4675e6526f7d164d02bdaabececa2d80", size = 1352412, upload-time = "2026-05-05T10:28:51.115Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/d1/549a995e261ca708c60fe0b63dfa4d1842fc58b04eb9c78cd678aebe1e7e/mlflow_skinny-2.22.4-py3-none-any.whl", hash = "sha256:3622115f53806d99fc42b0c2e45f225b16948584feeec7f233e484f08fe6c7f2", size = 6270862, upload-time = "2025-12-05T12:50:00.406Z" }, + { url = "https://files.pythonhosted.org/packages/a5/bf/e22b778addbe19a7a912400c37a197ee9cdebc1641e3b0a3882c30da6ee4/mlflow_tracing-3.12.0-py3-none-any.whl", hash = "sha256:c6072553f47b42505dc7ee62946688a4a0dde8f06b78fbc60e946397b20e1518", size = 1618720, upload-time = "2026-05-05T10:28:48.999Z" }, ] [[package]] @@ -1262,6 +1410,21 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b7/da/7d22601b625e241d4f23ef1ebff8acfc60da633c9e7e7922e24d10f592b3/multidict-6.7.0-py3-none-any.whl", hash = "sha256:394fc5c42a333c9ffc3e421a4c85e08580d990e08b99f6bf35b4132114c5dcb3", size = 12317, upload-time = "2025-10-06T14:52:29.272Z" }, ] +[[package]] +name = "multiprocess" +version = "0.70.19" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "dill" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a2/f2/e783ac7f2aeeed14e9e12801f22529cc7e6b7ab80928d6dcce4e9f00922d/multiprocess-0.70.19.tar.gz", hash = "sha256:952021e0e6c55a4a9fe4cd787895b86e239a40e76802a789d6305398d3975897", size = 2079989, upload-time = "2026-01-19T06:47:39.744Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e3/45/8004d1e6b9185c1a444d6b55ac5682acf9d98035e54386d967366035a03a/multiprocess-0.70.19-py310-none-any.whl", hash = "sha256:97404393419dcb2a8385910864eedf47a3cadf82c66345b44f036420eb0b5d87", size = 134948, upload-time = "2026-01-19T06:47:32.325Z" }, + { url = "https://files.pythonhosted.org/packages/86/c2/dec9722dc3474c164a0b6bcd9a7ed7da542c98af8cabce05374abab35edd/multiprocess-0.70.19-py311-none-any.whl", hash = "sha256:928851ae7973aea4ce0eaf330bbdafb2e01398a91518d5c8818802845564f45c", size = 144457, upload-time = "2026-01-19T06:47:33.711Z" }, + { url = "https://files.pythonhosted.org/packages/71/70/38998b950a97ea279e6bd657575d22d1a2047256caf707d9a10fbce4f065/multiprocess-0.70.19-py312-none-any.whl", hash = "sha256:3a56c0e85dd5025161bac5ce138dcac1e49174c7d8e74596537e729fd5c53c28", size = 150281, upload-time = "2026-01-19T06:47:35.037Z" }, + { url = "https://files.pythonhosted.org/packages/7e/82/69e539c4c2027f1e1697e09aaa2449243085a0edf81ae2c6341e84d769b6/multiprocess-0.70.19-py39-none-any.whl", hash = "sha256:0d4b4397ed669d371c81dcd1ef33fd384a44d6c3de1bd0ca7ac06d837720d3c5", size = 133477, upload-time = "2026-01-19T06:47:38.619Z" }, +] + [[package]] name = "mypy" version = "1.19.1" @@ -1560,6 +1723,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/cf/df/d3f1ddf4bb4cb50ed9b1139cc7b1c54c34a1e7ce8fd1b9a37c0d1551a6bd/opentelemetry_api-1.39.1-py3-none-any.whl", hash = "sha256:2edd8463432a7f8443edce90972169b195e7d6a05500cd29e6d13898187c9950", size = 66356, upload-time = "2025-12-11T13:32:17.304Z" }, ] +[[package]] +name = "opentelemetry-proto" +version = "1.41.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "protobuf" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/99/e8/633c6d8a9c8840338b105907e55c32d3da1983abab5e52f899f72a82c3d1/opentelemetry_proto-1.41.1.tar.gz", hash = "sha256:4b9d2eb631237ea43b80e16c073af438554e32bc7e9e3f8ca4a9582f900020e5", size = 45670, upload-time = "2026-04-24T13:15:49.768Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e4/1e/5cd77035e3e82070e2265a63a760f715aacd3cb16dddc7efee913f297fcc/opentelemetry_proto-1.41.1-py3-none-any.whl", hash = "sha256:0496713b804d127a4147e32849fbaf5683fac8ee98550e8e7679cd706c289720", size = 72076, upload-time = "2026-04-24T13:15:32.542Z" }, +] + [[package]] name = "opentelemetry-sdk" version = "1.39.1" @@ -1675,6 +1850,18 @@ 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 = "prettytable" +version = "3.17.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wcwidth" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/79/45/b0847d88d6cfeb4413566738c8bbf1e1995fad3d42515327ff32cc1eb578/prettytable-3.17.0.tar.gz", hash = "sha256:59f2590776527f3c9e8cf9fe7b66dd215837cca96a9c39567414cbc632e8ddb0", size = 67892, upload-time = "2025-11-14T17:33:20.212Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ee/8c/83087ebc47ab0396ce092363001fa37c17153119ee282700c0713a195853/prettytable-3.17.0-py3-none-any.whl", hash = "sha256:aad69b294ddbe3e1f95ef8886a060ed1666a0b83018bbf56295f6f226c43d287", size = 34433, upload-time = "2025-11-14T17:33:19.093Z" }, +] + [[package]] name = "prompt-toolkit" version = "3.0.52" @@ -1762,17 +1949,17 @@ wheels = [ [[package]] name = "pyarrow" -version = "19.0.1" +version = "23.0.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7f/09/a9046344212690f0632b9c709f9bf18506522feb333c894d0de81d62341a/pyarrow-19.0.1.tar.gz", hash = "sha256:3bf266b485df66a400f282ac0b6d1b500b9d2ae73314a153dbe97d6d5cc8a99e", size = 1129437, upload-time = "2025-02-18T18:55:57.027Z" } +sdist = { url = "https://files.pythonhosted.org/packages/88/22/134986a4cc224d593c1afde5494d18ff629393d74cc2eddb176669f234a4/pyarrow-23.0.1.tar.gz", hash = "sha256:b8c5873e33440b2bc2f4a79d2b47017a89c5a24116c055625e6f2ee50523f019", size = 1167336, upload-time = "2026-02-16T10:14:12.39Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/78/b4/94e828704b050e723f67d67c3535cf7076c7432cd4cf046e4bb3b96a9c9d/pyarrow-19.0.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:80b2ad2b193e7d19e81008a96e313fbd53157945c7be9ac65f44f8937a55427b", size = 30670749, upload-time = "2025-02-18T18:53:00.062Z" }, - { url = "https://files.pythonhosted.org/packages/7e/3b/4692965e04bb1df55e2c314c4296f1eb12b4f3052d4cf43d29e076aedf66/pyarrow-19.0.1-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:ee8dec072569f43835932a3b10c55973593abc00936c202707a4ad06af7cb294", size = 32128007, upload-time = "2025-02-18T18:53:06.581Z" }, - { url = "https://files.pythonhosted.org/packages/22/f7/2239af706252c6582a5635c35caa17cb4d401cd74a87821ef702e3888957/pyarrow-19.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d5d1ec7ec5324b98887bdc006f4d2ce534e10e60f7ad995e7875ffa0ff9cb14", size = 41144566, upload-time = "2025-02-18T18:53:11.958Z" }, - { url = "https://files.pythonhosted.org/packages/fb/e3/c9661b2b2849cfefddd9fd65b64e093594b231b472de08ff658f76c732b2/pyarrow-19.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3ad4c0eb4e2a9aeb990af6c09e6fa0b195c8c0e7b272ecc8d4d2b6574809d34", size = 42202991, upload-time = "2025-02-18T18:53:17.678Z" }, - { url = "https://files.pythonhosted.org/packages/fe/4f/a2c0ed309167ef436674782dfee4a124570ba64299c551e38d3fdaf0a17b/pyarrow-19.0.1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:d383591f3dcbe545f6cc62daaef9c7cdfe0dff0fb9e1c8121101cabe9098cfa6", size = 40507986, upload-time = "2025-02-18T18:53:26.263Z" }, - { url = "https://files.pythonhosted.org/packages/27/2e/29bb28a7102a6f71026a9d70d1d61df926887e36ec797f2e6acfd2dd3867/pyarrow-19.0.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:b4c4156a625f1e35d6c0b2132635a237708944eb41df5fbe7d50f20d20c17832", size = 42087026, upload-time = "2025-02-18T18:53:33.063Z" }, - { url = "https://files.pythonhosted.org/packages/16/33/2a67c0f783251106aeeee516f4806161e7b481f7d744d0d643d2f30230a5/pyarrow-19.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:5bd1618ae5e5476b7654c7b55a6364ae87686d4724538c24185bbb2952679960", size = 25250108, upload-time = "2025-02-18T18:53:38.462Z" }, + { url = "https://files.pythonhosted.org/packages/9a/4b/4166bb5abbfe6f750fc60ad337c43ecf61340fa52ab386da6e8dbf9e63c4/pyarrow-23.0.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:f4b0dbfa124c0bb161f8b5ebb40f1a680b70279aa0c9901d44a2b5a20806039f", size = 34214575, upload-time = "2026-02-16T10:09:56.225Z" }, + { url = "https://files.pythonhosted.org/packages/e1/da/3f941e3734ac8088ea588b53e860baeddac8323ea40ce22e3d0baa865cc9/pyarrow-23.0.1-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:7707d2b6673f7de054e2e83d59f9e805939038eebe1763fe811ee8fa5c0cd1a7", size = 35832540, upload-time = "2026-02-16T10:10:03.428Z" }, + { url = "https://files.pythonhosted.org/packages/88/7c/3d841c366620e906d54430817531b877ba646310296df42ef697308c2705/pyarrow-23.0.1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:86ff03fb9f1a320266e0de855dee4b17da6794c595d207f89bba40d16b5c78b9", size = 44470940, upload-time = "2026-02-16T10:10:10.704Z" }, + { url = "https://files.pythonhosted.org/packages/2c/a5/da83046273d990f256cb79796a190bbf7ec999269705ddc609403f8c6b06/pyarrow-23.0.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:813d99f31275919c383aab17f0f455a04f5a429c261cc411b1e9a8f5e4aaaa05", size = 47586063, upload-time = "2026-02-16T10:10:17.95Z" }, + { url = "https://files.pythonhosted.org/packages/5b/3c/b7d2ebcff47a514f47f9da1e74b7949138c58cfeb108cdd4ee62f43f0cf3/pyarrow-23.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bf5842f960cddd2ef757d486041d57c96483efc295a8c4a0e20e704cbbf39c67", size = 48173045, upload-time = "2026-02-16T10:10:25.363Z" }, + { url = "https://files.pythonhosted.org/packages/43/b2/b40961262213beaba6acfc88698eb773dfce32ecdf34d19291db94c2bd73/pyarrow-23.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:564baf97c858ecc03ec01a41062e8f4698abc3e6e2acd79c01c2e97880a19730", size = 50621741, upload-time = "2026-02-16T10:10:33.477Z" }, + { url = "https://files.pythonhosted.org/packages/f6/70/1fdda42d65b28b078e93d75d371b2185a61da89dda4def8ba6ba41ebdeb4/pyarrow-23.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:07deae7783782ac7250989a7b2ecde9b3c343a643f82e8a4df03d93b633006f0", size = 27620678, upload-time = "2026-02-16T10:10:39.31Z" }, ] [[package]] @@ -1918,6 +2105,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, ] +[[package]] +name = "python-dotenv" +version = "1.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/82/ed/0301aeeac3e5353ef3d94b6ec08bbcabd04a72018415dcb29e588514bba8/python_dotenv-1.2.2.tar.gz", hash = "sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3", size = 50135, upload-time = "2026-03-01T16:00:26.196Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload-time = "2026-03-01T16:00:25.09Z" }, +] + [[package]] name = "pytorch-lightning" version = "2.6.0" @@ -2053,15 +2249,18 @@ dependencies = [ [[package]] name = "rationai-mlkit" -version = "0.3.1" -source = { git = "https://gitlab.ics.muni.cz/rationai/digital-pathology/libraries/mlkit.git#06989b33e7313b898df86e93a212e9d15c20104f" } +version = "0.4.1" +source = { git = "https://github.com/RationAI/mlkit.git#51d1b52cdf4800962cf6f97a1cba1f72d78b8aa4" } dependencies = [ + { name = "datasets" }, { name = "gitpython" }, { name = "hydra-core" }, { name = "lightning" }, { name = "mlflow" }, { name = "openslide-python" }, + { name = "pyarrow" }, { name = "rationai-masks" }, + { name = "ratiopath" }, { name = "torch" }, ] @@ -2094,7 +2293,7 @@ dependencies = [ [[package]] name = "ratiopath" -version = "1.1.2" +version = "1.4.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "albumentations" }, @@ -2114,9 +2313,9 @@ dependencies = [ { name = "torch" }, { name = "zarr" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/97/14/72b3dd3441d269bb0dd26339331246c350bb526fd8980ec4677869d8a4a8/ratiopath-1.1.2.tar.gz", hash = "sha256:1dd40c120a8621318a0ab64fcff5f34cffed24382c0a383ba9812546d395aee1", size = 30236, upload-time = "2026-03-04T14:36:26.233Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c8/7d/8c558909df8ea0076d9652f429f96c585ba44e5b35d2a6ecfac1a65b42db/ratiopath-1.4.0.tar.gz", hash = "sha256:f0f70d24803a2710ff799c33d5da1afc6411b22e971cc9f39f9ef688763c32f8", size = 44897, upload-time = "2026-04-23T08:47:57.719Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c4/16/c92047625c3f850542fe7e0d194aa188ae1e51446b8dde969758e8df55d4/ratiopath-1.1.2-py3-none-any.whl", hash = "sha256:8a9973c7450ee6fba106d976cd465ac6e77bd0c169eef03f04f813a9ad4966a0", size = 37247, upload-time = "2026-03-04T14:36:27.177Z" }, + { url = "https://files.pythonhosted.org/packages/5b/66/ad97cec2f91a9d595bb92c8f8b15da449bc4295581c4fcedac0fe1be2c98/ratiopath-1.4.0-py3-none-any.whl", hash = "sha256:11ea0de7bab5749922911b4f89a33c25905b5a641e9990efcffaea44ebded0cc", size = 51037, upload-time = "2026-04-23T08:47:58.469Z" }, ] [[package]] @@ -2359,6 +2558,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ec/bf/cb6c1c505cb31e818e900b9312d514f381fbfa5c4363edfce0fcc4f8c1a4/shapely-2.1.2-cp312-cp312-win_amd64.whl", hash = "sha256:743044b4cfb34f9a67205cee9279feaf60ba7d02e69febc2afc609047cb49179", size = 1722861, upload-time = "2025-09-24T13:50:43.35Z" }, ] +[[package]] +name = "shellingham" +version = "1.5.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310, upload-time = "2023-10-24T04:13:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" }, +] + [[package]] name = "simsimd" version = "6.5.13" @@ -2390,6 +2598,22 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, ] +[[package]] +name = "skops" +version = "0.14.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "packaging" }, + { name = "prettytable" }, + { name = "scikit-learn" }, + { name = "scipy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c8/9f/46448c4e41a4c5ee4bdb74b3758af48e5ff0faeffe40f4e301bfc7594894/skops-0.14.0.tar.gz", hash = "sha256:6c8c0e047f691a3a582c3258943eecafcbfd79c8c7eef66260f3703e363254f0", size = 608084, upload-time = "2026-04-20T18:23:55.336Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/0e/3ae19fa941522cd98e119762e7181d371c8dba0b2d72bfaf9522692e329c/skops-0.14.0-py3-none-any.whl", hash = "sha256:60a5db78a9db46ccee2139a0ba13ab5afb1c96f4749b382e75a371291bbe3e36", size = 132198, upload-time = "2026-04-20T18:23:54.018Z" }, +] + [[package]] name = "smmap" version = "5.0.2" @@ -2623,6 +2847,21 @@ 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 = "typer" +version = "0.25.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-doc" }, + { name = "click" }, + { name = "rich" }, + { name = "shellingham" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e4/51/9aed62104cea109b820bbd6c14245af756112017d309da813ef107d42e7e/typer-0.25.1.tar.gz", hash = "sha256:9616eb8853a09ffeabab1698952f33c6f29ffdbceb4eaeecf571880e8d7664cc", size = 122276, upload-time = "2026-04-30T19:32:16.964Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/f9/2b3ff4e56e5fa7debfaf9eb135d0da96f3e9a1d5b27222223c7296336e5f/typer-0.25.1-py3-none-any.whl", hash = "sha256:75caa44ed46a03fb2dab8808753ffacdbfea88495e74c85a28c5eefcf5f39c89", size = 58409, upload-time = "2026-04-30T19:32:18.271Z" }, +] + [[package]] name = "typing-extensions" version = "4.15.0" @@ -2690,13 +2929,13 @@ job = [ requires-dist = [ { name = "aiohttp", specifier = ">=3.13.2" }, { name = "lightning", specifier = ">=2.5.6" }, - { name = "mlflow", specifier = "<3.0.0" }, + { name = "mlflow" }, { name = "omegaconf", specifier = ">=2.3.0" }, { name = "openpyxl", specifier = ">=3.1.5" }, { name = "pandas", specifier = ">=2.3.3" }, { name = "pyvips", specifier = "<3.1" }, { name = "rationai-masks", git = "https://gitlab.ics.muni.cz/rationai/digital-pathology/libraries/masks.git" }, - { name = "rationai-mlkit", git = "https://gitlab.ics.muni.cz/rationai/digital-pathology/libraries/mlkit.git" }, + { name = "rationai-mlkit", git = "https://github.com/RationAI/mlkit.git" }, { name = "rationai-sdk", git = "https://github.com/RationAI/rationai-sdk-python.git" }, { name = "rationai-tiling", git = "https://gitlab.ics.muni.cz/rationai/digital-pathology/libraries/tiling.git" }, { name = "ratiopath", specifier = ">=1.1.2" }, @@ -2775,6 +3014,33 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ad/e4/8d97cca767bcc1be76d16fb76951608305561c6e056811587f36cb1316a8/werkzeug-3.1.5-py3-none-any.whl", hash = "sha256:5111e36e91086ece91f93268bb39b4a35c1e6f1feac762c9c822ded0a4e322dc", size = 225025, upload-time = "2026-01-08T17:49:21.859Z" }, ] +[[package]] +name = "xxhash" +version = "3.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/24/2f/e183a1b407002f5af81822bee18b61cdb94b8670208ef34734d8d2b8ebe9/xxhash-3.7.0.tar.gz", hash = "sha256:6cc4eefbb542a5d6ffd6d70ea9c502957c925e800f998c5630ecc809d6702bae", size = 82022, upload-time = "2026-04-25T11:10:32.553Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f2/8a/51a14cdef4728c6c2337db8a7d8704422cc65676d9199d77215464c880af/xxhash-3.7.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:082c87bfdd2b9f457606c7a4a53457f4c4b48b0cdc48de0277f4349d79bb3d7a", size = 33357, upload-time = "2026-04-25T11:06:20.44Z" }, + { url = "https://files.pythonhosted.org/packages/b9/1b/0c2c933809421ffd9bf42b59315552c143c755db5d9a816b2f1ae273e884/xxhash-3.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5e7ce913b61f35b0c1c839a49ac9c8e75dd8d860150688aed353b0ce1bf409d8", size = 30869, upload-time = "2026-04-25T11:06:21.989Z" }, + { url = "https://files.pythonhosted.org/packages/03/a8/89d5fdd6ee12d70ba99451de46dd0e8010167468dcd913ec855653f4dd50/xxhash-3.7.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3beb1de3b1e9694fcdd853e570ee64c631c7062435d2f8c69c1adf809bc086f0", size = 194100, upload-time = "2026-04-25T11:06:23.586Z" }, + { url = "https://files.pythonhosted.org/packages/87/ee/2f9f2ed993e77206d1e66991290a1ebe22e843351ca3ebec8e49e01ba186/xxhash-3.7.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f3e7b689c3bce16699efcf736066f5c6cc4472c3840fe4b22bd8279daf4abdac", size = 212977, upload-time = "2026-04-25T11:06:25.019Z" }, + { url = "https://files.pythonhosted.org/packages/de/60/5a91644615a9e9d4e42c2e9925f1908e3a24e4e691d9de7340d565bea024/xxhash-3.7.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a6545e6b409e3d5cbafc850fb84c55a1ca26ed15a6b11e3bf07a0e0cd84517c8", size = 236373, upload-time = "2026-04-25T11:06:26.482Z" }, + { url = "https://files.pythonhosted.org/packages/22/c0/f3a9384eaaed9d14d4d062a5d953aa0da489bfe9747877aa994caa87cd0b/xxhash-3.7.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:31ab1461c77a11461d703c88eb949e132a1c6515933cf675d97ec680f4bd18de", size = 212229, upload-time = "2026-04-25T11:06:28.065Z" }, + { url = "https://files.pythonhosted.org/packages/2e/67/02f07a9fd79726804190f2172c4894c3ed9a4ebccaca05653c84beb58025/xxhash-3.7.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7c4d596b7676f811172687ec567cbafb9e4dea2f9be1bbb4f622410cb7f40f40", size = 445462, upload-time = "2026-04-25T11:06:30.048Z" }, + { url = "https://files.pythonhosted.org/packages/40/37/558f5a90c0672fc9b4402dc25d87ac5b7406616e8969430c9ca4e52ee74d/xxhash-3.7.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:13805f0461cba0a857924e70ff91ae6d52d2598f79a884e788db80532614a4a1", size = 193932, upload-time = "2026-04-25T11:06:31.857Z" }, + { url = "https://files.pythonhosted.org/packages/d5/90/aaa09cd58661d32044dbbad7df55bbe22a623032b810e7ed3b8c569a2a6f/xxhash-3.7.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1d398f372496152f1c6933a33566373f8d1b37b98b8c9d608fa6edc0976f23b2", size = 284807, upload-time = "2026-04-25T11:06:33.697Z" }, + { url = "https://files.pythonhosted.org/packages/d6/f3/53df3719ab127a02c174f0c1c74924fcd110866e89c966bc7909cfa8fa84/xxhash-3.7.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d610aa62cdb7d4d497740741772a24a794903bf3e79eaa51d2e800082abe11e5", size = 210445, upload-time = "2026-04-25T11:06:35.488Z" }, + { url = "https://files.pythonhosted.org/packages/72/33/d219975c0e8b6fa2eb9ccd486fe47e21bf1847985b878dd2fbc3126e0d5c/xxhash-3.7.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:073c23900a9fbf3d26616c17c830db28af9803677cd5b33aea3224d824111514", size = 241273, upload-time = "2026-04-25T11:06:37.24Z" }, + { url = "https://files.pythonhosted.org/packages/3e/50/49b1afe610eb3964cedcb90a4d4c3d46a261ee8669cbd4f060652619ae3c/xxhash-3.7.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:418a463c3e6a590c0cdc890f8be19adb44a8c8acd175ca5b2a6de77e61d0b386", size = 197950, upload-time = "2026-04-25T11:06:39.148Z" }, + { url = "https://files.pythonhosted.org/packages/c6/75/5f42a1a4c78717d906a4b6a140c6dbf837ab1f547a54d23c4e2903310936/xxhash-3.7.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:03f8ff4474ee61c845758ce00711d7087a770d77efb36f7e74a6e867301000b8", size = 210709, upload-time = "2026-04-25T11:06:40.958Z" }, + { url = "https://files.pythonhosted.org/packages/8a/85/237e446c25abced71e9c53d269f2cef5bab8a82b3f88a12e00c5368e7368/xxhash-3.7.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:44fba4a5f1d179b7ddc7b3dc40f56f9209046421679b57025d4d8821b376fd8d", size = 275345, upload-time = "2026-04-25T11:06:42.525Z" }, + { url = "https://files.pythonhosted.org/packages/62/34/c2c26c0a6a9cc739bc2a5f0ae03ba8b87deb12b8bce35f7ac495e790dc6d/xxhash-3.7.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:31e3516a0f829d06ded4a2c0f3c7c5561993256bfa1c493975fb9dc7bfa828a1", size = 414056, upload-time = "2026-04-25T11:06:44.343Z" }, + { url = "https://files.pythonhosted.org/packages/a0/aa/5c58e9bc8071b8afd8dcf297ff362f723c4892168faba149f19904132bf4/xxhash-3.7.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b59ee2ac81de57771a09ecad09191e840a1d2fae1ef684208320591055768f83", size = 191485, upload-time = "2026-04-25T11:06:46.262Z" }, + { url = "https://files.pythonhosted.org/packages/d4/69/a929cf9d1e2e65a48b818cdce72cb6b69eab2e6877f21436d0a1942aff43/xxhash-3.7.0-cp312-cp312-win32.whl", hash = "sha256:74bbd92f8c7fcc397ba0a11bfdc106bc72ad7f11e3a60277753f87e7532b4d81", size = 30671, upload-time = "2026-04-25T11:06:48.039Z" }, + { url = "https://files.pythonhosted.org/packages/b9/1b/104b41a8947f4e1d4a66ce1e628eea752f37d1890bfd7453559ca7a3d950/xxhash-3.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:7bd7bc82dd4f185f28f35193c2e968ef46131628e3cac62f639dadf321cba4d1", size = 31514, upload-time = "2026-04-25T11:06:49.279Z" }, + { url = "https://files.pythonhosted.org/packages/98/a0/1fd0ea1f1b886d9e7c73f0397571e22333a7d79e31da6d7127c2a4a71d75/xxhash-3.7.0-cp312-cp312-win_arm64.whl", hash = "sha256:7d7148180ec99ba36585b42c8c5de25e9b40191613bc4be68909b4d25a77a852", size = 27761, upload-time = "2026-04-25T11:06:50.448Z" }, +] + [[package]] name = "yarl" version = "1.22.0" From e0d214c291c7e17cd7468cc05fb59c2d52e64f55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Tue, 5 May 2026 19:10:19 +0000 Subject: [PATCH 04/54] feat: labels --- ml/data/datasets/__init__.py | 4 ++++ ml/data/datasets/labels.py | 38 ++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 ml/data/datasets/__init__.py create mode 100644 ml/data/datasets/labels.py diff --git a/ml/data/datasets/__init__.py b/ml/data/datasets/__init__.py new file mode 100644 index 00000000..4163d986 --- /dev/null +++ b/ml/data/datasets/__init__.py @@ -0,0 +1,4 @@ +from ml.data.datasets.tiles import Tiles, TilesPredict + + +__all__ = ["Tiles", "TilesPredict"] diff --git a/ml/data/datasets/labels.py b/ml/data/datasets/labels.py new file mode 100644 index 00000000..4654a6e9 --- /dev/null +++ b/ml/data/datasets/labels.py @@ -0,0 +1,38 @@ +from enum import Enum +from pathlib import Path + +import pandas as pd +import torch + + +class LabelMode(Enum): + NEUTROPHILS = "neutrophils" + NANCY_HIGH = "nancy_high" + NANCY_LOW = "nancy_low" + + +def process_slides(slides: pd.DataFrame, mode: LabelMode | None = None) -> pd.DataFrame: + match mode: + case LabelMode.NEUTROPHILS: + slides["neutrophils"] = slides["nancy_index"] >= 2 + case LabelMode.NANCY_HIGH: + # new labels: 0,1 -> 0; 2,3,4 -> 1,2,3 + slides["nancy_index"] = slides["nancy_index"].apply(lambda x: max(0, x - 1)) + case LabelMode.NANCY_LOW: + # new labels: 0,1 -> 0,1; 2,3,4 -> 2 + slides["nancy_index"] = slides["nancy_index"].apply(lambda x: min(x, 2)) + + slides["name"] = slides["path"].apply(lambda x: Path(x).stem) + return slides + + +def get_label(slide_metadata: pd.Series, mode: LabelMode) -> torch.Tensor: + match mode: + case LabelMode.NEUTROPHILS: + return torch.tensor(slide_metadata["neutrophils"].item()).float() + case LabelMode.NANCY_HIGH | LabelMode.NANCY_LOW: + return torch.tensor(slide_metadata["nancy_index"].item()).long() + + +def get_target_column(mode: LabelMode) -> str: + return "neutrophils" if mode == LabelMode.NEUTROPHILS else "nancy_index" From 6f73eb94307cc99b8a5896995b67338e7f063e5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Tue, 5 May 2026 21:14:27 +0200 Subject: [PATCH 05/54] refactor: labels --- ml/data/datasets/labels.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/ml/data/datasets/labels.py b/ml/data/datasets/labels.py index 4654a6e9..4b2e8b6f 100644 --- a/ml/data/datasets/labels.py +++ b/ml/data/datasets/labels.py @@ -1,8 +1,8 @@ from enum import Enum from pathlib import Path -import pandas as pd import torch +from datasets import Dataset as HFDataset class LabelMode(Enum): @@ -11,27 +11,27 @@ class LabelMode(Enum): NANCY_LOW = "nancy_low" -def process_slides(slides: pd.DataFrame, mode: LabelMode | None = None) -> pd.DataFrame: +def process_slides(slides: HFDataset, mode: LabelMode | None = None) -> HFDataset: match mode: case LabelMode.NEUTROPHILS: - slides["neutrophils"] = slides["nancy_index"] >= 2 + slides = slides.map(lambda x: {"neutrophils": x["nancy_index"] >= 2}) case LabelMode.NANCY_HIGH: # new labels: 0,1 -> 0; 2,3,4 -> 1,2,3 - slides["nancy_index"] = slides["nancy_index"].apply(lambda x: max(0, x - 1)) + slides = slides.map(lambda x: {"nancy_index": max(0, x["nancy_index"] - 1)}) case LabelMode.NANCY_LOW: # new labels: 0,1 -> 0,1; 2,3,4 -> 2 - slides["nancy_index"] = slides["nancy_index"].apply(lambda x: min(x, 2)) + slides = slides.map(lambda x: {"nancy_index": min(x["nancy_index"], 2)}) - slides["name"] = slides["path"].apply(lambda x: Path(x).stem) + slides = slides.map(lambda x: {"name": Path(x["path"]).stem}) return slides -def get_label(slide_metadata: pd.Series, mode: LabelMode) -> torch.Tensor: +def get_label(slide_metadata: dict, mode: LabelMode) -> torch.Tensor: match mode: case LabelMode.NEUTROPHILS: - return torch.tensor(slide_metadata["neutrophils"].item()).float() + return torch.tensor(slide_metadata["neutrophils"]).float() case LabelMode.NANCY_HIGH | LabelMode.NANCY_LOW: - return torch.tensor(slide_metadata["nancy_index"].item()).long() + return torch.tensor(slide_metadata["nancy_index"]).long() def get_target_column(mode: LabelMode) -> str: From fd22f8640272b70eb2f08531f607aacd897aecb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Tue, 5 May 2026 19:17:26 +0000 Subject: [PATCH 06/54] feat: types --- ml/typing.py | 38 ++++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/ml/typing.py b/ml/typing.py index af3f90aa..f2f26fca 100644 --- a/ml/typing.py +++ b/ml/typing.py @@ -1,8 +1,38 @@ -from typing import TypeAlias +from pathlib import Path +from typing import TypeAlias, TypedDict +import pandas as pd +from torch import Tensor -Sample: TypeAlias = ... # TODO define the type returned by Dataset -Input: TypeAlias = ... # TODO define the model input type +class Metadata(TypedDict): + slide_id: str -Outputs: TypeAlias = ... # TODO define the model output type + +class MetadataTiles(Metadata): + x: int + y: int + + +TilesSample: TypeAlias = tuple[Tensor, Tensor, MetadataTiles] +TilesPredictSample: TypeAlias = tuple[Tensor, MetadataTiles] + + +class MetadataTileEmbeddings(Metadata): + slide_name: str + slide_path: Path + level: int + tile_extent_x: int + tile_extent_y: int + tiles: pd.DataFrame + x: Tensor # Tensor[int] + y: Tensor # Tensor[int] + + +TileEmbeddingsSample: TypeAlias = tuple[Tensor, Tensor, MetadataTileEmbeddings] +TileEmbeddingsPredictSample: TypeAlias = tuple[Tensor, MetadataTileEmbeddings] + +TileEmbeddingsInput: TypeAlias = tuple[Tensor, Tensor, list[MetadataTileEmbeddings]] +TileEmbeddingsPredictInput: TypeAlias = tuple[Tensor, list[MetadataTileEmbeddings]] + +Output: TypeAlias = Tensor From 4e12f9c28aecc11876ae04e06076ffcfea97a54b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Tue, 5 May 2026 19:17:37 +0000 Subject: [PATCH 07/54] feat: tiles dataset --- ml/data/datasets/tiles.py | 120 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 ml/data/datasets/tiles.py diff --git a/ml/data/datasets/tiles.py b/ml/data/datasets/tiles.py new file mode 100644 index 00000000..b0bea546 --- /dev/null +++ b/ml/data/datasets/tiles.py @@ -0,0 +1,120 @@ +from collections.abc import Iterable +from typing import Generic, TypeVar + +import pandas as pd +from albumentations.core.composition import TransformType +from albumentations.pytorch import ToTensorV2 +from rationai.mlkit.data.datasets import MetaTiledSlides, OpenSlideTilesDataset +from torch.utils.data import Dataset + +from ml.data.datasets.labels import LabelMode, get_label, process_slides +from ml.typing import MetadataTiles, TilesPredictSample, TilesSample + + +T = TypeVar("T", bound=TilesSample | TilesPredictSample) + + +class _Tiles(Dataset[T], Generic[T]): + def __init__( + self, + slide_metadata: pd.Series, + tiles: pd.DataFrame, + mode: LabelMode | str | None, + include_labels: bool = True, + transforms: TransformType | None = None, + to_tensor: bool = True, + ) -> None: + super().__init__() + self.slide_tiles = OpenSlideTilesDataset( + slide_path=slide_metadata["path"], + level=slide_metadata["level"], + tile_extent_x=slide_metadata["tile_extent_x"], + tile_extent_y=slide_metadata["tile_extent_y"], + tiles=tiles, + ) + self.slide_metadata = slide_metadata + self.mode = LabelMode(mode) if mode is not None else None + self.include_labels = include_labels + self.transforms = transforms + self.to_tensor = ToTensorV2() if to_tensor else None + + if self.include_labels and self.mode is None: + raise ValueError("Mode must be specified if labels are included.") + + def __len__(self) -> int: + return len(self.slide_tiles) + + def __getitem__(self, idx: int) -> TilesSample | TilesPredictSample: + image = self.slide_tiles[idx] + metadata = MetadataTiles( + slide_id=self.slide_tiles.slide_path.stem, + x=self.slide_tiles.tiles.iloc[idx]["x"], + y=self.slide_tiles.tiles.iloc[idx]["y"], + ) + + if self.transforms is not None: + image = self.transforms(image=image)["image"] + + if self.to_tensor is not None: + image = self.to_tensor(image=image)["image"] + + if not self.include_labels: + return image, metadata + + assert self.mode is not None, "Mode must be specified for labels." + label = get_label(self.slide_metadata, self.mode) + return image, label, metadata + + +class Tiles(MetaTiledSlides[TilesSample]): + def __init__( + self, + uris: Iterable[str] | str, + mode: LabelMode | str, + transforms: TransformType | None = None, + to_tensor: bool = True, + ) -> None: + self.transforms = transforms + self.mode = LabelMode(mode) + self.to_tensor = to_tensor + super().__init__(uris=(uris,) if isinstance(uris, str) else uris) + + def generate_datasets(self) -> Iterable[_Tiles[TilesSample]]: + self.slides = process_slides(self.slides, self.mode) + return ( + _Tiles( + slide_metadata=slide, + tiles=self.filter_tiles_by_slide(slide["id"]), + mode=self.mode, + include_labels=True, + transforms=self.transforms, + to_tensor=self.to_tensor, + ) + for _, slide in self.slides.iterrows() + ) + + +class TilesPredict(MetaTiledSlides[TilesPredictSample]): + def __init__( + self, + uris: Iterable[str] | str, + transforms: TransformType | None = None, + to_tensor: bool = True, + ) -> None: + self.transforms = transforms + self.to_tensor = to_tensor + super().__init__(uris=(uris,) if isinstance(uris, str) else uris) + + def generate_datasets(self) -> Iterable[_Tiles[TilesPredictSample]]: + self.slides = process_slides(self.slides) + return ( + _Tiles( + slide_metadata=slide, + tiles=self.filter_tiles_by_slide(slide["id"]), + mode=None, + include_labels=False, + transforms=self.transforms, + to_tensor=self.to_tensor, + ) + for _, slide in self.slides.iterrows() + ) From c7d72974fc983d69ca464f60deed96202a92abb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Tue, 5 May 2026 19:28:44 +0000 Subject: [PATCH 08/54] feat: tiles dataframe to hfdataset --- ml/data/datasets/tiles.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/ml/data/datasets/tiles.py b/ml/data/datasets/tiles.py index b0bea546..1ce2e00a 100644 --- a/ml/data/datasets/tiles.py +++ b/ml/data/datasets/tiles.py @@ -4,6 +4,7 @@ import pandas as pd from albumentations.core.composition import TransformType from albumentations.pytorch import ToTensorV2 +from datasets import Dataset as HFDataset from rationai.mlkit.data.datasets import MetaTiledSlides, OpenSlideTilesDataset from torch.utils.data import Dataset @@ -17,8 +18,8 @@ class _Tiles(Dataset[T], Generic[T]): def __init__( self, - slide_metadata: pd.Series, - tiles: pd.DataFrame, + slide_metadata: dict, + tiles: HFDataset, mode: LabelMode | str | None, include_labels: bool = True, transforms: TransformType | None = None, @@ -48,8 +49,8 @@ def __getitem__(self, idx: int) -> TilesSample | TilesPredictSample: image = self.slide_tiles[idx] metadata = MetadataTiles( slide_id=self.slide_tiles.slide_path.stem, - x=self.slide_tiles.tiles.iloc[idx]["x"], - y=self.slide_tiles.tiles.iloc[idx]["y"], + x=self.slide_tiles.tiles[idx]["x"], + y=self.slide_tiles.tiles[idx]["y"], ) if self.transforms is not None: @@ -83,14 +84,14 @@ def generate_datasets(self) -> Iterable[_Tiles[TilesSample]]: self.slides = process_slides(self.slides, self.mode) return ( _Tiles( - slide_metadata=slide, - tiles=self.filter_tiles_by_slide(slide["id"]), + slide_metadata=dict(slide), + tiles=self.filter_tiles_by_slide(dict(slide)["id"]), mode=self.mode, include_labels=True, transforms=self.transforms, to_tensor=self.to_tensor, ) - for _, slide in self.slides.iterrows() + for slide in self.slides ) @@ -109,12 +110,12 @@ def generate_datasets(self) -> Iterable[_Tiles[TilesPredictSample]]: self.slides = process_slides(self.slides) return ( _Tiles( - slide_metadata=slide, - tiles=self.filter_tiles_by_slide(slide["id"]), + slide_metadata=dict(slide), + tiles=self.filter_tiles_by_slide(dict(slide)["id"]), mode=None, include_labels=False, transforms=self.transforms, to_tensor=self.to_tensor, ) - for _, slide in self.slides.iterrows() + for slide in self.slides ) From f9969c6c0be847bb77d8b81b060b1ec29cb9e08b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Tue, 5 May 2026 19:43:24 +0000 Subject: [PATCH 09/54] feat: neutrophils ml --- configs/dataset/neutrophils/all.yaml | 5 + configs/dataset/neutrophils/ftn.yaml | 6 + configs/dataset/neutrophils/ikem.yaml | 6 + configs/dataset/neutrophils/knl_patos.yaml | 6 + ml/neutrophils.py | 134 +++++++++++++++++++++ 5 files changed, 157 insertions(+) create mode 100644 configs/dataset/neutrophils/all.yaml create mode 100644 configs/dataset/neutrophils/ftn.yaml create mode 100644 configs/dataset/neutrophils/ikem.yaml create mode 100644 configs/dataset/neutrophils/knl_patos.yaml create mode 100644 ml/neutrophils.py diff --git a/configs/dataset/neutrophils/all.yaml b/configs/dataset/neutrophils/all.yaml new file mode 100644 index 00000000..2790b9ae --- /dev/null +++ b/configs/dataset/neutrophils/all.yaml @@ -0,0 +1,5 @@ +defaults: + - /dataset/neutrophils@datasets.ftn: ftn + - /dataset/neutrophils@datasets.ikem: ikem + - /dataset/neutrophils@datasets.knl_patos: knl_patos + - _self_ diff --git a/configs/dataset/neutrophils/ftn.yaml b/configs/dataset/neutrophils/ftn.yaml new file mode 100644 index 00000000..3446ced0 --- /dev/null +++ b/configs/dataset/neutrophils/ftn.yaml @@ -0,0 +1,6 @@ +defaults: + - /dataset/tiled/ftn/0_320@_here_ + - _self_ + +mlflow_uris: + neutrophils: mlflow-artifacts:/86/deee774e63644dd1a5e3d3e15a429224/artifacts/neutrophils diff --git a/configs/dataset/neutrophils/ikem.yaml b/configs/dataset/neutrophils/ikem.yaml new file mode 100644 index 00000000..81d33b21 --- /dev/null +++ b/configs/dataset/neutrophils/ikem.yaml @@ -0,0 +1,6 @@ +defaults: + - /dataset/tiled/ikem/0_320@_here_ + - _self_ + +mlflow_uris: + neutrophils: mlflow-artifacts:/86/c01579c246ad4f66a3b3cc0d8aa644fe/artifacts/neutrophils diff --git a/configs/dataset/neutrophils/knl_patos.yaml b/configs/dataset/neutrophils/knl_patos.yaml new file mode 100644 index 00000000..5303a9ad --- /dev/null +++ b/configs/dataset/neutrophils/knl_patos.yaml @@ -0,0 +1,6 @@ +defaults: + - /dataset/tiled/knl_patos/0_320@_here_ + - _self_ + +mlflow_uris: + neutrophils: mlflow-artifacts:/86/24d97109978e4c8ba13ac1972d22be96/artifacts/neutrophils diff --git a/ml/neutrophils.py b/ml/neutrophils.py new file mode 100644 index 00000000..d7589aa4 --- /dev/null +++ b/ml/neutrophils.py @@ -0,0 +1,134 @@ +from functools import partial +from pathlib import Path + +import hydra +import mlflow.artifacts +import numpy as np +import pandas as pd +import pyvips +from omegaconf import DictConfig, ListConfig +from rationai.mlkit import with_cli_args +from rationai.mlkit.autolog import autolog +from rationai.mlkit.lightning.loggers import MLFlowLogger +from sklearn.metrics import ( + cohen_kappa_score, + confusion_matrix, + roc_auc_score, + roc_curve, +) + + +def add_path(path: str, folder: Path, suffix: str) -> Path: + return folder / Path(path).with_suffix(suffix).name + + +def download_data(datasets: ListConfig) -> tuple[pd.DataFrame, pd.DataFrame]: + train_dfs, test_dfs = [], [] + for dataset in datasets: + uris = dataset.mlflow_uris + neutrophils = Path(mlflow.artifacts.download_artifacts(uris.neutrophils)) + tissue_masks = Path(mlflow.artifacts.download_artifacts(uris.tissue_masks)) + + add_tissue_mask = partial(add_path, folder=tissue_masks, suffix=".tiff") + add_neutrophils = partial(add_path, folder=neutrophils, suffix=".parquet") + + for split, df in zip( + ["train", "test_preliminary"], [train_dfs, test_dfs], strict=False + ): + if split in uris.tiling: + df.append( + pd.read_parquet( + Path(mlflow.artifacts.download_artifacts(uris.tiling[split])) + / "slides.parquet", + ) + .set_index("id") + .assign( + tissue_mask=lambda df, f=add_tissue_mask: df["path"].apply(f) # type: ignore[reportCallIssues] + ) + .assign( + neutrophils=lambda df, f=add_neutrophils: df["path"].apply(f) # type: ignore[reportCallIssues] + ) + ) + + return pd.concat(train_dfs), pd.concat(test_dfs) + + +def get_tissue_size(tissue_mask_path: Path) -> float: + """Calculate tissue size in mm^2.""" + image = pyvips.Image.new_from_file(tissue_mask_path) + mpp_x = 1000 / image.get("Xres") # type: ignore[pyvips] + mpp_y = 1000 / image.get("Yres") # type: ignore[pyvips] + return image.avg() * image.width * image.height / 255 * mpp_x * mpp_y * 1e-6 # type: ignore[pyvips] + + +def create_dataset(df: pd.DataFrame) -> tuple[np.ndarray, np.ndarray]: + x, y = [], [] + for _, row in df.iterrows(): + expected_num_neutrophils = pd.read_parquet(row["neutrophils"])[ + "probability" + ].sum() + tissue_size = get_tissue_size(row["tissue_mask"]) + + # expected number of neutrophils per mm^2 + x.append(expected_num_neutrophils / tissue_size) + y.append(row["nancy_index"] >= 2) + + return np.array(x, dtype=np.float32), np.array(y, dtype=np.int8) + + +def train(x_train: np.ndarray, y_train: np.ndarray) -> float: + fpr, tpr, thresholds = roc_curve(y_train, x_train) + accuracy = (tpr * np.sum(y_train) + (1 - fpr) * np.sum(1 - y_train)) / len(y_train) + return thresholds[np.argmax(accuracy)] + + +def test( + x_test: np.ndarray, + y_test: np.ndarray, + test_df: pd.DataFrame, + threshold: float, + logger: MLFlowLogger, +) -> None: + y_pred = x_test >= threshold + + tn, fp, fn, tp = confusion_matrix(y_test, y_pred).ravel() + + logger.log_metrics( + { + "test/accuracy": (tp + tn) / (tp + tn + fp + fn), + "test/AUC": float(roc_auc_score(y_test, x_test)), + "test/precision": (tp / (tp + fp)) if tp + fp > 0 else 0.0, + "test/recall": (tp / (tp + fn)) if tp + fn > 0 else 0.0, + "test/specificity": (tn / (tn + fp)) if tn + fp > 0 else 0.0, + "test/kappa": float(cohen_kappa_score(y_test, y_pred)), + "threshold": threshold, + } + ) + + logger.log_table( + { + "slide": test_df["path"].apply(lambda p: Path(p).stem), + "prediction": x_test.tolist(), + "prediction_class": y_pred.tolist(), + }, + artifact_file="predictions.json", + ) + + +@with_cli_args(["+ml=neutrophils"]) +@hydra.main(config_path="../configs", config_name="ml", version_base=None) +@autolog +def main(config: DictConfig, logger: MLFlowLogger) -> None: + train_df, test_df = download_data( + config.dataset.get("datasets", {"": config.dataset}).values() + ) + + x_train, y_train = create_dataset(train_df) + x_test, y_test = create_dataset(test_df) + + threshold = train(x_train, y_train) + test(x_test, y_test, test_df, threshold, logger) + + +if __name__ == "__main__": + main() From c4fd74dc27cab282775bf91f8512f86a64412e22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Wed, 6 May 2026 12:19:36 +0000 Subject: [PATCH 10/54] feat: datasets --- ml/data/datasets/__init__.py | 11 +++- ml/data/datasets/bags.py | 100 +++++++++++++++++++++++++++++++++ ml/data/datasets/embeddings.py | 93 ++++++++++++++++++++++++++++++ ml/data/datasets/labels.py | 6 +- ml/data/datasets/tiles.py | 1 - ml/typing.py | 23 +++++--- 6 files changed, 224 insertions(+), 10 deletions(-) create mode 100644 ml/data/datasets/bags.py create mode 100644 ml/data/datasets/embeddings.py diff --git a/ml/data/datasets/__init__.py b/ml/data/datasets/__init__.py index 4163d986..5301996b 100644 --- a/ml/data/datasets/__init__.py +++ b/ml/data/datasets/__init__.py @@ -1,4 +1,13 @@ +from ml.data.datasets.bags import Bags, BagsPredict +from ml.data.datasets.embeddings import Embeddings, EmbeddingsPredict from ml.data.datasets.tiles import Tiles, TilesPredict -__all__ = ["Tiles", "TilesPredict"] +__all__ = [ + "Bags", + "BagsPredict", + "Embeddings", + "EmbeddingsPredict", + "Tiles", + "TilesPredict", +] diff --git a/ml/data/datasets/bags.py b/ml/data/datasets/bags.py new file mode 100644 index 00000000..0c861b2f --- /dev/null +++ b/ml/data/datasets/bags.py @@ -0,0 +1,100 @@ +from collections.abc import Iterable +from pathlib import Path +from typing import Generic, TypeVar + +import torch +import torch.nn.functional as F +from rationai.mlkit.data.datasets import SlidesTilesLoader +from torch.utils.data import Dataset + +from ml.data.datasets.labels import LabelMode, get_label, process_slides +from ml.typing import BagsPredictSample, BagsSample, MetadataBags + + +T = TypeVar("T", bound=BagsSample | BagsPredictSample) + + +class _Bags(Dataset[T], Generic[T]): + def __init__( + self, + tiling_uris: Iterable[str] | str, + mode: LabelMode | str | None = None, + padding: bool = True, + include_labels: bool = True, + ) -> None: + self.mode = LabelMode(mode) if mode is not None else None + self.include_labels = include_labels + + if self.include_labels and self.mode is None: + raise ValueError("Mode must be specified when including labels.") + + self._meta = SlidesTilesLoader(uris=tiling_uris) + self.tiles = self._meta.tiles + self.slides = process_slides(self._meta.slides, self.mode) + + self.padding = padding + self.max_embeddings = self.tiles["slide_id"].value_counts().max() + + def __len__(self) -> int: + return len(self.slides) + + def __getitem__(self, idx: int) -> BagsSample | BagsPredictSample: + slide_metadata = self.slides[idx] + tiles = self._meta.filter_tiles_by_slide(slide_metadata["id"]) + slide_name = str(slide_metadata["name"]) + embeddings = torch.tensor(tiles["embedding"]) + + pad_amount = self.max_embeddings - embeddings.shape[0] + if self.padding: + embeddings = F.pad(embeddings, (0, 0, 0, pad_amount), value=0.0) + + metadata = MetadataBags( + slide_id=slide_metadata["id"], + slide_name=slide_name, + slide_path=Path(slide_metadata["path"]), + level=slide_metadata["level"], + tile_extent_x=slide_metadata["tile_extent_x"], + tile_extent_y=slide_metadata["tile_extent_y"], + tiles=tiles, + x=torch.tensor(tiles["x"]), + y=torch.tensor(tiles["y"]), + ) + + if not self.include_labels: + return embeddings, metadata + + assert self.mode is not None + label = get_label(slide_metadata, self.mode) + + return embeddings, label, metadata + + +class Bags(_Bags[BagsSample]): + def __init__( + self, + tiling_uris: Iterable[str] | str, + mode: LabelMode | str, + padding: bool = True, + ) -> None: + super().__init__( + tiling_uris=tiling_uris, + mode=mode, + padding=padding, + include_labels=True, + ) + + +class BagsPredict(_Bags[BagsPredictSample]): + def __init__( + self, + tiling_uris: Iterable[str] | str, + mode: LabelMode | str | None = None, + padding: bool = True, + slide_names: Iterable[str] | None = None, + ) -> None: + super().__init__( + tiling_uris=tiling_uris, + mode=mode, + padding=padding, + include_labels=False, + ) diff --git a/ml/data/datasets/embeddings.py b/ml/data/datasets/embeddings.py new file mode 100644 index 00000000..5229f733 --- /dev/null +++ b/ml/data/datasets/embeddings.py @@ -0,0 +1,93 @@ +from collections.abc import Iterable +from typing import Generic, TypeVar + +import torch +from datasets import Dataset as HFDataset +from rationai.mlkit.data.datasets import MetaTiledSlides +from torch.utils.data import Dataset + +from ml.data.datasets.labels import LabelMode, get_label, process_slides +from ml.typing import EmbeddingsPredictSample, EmbeddingsSample, MetadataEmbeddings + + +T = TypeVar("T", bound=EmbeddingsSample | EmbeddingsPredictSample) + + +class _Embeddings(Generic[T], Dataset[T]): + def __init__( + self, + slide_metadata: dict, + tiles: HFDataset, + mode: LabelMode | str | None, + include_labels: bool = True, + ) -> None: + self.slide_metadata = slide_metadata + self.tiles = tiles + self.mode = LabelMode(mode) if mode is not None else None + self.include_labels = include_labels + + if self.include_labels and self.mode is None: + raise ValueError("Mode must be specified if labels are included.") + + def __len__(self) -> int: + return len(self.tiles) + + def __getitem__(self, idx: int) -> EmbeddingsSample | EmbeddingsPredictSample: + tile = self.tiles[idx] + metadata = MetadataEmbeddings( + slide_id=self.slide_metadata["name"], + x=tile["x"], + y=tile["y"], + ) + + embedding = torch.tensor(tile["embedding"]) + if not self.include_labels: + return embedding, metadata + + assert self.mode is not None, "Mode must be specified for labels." + label = get_label(tile, self.mode) + return embedding, label, metadata + + +class Embeddings(MetaTiledSlides[EmbeddingsSample]): + def __init__( + self, + uris: Iterable[str] | str, + mode: LabelMode | str, + ) -> None: + self.mode = LabelMode(mode) + super().__init__(uris=(uris,) if isinstance(uris, str) else uris) + + def generate_datasets(self) -> Iterable[_Embeddings[EmbeddingsSample]]: + self.slides = process_slides(self.slides, self.mode) + return ( + _Embeddings( + slide_metadata=dict(slide), + tiles=self.filter_tiles_by_slide(dict(slide)["id"]), + mode=self.mode, + include_labels=True, + ) + for slide in self.slides + ) + + +class EmbeddingsPredict(MetaTiledSlides[EmbeddingsPredictSample]): + def __init__( + self, + uris: Iterable[str] | str, + mode: LabelMode | str, + ) -> None: + self.mode = LabelMode(mode) + super().__init__(uris=(uris,) if isinstance(uris, str) else uris) + + def generate_datasets(self) -> Iterable[_Embeddings[EmbeddingsPredictSample]]: + self.slides = process_slides(self.slides, self.mode) + return ( + _Embeddings( + slide_metadata=dict(slide), + tiles=self.filter_tiles_by_slide(dict(slide)["id"]), + mode=self.mode, + include_labels=False, + ) + for slide in self.slides + ) diff --git a/ml/data/datasets/labels.py b/ml/data/datasets/labels.py index 4b2e8b6f..c95448f5 100644 --- a/ml/data/datasets/labels.py +++ b/ml/data/datasets/labels.py @@ -9,6 +9,7 @@ class LabelMode(Enum): NEUTROPHILS = "neutrophils" NANCY_HIGH = "nancy_high" NANCY_LOW = "nancy_low" + ALL = "all" def process_slides(slides: HFDataset, mode: LabelMode | None = None) -> HFDataset: @@ -21,6 +22,9 @@ def process_slides(slides: HFDataset, mode: LabelMode | None = None) -> HFDatase case LabelMode.NANCY_LOW: # new labels: 0,1 -> 0,1; 2,3,4 -> 2 slides = slides.map(lambda x: {"nancy_index": min(x["nancy_index"], 2)}) + case LabelMode.ALL: + # Keep all labels + pass slides = slides.map(lambda x: {"name": Path(x["path"]).stem}) return slides @@ -30,7 +34,7 @@ def get_label(slide_metadata: dict, mode: LabelMode) -> torch.Tensor: match mode: case LabelMode.NEUTROPHILS: return torch.tensor(slide_metadata["neutrophils"]).float() - case LabelMode.NANCY_HIGH | LabelMode.NANCY_LOW: + case LabelMode.NANCY_HIGH | LabelMode.NANCY_LOW | LabelMode.ALL: return torch.tensor(slide_metadata["nancy_index"]).long() diff --git a/ml/data/datasets/tiles.py b/ml/data/datasets/tiles.py index 1ce2e00a..546cfaed 100644 --- a/ml/data/datasets/tiles.py +++ b/ml/data/datasets/tiles.py @@ -1,7 +1,6 @@ from collections.abc import Iterable from typing import Generic, TypeVar -import pandas as pd from albumentations.core.composition import TransformType from albumentations.pytorch import ToTensorV2 from datasets import Dataset as HFDataset diff --git a/ml/typing.py b/ml/typing.py index f2f26fca..29f26723 100644 --- a/ml/typing.py +++ b/ml/typing.py @@ -1,7 +1,7 @@ from pathlib import Path from typing import TypeAlias, TypedDict -import pandas as pd +from datasets import Dataset as HFDataset from torch import Tensor @@ -18,21 +18,30 @@ class MetadataTiles(Metadata): TilesPredictSample: TypeAlias = tuple[Tensor, MetadataTiles] -class MetadataTileEmbeddings(Metadata): +class MetadataEmbeddings(Metadata): + x: int + y: int + + +EmbeddingsSample: TypeAlias = tuple[Tensor, Tensor, MetadataEmbeddings] +EmbeddingsPredictSample: TypeAlias = tuple[Tensor, MetadataEmbeddings] + + +class MetadataBags(Metadata): slide_name: str slide_path: Path level: int tile_extent_x: int tile_extent_y: int - tiles: pd.DataFrame + tiles: HFDataset x: Tensor # Tensor[int] y: Tensor # Tensor[int] -TileEmbeddingsSample: TypeAlias = tuple[Tensor, Tensor, MetadataTileEmbeddings] -TileEmbeddingsPredictSample: TypeAlias = tuple[Tensor, MetadataTileEmbeddings] +BagsSample: TypeAlias = tuple[Tensor, Tensor, MetadataBags] +BagsPredictSample: TypeAlias = tuple[Tensor, MetadataBags] -TileEmbeddingsInput: TypeAlias = tuple[Tensor, Tensor, list[MetadataTileEmbeddings]] -TileEmbeddingsPredictInput: TypeAlias = tuple[Tensor, list[MetadataTileEmbeddings]] +BagsInput: TypeAlias = tuple[Tensor, Tensor, list[MetadataBags]] +BagsPredictInput: TypeAlias = tuple[Tensor, list[MetadataBags]] Output: TypeAlias = Tensor From a56b3f4ecce88b815f731db8d0a0fc36f5e39f1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Wed, 6 May 2026 12:20:07 +0000 Subject: [PATCH 11/54] feat: neutrophil dataset conf --- configs/dataset/embeddings/ftn.yaml | 6 ++++++ configs/dataset/embeddings/ikem.yaml | 6 ++++++ configs/dataset/embeddings/knl_patos.yaml | 6 ++++++ 3 files changed, 18 insertions(+) create mode 100644 configs/dataset/embeddings/ftn.yaml create mode 100644 configs/dataset/embeddings/ikem.yaml create mode 100644 configs/dataset/embeddings/knl_patos.yaml diff --git a/configs/dataset/embeddings/ftn.yaml b/configs/dataset/embeddings/ftn.yaml new file mode 100644 index 00000000..3446ced0 --- /dev/null +++ b/configs/dataset/embeddings/ftn.yaml @@ -0,0 +1,6 @@ +defaults: + - /dataset/tiled/ftn/0_320@_here_ + - _self_ + +mlflow_uris: + neutrophils: mlflow-artifacts:/86/deee774e63644dd1a5e3d3e15a429224/artifacts/neutrophils diff --git a/configs/dataset/embeddings/ikem.yaml b/configs/dataset/embeddings/ikem.yaml new file mode 100644 index 00000000..81d33b21 --- /dev/null +++ b/configs/dataset/embeddings/ikem.yaml @@ -0,0 +1,6 @@ +defaults: + - /dataset/tiled/ikem/0_320@_here_ + - _self_ + +mlflow_uris: + neutrophils: mlflow-artifacts:/86/c01579c246ad4f66a3b3cc0d8aa644fe/artifacts/neutrophils diff --git a/configs/dataset/embeddings/knl_patos.yaml b/configs/dataset/embeddings/knl_patos.yaml new file mode 100644 index 00000000..5303a9ad --- /dev/null +++ b/configs/dataset/embeddings/knl_patos.yaml @@ -0,0 +1,6 @@ +defaults: + - /dataset/tiled/knl_patos/0_320@_here_ + - _self_ + +mlflow_uris: + neutrophils: mlflow-artifacts:/86/24d97109978e4c8ba13ac1972d22be96/artifacts/neutrophils From 49d4cff93722034051a3e160f5eb3a6b184ebdf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 7 May 2026 14:03:24 +0000 Subject: [PATCH 12/54] feat: datasets --- ml/data/datasets/bags.py | 2 +- ml/data/datasets/embeddings.py | 2 +- ml/data/datasets/tiles.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ml/data/datasets/bags.py b/ml/data/datasets/bags.py index 0c861b2f..7aeabad4 100644 --- a/ml/data/datasets/bags.py +++ b/ml/data/datasets/bags.py @@ -49,7 +49,7 @@ def __getitem__(self, idx: int) -> BagsSample | BagsPredictSample: embeddings = F.pad(embeddings, (0, 0, 0, pad_amount), value=0.0) metadata = MetadataBags( - slide_id=slide_metadata["id"], + slide_name=slide_metadata["id"], slide_name=slide_name, slide_path=Path(slide_metadata["path"]), level=slide_metadata["level"], diff --git a/ml/data/datasets/embeddings.py b/ml/data/datasets/embeddings.py index 5229f733..c38d9c0a 100644 --- a/ml/data/datasets/embeddings.py +++ b/ml/data/datasets/embeddings.py @@ -35,7 +35,7 @@ def __len__(self) -> int: def __getitem__(self, idx: int) -> EmbeddingsSample | EmbeddingsPredictSample: tile = self.tiles[idx] metadata = MetadataEmbeddings( - slide_id=self.slide_metadata["name"], + slide_name=self.slide_metadata["name"], x=tile["x"], y=tile["y"], ) diff --git a/ml/data/datasets/tiles.py b/ml/data/datasets/tiles.py index 546cfaed..58c16a23 100644 --- a/ml/data/datasets/tiles.py +++ b/ml/data/datasets/tiles.py @@ -47,7 +47,7 @@ def __len__(self) -> int: def __getitem__(self, idx: int) -> TilesSample | TilesPredictSample: image = self.slide_tiles[idx] metadata = MetadataTiles( - slide_id=self.slide_tiles.slide_path.stem, + slide_name=self.slide_tiles.slide_path.stem, x=self.slide_tiles.tiles[idx]["x"], y=self.slide_tiles.tiles[idx]["y"], ) From 182350fe3657ec81897e08ccd455e5b362fa73a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 7 May 2026 14:03:45 +0000 Subject: [PATCH 13/54] feat: loss --- ml/loss/__init__.py | 4 ++ ml/loss/cumulative_link_loss.py | 100 ++++++++++++++++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 ml/loss/__init__.py create mode 100644 ml/loss/cumulative_link_loss.py diff --git a/ml/loss/__init__.py b/ml/loss/__init__.py new file mode 100644 index 00000000..44986ce2 --- /dev/null +++ b/ml/loss/__init__.py @@ -0,0 +1,4 @@ +from ml.loss.cumulative_link_loss import CumulativeLinkLoss + + +__all__ = ["CumulativeLinkLoss"] diff --git a/ml/loss/cumulative_link_loss.py b/ml/loss/cumulative_link_loss.py new file mode 100644 index 00000000..44e2c8e9 --- /dev/null +++ b/ml/loss/cumulative_link_loss.py @@ -0,0 +1,100 @@ +import torch +from torch import nn + + +# credit: +# https://github.com/EthanRosenthal/spacecutter/blob/master/spacecutter/losses.py + + +def _reduction(loss: torch.Tensor, reduction: str) -> torch.Tensor: + """Reduce loss. + + Parameters + ---------- + loss : torch.Tensor, [batch_size, num_classes] + Batch losses. + reduction : str + Method for reducing the loss. Options include 'mean', 'none', and 'sum'. + + Returns: + ------- + loss : torch.Tensor + Reduced loss. + + """ + if reduction == "mean": + return loss.mean() + elif reduction == "none": + return loss + elif reduction == "sum": + return loss.sum() + else: + raise ValueError(f"{reduction} is not a valid reduction") + + +def cumulative_link_loss( + y_pred: torch.Tensor, + y_true: torch.Tensor, + reduction: str = "mean", + class_weights: torch.Tensor | None = None, +) -> torch.Tensor: + """Calculates the negative log likelihood using the logistic cumulative link function. + + See "On the consistency of ordinal regression methods", Pedregosa et. al. for more + details. While this paper is not the first to introduce this, it is the only one + that I could find that was easily readable outside of paywalls. + + Parameters + ---------- + y_pred : torch.Tensor, [batch_size, num_classes] + Predicted target class probabilities. float dtype. + y_true : torch.Tensor, [batch_size, 1] + True target classes. long dtype. + reduction : str + Method for reducing the loss. Options include 'mean', 'none', and 'sum'. + class_weights : torch.Tensor, [num_classes] optional (default=None) + An array of weights for each class. If included, then for each sample, look up + the true class and multiply that sample's loss by the weight in this array. + + Returns: + ------- + loss: torch.Tensor + + """ + eps = 1e-15 + likelihoods = torch.clamp(torch.gather(y_pred, 1, y_true), eps, 1 - eps) + neg_log_likelihood = -torch.log(likelihoods) + + if class_weights is not None: + neg_log_likelihood *= class_weights[y_true] + + loss = _reduction(neg_log_likelihood, reduction) + return loss + + +class CumulativeLinkLoss(nn.Module): + """Module form of cumulative_link_loss() loss function. + + Parameters + ---------- + reduction : str + Method for reducing the loss. Options include 'mean', 'none', and 'sum'. + class_weights : np.ndarray, [num_classes] optional (default=None) + An array of weights for each class. If included, then for each sample, look up + the true class and multiply that sample's loss by the weight in this array. + + """ + + def __init__( + self, + reduction: str = "mean", + class_weights: torch.Tensor | None = None, + ) -> None: + super().__init__() + self.class_weights = class_weights + self.reduction = reduction + + def forward(self, y_pred: torch.Tensor, y_true: torch.Tensor) -> torch.Tensor: + return cumulative_link_loss( + y_pred, y_true, reduction=self.reduction, class_weights=self.class_weights + ) From 44c981aece6f82ee3c818bd61e2b6da26c7d237b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 7 May 2026 14:06:12 +0000 Subject: [PATCH 14/54] feat: modeling --- ml/modeling/README.md | 30 ------------- ml/modeling/__init__.py | 16 +++++++ ml/modeling/backbone/__init__.py | 4 ++ ml/modeling/backbone/vgg16.py | 6 +++ ml/modeling/classification_head.py | 15 +++++++ ml/modeling/linear_probe.py | 12 +++++ ml/modeling/normalization.py | 12 +++++ ml/modeling/ordinal_regression_head.py | 61 ++++++++++++++++++++++++++ ml/modeling/regression_head.py | 14 ++++++ 9 files changed, 140 insertions(+), 30 deletions(-) delete mode 100644 ml/modeling/README.md create mode 100644 ml/modeling/backbone/__init__.py create mode 100644 ml/modeling/backbone/vgg16.py create mode 100644 ml/modeling/classification_head.py create mode 100644 ml/modeling/linear_probe.py create mode 100644 ml/modeling/normalization.py create mode 100644 ml/modeling/ordinal_regression_head.py create mode 100644 ml/modeling/regression_head.py diff --git a/ml/modeling/README.md b/ml/modeling/README.md deleted file mode 100644 index 5456c5a2..00000000 --- a/ml/modeling/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# Modeling - -In this folder you should put all your model and loss components. Common structure is as follows: - -``` -modeling -├── backbone -│ ├── vgg16.py -│ ├── resnet.py -│ └── __init__.py -├── criterion.py -├── decode_head.py -├── metrics -│ ├── vgg16.py -│ ├── resnet.py -│ └── __init__.py -└── __init__.py -``` - - -### Structure Explanation - -- **backbone**: Contains the backbone network architectures like VGG16, ResNet, etc. -- **criterion.py**: Contains the loss functions. -- **decode_head.py**: Contains the decoding heads for the models. -- **metrics**: Contains the metric components for model evaluation, such as accuracy, precision, etc. - -### Note - -You can add a `metrics` folder to store all your metric components. However, if your evaluation logic becomes too complex, it is recommended to move it to an `evaluation` folder at the project level. diff --git a/ml/modeling/__init__.py b/ml/modeling/__init__.py index e69de29b..744b0f6a 100644 --- a/ml/modeling/__init__.py +++ b/ml/modeling/__init__.py @@ -0,0 +1,16 @@ +from ml.modeling.classification_head import ClassificationHead +from ml.modeling.normalization import ( + power_normalization, + sigmoid_normalization, +) +from ml.modeling.ordinal_regression_head import LogisticCumulativeLink +from ml.modeling.regression_head import RegressionHead + + +__all__ = [ + "ClassificationHead", + "LogisticCumulativeLink", + "RegressionHead", + "power_normalization", + "sigmoid_normalization", +] diff --git a/ml/modeling/backbone/__init__.py b/ml/modeling/backbone/__init__.py new file mode 100644 index 00000000..c7b33cab --- /dev/null +++ b/ml/modeling/backbone/__init__.py @@ -0,0 +1,4 @@ +from ml.modeling.backbone.vgg16 import vgg16 + + +__all__ = ["vgg16"] diff --git a/ml/modeling/backbone/vgg16.py b/ml/modeling/backbone/vgg16.py new file mode 100644 index 00000000..60639c35 --- /dev/null +++ b/ml/modeling/backbone/vgg16.py @@ -0,0 +1,6 @@ +import torchvision +from torch import nn + + +def vgg16(weights: str | None = None) -> nn.Module: + return torchvision.models.vgg16(weights=weights).features diff --git a/ml/modeling/classification_head.py b/ml/modeling/classification_head.py new file mode 100644 index 00000000..65970007 --- /dev/null +++ b/ml/modeling/classification_head.py @@ -0,0 +1,15 @@ +from torch import Tensor, nn + + +class ClassificationHead(nn.Module): + def __init__(self) -> None: + super().__init__() + self.global_pool = nn.AdaptiveAvgPool2d(1) + self.proj = nn.Linear(512, 5) + + def forward(self, x: Tensor) -> Tensor: + x = self.global_pool(x) # (B, C, 1, 1) + x = x.flatten(start_dim=-3, end_dim=-1) # (B, C) + x = self.proj(x) + x = x.softmax(dim=-1) + return x diff --git a/ml/modeling/linear_probe.py b/ml/modeling/linear_probe.py new file mode 100644 index 00000000..f4907ca3 --- /dev/null +++ b/ml/modeling/linear_probe.py @@ -0,0 +1,12 @@ +from torch import Tensor, nn + + +class LinearProbe(nn.Module): + def __init__(self) -> None: + super().__init__() + self.proj = nn.Linear(1536, 5) + + def forward(self, x: Tensor) -> Tensor: + x = self.proj(x) + x = x.softmax(dim=-1) + return x diff --git a/ml/modeling/normalization.py b/ml/modeling/normalization.py new file mode 100644 index 00000000..238ad110 --- /dev/null +++ b/ml/modeling/normalization.py @@ -0,0 +1,12 @@ +import torch +from torch import Tensor + + +def sigmoid_normalization(x: Tensor) -> Tensor: + return torch.softmax(x.sigmoid(), dim=1) + + +def power_normalization(x: Tensor, power: float) -> Tensor: + x -= x.min() + x = torch.pow(x, power) + return x / (x.max() + 1e-6) diff --git a/ml/modeling/ordinal_regression_head.py b/ml/modeling/ordinal_regression_head.py new file mode 100644 index 00000000..a86327a8 --- /dev/null +++ b/ml/modeling/ordinal_regression_head.py @@ -0,0 +1,61 @@ +from typing import Literal + +import torch +from torch import nn + + +# credit: +# https://github.com/EthanRosenthal/spacecutter/blob/master/spacecutter/models.py + + +class LogisticCumulativeLink(nn.Module): + """Converts a single number to probabilities of belonging to each class. + + Parameters + ---------- + num_classes : int + Number of ordered classes to partition the odds into. + init_cutpoints : Literal["ordered", "random"], default="ordered" + How to initialize the cutpoints of the model. Valid values are + - ordered : cutpoints are initialized to halfway between each class. + - random : cutpoints are initialized with random values. + step_cutpoints : int, default=4 + The step size between cutpoints when `init_cutpoints` is "ordered". + """ + + def __init__( + self, + num_classes: int, + init_cutpoints: Literal["ordered", "random"] = "ordered", + step_cutpoints: int = 4, + ) -> None: + assert num_classes > 2, "Only use this model if you have 3 or more classes" + super().__init__() + + self.num_classes = num_classes + self.init_cutpoints = init_cutpoints + match init_cutpoints: + case "ordered": + num_cutpoints = self.num_classes - 1 + cutpoints = torch.arange(num_cutpoints).float() * step_cutpoints + cutpoints -= (num_cutpoints - 1) * step_cutpoints / 2 + self.cutpoints = nn.Parameter(cutpoints) + case "random": + cutpoints = torch.rand(self.num_classes - 1).sort()[0] + self.cutpoints = nn.Parameter(cutpoints) + case _: + raise ValueError(f"{init_cutpoints} is not a valid init_cutpoints type") + + def forward(self, x: torch.Tensor) -> torch.Tensor: + """Converts a single number to probabilities of belonging to each class. + + Equation (11) from + "On the consistency of ordinal regression methods", Pedregosa et. al. + """ + sigmoids = torch.sigmoid(self.cutpoints - x) + link_mat = sigmoids[:, 1:] - sigmoids[:, :-1] + link_mat = torch.cat( + (sigmoids[:, [0]], link_mat, (1 - sigmoids[:, [-1]])), + dim=1, + ) + return link_mat diff --git a/ml/modeling/regression_head.py b/ml/modeling/regression_head.py new file mode 100644 index 00000000..61ecbca6 --- /dev/null +++ b/ml/modeling/regression_head.py @@ -0,0 +1,14 @@ +from torch import Tensor, nn + + +class RegressionHead(nn.Module): + def __init__(self) -> None: + super().__init__() + self.global_pool = nn.AdaptiveAvgPool2d(1) + self.proj = nn.Linear(512, 1) + + def forward(self, x: Tensor) -> Tensor: + x = self.global_pool(x) # (B, C, 1, 1) + x = x.flatten(start_dim=-3, end_dim=-1) # (B, C) + x = self.proj(x) + return x From b615d2fcb3c98fcf43b7556ac013f4072376d60a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 7 May 2026 14:06:34 +0000 Subject: [PATCH 15/54] feat: ml --- ml/__main__.py | 3 +- ml/classification.py | 64 +++++++++++++++++++ ml/mil.py | 134 ++++++++++++++++++++++++++++++++++++++ ml/ordered_regression.py | 135 +++++++++++++++++++++++++++++++++++++++ ml/project_name_model.py | 54 ---------------- ml/typing.py | 23 +++++-- 6 files changed, 351 insertions(+), 62 deletions(-) create mode 100644 ml/classification.py create mode 100644 ml/mil.py create mode 100644 ml/ordered_regression.py delete mode 100644 ml/project_name_model.py diff --git a/ml/__main__.py b/ml/__main__.py index 6252c563..16220fd2 100644 --- a/ml/__main__.py +++ b/ml/__main__.py @@ -7,7 +7,6 @@ from rationai.mlkit import Trainer, autolog from ml.data import DataModule -from ml.project_name_model import ProjectNameModel OmegaConf.register_new_resolver( @@ -25,7 +24,7 @@ def main(config: DictConfig, logger: Logger | None) -> None: _recursive_=False, # to avoid instantiating all the datasets _target_=DataModule, ) - model = hydra.utils.instantiate(config.model, _target_=ProjectNameModel) + model = hydra.utils.instantiate(config.model) trainer = hydra.utils.instantiate(config.trainer, _target_=Trainer, logger=logger) getattr(trainer, config.mode)(model, datamodule=data, ckpt_path=config.checkpoint) diff --git a/ml/classification.py b/ml/classification.py new file mode 100644 index 00000000..e7a3edc5 --- /dev/null +++ b/ml/classification.py @@ -0,0 +1,64 @@ +from lightning import LightningModule +from rationai.mlkit.metrics import LazyMetricDict +from torch import Tensor, nn +from torch.optim.adam import Adam +from torch.optim.optimizer import Optimizer +from torchmetrics import AUROC, Accuracy, MetricCollection, Precision, Recall + +from ml.modeling import ClassificationHead +from ml.typing import Output, TilesInput + + +class Classification(LightningModule): + def __init__(self, backbone: nn.Module) -> None: + super().__init__() + self.backbone = backbone + self.decode_head = ClassificationHead() + self.criterion = nn.CrossEntropyLoss() + + self.val_metrics = MetricCollection( + { + "AUC": AUROC("binary"), + "accuracy": Accuracy("binary"), + "precision": Precision("binary"), + "recall": Recall("binary"), + }, + prefix="validation/", + ) + + self.test_metrics = LazyMetricDict(self.val_metrics.clone(prefix="test/")) + + def forward(self, x: TilesInput) -> Output: + features = self.backbone(x) + return self.decode_head(features) + + def training_step(self, batch: TilesInput) -> Tensor: + inputs, targets, _ = batch + outputs = self(inputs) + + loss = self.criterion(outputs, targets) + self.log("train/loss", loss, on_step=True, prog_bar=True) + + return loss + + def validation_step(self, batch: TilesInput) -> None: + inputs, targets, _ = batch + outputs = self(inputs) + + loss = self.criterion(outputs, targets) + self.log("validation/loss", loss, on_epoch=True, prog_bar=True) + + self.val_metrics.update(outputs, targets) + self.log_dict(self.val_metrics, on_epoch=True) + + def test_step(self, batch: TilesInput) -> None: + inputs, targets, metadata = batch + outputs = self(inputs) + for output, target, slide in zip( + outputs, targets, metadata["slide_name"], strict=False + ): + self.test_metrics.update(output, target, key=slide) + self.log_dict(self.test_metrics, on_epoch=True) + + def configure_optimizers(self) -> Optimizer: + return Adam(self.parameters(), lr=0.0001) diff --git a/ml/mil.py b/ml/mil.py new file mode 100644 index 00000000..61af5b80 --- /dev/null +++ b/ml/mil.py @@ -0,0 +1,134 @@ +from copy import deepcopy +from typing import cast + +import torch +from lightning import LightningModule +from torch import Tensor, nn +from torch.optim.adam import Adam +from torch.optim.optimizer import Optimizer +from torchmetrics import Metric, MetricCollection +from torchmetrics.classification import ( + AUROC, + Accuracy, + CohenKappa, + Precision, + Recall, + Specificity, +) + +from ml.modeling import sigmoid_normalization +from ml.typing import BagsInput, BagsPredictInput, Output + + +class MILBase(LightningModule): + def __init__( + self, foundation: str, num_classes: int, lr: float | None = None + ) -> None: + super().__init__() + match foundation: + case "prov-gigapath" | "uni2": + input_dim = 1536 + case "uni": + input_dim = 1024 + case "virchow" | "virchow2": + input_dim = 2560 + case _: + raise ValueError(f"Unknown foundation model: {foundation}") + + self.encoder = nn.Identity() + self.attention = nn.Sequential( + nn.Linear(input_dim, 512), + nn.Tanh(), + nn.Linear(512, 1), + ) + self.classifier = nn.Linear(input_dim, num_classes) + self.criterion = ( + nn.CrossEntropyLoss() if num_classes > 1 else nn.BCEWithLogitsLoss() + ) + self.activation = nn.Sigmoid() if num_classes == 1 else nn.Softmax(dim=-1) + self.lr = lr + + task = "binary" if num_classes == 1 else "multiclass" + metrics: dict[str, Metric | MetricCollection] = { + "AUC": AUROC(task=task, num_classes=num_classes, average="none"), + "accuracy": Accuracy(task=task, num_classes=num_classes), + "precision": Precision(task=task, num_classes=num_classes, average="none"), + "recall": Recall(task=task, num_classes=num_classes, average="none"), + "specificity": Specificity( + task=task, num_classes=num_classes, average="none" + ), + "kappa": CohenKappa(task=task, num_classes=num_classes), + } + + self.train_metrics = MetricCollection(deepcopy(metrics), prefix="train/") + self.val_metrics = MetricCollection(deepcopy(metrics), prefix="validation/") + self.test_metrics = MetricCollection(deepcopy(metrics), prefix="test/") + + def forward(self, x: Tensor) -> Output: + # x has shape (batch_size, num_tiles_padded, embedding_dim) + x = self.encoder(x) + attention_weights = sigmoid_normalization(self.attention(x)) + mask = (x.abs() > 1e-6).any(dim=-1, keepdim=True).float() + attention_weights = attention_weights * mask + attention_weights = attention_weights / attention_weights.sum( + dim=1, keepdim=True + ) + x = self.classifier(x) + x = torch.sum(attention_weights * x, dim=1) + + return x.squeeze(-1) + + def training_step(self, batch: BagsInput) -> Tensor: + bags, labels, _ = batch + + outputs = self(bags) + loss = self.criterion(outputs, labels) + self.log("train/loss", loss, on_step=True, prog_bar=True, batch_size=len(bags)) + + self.train_metrics.update(self.activation(outputs), labels) + self.log_dict( + self.train_metrics, on_epoch=True, on_step=False, batch_size=len(bags) + ) + + return loss + + def validation_step(self, batch: BagsInput) -> None: + bags, labels, _ = batch + + outputs = self(bags) + loss = self.criterion(outputs, labels) + self.log("validation/loss", loss, prog_bar=True, batch_size=len(bags)) + + self.val_metrics.update(self.activation(outputs), labels) + self.log_dict( + self.val_metrics, on_epoch=True, on_step=False, batch_size=len(bags) + ) + + def test_step(self, batch: BagsInput) -> None: + bags, labels, _ = batch + + outputs = self(bags) + + self.test_metrics.update(self.activation(outputs), labels) + self.log_dict( + self.test_metrics, on_epoch=True, on_step=False, batch_size=len(bags) + ) + + return outputs + + def predict_step(self, batch: BagsPredictInput) -> Output: + return self.activation(self(batch[0])) + + def configure_optimizers(self) -> Optimizer: + if self.lr is None: + raise ValueError("Learning rate must be set for training.") + return Adam(self.parameters(), lr=self.lr) + + def log_dict(self, metrics: MetricCollection, *args, **kwargs) -> None: + for name, result in metrics.compute().items(): + result = cast("Tensor", result) + if result.shape: + for i, value in enumerate(result): + self.log(f"{name}/{i}", value, *args, **kwargs) + else: + self.log(name, result, *args, **kwargs) diff --git a/ml/ordered_regression.py b/ml/ordered_regression.py new file mode 100644 index 00000000..348baa9b --- /dev/null +++ b/ml/ordered_regression.py @@ -0,0 +1,135 @@ +from collections.abc import Mapping +from typing import cast + +from lightning import LightningModule +from rationai.mlkit.metrics import ( + AggregatedMetricCollection, + MaxAggregator, + MeanAggregator, +) +from torch import Tensor +from torch.nn import Module, ModuleDict +from torch.optim.adam import Adam +from torch.optim.optimizer import Optimizer +from torchmetrics import Metric, MetricCollection +from torchmetrics.classification import ( + MulticlassAccuracy, + MulticlassAUROC, + MulticlassPrecision, + MulticlassRecall, +) + +from ml.loss import CumulativeLinkLoss +from ml.modeling import LogisticCumulativeLink +from ml.modeling.regression_head import RegressionHead +from ml.typing import MetadataTilesBatch, Output, TilesInput, TilesPredictInput + + +class OrderedRegression(LightningModule): + def __init__(self, backbone: Module, lr: float) -> None: + super().__init__() + self.backbone = backbone + self.n_classes = 5 + self.decode_head = RegressionHead() + self.cumulative_link = LogisticCumulativeLink(num_classes=self.n_classes) + self.criterion = CumulativeLinkLoss() + self.lr = lr + + metrics: dict[str, Metric] = { + "AUC": MulticlassAUROC(num_classes=self.n_classes, average=None), + "accuracy": MulticlassAccuracy(num_classes=self.n_classes), + "precision": MulticlassPrecision(num_classes=self.n_classes, average=None), + "recall": MulticlassRecall(num_classes=self.n_classes, average=None), + } + + val_metrics: dict[str, MetricCollection] = { + "tiles_all": MetricCollection(metrics, prefix="validation/tiles/"), + "slide_max": AggregatedMetricCollection( + metrics, + aggregator=MaxAggregator(), + prefix="validation/scenes/max/", + ), + "slide_mean": AggregatedMetricCollection( + metrics, + aggregator=MeanAggregator(), + prefix="validation/slides/mean/", + ), + } + + test_metrics = { + name: metric.clone( + prefix=cast("str", metric.prefix).replace("validation", "test") + ) + for name, metric in val_metrics.items() + } + + self.val_metrics = cast("dict[str, MetricCollection]", ModuleDict(val_metrics)) + self.test_metrics = cast( + "dict[str, MetricCollection]", ModuleDict(test_metrics) + ) + + def forward(self, x: Tensor) -> Output: + x = self.backbone(x) + x = self.decode_head(x) + x = self.cumulative_link(x) + return x + + def training_step(self, batch: TilesInput) -> Tensor: + inputs, targets, _ = batch + outputs = self(inputs) + + loss = self.criterion(outputs, targets) + self.log("train/loss", loss, on_step=True, prog_bar=True) + + return loss + + def validation_step(self, batch: TilesInput) -> None: + inputs, targets, metadata = batch + outputs = self(inputs) + + loss = self.criterion(outputs, targets) + self.log("validation/loss", loss, on_epoch=True, prog_bar=True) + + targets = targets.reshape(-1) + self.update_metrics(self.val_metrics, outputs, targets, metadata) + self.log_metrics(self.val_metrics) + + def test_step(self, batch: TilesInput) -> None: + inputs, targets, metadata = batch + outputs = self(inputs) + + targets = targets.reshape(-1) + self.update_metrics(self.test_metrics, outputs, targets, metadata) + self.log_metrics(self.test_metrics) + + def predict_step(self, batch: TilesPredictInput) -> Output: + return self(batch[0]) + + def configure_optimizers(self) -> Optimizer: + return Adam(self.parameters(), lr=self.lr) + + def log_dict(self, dictionary: MetricCollection, *args, **kwargs) -> None: + for name, metric in dictionary.items(): + result = cast("Tensor", metric.compute()) + if result.shape: + for i, value in enumerate(result): + self.log(f"{name}/{i}", value, *args, **kwargs) + else: + self.log(name, result, *args, **kwargs) + + def update_metrics( + self, + metrics: Mapping[str, MetricCollection], + outputs: Tensor, + targets: Tensor, + metadata: MetadataTilesBatch, + ) -> None: + for name, metric in metrics.items(): + if "slide" in name: + metric.update(outputs, targets, key=metadata["slide_name"]) + else: + metric.update(outputs, targets) + + def log_metrics(self, metrics: dict[str, MetricCollection]) -> None: + for metric in metrics.values(): + self.log_dict(metric, on_epoch=True) diff --git a/ml/project_name_model.py b/ml/project_name_model.py deleted file mode 100644 index 403260d9..00000000 --- a/ml/project_name_model.py +++ /dev/null @@ -1,54 +0,0 @@ -from lightning import LightningModule -from torch import Tensor, nn -from torch.optim.optimizer import Optimizer -from torchmetrics import MetricCollection - -from ml.typing import Input, Outputs - - -class ProjectNameModel(LightningModule): - def __init__(self, backbone: nn.Module, decode_head: nn.Module) -> None: - super().__init__() - self.backbone = backbone - self.decode_head = decode_head - self.criterion = ... # TODO add your loss function - - self.val_metrics = MetricCollection( - {...}, # TODO add metrics you want to compute - prefix="validation/", - ) - - self.test_mterics = self.val_metrics.clone(prefix="test/") - - def forward(self, x: Input) -> Outputs: - features = self.backbone(x) - return self.decode_head(features) - - def training_step(self, batch: Input) -> Tensor: - inputs, targets = batch - outputs = self(inputs) - - loss = self.criterion(outputs, targets) - self.log("train/loss", loss, on_step=True, prog_bar=True) - - return loss - - def validation_step(self, batch: Input) -> None: - inputs, targets = batch - outputs = self(inputs) - - loss = self.criterion(outputs, targets) - self.log("validation/loss", loss, on_epoch=True, prog_bar=True) - - self.val_metrics.update(outputs, targets) - self.log_dict(self.val_metrics, on_epoch=True) - - def test_step(self, batch: Input) -> None: - inputs, targets = batch - outputs = self(inputs) - self.test_metrics.update(outputs, targets) - self.log_dict(self.test_metrics, on_epoch=True) - - def configure_optimizers(self) -> Optimizer: - # TODO add your optimizer - ... diff --git a/ml/typing.py b/ml/typing.py index 29f26723..edd3b020 100644 --- a/ml/typing.py +++ b/ml/typing.py @@ -6,7 +6,11 @@ class Metadata(TypedDict): - slide_id: str + slide_name: str + + +class MetadataBatch(TypedDict): + slide_name: list[str] class MetadataTiles(Metadata): @@ -14,21 +18,28 @@ class MetadataTiles(Metadata): y: int +class MetadataTilesBatch(MetadataBatch): + x: Tensor + y: Tensor + + TilesSample: TypeAlias = tuple[Tensor, Tensor, MetadataTiles] TilesPredictSample: TypeAlias = tuple[Tensor, MetadataTiles] +TilesInput: TypeAlias = tuple[Tensor, Tensor, MetadataTilesBatch] +TilesPredictInput: TypeAlias = tuple[Tensor, MetadataTilesBatch] -class MetadataEmbeddings(Metadata): - x: int - y: int - +MetadataEmbeddings: TypeAlias = MetadataTiles +MetadataEmbeddingsBatch: TypeAlias = MetadataTilesBatch EmbeddingsSample: TypeAlias = tuple[Tensor, Tensor, MetadataEmbeddings] EmbeddingsPredictSample: TypeAlias = tuple[Tensor, MetadataEmbeddings] +EmbeddingsInput: TypeAlias = tuple[Tensor, Tensor, MetadataEmbeddingsBatch] +EmbeddingsPredictInput: TypeAlias = tuple[Tensor, MetadataEmbeddingsBatch] + class MetadataBags(Metadata): - slide_name: str slide_path: Path level: int tile_extent_x: int From 81e8eb036d81404d28e277dd210223fa133eb22e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 7 May 2026 14:06:52 +0000 Subject: [PATCH 16/54] feat: postprocessing WIP --- postprocessing/ensembling.py | 1 + postprocessing/markov_chain_confidence.py | 1 + 2 files changed, 2 insertions(+) create mode 100644 postprocessing/ensembling.py create mode 100644 postprocessing/markov_chain_confidence.py diff --git a/postprocessing/ensembling.py b/postprocessing/ensembling.py new file mode 100644 index 00000000..46409041 --- /dev/null +++ b/postprocessing/ensembling.py @@ -0,0 +1 @@ +# TODO diff --git a/postprocessing/markov_chain_confidence.py b/postprocessing/markov_chain_confidence.py new file mode 100644 index 00000000..46409041 --- /dev/null +++ b/postprocessing/markov_chain_confidence.py @@ -0,0 +1 @@ +# TODO From 773e4dfcf0b44fe2a03614e6e2e9fa87821f092a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 7 May 2026 16:47:30 +0200 Subject: [PATCH 17/54] feat: ensembling confs --- configs/base.yaml | 2 ++ configs/postprocessing.yaml | 8 ++++++++ configs/postprocessing/ensembling.yaml | 9 +++++++++ configs/predictions/nancy_high/ftn.yaml | 9 +++++++++ configs/predictions/nancy_high/ikem.yaml | 8 ++++++++ configs/predictions/nancy_high/knl_patos.yaml | 9 +++++++++ configs/predictions/nancy_low/ftn.yaml | 9 +++++++++ configs/predictions/nancy_low/ikem.yaml | 8 ++++++++ configs/predictions/nancy_low/knl_patos.yaml | 9 +++++++++ configs/predictions/neutrophils/ftn.yaml | 9 +++++++++ configs/predictions/neutrophils/ikem.yaml | 8 ++++++++ configs/predictions/neutrophils/knl_patos.yaml | 9 +++++++++ configs/preprocessing.yaml | 2 -- 13 files changed, 97 insertions(+), 2 deletions(-) create mode 100644 configs/postprocessing.yaml create mode 100644 configs/postprocessing/ensembling.yaml create mode 100644 configs/predictions/nancy_high/ftn.yaml create mode 100644 configs/predictions/nancy_high/ikem.yaml create mode 100644 configs/predictions/nancy_high/knl_patos.yaml create mode 100644 configs/predictions/nancy_low/ftn.yaml create mode 100644 configs/predictions/nancy_low/ikem.yaml create mode 100644 configs/predictions/nancy_low/knl_patos.yaml create mode 100644 configs/predictions/neutrophils/ftn.yaml create mode 100644 configs/predictions/neutrophils/ikem.yaml create mode 100644 configs/predictions/neutrophils/knl_patos.yaml diff --git a/configs/base.yaml b/configs/base.yaml index 94c880e7..2bd21794 100644 --- a/configs/base.yaml +++ b/configs/base.yaml @@ -3,5 +3,7 @@ defaults: - logger: mlflow - _self_ +project_dir: /mnt/projects/inflammatory_bowel_disease/ulcerative_colitis + metadata: experiment_name: Ulcerative Colitis diff --git a/configs/postprocessing.yaml b/configs/postprocessing.yaml new file mode 100644 index 00000000..5c12b052 --- /dev/null +++ b/configs/postprocessing.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - base + - _self_ + +dataset: ??? +predictions: ??? diff --git a/configs/postprocessing/ensembling.yaml b/configs/postprocessing/ensembling.yaml new file mode 100644 index 00000000..60919b65 --- /dev/null +++ b/configs/postprocessing/ensembling.yaml @@ -0,0 +1,9 @@ +# @package _global_ + +folds: ["1/5", "2/5", "3/5", "4/5", "5/5"] + +metadata: + run_name: "Ensembling: ${dataset.institution}" + description: Slide-level ensembling for ${dataset.institution} + hyperparams: + folds: ${folds} diff --git a/configs/predictions/nancy_high/ftn.yaml b/configs/predictions/nancy_high/ftn.yaml new file mode 100644 index 00000000..ed0878ed --- /dev/null +++ b/configs/predictions/nancy_high/ftn.yaml @@ -0,0 +1,9 @@ +mlflow_uris: + predictions: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... + diff --git a/configs/predictions/nancy_high/ikem.yaml b/configs/predictions/nancy_high/ikem.yaml new file mode 100644 index 00000000..44cd6ab4 --- /dev/null +++ b/configs/predictions/nancy_high/ikem.yaml @@ -0,0 +1,8 @@ +mlflow_uris: + predictions: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... diff --git a/configs/predictions/nancy_high/knl_patos.yaml b/configs/predictions/nancy_high/knl_patos.yaml new file mode 100644 index 00000000..ed0878ed --- /dev/null +++ b/configs/predictions/nancy_high/knl_patos.yaml @@ -0,0 +1,9 @@ +mlflow_uris: + predictions: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... + diff --git a/configs/predictions/nancy_low/ftn.yaml b/configs/predictions/nancy_low/ftn.yaml new file mode 100644 index 00000000..ed0878ed --- /dev/null +++ b/configs/predictions/nancy_low/ftn.yaml @@ -0,0 +1,9 @@ +mlflow_uris: + predictions: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... + diff --git a/configs/predictions/nancy_low/ikem.yaml b/configs/predictions/nancy_low/ikem.yaml new file mode 100644 index 00000000..44cd6ab4 --- /dev/null +++ b/configs/predictions/nancy_low/ikem.yaml @@ -0,0 +1,8 @@ +mlflow_uris: + predictions: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... diff --git a/configs/predictions/nancy_low/knl_patos.yaml b/configs/predictions/nancy_low/knl_patos.yaml new file mode 100644 index 00000000..ed0878ed --- /dev/null +++ b/configs/predictions/nancy_low/knl_patos.yaml @@ -0,0 +1,9 @@ +mlflow_uris: + predictions: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... + diff --git a/configs/predictions/neutrophils/ftn.yaml b/configs/predictions/neutrophils/ftn.yaml new file mode 100644 index 00000000..ed0878ed --- /dev/null +++ b/configs/predictions/neutrophils/ftn.yaml @@ -0,0 +1,9 @@ +mlflow_uris: + predictions: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... + diff --git a/configs/predictions/neutrophils/ikem.yaml b/configs/predictions/neutrophils/ikem.yaml new file mode 100644 index 00000000..44cd6ab4 --- /dev/null +++ b/configs/predictions/neutrophils/ikem.yaml @@ -0,0 +1,8 @@ +mlflow_uris: + predictions: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... diff --git a/configs/predictions/neutrophils/knl_patos.yaml b/configs/predictions/neutrophils/knl_patos.yaml new file mode 100644 index 00000000..ed0878ed --- /dev/null +++ b/configs/predictions/neutrophils/knl_patos.yaml @@ -0,0 +1,9 @@ +mlflow_uris: + predictions: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... + diff --git a/configs/preprocessing.yaml b/configs/preprocessing.yaml index 08a03723..33a4ddf4 100644 --- a/configs/preprocessing.yaml +++ b/configs/preprocessing.yaml @@ -5,5 +5,3 @@ defaults: - _self_ dataset: ??? - -project_dir: /mnt/projects/inflammatory_bowel_disease/ulcerative_colitis From f34c711d85e1f33553b9ffa8a014837c4f07ed87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 7 May 2026 15:10:40 +0000 Subject: [PATCH 18/54] feat: configs --- .../postprocessing/ensembling/ftn.yaml | 6 +++++ .../postprocessing/ensembling/ikem.yaml | 6 +++++ .../postprocessing/ensembling/knl_patos.yaml | 6 +++++ configs/predictions/ftn.yaml | 22 +++++++++++++++++++ configs/predictions/ikem.yaml | 22 +++++++++++++++++++ configs/predictions/knl_patos.yaml | 22 +++++++++++++++++++ configs/predictions/nancy_high/ftn.yaml | 9 -------- configs/predictions/nancy_high/ikem.yaml | 8 ------- configs/predictions/nancy_high/knl_patos.yaml | 9 -------- configs/predictions/nancy_low/ftn.yaml | 9 -------- configs/predictions/nancy_low/ikem.yaml | 8 ------- configs/predictions/nancy_low/knl_patos.yaml | 9 -------- configs/predictions/neutrophils/ftn.yaml | 9 -------- configs/predictions/neutrophils/ikem.yaml | 8 ------- .../predictions/neutrophils/knl_patos.yaml | 9 -------- 15 files changed, 84 insertions(+), 78 deletions(-) create mode 100644 configs/experiment/postprocessing/ensembling/ftn.yaml create mode 100644 configs/experiment/postprocessing/ensembling/ikem.yaml create mode 100644 configs/experiment/postprocessing/ensembling/knl_patos.yaml create mode 100644 configs/predictions/ftn.yaml create mode 100644 configs/predictions/ikem.yaml create mode 100644 configs/predictions/knl_patos.yaml delete mode 100644 configs/predictions/nancy_high/ftn.yaml delete mode 100644 configs/predictions/nancy_high/ikem.yaml delete mode 100644 configs/predictions/nancy_high/knl_patos.yaml delete mode 100644 configs/predictions/nancy_low/ftn.yaml delete mode 100644 configs/predictions/nancy_low/ikem.yaml delete mode 100644 configs/predictions/nancy_low/knl_patos.yaml delete mode 100644 configs/predictions/neutrophils/ftn.yaml delete mode 100644 configs/predictions/neutrophils/ikem.yaml delete mode 100644 configs/predictions/neutrophils/knl_patos.yaml diff --git a/configs/experiment/postprocessing/ensembling/ftn.yaml b/configs/experiment/postprocessing/ensembling/ftn.yaml new file mode 100644 index 00000000..4e1029a9 --- /dev/null +++ b/configs/experiment/postprocessing/ensembling/ftn.yaml @@ -0,0 +1,6 @@ +# @package _global_ + +defaults: + - /dataset/processed/ftn@dataset + - /predictions/ftn@predictions + - _self_ diff --git a/configs/experiment/postprocessing/ensembling/ikem.yaml b/configs/experiment/postprocessing/ensembling/ikem.yaml new file mode 100644 index 00000000..310d01e8 --- /dev/null +++ b/configs/experiment/postprocessing/ensembling/ikem.yaml @@ -0,0 +1,6 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem@predictions + - _self_ diff --git a/configs/experiment/postprocessing/ensembling/knl_patos.yaml b/configs/experiment/postprocessing/ensembling/knl_patos.yaml new file mode 100644 index 00000000..ccee46d9 --- /dev/null +++ b/configs/experiment/postprocessing/ensembling/knl_patos.yaml @@ -0,0 +1,6 @@ +# @package _global_ + +defaults: + - /dataset/processed/knl_patos@dataset + - /predictions/knl_patos@predictions + - _self_ diff --git a/configs/predictions/ftn.yaml b/configs/predictions/ftn.yaml new file mode 100644 index 00000000..694f3e7f --- /dev/null +++ b/configs/predictions/ftn.yaml @@ -0,0 +1,22 @@ +mlflow_uris: + nancy_high: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... + nancy_low: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... + neutrophils: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... diff --git a/configs/predictions/ikem.yaml b/configs/predictions/ikem.yaml new file mode 100644 index 00000000..694f3e7f --- /dev/null +++ b/configs/predictions/ikem.yaml @@ -0,0 +1,22 @@ +mlflow_uris: + nancy_high: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... + nancy_low: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... + neutrophils: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... diff --git a/configs/predictions/knl_patos.yaml b/configs/predictions/knl_patos.yaml new file mode 100644 index 00000000..694f3e7f --- /dev/null +++ b/configs/predictions/knl_patos.yaml @@ -0,0 +1,22 @@ +mlflow_uris: + nancy_high: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... + nancy_low: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... + neutrophils: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... diff --git a/configs/predictions/nancy_high/ftn.yaml b/configs/predictions/nancy_high/ftn.yaml deleted file mode 100644 index ed0878ed..00000000 --- a/configs/predictions/nancy_high/ftn.yaml +++ /dev/null @@ -1,9 +0,0 @@ -mlflow_uris: - predictions: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... - diff --git a/configs/predictions/nancy_high/ikem.yaml b/configs/predictions/nancy_high/ikem.yaml deleted file mode 100644 index 44cd6ab4..00000000 --- a/configs/predictions/nancy_high/ikem.yaml +++ /dev/null @@ -1,8 +0,0 @@ -mlflow_uris: - predictions: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... diff --git a/configs/predictions/nancy_high/knl_patos.yaml b/configs/predictions/nancy_high/knl_patos.yaml deleted file mode 100644 index ed0878ed..00000000 --- a/configs/predictions/nancy_high/knl_patos.yaml +++ /dev/null @@ -1,9 +0,0 @@ -mlflow_uris: - predictions: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... - diff --git a/configs/predictions/nancy_low/ftn.yaml b/configs/predictions/nancy_low/ftn.yaml deleted file mode 100644 index ed0878ed..00000000 --- a/configs/predictions/nancy_low/ftn.yaml +++ /dev/null @@ -1,9 +0,0 @@ -mlflow_uris: - predictions: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... - diff --git a/configs/predictions/nancy_low/ikem.yaml b/configs/predictions/nancy_low/ikem.yaml deleted file mode 100644 index 44cd6ab4..00000000 --- a/configs/predictions/nancy_low/ikem.yaml +++ /dev/null @@ -1,8 +0,0 @@ -mlflow_uris: - predictions: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... diff --git a/configs/predictions/nancy_low/knl_patos.yaml b/configs/predictions/nancy_low/knl_patos.yaml deleted file mode 100644 index ed0878ed..00000000 --- a/configs/predictions/nancy_low/knl_patos.yaml +++ /dev/null @@ -1,9 +0,0 @@ -mlflow_uris: - predictions: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... - diff --git a/configs/predictions/neutrophils/ftn.yaml b/configs/predictions/neutrophils/ftn.yaml deleted file mode 100644 index ed0878ed..00000000 --- a/configs/predictions/neutrophils/ftn.yaml +++ /dev/null @@ -1,9 +0,0 @@ -mlflow_uris: - predictions: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... - diff --git a/configs/predictions/neutrophils/ikem.yaml b/configs/predictions/neutrophils/ikem.yaml deleted file mode 100644 index 44cd6ab4..00000000 --- a/configs/predictions/neutrophils/ikem.yaml +++ /dev/null @@ -1,8 +0,0 @@ -mlflow_uris: - predictions: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... diff --git a/configs/predictions/neutrophils/knl_patos.yaml b/configs/predictions/neutrophils/knl_patos.yaml deleted file mode 100644 index ed0878ed..00000000 --- a/configs/predictions/neutrophils/knl_patos.yaml +++ /dev/null @@ -1,9 +0,0 @@ -mlflow_uris: - predictions: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... - From d9ed16d5b25a1216d6bfd17bd2cb6182efef65f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 7 May 2026 19:57:34 +0200 Subject: [PATCH 19/54] feat: postprocessing --- .../postprocessing/ensembling/ftn_final.yaml | 8 ++ .../postprocessing/ensembling/ikem_final.yaml | 8 ++ .../ensembling/knl_patos_final.yaml | 8 ++ .../markov_chain_confidence/ftn_entropy.yaml | 8 ++ .../ftn_herfindahl.yaml | 8 ++ .../markov_chain_confidence/ftn_std.yaml | 8 ++ .../ftn_std_final.yaml | 9 ++ .../markov_chain_confidence/ikem_entropy.yaml | 8 ++ .../ikem_herfindahl.yaml | 8 ++ .../markov_chain_confidence/ikem_std.yaml | 8 ++ .../ikem_std_final.yaml | 9 ++ .../knl_patos_entropy.yaml | 8 ++ .../knl_patos_herfindahl.yaml | 8 ++ .../knl_patos_std.yaml | 8 ++ .../knl_patos_std_final.yaml | 9 ++ .../markov_chain_confidence.yaml | 11 ++ postprocessing/__init__.py | 0 postprocessing/ensembling.py | 128 +++++++++++++++++- postprocessing/markov_chain_confidence.py | 99 +++++++++++++- postprocessing/utils.py | 44 ++++++ scripts/postprocessing/ensembling.py | 16 +++ .../postprocessing/markov_chain_confidence.py | 16 +++ 22 files changed, 435 insertions(+), 2 deletions(-) create mode 100644 configs/experiment/postprocessing/ensembling/ftn_final.yaml create mode 100644 configs/experiment/postprocessing/ensembling/ikem_final.yaml create mode 100644 configs/experiment/postprocessing/ensembling/knl_patos_final.yaml create mode 100644 configs/experiment/postprocessing/markov_chain_confidence/ftn_entropy.yaml create mode 100644 configs/experiment/postprocessing/markov_chain_confidence/ftn_herfindahl.yaml create mode 100644 configs/experiment/postprocessing/markov_chain_confidence/ftn_std.yaml create mode 100644 configs/experiment/postprocessing/markov_chain_confidence/ftn_std_final.yaml create mode 100644 configs/experiment/postprocessing/markov_chain_confidence/ikem_entropy.yaml create mode 100644 configs/experiment/postprocessing/markov_chain_confidence/ikem_herfindahl.yaml create mode 100644 configs/experiment/postprocessing/markov_chain_confidence/ikem_std.yaml create mode 100644 configs/experiment/postprocessing/markov_chain_confidence/ikem_std_final.yaml create mode 100644 configs/experiment/postprocessing/markov_chain_confidence/knl_patos_entropy.yaml create mode 100644 configs/experiment/postprocessing/markov_chain_confidence/knl_patos_herfindahl.yaml create mode 100644 configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std.yaml create mode 100644 configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std_final.yaml create mode 100644 configs/postprocessing/markov_chain_confidence.yaml create mode 100644 postprocessing/__init__.py create mode 100644 postprocessing/utils.py create mode 100644 scripts/postprocessing/ensembling.py create mode 100644 scripts/postprocessing/markov_chain_confidence.py diff --git a/configs/experiment/postprocessing/ensembling/ftn_final.yaml b/configs/experiment/postprocessing/ensembling/ftn_final.yaml new file mode 100644 index 00000000..3c52f5e2 --- /dev/null +++ b/configs/experiment/postprocessing/ensembling/ftn_final.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ftn@dataset + - /predictions/ftn@predictions + - _self_ + +folds: [final] diff --git a/configs/experiment/postprocessing/ensembling/ikem_final.yaml b/configs/experiment/postprocessing/ensembling/ikem_final.yaml new file mode 100644 index 00000000..0b5f874d --- /dev/null +++ b/configs/experiment/postprocessing/ensembling/ikem_final.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem@predictions + - _self_ + +folds: [final] diff --git a/configs/experiment/postprocessing/ensembling/knl_patos_final.yaml b/configs/experiment/postprocessing/ensembling/knl_patos_final.yaml new file mode 100644 index 00000000..d9a2c27b --- /dev/null +++ b/configs/experiment/postprocessing/ensembling/knl_patos_final.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/knl_patos@dataset + - /predictions/knl_patos@predictions + - _self_ + +folds: [final] diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ftn_entropy.yaml b/configs/experiment/postprocessing/markov_chain_confidence/ftn_entropy.yaml new file mode 100644 index 00000000..c17c079f --- /dev/null +++ b/configs/experiment/postprocessing/markov_chain_confidence/ftn_entropy.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ftn@dataset + - /predictions/ftn@predictions + - _self_ + +confidence: entropy diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ftn_herfindahl.yaml b/configs/experiment/postprocessing/markov_chain_confidence/ftn_herfindahl.yaml new file mode 100644 index 00000000..89b35d0f --- /dev/null +++ b/configs/experiment/postprocessing/markov_chain_confidence/ftn_herfindahl.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ftn@dataset + - /predictions/ftn@predictions + - _self_ + +confidence: herfindahl diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ftn_std.yaml b/configs/experiment/postprocessing/markov_chain_confidence/ftn_std.yaml new file mode 100644 index 00000000..e0fdbd05 --- /dev/null +++ b/configs/experiment/postprocessing/markov_chain_confidence/ftn_std.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ftn@dataset + - /predictions/ftn@predictions + - _self_ + +confidence: std diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ftn_std_final.yaml b/configs/experiment/postprocessing/markov_chain_confidence/ftn_std_final.yaml new file mode 100644 index 00000000..95cadb97 --- /dev/null +++ b/configs/experiment/postprocessing/markov_chain_confidence/ftn_std_final.yaml @@ -0,0 +1,9 @@ +# @package _global_ + +defaults: + - /dataset/processed/ftn@dataset + - /predictions/ftn@predictions + - _self_ + +confidence: std +folds: [final] diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ikem_entropy.yaml b/configs/experiment/postprocessing/markov_chain_confidence/ikem_entropy.yaml new file mode 100644 index 00000000..10f7c506 --- /dev/null +++ b/configs/experiment/postprocessing/markov_chain_confidence/ikem_entropy.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem@predictions + - _self_ + +confidence: entropy diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ikem_herfindahl.yaml b/configs/experiment/postprocessing/markov_chain_confidence/ikem_herfindahl.yaml new file mode 100644 index 00000000..be93eaae --- /dev/null +++ b/configs/experiment/postprocessing/markov_chain_confidence/ikem_herfindahl.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem@predictions + - _self_ + +confidence: herfindahl diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ikem_std.yaml b/configs/experiment/postprocessing/markov_chain_confidence/ikem_std.yaml new file mode 100644 index 00000000..4a48c463 --- /dev/null +++ b/configs/experiment/postprocessing/markov_chain_confidence/ikem_std.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem@predictions + - _self_ + +confidence: std diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ikem_std_final.yaml b/configs/experiment/postprocessing/markov_chain_confidence/ikem_std_final.yaml new file mode 100644 index 00000000..cc887d2f --- /dev/null +++ b/configs/experiment/postprocessing/markov_chain_confidence/ikem_std_final.yaml @@ -0,0 +1,9 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem@predictions + - _self_ + +confidence: std +folds: [final] diff --git a/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_entropy.yaml b/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_entropy.yaml new file mode 100644 index 00000000..ef9629c9 --- /dev/null +++ b/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_entropy.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/knl_patos@dataset + - /predictions/knl_patos@predictions + - _self_ + +confidence: entropy diff --git a/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_herfindahl.yaml b/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_herfindahl.yaml new file mode 100644 index 00000000..225c711c --- /dev/null +++ b/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_herfindahl.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/knl_patos@dataset + - /predictions/knl_patos@predictions + - _self_ + +confidence: herfindahl diff --git a/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std.yaml b/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std.yaml new file mode 100644 index 00000000..b76293f8 --- /dev/null +++ b/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/knl_patos@dataset + - /predictions/knl_patos@predictions + - _self_ + +confidence: std diff --git a/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std_final.yaml b/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std_final.yaml new file mode 100644 index 00000000..013824d8 --- /dev/null +++ b/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std_final.yaml @@ -0,0 +1,9 @@ +# @package _global_ + +defaults: + - /dataset/processed/knl_patos@dataset + - /predictions/knl_patos@predictions + - _self_ + +confidence: std +folds: [final] diff --git a/configs/postprocessing/markov_chain_confidence.yaml b/configs/postprocessing/markov_chain_confidence.yaml new file mode 100644 index 00000000..f6ee23a0 --- /dev/null +++ b/configs/postprocessing/markov_chain_confidence.yaml @@ -0,0 +1,11 @@ +# @package _global_ + +folds: ["1/5", "2/5", "3/5", "4/5", "5/5"] +confidence: ??? # options: entropy, herfindahl, std + +metadata: + run_name: "Markov Chain Confidence (${confidence}): ${dataset.institution}" + description: Markov chain absorption confidence scores for ${dataset.institution} + hyperparams: + folds: ${folds} + confidence: ${confidence} diff --git a/postprocessing/__init__.py b/postprocessing/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/postprocessing/ensembling.py b/postprocessing/ensembling.py index 46409041..683f8533 100644 --- a/postprocessing/ensembling.py +++ b/postprocessing/ensembling.py @@ -1 +1,127 @@ -# TODO +from pathlib import Path +from tempfile import TemporaryDirectory + +import hydra +import mlflow +import numpy as np +import pandas as pd +from omegaconf import DictConfig +from rationai.mlkit import autolog, with_cli_args +from rationai.mlkit.lightning.loggers import MLFlowLogger +from sklearn.metrics import ( + accuracy_score, + cohen_kappa_score, + confusion_matrix, + precision_score, + recall_score, +) + +from postprocessing.utils import load_folds, load_label_map + + +METRIC_KEYS = ["accuracy", "precision", "recall", "specificity", "cohen_kappa"] + + +def macro_specificity(y_true: np.ndarray, y_pred: np.ndarray) -> float: + cm = confusion_matrix(y_true, y_pred) + total = cm.sum() + specs = [] + for i in range(len(cm)): + tp = cm[i, i] + fp = cm[:, i].sum() - tp + fn = cm[i, :].sum() - tp + tn = total - tp - fp - fn + specs.append(tn / (tn + fp) if (tn + fp) > 0 else 0.0) + return float(np.mean(specs)) + + +def fold_metrics(y_true: np.ndarray, y_pred: np.ndarray) -> dict[str, float]: + return { + "accuracy": accuracy_score(y_true, y_pred), + "precision": precision_score(y_true, y_pred, average="macro", zero_division=0), + "recall": recall_score(y_true, y_pred, average="macro", zero_division=0), + "specificity": macro_specificity(y_true, y_pred), + "cohen_kappa": cohen_kappa_score(y_true, y_pred), + } + + +def log_table_metrics( + label: str, folds: list[str], per_fold: list[dict[str, float]] +) -> None: + for fold, m in zip(folds, per_fold, strict=True): + fold_key = fold.replace("/", "_") + mlflow.log_metrics({f"{label}/fold_{fold_key}/{k}": v for k, v in m.items()}) + means = {k: float(np.mean([m[k] for m in per_fold])) for k in METRIC_KEYS} + mlflow.log_metrics({f"{label}/mean/{k}": v for k, v in means.items()}) + + +FoldData = dict[str, pd.DataFrame] + + +def run_ensembling( + folds: list[str], folds_data: list[FoldData] +) -> tuple[list[dict[str, float]], list[dict[str, float]], pd.DataFrame]: + ens_per_fold: list[dict[str, float]] = [] + hier_per_fold: list[dict[str, float]] = [] + results = [] + + for fold, fold_data in zip(folds, folds_data, strict=True): + neut_df = fold_data["neutrophils"] + nlow_df = fold_data["nancy_low"] + nhigh_df = fold_data["nancy_high"] + + neut_prob = np.array(neut_df["prediction"]) + low_probs = np.array(nlow_df["prediction"].tolist()) + high_probs = np.array(nhigh_df["prediction"].tolist()) + + y_true = neut_df["nancy"].values + low_branch = low_probs[:, :2].argmax(axis=1) + high_branch = high_probs[:, 1:].argmax(axis=1) + 2 + + # Ensembling: soft majority vote across three tasks + route_high_ens = ( + neut_prob + low_probs[:, 2] + high_probs[:, 1:].sum(axis=1) + ) >= 1.5 + ens_pred = np.where(route_high_ens, high_branch, low_branch) + ens_per_fold.append(fold_metrics(y_true, ens_pred)) + + # Hierarchical: neutrophils task alone routes + hier_pred = np.where(neut_prob >= 0.5, high_branch, low_branch) + hier_per_fold.append(fold_metrics(y_true, hier_pred)) + + for slide, yt, ens_yp, hier_yp in zip( + neut_df.index, y_true, ens_pred, hier_pred, strict=True + ): + results.append( + { + "fold": fold, + "slide": slide, + "nancy": int(yt), + "pred_ensembling": int(ens_yp), + "pred_hierarchical": int(hier_yp), + } + ) + + return ens_per_fold, hier_per_fold, pd.DataFrame(results) + + +@with_cli_args(["+postprocessing=ensembling"]) +@hydra.main(config_path="../configs", config_name="postprocessing", version_base=None) +@autolog +def main(config: DictConfig, logger: MLFlowLogger) -> None: + label_map = load_label_map(config.dataset.mlflow_uris.dataset) + folds: list[str] = list(config.folds) + folds_data = load_folds(config.predictions.mlflow_uris, folds, label_map) + ens_per_fold, hier_per_fold, results = run_ensembling(folds, folds_data) + + log_table_metrics("ensembling", folds, ens_per_fold) + log_table_metrics("hierarchical", folds, hier_per_fold) + + with TemporaryDirectory() as tmpdir: + output_path = Path(tmpdir) / "results.csv" + results.to_csv(output_path, index=False) + logger.log_artifact(str(output_path)) + + +if __name__ == "__main__": + main() diff --git a/postprocessing/markov_chain_confidence.py b/postprocessing/markov_chain_confidence.py index 46409041..f874458d 100644 --- a/postprocessing/markov_chain_confidence.py +++ b/postprocessing/markov_chain_confidence.py @@ -1 +1,98 @@ -# TODO +from enum import Enum + +import hydra +import mlflow +import numpy as np +import pandas as pd +from omegaconf import DictConfig +from rationai.mlkit import autolog, with_cli_args +from rationai.mlkit.lightning.loggers import MLFlowLogger + +from postprocessing.utils import load_folds, load_label_map + + +class Confidence(Enum): + ENTROPY = "entropy" + HERFINDAHL = "herfindahl" + STD = "std" + + +def absorption_distribution( + neut_df: pd.DataFrame, nlow_df: pd.DataFrame, nhigh_df: pd.DataFrame +) -> np.ndarray: + low = np.array(nlow_df["prediction"].tolist()) # (n, 3) + high = np.array(nhigh_df["prediction"].tolist()) # (n, 4) + + a = 1.0 - np.array(neut_df["prediction"]) # P(neut -> nancy_low) + b = low[:, 2] # P(nancy_low -> nancy_high) + c = low[:, 0] # P(nancy_low -> NHI-0) + d = high[:, 0] # P(nancy_high -> nancy_low) + e = high[:, 1] # P(nancy_high -> NHI-2) + f = high[:, 2] # P(nancy_high -> NHI-3) + + denom = 1.0 - b * d + flow_low = a + d - a * d # absorption flow factor for NHI 0/1 + flow_high = 1.0 - a * (1.0 - b) # absorption flow factor for NHI 2/3/4 + + return np.column_stack( + [ + c * flow_low / denom, # P(NHI-0) + low[:, 1] * flow_low / denom, # P(NHI-1) + e * flow_high / denom, # P(NHI-2) + f * flow_high / denom, # P(NHI-3) + high[:, 3] * flow_high / denom, # P(NHI-4) + ] + ) + + +def compute_confidence(pi: np.ndarray, mode: Confidence) -> np.ndarray: + match mode: + case Confidence.ENTROPY: + safe = np.where(pi > 0, pi, 1.0) + return 1.0 - (-(pi * np.log(safe) / np.log(5)).sum(axis=1)) + case Confidence.HERFINDAHL: + return (np.square(pi).sum(axis=1) - 0.2) / 0.8 + case Confidence.STD: + classes = np.array([0, 1, 2, 3, 4], dtype=float) + mu = (pi * classes).sum(axis=1, keepdims=True) + var = (pi * (classes - mu) ** 2).sum(axis=1) + return np.maximum(0.0, 1.0 - np.sqrt(var)) + + +@with_cli_args(["+postprocessing=markov_chain_confidence"]) +@hydra.main(config_path="../configs", config_name="postprocessing", version_base=None) +@autolog +def main(config: DictConfig, logger: MLFlowLogger) -> None: + confidence_mode = Confidence(config.confidence) + label_map = load_label_map(config.dataset.mlflow_uris.dataset) + folds: list[str] = list(config.folds) + folds_data = load_folds(config.predictions.mlflow_uris, folds, label_map) + + rows = [] + for fold, fold_data in zip(folds, folds_data, strict=True): + pi = absorption_distribution( + fold_data["neutrophils"], fold_data["nancy_low"], fold_data["nancy_high"] + ) + confidence = compute_confidence(pi, confidence_mode) + + for slide, pi_row, conf in zip( + fold_data["neutrophils"].index, pi, confidence, strict=True + ): + rows.append( + { + "slide": slide, + "fold": fold, + "pi_0": pi_row[0], + "pi_1": pi_row[1], + "pi_2": pi_row[2], + "pi_3": pi_row[3], + "pi_4": pi_row[4], + "confidence": conf, + } + ) + + mlflow.log_table(pd.DataFrame(rows), artifact_file="confidence.json") + + +if __name__ == "__main__": + main() diff --git a/postprocessing/utils.py b/postprocessing/utils.py new file mode 100644 index 00000000..dc3c8675 --- /dev/null +++ b/postprocessing/utils.py @@ -0,0 +1,44 @@ +import json +from collections.abc import Mapping +from pathlib import Path + +import mlflow +import mlflow.artifacts +import pandas as pd + + +TASKS = ["neutrophils", "nancy_low", "nancy_high"] + + +def load_label_map(dataset_uri: str) -> dict[str, int]: + dataset = pd.read_csv(mlflow.artifacts.download_artifacts(dataset_uri), index_col=0) + return {str(k): int(v) for k, v in dataset["nancy"].items()} + + +def load_fold_predictions(uri: str, label_map: dict[str, int]) -> pd.DataFrame: + artifact_path = Path(mlflow.artifacts.download_artifacts(uri)) + if artifact_path.is_dir(): + (artifact_path,) = artifact_path.glob("*.json") + with open(artifact_path) as f: + d = json.load(f) + df = pd.DataFrame(d["data"], columns=d["columns"]) + df["nancy"] = df["slide"].map(label_map) + df = df[df["nancy"].notna()].copy() + df["nancy"] = df["nancy"].astype(int) + return df.set_index("slide") + + +def load_folds( + uris: Mapping[str, Mapping[str, str]], + folds: list[str], + label_map: dict[str, int], +) -> list[dict[str, pd.DataFrame]]: + folds_data = [] + for fold in folds: + fold_dfs = {task: load_fold_predictions(uris[task][fold], label_map) for task in TASKS} + common = fold_dfs[TASKS[0]].index + for df in fold_dfs.values(): + common = common.intersection(df.index) + folds_data.append({k: v.loc[common] for k, v in fold_dfs.items()}) + print(f"Fold {fold}: {len(common)} slides") + return folds_data diff --git a/scripts/postprocessing/ensembling.py b/scripts/postprocessing/ensembling.py new file mode 100644 index 00000000..570b5379 --- /dev/null +++ b/scripts/postprocessing/ensembling.py @@ -0,0 +1,16 @@ +from kube_jobs import submit_job + + +submit_job( + job_name="ulcerative-colitis-ensembling-...", + username=..., + public=False, + cpu=2, + memory="4Gi", + script=[ + "git clone https://github.com/RationAI/ulcerative-colitis.git workdir", + "cd workdir", + "uv sync --frozen", + "uv run -m postprocessing.ensembling +experiment/postprocessing/ensembling=...", + ], +) diff --git a/scripts/postprocessing/markov_chain_confidence.py b/scripts/postprocessing/markov_chain_confidence.py new file mode 100644 index 00000000..99a2eec8 --- /dev/null +++ b/scripts/postprocessing/markov_chain_confidence.py @@ -0,0 +1,16 @@ +from kube_jobs import submit_job + + +submit_job( + job_name="ulcerative-colitis-markov-chain-confidence-...", + username=..., + public=False, + cpu=2, + memory="4Gi", + script=[ + "git clone https://github.com/RationAI/ulcerative-colitis.git workdir", + "cd workdir", + "uv sync --frozen", + "uv run -m postprocessing.markov_chain_confidence +experiment/postprocessing/markov_chain_confidence=...", + ], +) From eec5bb1345497e319be1ee451e82ceef44aa099e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 7 May 2026 17:59:09 +0000 Subject: [PATCH 20/54] chore: format --- postprocessing/utils.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/postprocessing/utils.py b/postprocessing/utils.py index dc3c8675..ca79fa18 100644 --- a/postprocessing/utils.py +++ b/postprocessing/utils.py @@ -35,7 +35,9 @@ def load_folds( ) -> list[dict[str, pd.DataFrame]]: folds_data = [] for fold in folds: - fold_dfs = {task: load_fold_predictions(uris[task][fold], label_map) for task in TASKS} + fold_dfs = { + task: load_fold_predictions(uris[task][fold], label_map) for task in TASKS + } common = fold_dfs[TASKS[0]].index for df in fold_dfs.values(): common = common.intersection(df.index) From b653c460a84d697e123bd7bdeac32fe2cd8e30fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 7 May 2026 18:01:25 +0000 Subject: [PATCH 21/54] feat: mil --- ml/mil.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ml/mil.py b/ml/mil.py index 61af5b80..e162b3f8 100644 --- a/ml/mil.py +++ b/ml/mil.py @@ -20,7 +20,7 @@ from ml.typing import BagsInput, BagsPredictInput, Output -class MILBase(LightningModule): +class MIL(LightningModule): def __init__( self, foundation: str, num_classes: int, lr: float | None = None ) -> None: From 838125a70e3831a9c4657130632f2fa254d94599 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 7 May 2026 20:24:51 +0200 Subject: [PATCH 22/54] feat: ml --- ml/base.py | 129 +++++++++++++++++++++++++++++++++++++++ ml/classification.py | 68 +++------------------ ml/ordered_regression.py | 129 +++------------------------------------ 3 files changed, 147 insertions(+), 179 deletions(-) create mode 100644 ml/base.py diff --git a/ml/base.py b/ml/base.py new file mode 100644 index 00000000..c95f3c0c --- /dev/null +++ b/ml/base.py @@ -0,0 +1,129 @@ +from abc import abstractmethod +from collections.abc import Mapping +from typing import cast + +from lightning import LightningModule +from rationai.mlkit.metrics import ( + AggregatedMetricCollection, + MaxAggregator, + MeanAggregator, +) +from torch import Tensor +from torch.nn import Module, ModuleDict +from torch.optim.adam import Adam +from torch.optim.optimizer import Optimizer +from torchmetrics import MetricCollection +from torchmetrics.classification import ( + MulticlassAccuracy, + MulticlassAUROC, + MulticlassCohenKappa, + MulticlassPrecision, + MulticlassRecall, + MulticlassSpecificity, +) + +from ml.typing import MetadataTilesBatch, Output, TilesInput, TilesPredictInput + + +class BaseModule(LightningModule): + criterion: Module + + def __init__(self, backbone: Module, lr: float) -> None: + super().__init__() + self.backbone = backbone + self.lr = lr + + N_CLASSES = 5 + + def _build_metrics(self) -> None: + metrics = { + "AUC": MulticlassAUROC(num_classes=self.N_CLASSES, average=None), + "accuracy": MulticlassAccuracy(num_classes=self.N_CLASSES), + "precision": MulticlassPrecision(num_classes=self.N_CLASSES, average=None), + "recall": MulticlassRecall(num_classes=self.N_CLASSES, average=None), + "specificity": MulticlassSpecificity( + num_classes=self.N_CLASSES, average=None + ), + "kappa": MulticlassCohenKappa(num_classes=self.N_CLASSES), + } + val_metrics: dict[str, MetricCollection] = { + "tiles_all": MetricCollection(metrics, prefix="validation/tiles/"), + "slide_max": AggregatedMetricCollection( + metrics, + aggregator=MaxAggregator(), + prefix="validation/scenes/max/", + ), + "slide_mean": AggregatedMetricCollection( + metrics, + aggregator=MeanAggregator(), + prefix="validation/slides/mean/", + ), + } + test_metrics = { + name: metric.clone( + prefix=cast("str", metric.prefix).replace("validation", "test") + ) + for name, metric in val_metrics.items() + } + self.val_metrics = cast("dict[str, MetricCollection]", ModuleDict(val_metrics)) + self.test_metrics = cast( + "dict[str, MetricCollection]", ModuleDict(test_metrics) + ) + + @abstractmethod + def forward(self, x: Tensor) -> Output: ... + + def training_step(self, batch: TilesInput) -> Tensor: + inputs, targets, _ = batch + outputs = self(inputs) + loss = self.criterion(outputs, targets) + self.log("train/loss", loss, on_step=True, prog_bar=True) + return loss + + def validation_step(self, batch: TilesInput) -> None: + inputs, targets, metadata = batch + outputs = self(inputs) + loss = self.criterion(outputs, targets) + self.log("validation/loss", loss, on_epoch=True, prog_bar=True) + targets = targets.reshape(-1) + self.update_metrics(self.val_metrics, outputs, targets, metadata) + self.log_metrics(self.val_metrics) + + def test_step(self, batch: TilesInput) -> None: + inputs, targets, metadata = batch + outputs = self(inputs) + targets = targets.reshape(-1) + self.update_metrics(self.test_metrics, outputs, targets, metadata) + self.log_metrics(self.test_metrics) + + def predict_step(self, batch: TilesPredictInput) -> Output: + return self(batch[0]) + + def configure_optimizers(self) -> Optimizer: + return Adam(self.parameters(), lr=self.lr) + + def log_dict(self, dictionary: MetricCollection, *args, **kwargs) -> None: + for name, metric in dictionary.items(): + result = cast("Tensor", metric.compute()) + if result.shape: + for i, value in enumerate(result): + self.log(f"{name}/{i}", value, *args, **kwargs) + else: + self.log(name, result, *args, **kwargs) + + def update_metrics( + self, + metrics: Mapping[str, MetricCollection], + outputs: Tensor, + targets: Tensor, + metadata: MetadataTilesBatch, + ) -> None: + for name, metric in metrics.items(): + if "slide" in name: + metric.update(outputs, targets, key=metadata["slide_name"]) + else: + metric.update(outputs, targets) + + def log_metrics(self, metrics: dict[str, MetricCollection]) -> None: + for metric in metrics.values(): + self.log_dict(metric, on_epoch=True) diff --git a/ml/classification.py b/ml/classification.py index e7a3edc5..bea47958 100644 --- a/ml/classification.py +++ b/ml/classification.py @@ -1,64 +1,16 @@ -from lightning import LightningModule -from rationai.mlkit.metrics import LazyMetricDict from torch import Tensor, nn -from torch.optim.adam import Adam -from torch.optim.optimizer import Optimizer -from torchmetrics import AUROC, Accuracy, MetricCollection, Precision, Recall +from torch.nn import Module -from ml.modeling import ClassificationHead -from ml.typing import Output, TilesInput +from ml.base import BaseModule +from ml.typing import Output -class Classification(LightningModule): - def __init__(self, backbone: nn.Module) -> None: - super().__init__() - self.backbone = backbone - self.decode_head = ClassificationHead() +class Classification(BaseModule): + def __init__(self, backbone: Module, decode_head: Module, lr: float = 1e-4) -> None: + super().__init__(backbone, lr) + self.decode_head = decode_head self.criterion = nn.CrossEntropyLoss() + self._build_metrics() - self.val_metrics = MetricCollection( - { - "AUC": AUROC("binary"), - "accuracy": Accuracy("binary"), - "precision": Precision("binary"), - "recall": Recall("binary"), - }, - prefix="validation/", - ) - - self.test_metrics = LazyMetricDict(self.val_metrics.clone(prefix="test/")) - - def forward(self, x: TilesInput) -> Output: - features = self.backbone(x) - return self.decode_head(features) - - def training_step(self, batch: TilesInput) -> Tensor: - inputs, targets, _ = batch - outputs = self(inputs) - - loss = self.criterion(outputs, targets) - self.log("train/loss", loss, on_step=True, prog_bar=True) - - return loss - - def validation_step(self, batch: TilesInput) -> None: - inputs, targets, _ = batch - outputs = self(inputs) - - loss = self.criterion(outputs, targets) - self.log("validation/loss", loss, on_epoch=True, prog_bar=True) - - self.val_metrics.update(outputs, targets) - self.log_dict(self.val_metrics, on_epoch=True) - - def test_step(self, batch: TilesInput) -> None: - inputs, targets, metadata = batch - outputs = self(inputs) - for output, target, slide in zip( - outputs, targets, metadata["slide_name"], strict=False - ): - self.test_metrics.update(output, target, key=slide) - self.log_dict(self.test_metrics, on_epoch=True) - - def configure_optimizers(self) -> Optimizer: - return Adam(self.parameters(), lr=0.0001) + def forward(self, x: Tensor) -> Output: + return self.decode_head(self.backbone(x)) diff --git a/ml/ordered_regression.py b/ml/ordered_regression.py index 348baa9b..69325906 100644 --- a/ml/ordered_regression.py +++ b/ml/ordered_regression.py @@ -1,135 +1,22 @@ -from collections.abc import Mapping -from typing import cast - -from lightning import LightningModule -from rationai.mlkit.metrics import ( - AggregatedMetricCollection, - MaxAggregator, - MeanAggregator, -) from torch import Tensor -from torch.nn import Module, ModuleDict -from torch.optim.adam import Adam -from torch.optim.optimizer import Optimizer -from torchmetrics import Metric, MetricCollection -from torchmetrics.classification import ( - MulticlassAccuracy, - MulticlassAUROC, - MulticlassPrecision, - MulticlassRecall, -) +from torch.nn import Module +from ml.base import BaseModule from ml.loss import CumulativeLinkLoss from ml.modeling import LogisticCumulativeLink from ml.modeling.regression_head import RegressionHead -from ml.typing import MetadataTilesBatch, Output, TilesInput, TilesPredictInput +from ml.typing import Output -class OrderedRegression(LightningModule): +class OrderedRegression(BaseModule): def __init__(self, backbone: Module, lr: float) -> None: - super().__init__() - self.backbone = backbone - self.n_classes = 5 + super().__init__(backbone, lr) self.decode_head = RegressionHead() - self.cumulative_link = LogisticCumulativeLink(num_classes=self.n_classes) + self.cumulative_link = LogisticCumulativeLink(num_classes=self.N_CLASSES) self.criterion = CumulativeLinkLoss() - self.lr = lr - - metrics: dict[str, Metric] = { - "AUC": MulticlassAUROC(num_classes=self.n_classes, average=None), - "accuracy": MulticlassAccuracy(num_classes=self.n_classes), - "precision": MulticlassPrecision(num_classes=self.n_classes, average=None), - "recall": MulticlassRecall(num_classes=self.n_classes, average=None), - } - - val_metrics: dict[str, MetricCollection] = { - "tiles_all": MetricCollection(metrics, prefix="validation/tiles/"), - "slide_max": AggregatedMetricCollection( - metrics, - aggregator=MaxAggregator(), - prefix="validation/scenes/max/", - ), - "slide_mean": AggregatedMetricCollection( - metrics, - aggregator=MeanAggregator(), - prefix="validation/slides/mean/", - ), - } - - test_metrics = { - name: metric.clone( - prefix=cast("str", metric.prefix).replace("validation", "test") - ) - for name, metric in val_metrics.items() - } - - self.val_metrics = cast("dict[str, MetricCollection]", ModuleDict(val_metrics)) - self.test_metrics = cast( - "dict[str, MetricCollection]", ModuleDict(test_metrics) - ) + self._build_metrics() def forward(self, x: Tensor) -> Output: x = self.backbone(x) x = self.decode_head(x) - x = self.cumulative_link(x) - return x - - def training_step(self, batch: TilesInput) -> Tensor: - inputs, targets, _ = batch - outputs = self(inputs) - - loss = self.criterion(outputs, targets) - self.log("train/loss", loss, on_step=True, prog_bar=True) - - return loss - - def validation_step(self, batch: TilesInput) -> None: - inputs, targets, metadata = batch - outputs = self(inputs) - - loss = self.criterion(outputs, targets) - self.log("validation/loss", loss, on_epoch=True, prog_bar=True) - - targets = targets.reshape(-1) - self.update_metrics(self.val_metrics, outputs, targets, metadata) - self.log_metrics(self.val_metrics) - - def test_step(self, batch: TilesInput) -> None: - inputs, targets, metadata = batch - outputs = self(inputs) - - targets = targets.reshape(-1) - self.update_metrics(self.test_metrics, outputs, targets, metadata) - self.log_metrics(self.test_metrics) - - def predict_step(self, batch: TilesPredictInput) -> Output: - return self(batch[0]) - - def configure_optimizers(self) -> Optimizer: - return Adam(self.parameters(), lr=self.lr) - - def log_dict(self, dictionary: MetricCollection, *args, **kwargs) -> None: - for name, metric in dictionary.items(): - result = cast("Tensor", metric.compute()) - if result.shape: - for i, value in enumerate(result): - self.log(f"{name}/{i}", value, *args, **kwargs) - else: - self.log(name, result, *args, **kwargs) - - def update_metrics( - self, - metrics: Mapping[str, MetricCollection], - outputs: Tensor, - targets: Tensor, - metadata: MetadataTilesBatch, - ) -> None: - for name, metric in metrics.items(): - if "slide" in name: - metric.update(outputs, targets, key=metadata["slide_name"]) - else: - metric.update(outputs, targets) - - def log_metrics(self, metrics: dict[str, MetricCollection]) -> None: - for metric in metrics.values(): - self.log_dict(metric, on_epoch=True) + return self.cumulative_link(x) From 617c720cdb6280b2e2e3a6fe3ba9d72fc6a57821 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 7 May 2026 18:26:43 +0000 Subject: [PATCH 23/54] feat: bags --- ml/data/datasets/bags.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/ml/data/datasets/bags.py b/ml/data/datasets/bags.py index 7aeabad4..9c654eb6 100644 --- a/ml/data/datasets/bags.py +++ b/ml/data/datasets/bags.py @@ -49,7 +49,6 @@ def __getitem__(self, idx: int) -> BagsSample | BagsPredictSample: embeddings = F.pad(embeddings, (0, 0, 0, pad_amount), value=0.0) metadata = MetadataBags( - slide_name=slide_metadata["id"], slide_name=slide_name, slide_path=Path(slide_metadata["path"]), level=slide_metadata["level"], @@ -90,7 +89,6 @@ def __init__( tiling_uris: Iterable[str] | str, mode: LabelMode | str | None = None, padding: bool = True, - slide_names: Iterable[str] | None = None, ) -> None: super().__init__( tiling_uris=tiling_uris, From 34d19a701c309d75d12b15a969648e92cd92b5c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 7 May 2026 21:28:27 +0200 Subject: [PATCH 24/54] feat: qc filtering --- ml/data/datasets/bags.py | 14 ++++++++++++-- ml/data/datasets/embeddings.py | 13 +++++++++++-- ml/data/datasets/tiles.py | 13 +++++++++++-- ml/data/datasets/utils.py | 7 +++++++ 4 files changed, 41 insertions(+), 6 deletions(-) create mode 100644 ml/data/datasets/utils.py diff --git a/ml/data/datasets/bags.py b/ml/data/datasets/bags.py index 9c654eb6..a6652bf4 100644 --- a/ml/data/datasets/bags.py +++ b/ml/data/datasets/bags.py @@ -1,3 +1,4 @@ +from collections import Counter from collections.abc import Iterable from pathlib import Path from typing import Generic, TypeVar @@ -8,6 +9,7 @@ from torch.utils.data import Dataset from ml.data.datasets.labels import LabelMode, get_label, process_slides +from ml.data.datasets.utils import filter_tiles from ml.typing import BagsPredictSample, BagsSample, MetadataBags @@ -21,19 +23,23 @@ def __init__( mode: LabelMode | str | None = None, padding: bool = True, include_labels: bool = True, + thresholds: dict[str, float] | None = None, ) -> None: self.mode = LabelMode(mode) if mode is not None else None self.include_labels = include_labels + self.thresholds = thresholds or {} if self.include_labels and self.mode is None: raise ValueError("Mode must be specified when including labels.") self._meta = SlidesTilesLoader(uris=tiling_uris) - self.tiles = self._meta.tiles + self.tiles = filter_tiles(self._meta.tiles, self.thresholds) + self._meta.tiles = self.tiles + self._meta._slide_id_to_indices = self._build_tile_index(self.tiles) self.slides = process_slides(self._meta.slides, self.mode) self.padding = padding - self.max_embeddings = self.tiles["slide_id"].value_counts().max() + self.max_embeddings = max(Counter(self.tiles["slide_id"]).values()) def __len__(self) -> int: return len(self.slides) @@ -74,12 +80,14 @@ def __init__( tiling_uris: Iterable[str] | str, mode: LabelMode | str, padding: bool = True, + thresholds: dict[str, float] | None = None, ) -> None: super().__init__( tiling_uris=tiling_uris, mode=mode, padding=padding, include_labels=True, + thresholds=thresholds, ) @@ -89,10 +97,12 @@ def __init__( tiling_uris: Iterable[str] | str, mode: LabelMode | str | None = None, padding: bool = True, + thresholds: dict[str, float] | None = None, ) -> None: super().__init__( tiling_uris=tiling_uris, mode=mode, padding=padding, include_labels=False, + thresholds=thresholds, ) diff --git a/ml/data/datasets/embeddings.py b/ml/data/datasets/embeddings.py index c38d9c0a..42ce5f28 100644 --- a/ml/data/datasets/embeddings.py +++ b/ml/data/datasets/embeddings.py @@ -7,6 +7,7 @@ from torch.utils.data import Dataset from ml.data.datasets.labels import LabelMode, get_label, process_slides +from ml.data.datasets.utils import filter_tiles from ml.typing import EmbeddingsPredictSample, EmbeddingsSample, MetadataEmbeddings @@ -54,8 +55,10 @@ def __init__( self, uris: Iterable[str] | str, mode: LabelMode | str, + thresholds: dict[str, float] | None = None, ) -> None: self.mode = LabelMode(mode) + self.thresholds = thresholds or {} super().__init__(uris=(uris,) if isinstance(uris, str) else uris) def generate_datasets(self) -> Iterable[_Embeddings[EmbeddingsSample]]: @@ -63,7 +66,9 @@ def generate_datasets(self) -> Iterable[_Embeddings[EmbeddingsSample]]: return ( _Embeddings( slide_metadata=dict(slide), - tiles=self.filter_tiles_by_slide(dict(slide)["id"]), + tiles=filter_tiles( + self.filter_tiles_by_slide(dict(slide)["id"]), self.thresholds + ), mode=self.mode, include_labels=True, ) @@ -76,8 +81,10 @@ def __init__( self, uris: Iterable[str] | str, mode: LabelMode | str, + thresholds: dict[str, float] | None = None, ) -> None: self.mode = LabelMode(mode) + self.thresholds = thresholds or {} super().__init__(uris=(uris,) if isinstance(uris, str) else uris) def generate_datasets(self) -> Iterable[_Embeddings[EmbeddingsPredictSample]]: @@ -85,7 +92,9 @@ def generate_datasets(self) -> Iterable[_Embeddings[EmbeddingsPredictSample]]: return ( _Embeddings( slide_metadata=dict(slide), - tiles=self.filter_tiles_by_slide(dict(slide)["id"]), + tiles=filter_tiles( + self.filter_tiles_by_slide(dict(slide)["id"]), self.thresholds + ), mode=self.mode, include_labels=False, ) diff --git a/ml/data/datasets/tiles.py b/ml/data/datasets/tiles.py index 58c16a23..16448b0e 100644 --- a/ml/data/datasets/tiles.py +++ b/ml/data/datasets/tiles.py @@ -8,6 +8,7 @@ from torch.utils.data import Dataset from ml.data.datasets.labels import LabelMode, get_label, process_slides +from ml.data.datasets.utils import filter_tiles from ml.typing import MetadataTiles, TilesPredictSample, TilesSample @@ -73,10 +74,12 @@ def __init__( mode: LabelMode | str, transforms: TransformType | None = None, to_tensor: bool = True, + thresholds: dict[str, float] | None = None, ) -> None: self.transforms = transforms self.mode = LabelMode(mode) self.to_tensor = to_tensor + self.thresholds = thresholds or {} super().__init__(uris=(uris,) if isinstance(uris, str) else uris) def generate_datasets(self) -> Iterable[_Tiles[TilesSample]]: @@ -84,7 +87,9 @@ def generate_datasets(self) -> Iterable[_Tiles[TilesSample]]: return ( _Tiles( slide_metadata=dict(slide), - tiles=self.filter_tiles_by_slide(dict(slide)["id"]), + tiles=filter_tiles( + self.filter_tiles_by_slide(dict(slide)["id"]), self.thresholds + ), mode=self.mode, include_labels=True, transforms=self.transforms, @@ -100,9 +105,11 @@ def __init__( uris: Iterable[str] | str, transforms: TransformType | None = None, to_tensor: bool = True, + thresholds: dict[str, float] | None = None, ) -> None: self.transforms = transforms self.to_tensor = to_tensor + self.thresholds = thresholds or {} super().__init__(uris=(uris,) if isinstance(uris, str) else uris) def generate_datasets(self) -> Iterable[_Tiles[TilesPredictSample]]: @@ -110,7 +117,9 @@ def generate_datasets(self) -> Iterable[_Tiles[TilesPredictSample]]: return ( _Tiles( slide_metadata=dict(slide), - tiles=self.filter_tiles_by_slide(dict(slide)["id"]), + tiles=filter_tiles( + self.filter_tiles_by_slide(dict(slide)["id"]), self.thresholds + ), mode=None, include_labels=False, transforms=self.transforms, diff --git a/ml/data/datasets/utils.py b/ml/data/datasets/utils.py new file mode 100644 index 00000000..90f6cc85 --- /dev/null +++ b/ml/data/datasets/utils.py @@ -0,0 +1,7 @@ +from datasets import Dataset as HFDataset + + +def filter_tiles(tiles: HFDataset, thresholds: dict[str, float]) -> HFDataset: + return tiles.filter( + lambda tile: all(tile[col] <= thr for col, thr in thresholds.items()) + ) From 24d11d6996a99f38c42866d624621da75d42547f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 10:34:11 +0200 Subject: [PATCH 25/54] fix: bags --- ml/data/datasets/bags.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ml/data/datasets/bags.py b/ml/data/datasets/bags.py index a6652bf4..b057410b 100644 --- a/ml/data/datasets/bags.py +++ b/ml/data/datasets/bags.py @@ -35,7 +35,7 @@ def __init__( self._meta = SlidesTilesLoader(uris=tiling_uris) self.tiles = filter_tiles(self._meta.tiles, self.thresholds) self._meta.tiles = self.tiles - self._meta._slide_id_to_indices = self._build_tile_index(self.tiles) + self._meta._slide_id_to_indices = self._meta._build_tile_index(self.tiles) self.slides = process_slides(self._meta.slides, self.mode) self.padding = padding From 6c4cea6efbfa7c4209d757d8bce2fb346ad45787 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 10:46:19 +0200 Subject: [PATCH 26/54] feat: more tilings --- configs/experiment/preprocessing/tiling/0_320.yaml | 5 +++++ configs/experiment/preprocessing/tiling/0_512.yaml | 5 +++++ configs/experiment/preprocessing/tiling/1_224.yaml | 5 +++++ configs/experiment/preprocessing/tiling/2_224.yaml | 5 +++++ configs/preprocessing/tiling.yaml | 6 +++--- scripts/preprocessing/tiling.py | 2 +- 6 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 configs/experiment/preprocessing/tiling/0_320.yaml create mode 100644 configs/experiment/preprocessing/tiling/0_512.yaml create mode 100644 configs/experiment/preprocessing/tiling/1_224.yaml create mode 100644 configs/experiment/preprocessing/tiling/2_224.yaml diff --git a/configs/experiment/preprocessing/tiling/0_320.yaml b/configs/experiment/preprocessing/tiling/0_320.yaml new file mode 100644 index 00000000..1aa21c16 --- /dev/null +++ b/configs/experiment/preprocessing/tiling/0_320.yaml @@ -0,0 +1,5 @@ +# @package _global_ + +mpp: 0.17 # level 0 +tile_extent: 320 +stride: 160 \ No newline at end of file diff --git a/configs/experiment/preprocessing/tiling/0_512.yaml b/configs/experiment/preprocessing/tiling/0_512.yaml new file mode 100644 index 00000000..b1fbc047 --- /dev/null +++ b/configs/experiment/preprocessing/tiling/0_512.yaml @@ -0,0 +1,5 @@ +# @package _global_ + +mpp: 0.17 # level 0 +tile_extent: 512 +stride: 256 \ No newline at end of file diff --git a/configs/experiment/preprocessing/tiling/1_224.yaml b/configs/experiment/preprocessing/tiling/1_224.yaml new file mode 100644 index 00000000..4c67413c --- /dev/null +++ b/configs/experiment/preprocessing/tiling/1_224.yaml @@ -0,0 +1,5 @@ +# @package _global_ + +mpp: 0.51 # level 1 +tile_extent: 224 +stride: 112 \ No newline at end of file diff --git a/configs/experiment/preprocessing/tiling/2_224.yaml b/configs/experiment/preprocessing/tiling/2_224.yaml new file mode 100644 index 00000000..ca84f780 --- /dev/null +++ b/configs/experiment/preprocessing/tiling/2_224.yaml @@ -0,0 +1,5 @@ +# @package _global_ + +mpp: 1.54 # level 2 +tile_extent: 224 +stride: 112 \ No newline at end of file diff --git a/configs/preprocessing/tiling.yaml b/configs/preprocessing/tiling.yaml index ab4b48fd..f2883fbe 100644 --- a/configs/preprocessing/tiling.yaml +++ b/configs/preprocessing/tiling.yaml @@ -1,8 +1,8 @@ # @package _global_ -mpp: 1.55 # level 2 -tile_extent: 224 -stride: 112 +mpp: ??? +tile_extent: ??? +stride: ??? tissue_threshold: 0.5 metadata: diff --git a/scripts/preprocessing/tiling.py b/scripts/preprocessing/tiling.py index 61bea4d2..6226fb77 100644 --- a/scripts/preprocessing/tiling.py +++ b/scripts/preprocessing/tiling.py @@ -12,7 +12,7 @@ "git clone https://github.com/RationAI/ulcerative-colitis.git workdir", "cd workdir", "uv sync --frozen", - "uv run --active -m preprocessing.tiling +dataset=processed_w_masks/...", + "uv run --active -m preprocessing.tiling +dataset=processed_w_masks/... +experiment=preprocessing/tiling/...", ], storage=[storage.secure.DATA], ) From a494ced5b6b39cea64f422322c2e089f3d328a68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 11:20:57 +0200 Subject: [PATCH 27/54] feat: folds --- ml/data/datasets/bags.py | 8 +++++++- ml/data/datasets/embeddings.py | 6 +++++- ml/data/datasets/labels.py | 13 ++++++++++++- ml/data/datasets/tiles.py | 6 +++++- 4 files changed, 29 insertions(+), 4 deletions(-) diff --git a/ml/data/datasets/bags.py b/ml/data/datasets/bags.py index b057410b..a9677a71 100644 --- a/ml/data/datasets/bags.py +++ b/ml/data/datasets/bags.py @@ -24,6 +24,8 @@ def __init__( padding: bool = True, include_labels: bool = True, thresholds: dict[str, float] | None = None, + val_fold: int | None = None, + is_val: bool = False, ) -> None: self.mode = LabelMode(mode) if mode is not None else None self.include_labels = include_labels @@ -36,7 +38,7 @@ def __init__( self.tiles = filter_tiles(self._meta.tiles, self.thresholds) self._meta.tiles = self.tiles self._meta._slide_id_to_indices = self._meta._build_tile_index(self.tiles) - self.slides = process_slides(self._meta.slides, self.mode) + self.slides = process_slides(self._meta.slides, self.mode, val_fold=val_fold, is_val=is_val) self.padding = padding self.max_embeddings = max(Counter(self.tiles["slide_id"]).values()) @@ -81,6 +83,8 @@ def __init__( mode: LabelMode | str, padding: bool = True, thresholds: dict[str, float] | None = None, + val_fold: int | None = None, + is_val: bool = False, ) -> None: super().__init__( tiling_uris=tiling_uris, @@ -88,6 +92,8 @@ def __init__( padding=padding, include_labels=True, thresholds=thresholds, + val_fold=val_fold, + is_val=is_val, ) diff --git a/ml/data/datasets/embeddings.py b/ml/data/datasets/embeddings.py index 42ce5f28..27c0d371 100644 --- a/ml/data/datasets/embeddings.py +++ b/ml/data/datasets/embeddings.py @@ -56,13 +56,17 @@ def __init__( uris: Iterable[str] | str, mode: LabelMode | str, thresholds: dict[str, float] | None = None, + val_fold: int | None = None, + is_val: bool = False, ) -> None: self.mode = LabelMode(mode) self.thresholds = thresholds or {} + self.val_fold = val_fold + self.is_val = is_val super().__init__(uris=(uris,) if isinstance(uris, str) else uris) def generate_datasets(self) -> Iterable[_Embeddings[EmbeddingsSample]]: - self.slides = process_slides(self.slides, self.mode) + self.slides = process_slides(self.slides, self.mode, val_fold=self.val_fold, is_val=self.is_val) return ( _Embeddings( slide_metadata=dict(slide), diff --git a/ml/data/datasets/labels.py b/ml/data/datasets/labels.py index c95448f5..82aa67f9 100644 --- a/ml/data/datasets/labels.py +++ b/ml/data/datasets/labels.py @@ -12,7 +12,12 @@ class LabelMode(Enum): ALL = "all" -def process_slides(slides: HFDataset, mode: LabelMode | None = None) -> HFDataset: +def process_slides( + slides: HFDataset, + mode: LabelMode | None = None, + val_fold: int | None = None, + is_val: bool = False, +) -> HFDataset: match mode: case LabelMode.NEUTROPHILS: slides = slides.map(lambda x: {"neutrophils": x["nancy_index"] >= 2}) @@ -26,6 +31,12 @@ def process_slides(slides: HFDataset, mode: LabelMode | None = None) -> HFDatase # Keep all labels pass + if val_fold is not None: + if is_val: + slides = slides.filter(lambda x: x["fold"] == val_fold) + else: + slides = slides.filter(lambda x: x["fold"] != val_fold) + slides = slides.map(lambda x: {"name": Path(x["path"]).stem}) return slides diff --git a/ml/data/datasets/tiles.py b/ml/data/datasets/tiles.py index 16448b0e..20cef351 100644 --- a/ml/data/datasets/tiles.py +++ b/ml/data/datasets/tiles.py @@ -75,15 +75,19 @@ def __init__( transforms: TransformType | None = None, to_tensor: bool = True, thresholds: dict[str, float] | None = None, + val_fold: int | None = None, + is_val: bool = False, ) -> None: self.transforms = transforms self.mode = LabelMode(mode) self.to_tensor = to_tensor self.thresholds = thresholds or {} + self.val_fold = val_fold + self.is_val = is_val super().__init__(uris=(uris,) if isinstance(uris, str) else uris) def generate_datasets(self) -> Iterable[_Tiles[TilesSample]]: - self.slides = process_slides(self.slides, self.mode) + self.slides = process_slides(self.slides, self.mode, val_fold=self.val_fold, is_val=self.is_val) return ( _Tiles( slide_metadata=dict(slide), From e497a9375d46c7b7e9436ffa4ce8167b2b17ce82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 09:23:49 +0000 Subject: [PATCH 28/54] feat: sampler WIP --- ml/data/samplers/__init__.py | 6 +++++ .../samplers/auto_weighted_random_sampler.py | 26 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 ml/data/samplers/__init__.py create mode 100644 ml/data/samplers/auto_weighted_random_sampler.py diff --git a/ml/data/samplers/__init__.py b/ml/data/samplers/__init__.py new file mode 100644 index 00000000..f982fa8b --- /dev/null +++ b/ml/data/samplers/__init__.py @@ -0,0 +1,6 @@ +from ml.data.samplers.auto_weighted_random_sampler import ( + AutoWeightedRandomSampler, +) + + +__all__ = ["AutoWeightedRandomSampler"] diff --git a/ml/data/samplers/auto_weighted_random_sampler.py b/ml/data/samplers/auto_weighted_random_sampler.py new file mode 100644 index 00000000..49f26b22 --- /dev/null +++ b/ml/data/samplers/auto_weighted_random_sampler.py @@ -0,0 +1,26 @@ +from collections.abc import Sequence + +import pandas as pd +from torch.utils.data import WeightedRandomSampler + +from ml.data.datasets import ( + SlideEmbeddingsSubset, + TileEmbeddingsSubset, + TilesSubset, +) + + +class AutoWeightedRandomSampler(WeightedRandomSampler): + def __init__( + self, + dataset: TilesSubset | TileEmbeddingsSubset | SlideEmbeddingsSubset, + column: str, + replacement: bool = True, + ) -> None: + super().__init__( + self._get_weights(dataset.slides[column]), len(dataset), replacement + ) + + def _get_weights(self, column: pd.Series) -> Sequence[float]: + value_counts = column.value_counts() + return column.apply(lambda x: 1 / value_counts[x]).tolist() From 406e83b1e22646ce6650abece2d774f934053f96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 11:36:56 +0200 Subject: [PATCH 29/54] feat: sampling --- ml/data/datasets/bags.py | 9 +++++- ml/data/datasets/embeddings.py | 8 +++++ ml/data/datasets/tiles.py | 8 +++++ .../samplers/auto_weighted_random_sampler.py | 32 +++++++------------ 4 files changed, 36 insertions(+), 21 deletions(-) diff --git a/ml/data/datasets/bags.py b/ml/data/datasets/bags.py index a9677a71..a290f9eb 100644 --- a/ml/data/datasets/bags.py +++ b/ml/data/datasets/bags.py @@ -38,7 +38,9 @@ def __init__( self.tiles = filter_tiles(self._meta.tiles, self.thresholds) self._meta.tiles = self.tiles self._meta._slide_id_to_indices = self._meta._build_tile_index(self.tiles) - self.slides = process_slides(self._meta.slides, self.mode, val_fold=val_fold, is_val=is_val) + self.slides = process_slides( + self._meta.slides, self.mode, val_fold=val_fold, is_val=is_val + ) self.padding = padding self.max_embeddings = max(Counter(self.tiles["slide_id"]).values()) @@ -77,6 +79,11 @@ def __getitem__(self, idx: int) -> BagsSample | BagsPredictSample: class Bags(_Bags[BagsSample]): + @property + def labels(self) -> list[int]: + assert self.mode is not None + return [int(get_label(dict(slide), self.mode).item()) for slide in self.slides] + def __init__( self, tiling_uris: Iterable[str] | str, diff --git a/ml/data/datasets/embeddings.py b/ml/data/datasets/embeddings.py index 27c0d371..4c47aa2c 100644 --- a/ml/data/datasets/embeddings.py +++ b/ml/data/datasets/embeddings.py @@ -51,6 +51,14 @@ def __getitem__(self, idx: int) -> EmbeddingsSample | EmbeddingsPredictSample: class Embeddings(MetaTiledSlides[EmbeddingsSample]): + @property + def labels(self) -> list[int]: + return [ + int(get_label(ds.slide_metadata, self.mode).item()) + for ds in self.datasets + for _ in range(len(ds)) + ] + def __init__( self, uris: Iterable[str] | str, diff --git a/ml/data/datasets/tiles.py b/ml/data/datasets/tiles.py index 20cef351..9e3b9840 100644 --- a/ml/data/datasets/tiles.py +++ b/ml/data/datasets/tiles.py @@ -68,6 +68,14 @@ def __getitem__(self, idx: int) -> TilesSample | TilesPredictSample: class Tiles(MetaTiledSlides[TilesSample]): + @property + def labels(self) -> list[int]: + return [ + int(get_label(ds.slide_metadata, self.mode).item()) + for ds in self.datasets + for _ in range(len(ds)) + ] + def __init__( self, uris: Iterable[str] | str, diff --git a/ml/data/samplers/auto_weighted_random_sampler.py b/ml/data/samplers/auto_weighted_random_sampler.py index 49f26b22..cdabe4f3 100644 --- a/ml/data/samplers/auto_weighted_random_sampler.py +++ b/ml/data/samplers/auto_weighted_random_sampler.py @@ -1,26 +1,18 @@ -from collections.abc import Sequence +from collections import Counter +from typing import Protocol -import pandas as pd from torch.utils.data import WeightedRandomSampler -from ml.data.datasets import ( - SlideEmbeddingsSubset, - TileEmbeddingsSubset, - TilesSubset, -) +class LabeledDataset(Protocol): + def __len__(self) -> int: ... + @property + def labels(self) -> list[int]: ... -class AutoWeightedRandomSampler(WeightedRandomSampler): - def __init__( - self, - dataset: TilesSubset | TileEmbeddingsSubset | SlideEmbeddingsSubset, - column: str, - replacement: bool = True, - ) -> None: - super().__init__( - self._get_weights(dataset.slides[column]), len(dataset), replacement - ) - def _get_weights(self, column: pd.Series) -> Sequence[float]: - value_counts = column.value_counts() - return column.apply(lambda x: 1 / value_counts[x]).tolist() +class AutoWeightedRandomSampler(WeightedRandomSampler): + def __init__(self, dataset: LabeledDataset, replacement: bool = True) -> None: + labels = dataset.labels + counts = Counter(labels) + weights = [1.0 / counts[label] for label in labels] + super().__init__(weights, len(dataset), replacement) From 89326595c884b14116bc2580612f7e7a0ef84175 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 11:46:42 +0200 Subject: [PATCH 30/54] feat: datamodule --- ml/data/data_module.py | 61 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 53 insertions(+), 8 deletions(-) diff --git a/ml/data/data_module.py b/ml/data/data_module.py index f803ac5a..133c60fb 100644 --- a/ml/data/data_module.py +++ b/ml/data/data_module.py @@ -1,20 +1,32 @@ -from collections.abc import Iterable +from collections.abc import Callable, Iterable +import torch from hydra.utils import instantiate from lightning import LightningDataModule from omegaconf import DictConfig +from torch import Tensor from torch.utils.data import DataLoader -from ml.typing import Input +from ml.data.samplers import AutoWeightedRandomSampler +from ml.typing import Metadata class DataModule(LightningDataModule): def __init__( - self, batch_size: int, num_workers: int = 0, **datasets: DictConfig + self, + batch_size: int, + num_workers: int = 0, + weighted_sampling: bool = True, + collate_fn: Callable | None = None, + collate_fn_predict: Callable | None = None, + **datasets: DictConfig, ) -> None: super().__init__() self.batch_size = batch_size self.num_workers = num_workers + self.weighted_sampling = weighted_sampling + self.collate_fn = collate_fn + self.collate_fn_predict = collate_fn_predict self.datasets = datasets def setup(self, stage: str) -> None: @@ -26,26 +38,59 @@ def setup(self, stage: str) -> None: self.val = instantiate(self.datasets["val"]) case "test": self.test = instantiate(self.datasets["test"]) + case "predict": + self.predict = instantiate(self.datasets["predict"]) - def train_dataloader(self) -> Iterable[Input]: + def train_dataloader(self) -> Iterable: + sampler = ( + AutoWeightedRandomSampler(self.train) if self.weighted_sampling else None + ) return DataLoader( self.train, batch_size=self.batch_size, - shuffle=True, + sampler=sampler, + shuffle=sampler is None, drop_last=True, num_workers=self.num_workers, + collate_fn=self.collate_fn, persistent_workers=self.num_workers > 0, ) - def val_dataloader(self) -> Iterable[Input]: + def val_dataloader(self) -> Iterable: return DataLoader( self.val, batch_size=self.batch_size, num_workers=self.num_workers, + collate_fn=self.collate_fn, persistent_workers=self.num_workers > 0, ) - def test_dataloader(self) -> Iterable[Input]: + def test_dataloader(self) -> Iterable: + return DataLoader( + self.test, + batch_size=self.batch_size, + num_workers=self.num_workers, + collate_fn=self.collate_fn, + ) + + def predict_dataloader(self) -> Iterable: return DataLoader( - self.test, batch_size=self.batch_size, num_workers=self.num_workers + self.predict, + batch_size=self.batch_size, + num_workers=self.num_workers, + collate_fn=self.collate_fn_predict, ) + + +def collate_fn( + batch: list[tuple[Tensor, Tensor, Metadata]], +) -> tuple[Tensor, Tensor, list[Metadata]]: + inputs, labels, metadatas = zip(*batch, strict=True) + return torch.stack(list(inputs)), torch.stack(list(labels)), list(metadatas) + + +def collate_fn_predict( + batch: list[tuple[Tensor, Metadata]], +) -> tuple[Tensor, list[Metadata]]: + inputs, metadatas = zip(*batch, strict=True) + return torch.stack(list(inputs)), list(metadatas) From 53fc65ee18f9cc804953529617afde39e26b0bf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 13:29:28 +0200 Subject: [PATCH 31/54] feat: ml experiments --- configs/dataset/embeddings/ftn.yaml | 6 --- .../embeddings/ftn/1_prov-gigapath.yaml | 9 ++++ configs/dataset/embeddings/ftn/1_uni2.yaml | 9 ++++ .../dataset/embeddings/ftn/1_virchow2.yaml | 9 ++++ .../dataset/embeddings/ftn/2_virchow2.yaml | 9 ++++ configs/dataset/embeddings/ikem.yaml | 6 --- .../embeddings/ikem/1_prov-gigapath.yaml | 9 ++++ configs/dataset/embeddings/ikem/1_uni2.yaml | 9 ++++ .../dataset/embeddings/ikem/1_virchow2.yaml | 9 ++++ .../dataset/embeddings/ikem/2_virchow2.yaml | 9 ++++ configs/dataset/embeddings/knl_patos.yaml | 6 --- .../embeddings/knl_patos/1_prov-gigapath.yaml | 8 +++ .../dataset/embeddings/knl_patos/1_uni2.yaml | 8 +++ .../embeddings/knl_patos/1_virchow2.yaml | 8 +++ .../embeddings/knl_patos/2_virchow2.yaml | 8 +++ .../tiled/{ftn.yaml => ftn/0_320.yaml} | 0 configs/dataset/tiled/ftn/0_512.yaml | 9 ++++ configs/dataset/tiled/ftn/1_224.yaml | 9 ++++ configs/dataset/tiled/ftn/2_224.yaml | 9 ++++ .../tiled/{ikem.yaml => ikem/0_320.yaml} | 0 configs/dataset/tiled/ikem/0_512.yaml | 9 ++++ configs/dataset/tiled/ikem/1_224.yaml | 9 ++++ configs/dataset/tiled/ikem/2_224.yaml | 9 ++++ .../{knl_patos.yaml => knl_patos/0_320.yaml} | 0 configs/dataset/tiled/knl_patos/0_512.yaml | 8 +++ configs/dataset/tiled/knl_patos/1_224.yaml | 8 +++ configs/dataset/tiled/knl_patos/2_224.yaml | 8 +++ .../ml/classification_embeddings.yaml | 13 +++++ .../experiment/ml/classification_tiles.yaml | 13 +++++ .../fold_1.yaml | 12 +++++ .../fold_2.yaml | 12 +++++ .../fold_3.yaml | 12 +++++ .../fold_4.yaml | 12 +++++ .../fold_5.yaml | 12 +++++ .../fold_1.yaml | 12 +++++ .../fold_2.yaml | 12 +++++ .../fold_3.yaml | 12 +++++ .../fold_4.yaml | 12 +++++ .../fold_5.yaml | 12 +++++ .../fold_1.yaml | 12 +++++ .../fold_2.yaml | 12 +++++ .../fold_3.yaml | 12 +++++ .../fold_4.yaml | 12 +++++ .../fold_5.yaml | 12 +++++ .../nancy_high/fold_1.yaml | 15 ++++++ .../nancy_high/fold_2.yaml | 15 ++++++ .../nancy_high/fold_3.yaml | 15 ++++++ .../nancy_high/fold_4.yaml | 15 ++++++ .../nancy_high/fold_5.yaml | 15 ++++++ .../nancy_low/fold_1.yaml | 15 ++++++ .../nancy_low/fold_2.yaml | 15 ++++++ .../nancy_low/fold_3.yaml | 15 ++++++ .../nancy_low/fold_4.yaml | 15 ++++++ .../nancy_low/fold_5.yaml | 15 ++++++ .../neutrophils/fold_1.yaml | 15 ++++++ .../neutrophils/fold_2.yaml | 15 ++++++ .../neutrophils/fold_3.yaml | 15 ++++++ .../neutrophils/fold_4.yaml | 15 ++++++ .../neutrophils/fold_5.yaml | 15 ++++++ .../nancy_high/1_prov-gigapath/fold_1.yaml | 15 ++++++ .../nancy_high/1_prov-gigapath/fold_2.yaml | 15 ++++++ .../nancy_high/1_prov-gigapath/fold_3.yaml | 15 ++++++ .../nancy_high/1_prov-gigapath/fold_4.yaml | 15 ++++++ .../nancy_high/1_prov-gigapath/fold_5.yaml | 15 ++++++ .../nancy_high/1_uni2/fold_1.yaml | 15 ++++++ .../nancy_high/1_uni2/fold_2.yaml | 15 ++++++ .../nancy_high/1_uni2/fold_3.yaml | 15 ++++++ .../nancy_high/1_uni2/fold_4.yaml | 15 ++++++ .../nancy_high/1_uni2/fold_5.yaml | 15 ++++++ .../nancy_high/1_virchow2/fold_1.yaml | 15 ++++++ .../nancy_high/1_virchow2/fold_2.yaml | 15 ++++++ .../nancy_high/1_virchow2/fold_3.yaml | 15 ++++++ .../nancy_high/1_virchow2/fold_4.yaml | 15 ++++++ .../nancy_high/1_virchow2/fold_5.yaml | 15 ++++++ .../nancy_high/2_virchow2/fold_1.yaml | 15 ++++++ .../nancy_high/2_virchow2/fold_2.yaml | 15 ++++++ .../nancy_high/2_virchow2/fold_3.yaml | 15 ++++++ .../nancy_high/2_virchow2/fold_4.yaml | 15 ++++++ .../nancy_high/2_virchow2/fold_5.yaml | 15 ++++++ .../nancy_low/1_prov-gigapath/fold_1.yaml | 15 ++++++ .../nancy_low/1_prov-gigapath/fold_2.yaml | 15 ++++++ .../nancy_low/1_prov-gigapath/fold_3.yaml | 15 ++++++ .../nancy_low/1_prov-gigapath/fold_4.yaml | 15 ++++++ .../nancy_low/1_prov-gigapath/fold_5.yaml | 15 ++++++ .../nancy_low/1_uni2/fold_1.yaml | 15 ++++++ .../nancy_low/1_uni2/fold_2.yaml | 15 ++++++ .../nancy_low/1_uni2/fold_3.yaml | 15 ++++++ .../nancy_low/1_uni2/fold_4.yaml | 15 ++++++ .../nancy_low/1_uni2/fold_5.yaml | 15 ++++++ .../nancy_low/1_virchow2/fold_1.yaml | 15 ++++++ .../nancy_low/1_virchow2/fold_2.yaml | 15 ++++++ .../nancy_low/1_virchow2/fold_3.yaml | 15 ++++++ .../nancy_low/1_virchow2/fold_4.yaml | 15 ++++++ .../nancy_low/1_virchow2/fold_5.yaml | 15 ++++++ .../nancy_low/2_virchow2/fold_1.yaml | 15 ++++++ .../nancy_low/2_virchow2/fold_2.yaml | 15 ++++++ .../nancy_low/2_virchow2/fold_3.yaml | 15 ++++++ .../nancy_low/2_virchow2/fold_4.yaml | 15 ++++++ .../nancy_low/2_virchow2/fold_5.yaml | 15 ++++++ .../neutrophils/1_prov-gigapath/fold_1.yaml | 15 ++++++ .../neutrophils/1_prov-gigapath/fold_2.yaml | 15 ++++++ .../neutrophils/1_prov-gigapath/fold_3.yaml | 15 ++++++ .../neutrophils/1_prov-gigapath/fold_4.yaml | 15 ++++++ .../neutrophils/1_prov-gigapath/fold_5.yaml | 15 ++++++ .../neutrophils/1_uni2/fold_1.yaml | 15 ++++++ .../neutrophils/1_uni2/fold_2.yaml | 15 ++++++ .../neutrophils/1_uni2/fold_3.yaml | 15 ++++++ .../neutrophils/1_uni2/fold_4.yaml | 15 ++++++ .../neutrophils/1_uni2/fold_5.yaml | 15 ++++++ .../neutrophils/1_virchow2/fold_1.yaml | 15 ++++++ .../neutrophils/1_virchow2/fold_2.yaml | 15 ++++++ .../neutrophils/1_virchow2/fold_3.yaml | 15 ++++++ .../neutrophils/1_virchow2/fold_4.yaml | 15 ++++++ .../neutrophils/1_virchow2/fold_5.yaml | 15 ++++++ .../neutrophils/2_virchow2/fold_1.yaml | 15 ++++++ .../neutrophils/2_virchow2/fold_2.yaml | 15 ++++++ .../neutrophils/2_virchow2/fold_3.yaml | 15 ++++++ .../neutrophils/2_virchow2/fold_4.yaml | 15 ++++++ .../neutrophils/2_virchow2/fold_5.yaml | 15 ++++++ configs/experiment/ml/mil_bags.yaml | 8 +++ .../ml/ordered_regression_tiles.yaml | 9 ++++ .../embeddings/1_prov-gigapath/ftn.yaml | 7 +++ .../embeddings/1_prov-gigapath/ikem.yaml | 7 +++ .../embeddings/1_prov-gigapath/knl_patos.yaml | 7 +++ .../preprocessing/embeddings/1_uni2/ftn.yaml | 7 +++ .../preprocessing/embeddings/1_uni2/ikem.yaml | 7 +++ .../embeddings/1_uni2/knl_patos.yaml | 7 +++ .../embeddings/1_virchow2/ftn.yaml | 7 +++ .../embeddings/1_virchow2/ikem.yaml | 7 +++ .../embeddings/1_virchow2/knl_patos.yaml | 7 +++ .../embeddings/2_virchow2/ftn.yaml | 7 +++ .../embeddings/2_virchow2/ikem.yaml | 7 +++ .../embeddings/2_virchow2/knl_patos.yaml | 7 +++ configs/ml/backbone/identity.yaml | 1 + configs/ml/backbone/vgg16.yaml | 2 + configs/ml/data/bags.yaml | 16 ++++++ configs/ml/data/embeddings.yaml | 16 ++++++ configs/ml/data/tiles.yaml | 16 ++++++ configs/ml/model/classification.yaml | 4 ++ configs/ml/model/mil.yaml | 4 ++ configs/ml/model/ordered_regression.yaml | 3 ++ configs/ml/train.yaml | 27 ++++++++++ configs/preprocessing/embeddings.yaml | 2 +- configs/train_mil_old.yaml | 54 +++++++++++++++++++ ml/__main__.py | 4 -- ml/data/__init__.py | 4 +- ml/data/data_module.py | 9 ++++ ml/data/datasets/bags.py | 12 ++--- 148 files changed, 1775 insertions(+), 31 deletions(-) delete mode 100644 configs/dataset/embeddings/ftn.yaml create mode 100644 configs/dataset/embeddings/ftn/1_prov-gigapath.yaml create mode 100644 configs/dataset/embeddings/ftn/1_uni2.yaml create mode 100644 configs/dataset/embeddings/ftn/1_virchow2.yaml create mode 100644 configs/dataset/embeddings/ftn/2_virchow2.yaml delete mode 100644 configs/dataset/embeddings/ikem.yaml create mode 100644 configs/dataset/embeddings/ikem/1_prov-gigapath.yaml create mode 100644 configs/dataset/embeddings/ikem/1_uni2.yaml create mode 100644 configs/dataset/embeddings/ikem/1_virchow2.yaml create mode 100644 configs/dataset/embeddings/ikem/2_virchow2.yaml delete mode 100644 configs/dataset/embeddings/knl_patos.yaml create mode 100644 configs/dataset/embeddings/knl_patos/1_prov-gigapath.yaml create mode 100644 configs/dataset/embeddings/knl_patos/1_uni2.yaml create mode 100644 configs/dataset/embeddings/knl_patos/1_virchow2.yaml create mode 100644 configs/dataset/embeddings/knl_patos/2_virchow2.yaml rename configs/dataset/tiled/{ftn.yaml => ftn/0_320.yaml} (100%) create mode 100644 configs/dataset/tiled/ftn/0_512.yaml create mode 100644 configs/dataset/tiled/ftn/1_224.yaml create mode 100644 configs/dataset/tiled/ftn/2_224.yaml rename configs/dataset/tiled/{ikem.yaml => ikem/0_320.yaml} (100%) create mode 100644 configs/dataset/tiled/ikem/0_512.yaml create mode 100644 configs/dataset/tiled/ikem/1_224.yaml create mode 100644 configs/dataset/tiled/ikem/2_224.yaml rename configs/dataset/tiled/{knl_patos.yaml => knl_patos/0_320.yaml} (100%) create mode 100644 configs/dataset/tiled/knl_patos/0_512.yaml create mode 100644 configs/dataset/tiled/knl_patos/1_224.yaml create mode 100644 configs/dataset/tiled/knl_patos/2_224.yaml create mode 100644 configs/experiment/ml/classification_embeddings.yaml create mode 100644 configs/experiment/ml/classification_tiles.yaml create mode 100644 configs/experiment/ml/experiment_i_baseline_classification/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_i_baseline_classification/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_i_baseline_classification/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_i_baseline_classification/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_i_baseline_classification/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_ii_ordered_regression/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_ii_ordered_regression/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_ii_ordered_regression/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_ii_ordered_regression/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_ii_ordered_regression/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_5.yaml create mode 100644 configs/experiment/ml/mil_bags.yaml create mode 100644 configs/experiment/ml/ordered_regression_tiles.yaml create mode 100644 configs/experiment/preprocessing/embeddings/1_prov-gigapath/ftn.yaml create mode 100644 configs/experiment/preprocessing/embeddings/1_prov-gigapath/ikem.yaml create mode 100644 configs/experiment/preprocessing/embeddings/1_prov-gigapath/knl_patos.yaml create mode 100644 configs/experiment/preprocessing/embeddings/1_uni2/ftn.yaml create mode 100644 configs/experiment/preprocessing/embeddings/1_uni2/ikem.yaml create mode 100644 configs/experiment/preprocessing/embeddings/1_uni2/knl_patos.yaml create mode 100644 configs/experiment/preprocessing/embeddings/1_virchow2/ftn.yaml create mode 100644 configs/experiment/preprocessing/embeddings/1_virchow2/ikem.yaml create mode 100644 configs/experiment/preprocessing/embeddings/1_virchow2/knl_patos.yaml create mode 100644 configs/experiment/preprocessing/embeddings/2_virchow2/ftn.yaml create mode 100644 configs/experiment/preprocessing/embeddings/2_virchow2/ikem.yaml create mode 100644 configs/experiment/preprocessing/embeddings/2_virchow2/knl_patos.yaml create mode 100644 configs/ml/backbone/identity.yaml create mode 100644 configs/ml/backbone/vgg16.yaml create mode 100644 configs/ml/data/bags.yaml create mode 100644 configs/ml/data/embeddings.yaml create mode 100644 configs/ml/data/tiles.yaml create mode 100644 configs/ml/model/classification.yaml create mode 100644 configs/ml/model/mil.yaml create mode 100644 configs/ml/model/ordered_regression.yaml create mode 100644 configs/ml/train.yaml create mode 100644 configs/train_mil_old.yaml diff --git a/configs/dataset/embeddings/ftn.yaml b/configs/dataset/embeddings/ftn.yaml deleted file mode 100644 index 3446ced0..00000000 --- a/configs/dataset/embeddings/ftn.yaml +++ /dev/null @@ -1,6 +0,0 @@ -defaults: - - /dataset/tiled/ftn/0_320@_here_ - - _self_ - -mlflow_uris: - neutrophils: mlflow-artifacts:/86/deee774e63644dd1a5e3d3e15a429224/artifacts/neutrophils diff --git a/configs/dataset/embeddings/ftn/1_prov-gigapath.yaml b/configs/dataset/embeddings/ftn/1_prov-gigapath.yaml new file mode 100644 index 00000000..08ba0e42 --- /dev/null +++ b/configs/dataset/embeddings/ftn/1_prov-gigapath.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/tiled/ftn/1_224@_here_ + - _self_ + +mlflow_uris: + embeddings: + train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn + test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn + test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file diff --git a/configs/dataset/embeddings/ftn/1_uni2.yaml b/configs/dataset/embeddings/ftn/1_uni2.yaml new file mode 100644 index 00000000..08ba0e42 --- /dev/null +++ b/configs/dataset/embeddings/ftn/1_uni2.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/tiled/ftn/1_224@_here_ + - _self_ + +mlflow_uris: + embeddings: + train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn + test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn + test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file diff --git a/configs/dataset/embeddings/ftn/1_virchow2.yaml b/configs/dataset/embeddings/ftn/1_virchow2.yaml new file mode 100644 index 00000000..08ba0e42 --- /dev/null +++ b/configs/dataset/embeddings/ftn/1_virchow2.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/tiled/ftn/1_224@_here_ + - _self_ + +mlflow_uris: + embeddings: + train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn + test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn + test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file diff --git a/configs/dataset/embeddings/ftn/2_virchow2.yaml b/configs/dataset/embeddings/ftn/2_virchow2.yaml new file mode 100644 index 00000000..5cb4f4e7 --- /dev/null +++ b/configs/dataset/embeddings/ftn/2_virchow2.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/tiled/ftn/2_224@_here_ + - _self_ + +mlflow_uris: + embeddings: + train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn + test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn + test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file diff --git a/configs/dataset/embeddings/ikem.yaml b/configs/dataset/embeddings/ikem.yaml deleted file mode 100644 index 81d33b21..00000000 --- a/configs/dataset/embeddings/ikem.yaml +++ /dev/null @@ -1,6 +0,0 @@ -defaults: - - /dataset/tiled/ikem/0_320@_here_ - - _self_ - -mlflow_uris: - neutrophils: mlflow-artifacts:/86/c01579c246ad4f66a3b3cc0d8aa644fe/artifacts/neutrophils diff --git a/configs/dataset/embeddings/ikem/1_prov-gigapath.yaml b/configs/dataset/embeddings/ikem/1_prov-gigapath.yaml new file mode 100644 index 00000000..a9353b51 --- /dev/null +++ b/configs/dataset/embeddings/ikem/1_prov-gigapath.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/tiled/ikem/1_224@_here_ + - _self_ + +mlflow_uris: + embeddings: + train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem + test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem + test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file diff --git a/configs/dataset/embeddings/ikem/1_uni2.yaml b/configs/dataset/embeddings/ikem/1_uni2.yaml new file mode 100644 index 00000000..a9353b51 --- /dev/null +++ b/configs/dataset/embeddings/ikem/1_uni2.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/tiled/ikem/1_224@_here_ + - _self_ + +mlflow_uris: + embeddings: + train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem + test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem + test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file diff --git a/configs/dataset/embeddings/ikem/1_virchow2.yaml b/configs/dataset/embeddings/ikem/1_virchow2.yaml new file mode 100644 index 00000000..a9353b51 --- /dev/null +++ b/configs/dataset/embeddings/ikem/1_virchow2.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/tiled/ikem/1_224@_here_ + - _self_ + +mlflow_uris: + embeddings: + train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem + test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem + test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file diff --git a/configs/dataset/embeddings/ikem/2_virchow2.yaml b/configs/dataset/embeddings/ikem/2_virchow2.yaml new file mode 100644 index 00000000..6752183b --- /dev/null +++ b/configs/dataset/embeddings/ikem/2_virchow2.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/tiled/ikem/2_224@_here_ + - _self_ + +mlflow_uris: + embeddings: + train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem + test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem + test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file diff --git a/configs/dataset/embeddings/knl_patos.yaml b/configs/dataset/embeddings/knl_patos.yaml deleted file mode 100644 index 5303a9ad..00000000 --- a/configs/dataset/embeddings/knl_patos.yaml +++ /dev/null @@ -1,6 +0,0 @@ -defaults: - - /dataset/tiled/knl_patos/0_320@_here_ - - _self_ - -mlflow_uris: - neutrophils: mlflow-artifacts:/86/24d97109978e4c8ba13ac1972d22be96/artifacts/neutrophils diff --git a/configs/dataset/embeddings/knl_patos/1_prov-gigapath.yaml b/configs/dataset/embeddings/knl_patos/1_prov-gigapath.yaml new file mode 100644 index 00000000..9952d82b --- /dev/null +++ b/configs/dataset/embeddings/knl_patos/1_prov-gigapath.yaml @@ -0,0 +1,8 @@ +defaults: + - /dataset/tiled/knl_patos/0_224@_here_ + - _self_ + +mlflow_uris: + embeddings: + test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos + test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file diff --git a/configs/dataset/embeddings/knl_patos/1_uni2.yaml b/configs/dataset/embeddings/knl_patos/1_uni2.yaml new file mode 100644 index 00000000..9952d82b --- /dev/null +++ b/configs/dataset/embeddings/knl_patos/1_uni2.yaml @@ -0,0 +1,8 @@ +defaults: + - /dataset/tiled/knl_patos/0_224@_here_ + - _self_ + +mlflow_uris: + embeddings: + test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos + test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file diff --git a/configs/dataset/embeddings/knl_patos/1_virchow2.yaml b/configs/dataset/embeddings/knl_patos/1_virchow2.yaml new file mode 100644 index 00000000..9952d82b --- /dev/null +++ b/configs/dataset/embeddings/knl_patos/1_virchow2.yaml @@ -0,0 +1,8 @@ +defaults: + - /dataset/tiled/knl_patos/0_224@_here_ + - _self_ + +mlflow_uris: + embeddings: + test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos + test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file diff --git a/configs/dataset/embeddings/knl_patos/2_virchow2.yaml b/configs/dataset/embeddings/knl_patos/2_virchow2.yaml new file mode 100644 index 00000000..1acf5ee3 --- /dev/null +++ b/configs/dataset/embeddings/knl_patos/2_virchow2.yaml @@ -0,0 +1,8 @@ +defaults: + - /dataset/tiled/knl_patos/2_224@_here_ + - _self_ + +mlflow_uris: + embeddings: + test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos + test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file diff --git a/configs/dataset/tiled/ftn.yaml b/configs/dataset/tiled/ftn/0_320.yaml similarity index 100% rename from configs/dataset/tiled/ftn.yaml rename to configs/dataset/tiled/ftn/0_320.yaml diff --git a/configs/dataset/tiled/ftn/0_512.yaml b/configs/dataset/tiled/ftn/0_512.yaml new file mode 100644 index 00000000..3f9db69e --- /dev/null +++ b/configs/dataset/tiled/ftn/0_512.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/processed_w_masks/ftn@_here_ + - _self_ + +mlflow_uris: + tiling: + train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn + test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn + test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file diff --git a/configs/dataset/tiled/ftn/1_224.yaml b/configs/dataset/tiled/ftn/1_224.yaml new file mode 100644 index 00000000..3f9db69e --- /dev/null +++ b/configs/dataset/tiled/ftn/1_224.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/processed_w_masks/ftn@_here_ + - _self_ + +mlflow_uris: + tiling: + train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn + test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn + test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file diff --git a/configs/dataset/tiled/ftn/2_224.yaml b/configs/dataset/tiled/ftn/2_224.yaml new file mode 100644 index 00000000..3f9db69e --- /dev/null +++ b/configs/dataset/tiled/ftn/2_224.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/processed_w_masks/ftn@_here_ + - _self_ + +mlflow_uris: + tiling: + train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn + test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn + test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file diff --git a/configs/dataset/tiled/ikem.yaml b/configs/dataset/tiled/ikem/0_320.yaml similarity index 100% rename from configs/dataset/tiled/ikem.yaml rename to configs/dataset/tiled/ikem/0_320.yaml diff --git a/configs/dataset/tiled/ikem/0_512.yaml b/configs/dataset/tiled/ikem/0_512.yaml new file mode 100644 index 00000000..c8f212ca --- /dev/null +++ b/configs/dataset/tiled/ikem/0_512.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/processed_w_masks/ikem@_here_ + - _self_ + +mlflow_uris: + tiling: + train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem + test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem + test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file diff --git a/configs/dataset/tiled/ikem/1_224.yaml b/configs/dataset/tiled/ikem/1_224.yaml new file mode 100644 index 00000000..c8f212ca --- /dev/null +++ b/configs/dataset/tiled/ikem/1_224.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/processed_w_masks/ikem@_here_ + - _self_ + +mlflow_uris: + tiling: + train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem + test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem + test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file diff --git a/configs/dataset/tiled/ikem/2_224.yaml b/configs/dataset/tiled/ikem/2_224.yaml new file mode 100644 index 00000000..c8f212ca --- /dev/null +++ b/configs/dataset/tiled/ikem/2_224.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/processed_w_masks/ikem@_here_ + - _self_ + +mlflow_uris: + tiling: + train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem + test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem + test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file diff --git a/configs/dataset/tiled/knl_patos.yaml b/configs/dataset/tiled/knl_patos/0_320.yaml similarity index 100% rename from configs/dataset/tiled/knl_patos.yaml rename to configs/dataset/tiled/knl_patos/0_320.yaml diff --git a/configs/dataset/tiled/knl_patos/0_512.yaml b/configs/dataset/tiled/knl_patos/0_512.yaml new file mode 100644 index 00000000..a8e44014 --- /dev/null +++ b/configs/dataset/tiled/knl_patos/0_512.yaml @@ -0,0 +1,8 @@ +defaults: + - /dataset/processed_w_masks/knl_patos@_here_ + - _self_ + +mlflow_uris: + tiling: + test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos + test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file diff --git a/configs/dataset/tiled/knl_patos/1_224.yaml b/configs/dataset/tiled/knl_patos/1_224.yaml new file mode 100644 index 00000000..a8e44014 --- /dev/null +++ b/configs/dataset/tiled/knl_patos/1_224.yaml @@ -0,0 +1,8 @@ +defaults: + - /dataset/processed_w_masks/knl_patos@_here_ + - _self_ + +mlflow_uris: + tiling: + test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos + test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file diff --git a/configs/dataset/tiled/knl_patos/2_224.yaml b/configs/dataset/tiled/knl_patos/2_224.yaml new file mode 100644 index 00000000..a8e44014 --- /dev/null +++ b/configs/dataset/tiled/knl_patos/2_224.yaml @@ -0,0 +1,8 @@ +defaults: + - /dataset/processed_w_masks/knl_patos@_here_ + - _self_ + +mlflow_uris: + tiling: + test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos + test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file diff --git a/configs/experiment/ml/classification_embeddings.yaml b/configs/experiment/ml/classification_embeddings.yaml new file mode 100644 index 00000000..34166470 --- /dev/null +++ b/configs/experiment/ml/classification_embeddings.yaml @@ -0,0 +1,13 @@ +defaults: + - /ml/train + - /ml/model: classification + - /ml/data: embeddings + - /ml/backbone@model.backbone: identity + - _self_ + +model: + decode_head: + _target_: ml.modeling.LinearProbe + +metadata: + run_name: 'Classification Embeddings - ${data.train.mode} - fold ${val_fold}' diff --git a/configs/experiment/ml/classification_tiles.yaml b/configs/experiment/ml/classification_tiles.yaml new file mode 100644 index 00000000..876e9fab --- /dev/null +++ b/configs/experiment/ml/classification_tiles.yaml @@ -0,0 +1,13 @@ +defaults: + - /ml/train + - /ml/model: classification + - /ml/data: tiles + - /ml/backbone@model.backbone: vgg16 + - _self_ + +model: + decode_head: + _target_: ml.modeling.ClassificationHead + +metadata: + run_name: 'Classification Tiles - ${data.train.mode} - fold ${val_fold}' diff --git a/configs/experiment/ml/experiment_i_baseline_classification/fold_1.yaml b/configs/experiment/ml/experiment_i_baseline_classification/fold_1.yaml new file mode 100644 index 00000000..930ec631 --- /dev/null +++ b/configs/experiment/ml/experiment_i_baseline_classification/fold_1.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/classification_tiles + - _self_ + +val_fold: 1 +data: + train: + uris: tiled/ikem/0_512 + mode: all + val: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/fold_2.yaml b/configs/experiment/ml/experiment_i_baseline_classification/fold_2.yaml new file mode 100644 index 00000000..a1ffc9a8 --- /dev/null +++ b/configs/experiment/ml/experiment_i_baseline_classification/fold_2.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/classification_tiles + - _self_ + +val_fold: 2 +data: + train: + uris: tiled/ikem/0_512 + mode: all + val: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/fold_3.yaml b/configs/experiment/ml/experiment_i_baseline_classification/fold_3.yaml new file mode 100644 index 00000000..b084923f --- /dev/null +++ b/configs/experiment/ml/experiment_i_baseline_classification/fold_3.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/classification_tiles + - _self_ + +val_fold: 3 +data: + train: + uris: tiled/ikem/0_512 + mode: all + val: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/fold_4.yaml b/configs/experiment/ml/experiment_i_baseline_classification/fold_4.yaml new file mode 100644 index 00000000..becf03b4 --- /dev/null +++ b/configs/experiment/ml/experiment_i_baseline_classification/fold_4.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/classification_tiles + - _self_ + +val_fold: 4 +data: + train: + uris: tiled/ikem/0_512 + mode: all + val: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/fold_5.yaml b/configs/experiment/ml/experiment_i_baseline_classification/fold_5.yaml new file mode 100644 index 00000000..cfdb3748 --- /dev/null +++ b/configs/experiment/ml/experiment_i_baseline_classification/fold_5.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/classification_tiles + - _self_ + +val_fold: 5 +data: + train: + uris: tiled/ikem/0_512 + mode: all + val: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/fold_1.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/fold_1.yaml new file mode 100644 index 00000000..0f7c3bb2 --- /dev/null +++ b/configs/experiment/ml/experiment_ii_ordered_regression/fold_1.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/ordered_regression_tiles + - _self_ + +val_fold: 1 +data: + train: + uris: tiled/ikem/0_512 + mode: all + val: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/fold_2.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/fold_2.yaml new file mode 100644 index 00000000..adb5ea91 --- /dev/null +++ b/configs/experiment/ml/experiment_ii_ordered_regression/fold_2.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/ordered_regression_tiles + - _self_ + +val_fold: 2 +data: + train: + uris: tiled/ikem/0_512 + mode: all + val: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/fold_3.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/fold_3.yaml new file mode 100644 index 00000000..72438184 --- /dev/null +++ b/configs/experiment/ml/experiment_ii_ordered_regression/fold_3.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/ordered_regression_tiles + - _self_ + +val_fold: 3 +data: + train: + uris: tiled/ikem/0_512 + mode: all + val: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/fold_4.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/fold_4.yaml new file mode 100644 index 00000000..efdc0e04 --- /dev/null +++ b/configs/experiment/ml/experiment_ii_ordered_regression/fold_4.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/ordered_regression_tiles + - _self_ + +val_fold: 4 +data: + train: + uris: tiled/ikem/0_512 + mode: all + val: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/fold_5.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/fold_5.yaml new file mode 100644 index 00000000..af8e3ae7 --- /dev/null +++ b/configs/experiment/ml/experiment_ii_ordered_regression/fold_5.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/ordered_regression_tiles + - _self_ + +val_fold: 5 +data: + train: + uris: tiled/ikem/0_512 + mode: all + val: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_1.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_1.yaml new file mode 100644 index 00000000..da3cf76f --- /dev/null +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_1.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/classification_embeddings + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: all + val: + uris: embeddings/ikem/1_prov-gigapath + mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_2.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_2.yaml new file mode 100644 index 00000000..feb94cd8 --- /dev/null +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_2.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/classification_embeddings + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: all + val: + uris: embeddings/ikem/1_prov-gigapath + mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_3.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_3.yaml new file mode 100644 index 00000000..66d65332 --- /dev/null +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_3.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/classification_embeddings + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: all + val: + uris: embeddings/ikem/1_prov-gigapath + mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_4.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_4.yaml new file mode 100644 index 00000000..5a34a012 --- /dev/null +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_4.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/classification_embeddings + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: all + val: + uris: embeddings/ikem/1_prov-gigapath + mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_5.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_5.yaml new file mode 100644 index 00000000..9a6827c7 --- /dev/null +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_5.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/classification_embeddings + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: all + val: + uris: embeddings/ikem/1_prov-gigapath + mode: all diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_1.yaml new file mode 100644 index 00000000..ae75e561 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high +model: + foundation: prov-gigapath + num_classes: 4 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_2.yaml new file mode 100644 index 00000000..43d25a74 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high +model: + foundation: prov-gigapath + num_classes: 4 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_3.yaml new file mode 100644 index 00000000..cc001f1e --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high +model: + foundation: prov-gigapath + num_classes: 4 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_4.yaml new file mode 100644 index 00000000..9d5d1715 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high +model: + foundation: prov-gigapath + num_classes: 4 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_5.yaml new file mode 100644 index 00000000..669909d1 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high +model: + foundation: prov-gigapath + num_classes: 4 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_1.yaml new file mode 100644 index 00000000..971ec79c --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low +model: + foundation: prov-gigapath + num_classes: 3 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_2.yaml new file mode 100644 index 00000000..36e43eaf --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low +model: + foundation: prov-gigapath + num_classes: 3 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_3.yaml new file mode 100644 index 00000000..68088cfc --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low +model: + foundation: prov-gigapath + num_classes: 3 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_4.yaml new file mode 100644 index 00000000..e117dabe --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low +model: + foundation: prov-gigapath + num_classes: 3 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_5.yaml new file mode 100644 index 00000000..fa3df868 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low +model: + foundation: prov-gigapath + num_classes: 3 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_1.yaml new file mode 100644 index 00000000..e1203265 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils + val: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils +model: + foundation: prov-gigapath + num_classes: 1 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_2.yaml new file mode 100644 index 00000000..b250fd71 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils + val: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils +model: + foundation: prov-gigapath + num_classes: 1 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_3.yaml new file mode 100644 index 00000000..e775ee82 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils + val: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils +model: + foundation: prov-gigapath + num_classes: 1 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_4.yaml new file mode 100644 index 00000000..c2b1202b --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils + val: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils +model: + foundation: prov-gigapath + num_classes: 1 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_5.yaml new file mode 100644 index 00000000..2beb7520 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils + val: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils +model: + foundation: prov-gigapath + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_1.yaml new file mode 100644 index 00000000..ae75e561 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high +model: + foundation: prov-gigapath + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_2.yaml new file mode 100644 index 00000000..43d25a74 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high +model: + foundation: prov-gigapath + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_3.yaml new file mode 100644 index 00000000..cc001f1e --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high +model: + foundation: prov-gigapath + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_4.yaml new file mode 100644 index 00000000..9d5d1715 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high +model: + foundation: prov-gigapath + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_5.yaml new file mode 100644 index 00000000..669909d1 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high +model: + foundation: prov-gigapath + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_1.yaml new file mode 100644 index 00000000..d38bc7d9 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: nancy_high + val: + uris: embeddings/ikem/1_uni2 + mode: nancy_high +model: + foundation: uni2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_2.yaml new file mode 100644 index 00000000..acec3265 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: nancy_high + val: + uris: embeddings/ikem/1_uni2 + mode: nancy_high +model: + foundation: uni2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_3.yaml new file mode 100644 index 00000000..859199a7 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: nancy_high + val: + uris: embeddings/ikem/1_uni2 + mode: nancy_high +model: + foundation: uni2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_4.yaml new file mode 100644 index 00000000..1aa61e85 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: nancy_high + val: + uris: embeddings/ikem/1_uni2 + mode: nancy_high +model: + foundation: uni2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_5.yaml new file mode 100644 index 00000000..347c782f --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: nancy_high + val: + uris: embeddings/ikem/1_uni2 + mode: nancy_high +model: + foundation: uni2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_1.yaml new file mode 100644 index 00000000..6943a55d --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high + val: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high +model: + foundation: virchow2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_2.yaml new file mode 100644 index 00000000..bd0318a5 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high + val: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high +model: + foundation: virchow2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_3.yaml new file mode 100644 index 00000000..468f3c99 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high + val: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high +model: + foundation: virchow2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_4.yaml new file mode 100644 index 00000000..1e1eb569 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high + val: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high +model: + foundation: virchow2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_5.yaml new file mode 100644 index 00000000..4261aeed --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high + val: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high +model: + foundation: virchow2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_1.yaml new file mode 100644 index 00000000..8797d261 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high + val: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high +model: + foundation: virchow2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_2.yaml new file mode 100644 index 00000000..28ab24b5 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high + val: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high +model: + foundation: virchow2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_3.yaml new file mode 100644 index 00000000..613d1037 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high + val: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high +model: + foundation: virchow2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_4.yaml new file mode 100644 index 00000000..673194c8 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high + val: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high +model: + foundation: virchow2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_5.yaml new file mode 100644 index 00000000..d91a22fb --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high + val: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high +model: + foundation: virchow2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_1.yaml new file mode 100644 index 00000000..971ec79c --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low +model: + foundation: prov-gigapath + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_2.yaml new file mode 100644 index 00000000..36e43eaf --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low +model: + foundation: prov-gigapath + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_3.yaml new file mode 100644 index 00000000..68088cfc --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low +model: + foundation: prov-gigapath + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_4.yaml new file mode 100644 index 00000000..e117dabe --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low +model: + foundation: prov-gigapath + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_5.yaml new file mode 100644 index 00000000..fa3df868 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low +model: + foundation: prov-gigapath + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_1.yaml new file mode 100644 index 00000000..9e09df62 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: nancy_low + val: + uris: embeddings/ikem/1_uni2 + mode: nancy_low +model: + foundation: uni2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_2.yaml new file mode 100644 index 00000000..bacb48eb --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: nancy_low + val: + uris: embeddings/ikem/1_uni2 + mode: nancy_low +model: + foundation: uni2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_3.yaml new file mode 100644 index 00000000..d13cf5ba --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: nancy_low + val: + uris: embeddings/ikem/1_uni2 + mode: nancy_low +model: + foundation: uni2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_4.yaml new file mode 100644 index 00000000..3eabdcfb --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: nancy_low + val: + uris: embeddings/ikem/1_uni2 + mode: nancy_low +model: + foundation: uni2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_5.yaml new file mode 100644 index 00000000..6815f1d5 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: nancy_low + val: + uris: embeddings/ikem/1_uni2 + mode: nancy_low +model: + foundation: uni2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_1.yaml new file mode 100644 index 00000000..12e15bc2 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low + val: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low +model: + foundation: virchow2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_2.yaml new file mode 100644 index 00000000..f642759e --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low + val: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low +model: + foundation: virchow2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_3.yaml new file mode 100644 index 00000000..bd98259d --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low + val: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low +model: + foundation: virchow2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_4.yaml new file mode 100644 index 00000000..3ce73081 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low + val: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low +model: + foundation: virchow2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_5.yaml new file mode 100644 index 00000000..4c80f845 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low + val: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low +model: + foundation: virchow2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_1.yaml new file mode 100644 index 00000000..27d2edf4 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low + val: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low +model: + foundation: virchow2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_2.yaml new file mode 100644 index 00000000..7fe2ad69 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low + val: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low +model: + foundation: virchow2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_3.yaml new file mode 100644 index 00000000..80cec9f8 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low + val: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low +model: + foundation: virchow2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_4.yaml new file mode 100644 index 00000000..51d1a19c --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low + val: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low +model: + foundation: virchow2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_5.yaml new file mode 100644 index 00000000..f09d6d2b --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low + val: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low +model: + foundation: virchow2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_1.yaml new file mode 100644 index 00000000..e1203265 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils + val: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils +model: + foundation: prov-gigapath + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_2.yaml new file mode 100644 index 00000000..b250fd71 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils + val: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils +model: + foundation: prov-gigapath + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_3.yaml new file mode 100644 index 00000000..e775ee82 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils + val: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils +model: + foundation: prov-gigapath + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_4.yaml new file mode 100644 index 00000000..c2b1202b --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils + val: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils +model: + foundation: prov-gigapath + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_5.yaml new file mode 100644 index 00000000..2beb7520 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils + val: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils +model: + foundation: prov-gigapath + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_1.yaml new file mode 100644 index 00000000..42c44b28 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: neutrophils + val: + uris: embeddings/ikem/1_uni2 + mode: neutrophils +model: + foundation: uni2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_2.yaml new file mode 100644 index 00000000..32911600 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: neutrophils + val: + uris: embeddings/ikem/1_uni2 + mode: neutrophils +model: + foundation: uni2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_3.yaml new file mode 100644 index 00000000..f837e341 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: neutrophils + val: + uris: embeddings/ikem/1_uni2 + mode: neutrophils +model: + foundation: uni2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_4.yaml new file mode 100644 index 00000000..3d5bc5df --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: neutrophils + val: + uris: embeddings/ikem/1_uni2 + mode: neutrophils +model: + foundation: uni2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_5.yaml new file mode 100644 index 00000000..170bd5a1 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: neutrophils + val: + uris: embeddings/ikem/1_uni2 + mode: neutrophils +model: + foundation: uni2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_1.yaml new file mode 100644 index 00000000..92f2aa40 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils + val: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils +model: + foundation: virchow2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_2.yaml new file mode 100644 index 00000000..904ace03 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils + val: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils +model: + foundation: virchow2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_3.yaml new file mode 100644 index 00000000..060ae87e --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils + val: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils +model: + foundation: virchow2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_4.yaml new file mode 100644 index 00000000..bfd6eacc --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils + val: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils +model: + foundation: virchow2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_5.yaml new file mode 100644 index 00000000..b2edf75d --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils + val: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils +model: + foundation: virchow2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_1.yaml new file mode 100644 index 00000000..24f16598 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils + val: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils +model: + foundation: virchow2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_2.yaml new file mode 100644 index 00000000..688d5148 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils + val: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils +model: + foundation: virchow2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_3.yaml new file mode 100644 index 00000000..f6b0c433 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils + val: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils +model: + foundation: virchow2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_4.yaml new file mode 100644 index 00000000..059393fe --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils + val: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils +model: + foundation: virchow2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_5.yaml new file mode 100644 index 00000000..0d81920e --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils + val: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils +model: + foundation: virchow2 + num_classes: 1 diff --git a/configs/experiment/ml/mil_bags.yaml b/configs/experiment/ml/mil_bags.yaml new file mode 100644 index 00000000..effe3ede --- /dev/null +++ b/configs/experiment/ml/mil_bags.yaml @@ -0,0 +1,8 @@ +defaults: + - /ml/train + - /ml/model: mil + - /ml/data: bags + - _self_ + +metadata: + run_name: 'MIL Bags - ${data.train.mode} - fold ${val_fold}' diff --git a/configs/experiment/ml/ordered_regression_tiles.yaml b/configs/experiment/ml/ordered_regression_tiles.yaml new file mode 100644 index 00000000..dea06c9b --- /dev/null +++ b/configs/experiment/ml/ordered_regression_tiles.yaml @@ -0,0 +1,9 @@ +defaults: + - /ml/train + - /ml/model: ordered_regression + - /ml/data: tiles + - /ml/backbone@model.backbone: vgg16 + - _self_ + +metadata: + run_name: 'Ordered Regression Tiles - ${data.train.mode} - fold ${val_fold}' diff --git a/configs/experiment/preprocessing/embeddings/1_prov-gigapath/ftn.yaml b/configs/experiment/preprocessing/embeddings/1_prov-gigapath/ftn.yaml new file mode 100644 index 00000000..f7f80531 --- /dev/null +++ b/configs/experiment/preprocessing/embeddings/1_prov-gigapath/ftn.yaml @@ -0,0 +1,7 @@ +# @package _global_ + +defaults: + - /dataset/tiled/ftn/1_224@_here_ + - _self_ + +model: prov-gigapath \ No newline at end of file diff --git a/configs/experiment/preprocessing/embeddings/1_prov-gigapath/ikem.yaml b/configs/experiment/preprocessing/embeddings/1_prov-gigapath/ikem.yaml new file mode 100644 index 00000000..dcd9d566 --- /dev/null +++ b/configs/experiment/preprocessing/embeddings/1_prov-gigapath/ikem.yaml @@ -0,0 +1,7 @@ +# @package _global_ + +defaults: + - /dataset/tiled/ikem/1_224@_here_ + - _self_ + +model: prov-gigapath diff --git a/configs/experiment/preprocessing/embeddings/1_prov-gigapath/knl_patos.yaml b/configs/experiment/preprocessing/embeddings/1_prov-gigapath/knl_patos.yaml new file mode 100644 index 00000000..b81d5adf --- /dev/null +++ b/configs/experiment/preprocessing/embeddings/1_prov-gigapath/knl_patos.yaml @@ -0,0 +1,7 @@ +# @package _global_ + +defaults: + - /dataset/tiled/knl_patos/1_224@_here_ + - _self_ + +model: prov-gigapath \ No newline at end of file diff --git a/configs/experiment/preprocessing/embeddings/1_uni2/ftn.yaml b/configs/experiment/preprocessing/embeddings/1_uni2/ftn.yaml new file mode 100644 index 00000000..1c05032a --- /dev/null +++ b/configs/experiment/preprocessing/embeddings/1_uni2/ftn.yaml @@ -0,0 +1,7 @@ +# @package _global_ + +defaults: + - /dataset/tiled/ftn/1_224@_here_ + - _self_ + +model: uni2 \ No newline at end of file diff --git a/configs/experiment/preprocessing/embeddings/1_uni2/ikem.yaml b/configs/experiment/preprocessing/embeddings/1_uni2/ikem.yaml new file mode 100644 index 00000000..03435b59 --- /dev/null +++ b/configs/experiment/preprocessing/embeddings/1_uni2/ikem.yaml @@ -0,0 +1,7 @@ +# @package _global_ + +defaults: + - /dataset/tiled/ikem/1_224@_here_ + - _self_ + +model: uni2 diff --git a/configs/experiment/preprocessing/embeddings/1_uni2/knl_patos.yaml b/configs/experiment/preprocessing/embeddings/1_uni2/knl_patos.yaml new file mode 100644 index 00000000..cd5fa8a5 --- /dev/null +++ b/configs/experiment/preprocessing/embeddings/1_uni2/knl_patos.yaml @@ -0,0 +1,7 @@ +# @package _global_ + +defaults: + - /dataset/tiled/knl_patos/1_224@_here_ + - _self_ + +model: uni2 \ No newline at end of file diff --git a/configs/experiment/preprocessing/embeddings/1_virchow2/ftn.yaml b/configs/experiment/preprocessing/embeddings/1_virchow2/ftn.yaml new file mode 100644 index 00000000..9fcbd7e9 --- /dev/null +++ b/configs/experiment/preprocessing/embeddings/1_virchow2/ftn.yaml @@ -0,0 +1,7 @@ +# @package _global_ + +defaults: + - /dataset/tiled/ftn/1_224@_here_ + - _self_ + +model: virchow2 \ No newline at end of file diff --git a/configs/experiment/preprocessing/embeddings/1_virchow2/ikem.yaml b/configs/experiment/preprocessing/embeddings/1_virchow2/ikem.yaml new file mode 100644 index 00000000..9ce441f1 --- /dev/null +++ b/configs/experiment/preprocessing/embeddings/1_virchow2/ikem.yaml @@ -0,0 +1,7 @@ +# @package _global_ + +defaults: + - /dataset/tiled/ikem/1_224@_here_ + - _self_ + +model: virchow2 diff --git a/configs/experiment/preprocessing/embeddings/1_virchow2/knl_patos.yaml b/configs/experiment/preprocessing/embeddings/1_virchow2/knl_patos.yaml new file mode 100644 index 00000000..0fcc7bfe --- /dev/null +++ b/configs/experiment/preprocessing/embeddings/1_virchow2/knl_patos.yaml @@ -0,0 +1,7 @@ +# @package _global_ + +defaults: + - /dataset/tiled/knl_patos/1_224@_here_ + - _self_ + +model: virchow2 \ No newline at end of file diff --git a/configs/experiment/preprocessing/embeddings/2_virchow2/ftn.yaml b/configs/experiment/preprocessing/embeddings/2_virchow2/ftn.yaml new file mode 100644 index 00000000..45f7a6bd --- /dev/null +++ b/configs/experiment/preprocessing/embeddings/2_virchow2/ftn.yaml @@ -0,0 +1,7 @@ +# @package _global_ + +defaults: + - /dataset/tiled/ftn/2_224@_here_ + - _self_ + +model: virchow2 \ No newline at end of file diff --git a/configs/experiment/preprocessing/embeddings/2_virchow2/ikem.yaml b/configs/experiment/preprocessing/embeddings/2_virchow2/ikem.yaml new file mode 100644 index 00000000..b8dea0f3 --- /dev/null +++ b/configs/experiment/preprocessing/embeddings/2_virchow2/ikem.yaml @@ -0,0 +1,7 @@ +# @package _global_ + +defaults: + - /dataset/tiled/ikem/2_224@_here_ + - _self_ + +model: virchow2 diff --git a/configs/experiment/preprocessing/embeddings/2_virchow2/knl_patos.yaml b/configs/experiment/preprocessing/embeddings/2_virchow2/knl_patos.yaml new file mode 100644 index 00000000..a489b2a6 --- /dev/null +++ b/configs/experiment/preprocessing/embeddings/2_virchow2/knl_patos.yaml @@ -0,0 +1,7 @@ +# @package _global_ + +defaults: + - /dataset/tiled/knl_patos/2_224@_here_ + - _self_ + +model: virchow2 \ No newline at end of file diff --git a/configs/ml/backbone/identity.yaml b/configs/ml/backbone/identity.yaml new file mode 100644 index 00000000..d8bfafa3 --- /dev/null +++ b/configs/ml/backbone/identity.yaml @@ -0,0 +1 @@ +_target_: torch.nn.Identity diff --git a/configs/ml/backbone/vgg16.yaml b/configs/ml/backbone/vgg16.yaml new file mode 100644 index 00000000..55898012 --- /dev/null +++ b/configs/ml/backbone/vgg16.yaml @@ -0,0 +1,2 @@ +_target_: ml.modeling.backbone.vgg16 +weights: DEFAULT diff --git a/configs/ml/data/bags.yaml b/configs/ml/data/bags.yaml new file mode 100644 index 00000000..3860df01 --- /dev/null +++ b/configs/ml/data/bags.yaml @@ -0,0 +1,16 @@ +_target_: ml.data.BagsDataModule +batch_size: 8 +num_workers: 4 +weighted_sampling: true +train: + _target_: ml.data.datasets.Bags + uris: ??? + mode: ??? + val_fold: ${val_fold} + is_val: false +val: + _target_: ml.data.datasets.Bags + uris: ??? + mode: ??? + val_fold: ${val_fold} + is_val: true diff --git a/configs/ml/data/embeddings.yaml b/configs/ml/data/embeddings.yaml new file mode 100644 index 00000000..d7ba1006 --- /dev/null +++ b/configs/ml/data/embeddings.yaml @@ -0,0 +1,16 @@ +_target_: ml.data.DataModule +batch_size: 32 +num_workers: 4 +weighted_sampling: true +train: + _target_: ml.data.datasets.Embeddings + uris: ??? + mode: ??? + val_fold: ${val_fold} + is_val: false +val: + _target_: ml.data.datasets.Embeddings + uris: ??? + mode: ??? + val_fold: ${val_fold} + is_val: true diff --git a/configs/ml/data/tiles.yaml b/configs/ml/data/tiles.yaml new file mode 100644 index 00000000..f227b7fa --- /dev/null +++ b/configs/ml/data/tiles.yaml @@ -0,0 +1,16 @@ +_target_: ml.data.DataModule +batch_size: 32 +num_workers: 4 +weighted_sampling: true +train: + _target_: ml.data.datasets.Tiles + uris: ??? + mode: ??? + val_fold: ${val_fold} + is_val: false +val: + _target_: ml.data.datasets.Tiles + uris: ??? + mode: ??? + val_fold: ${val_fold} + is_val: true diff --git a/configs/ml/model/classification.yaml b/configs/ml/model/classification.yaml new file mode 100644 index 00000000..ac1b9035 --- /dev/null +++ b/configs/ml/model/classification.yaml @@ -0,0 +1,4 @@ +_target_: ml.classification.Classification +backbone: ??? +decode_head: ??? +lr: 1e-4 diff --git a/configs/ml/model/mil.yaml b/configs/ml/model/mil.yaml new file mode 100644 index 00000000..fdfbcc6b --- /dev/null +++ b/configs/ml/model/mil.yaml @@ -0,0 +1,4 @@ +_target_: ml.mil.MIL +foundation: ??? +num_classes: ??? +lr: 1e-5 diff --git a/configs/ml/model/ordered_regression.yaml b/configs/ml/model/ordered_regression.yaml new file mode 100644 index 00000000..e66c22fd --- /dev/null +++ b/configs/ml/model/ordered_regression.yaml @@ -0,0 +1,3 @@ +_target_: ml.ordered_regression.OrderedRegression +backbone: ??? +lr: 1e-4 diff --git a/configs/ml/train.yaml b/configs/ml/train.yaml new file mode 100644 index 00000000..788192f8 --- /dev/null +++ b/configs/ml/train.yaml @@ -0,0 +1,27 @@ +defaults: + - hydra: default + - logger: mlflow + - _self_ + +seed: ${random_seed:} +mode: fit +checkpoint: null +val_fold: ??? + +trainer: + enable_checkpointing: true + max_epochs: 300 + log_every_n_steps: 5 + callbacks: + - _target_: lightning.pytorch.callbacks.ModelCheckpoint + save_top_k: 1 + monitor: validation/kappa + mode: max + - _target_: lightning.pytorch.callbacks.EarlyStopping + monitor: validation/kappa + mode: max + patience: 20 + +metadata: + experiment_name: Ulcerative Colitis + user: AdamK diff --git a/configs/preprocessing/embeddings.yaml b/configs/preprocessing/embeddings.yaml index b9c46c31..08b9b204 100644 --- a/configs/preprocessing/embeddings.yaml +++ b/configs/preprocessing/embeddings.yaml @@ -1,6 +1,6 @@ # @package _global_ -model: virchow2 +model: ??? output_dir: ${project_dir}/embeddings/${dataset.institution} concurrency: 512 block_size: 128 diff --git a/configs/train_mil_old.yaml b/configs/train_mil_old.yaml new file mode 100644 index 00000000..2119f4b7 --- /dev/null +++ b/configs/train_mil_old.yaml @@ -0,0 +1,54 @@ +defaults: + - hydra: default + - logger: mlflow + - /data/datasets@data.train: tile_embeddings/tile_embeddings + - uris + - paths + - _self_ + +seed: ${random_seed:} +mode: fit +checkpoint: null +cohort: ??? +data_mode: ??? +level: ??? +foundation: ??? + +trainer: + enable_checkpointing: True + max_epochs: 300 + log_every_n_steps: 5 + callbacks: + - _target_: lightning.pytorch.callbacks.ModelCheckpoint + save_top_k: 1 + monitor: validation/kappa + mode: max + - _target_: lightning.pytorch.callbacks.EarlyStopping + monitor: validation/kappa + mode: max + patience: 20 + +data: + batch_size: 8 + target_column: ulceration + num_workers: 4 + kfold_splits: 5 + k: 1 + train: + tiling_uris: ${uris.tiling.${level}.${cohort}.train} + embeddings_uris: ${uris.embeddings.${level}.${cohort}.${foundation}} + mode: ${data_mode} + embeddings_folders: ${paths.embeddings.${level}.${cohort}.${foundation}} + stride_eq_tile: false + +model: + _target_: ulcerative_colitis.ulcerative_colitis_attention_mil.UlcerativeColitisModelAttentionMIL + lr: 0.00001 + foundation: ${foundation} + +metadata: + experiment_name: 'Ulcerative Colitis' + run_name: '🏋️‍♂️ Training: ${data_mode} - ${cohort} - ${level} - ${foundation} (${data.k}/${data.kfold_splits})' + description: 'Ulcerative Colitis' + user: AdamK + hyperparams: {} \ No newline at end of file diff --git a/ml/__main__.py b/ml/__main__.py index 16220fd2..ddf68ce5 100644 --- a/ml/__main__.py +++ b/ml/__main__.py @@ -6,9 +6,6 @@ from omegaconf import DictConfig, OmegaConf from rationai.mlkit import Trainer, autolog -from ml.data import DataModule - - OmegaConf.register_new_resolver( "random_seed", lambda: randint(0, 2**31), use_cache=True ) @@ -22,7 +19,6 @@ def main(config: DictConfig, logger: Logger | None) -> None: data = hydra.utils.instantiate( config.data, _recursive_=False, # to avoid instantiating all the datasets - _target_=DataModule, ) model = hydra.utils.instantiate(config.model) diff --git a/ml/data/__init__.py b/ml/data/__init__.py index e7058ee5..46e5b068 100644 --- a/ml/data/__init__.py +++ b/ml/data/__init__.py @@ -1,4 +1,4 @@ -from ml.data.data_module import DataModule +from ml.data.data_module import BagsDataModule, DataModule -__all__ = ["DataModule"] +__all__ = ["BagsDataModule", "DataModule"] diff --git a/ml/data/data_module.py b/ml/data/data_module.py index 133c60fb..481432ad 100644 --- a/ml/data/data_module.py +++ b/ml/data/data_module.py @@ -82,6 +82,15 @@ def predict_dataloader(self) -> Iterable: ) +class BagsDataModule(DataModule): + def __init__(self, **kwargs) -> None: + super().__init__( + collate_fn=collate_fn, + collate_fn_predict=collate_fn_predict, + **kwargs, + ) + + def collate_fn( batch: list[tuple[Tensor, Tensor, Metadata]], ) -> tuple[Tensor, Tensor, list[Metadata]]: diff --git a/ml/data/datasets/bags.py b/ml/data/datasets/bags.py index a290f9eb..6b19646c 100644 --- a/ml/data/datasets/bags.py +++ b/ml/data/datasets/bags.py @@ -19,7 +19,7 @@ class _Bags(Dataset[T], Generic[T]): def __init__( self, - tiling_uris: Iterable[str] | str, + uris: Iterable[str] | str, mode: LabelMode | str | None = None, padding: bool = True, include_labels: bool = True, @@ -34,7 +34,7 @@ def __init__( if self.include_labels and self.mode is None: raise ValueError("Mode must be specified when including labels.") - self._meta = SlidesTilesLoader(uris=tiling_uris) + self._meta = SlidesTilesLoader(uris=uris) self.tiles = filter_tiles(self._meta.tiles, self.thresholds) self._meta.tiles = self.tiles self._meta._slide_id_to_indices = self._meta._build_tile_index(self.tiles) @@ -86,7 +86,7 @@ def labels(self) -> list[int]: def __init__( self, - tiling_uris: Iterable[str] | str, + uris: Iterable[str] | str, mode: LabelMode | str, padding: bool = True, thresholds: dict[str, float] | None = None, @@ -94,7 +94,7 @@ def __init__( is_val: bool = False, ) -> None: super().__init__( - tiling_uris=tiling_uris, + uris=uris, mode=mode, padding=padding, include_labels=True, @@ -107,13 +107,13 @@ def __init__( class BagsPredict(_Bags[BagsPredictSample]): def __init__( self, - tiling_uris: Iterable[str] | str, + uris: Iterable[str] | str, mode: LabelMode | str | None = None, padding: bool = True, thresholds: dict[str, float] | None = None, ) -> None: super().__init__( - tiling_uris=tiling_uris, + uris=uris, mode=mode, padding=padding, include_labels=False, From af90f470cd8b39ed0270979cf9026add33e11e8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 13:58:08 +0200 Subject: [PATCH 32/54] feat: callback --- ml/base.py | 3 +- ml/callbacks/__init__.py | 4 ++ ml/callbacks/mlflow_prediction_callback.py | 50 ++++++++++++++++++++++ ml/mil.py | 5 ++- 4 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 ml/callbacks/__init__.py create mode 100644 ml/callbacks/mlflow_prediction_callback.py diff --git a/ml/base.py b/ml/base.py index c95f3c0c..f9472264 100644 --- a/ml/base.py +++ b/ml/base.py @@ -89,12 +89,13 @@ def validation_step(self, batch: TilesInput) -> None: self.update_metrics(self.val_metrics, outputs, targets, metadata) self.log_metrics(self.val_metrics) - def test_step(self, batch: TilesInput) -> None: + def test_step(self, batch: TilesInput) -> Output: inputs, targets, metadata = batch outputs = self(inputs) targets = targets.reshape(-1) self.update_metrics(self.test_metrics, outputs, targets, metadata) self.log_metrics(self.test_metrics) + return outputs def predict_step(self, batch: TilesPredictInput) -> Output: return self(batch[0]) diff --git a/ml/callbacks/__init__.py b/ml/callbacks/__init__.py new file mode 100644 index 00000000..81ad8769 --- /dev/null +++ b/ml/callbacks/__init__.py @@ -0,0 +1,4 @@ +from ml.callbacks.mlflow_prediction_callback import MLFlowPredictionCallback + + +__all__ = ["MLFlowPredictionCallback"] diff --git a/ml/callbacks/mlflow_prediction_callback.py b/ml/callbacks/mlflow_prediction_callback.py new file mode 100644 index 00000000..eaf80a66 --- /dev/null +++ b/ml/callbacks/mlflow_prediction_callback.py @@ -0,0 +1,50 @@ +from lightning import Callback, LightningModule, Trainer +from rationai.mlkit.lightning.loggers.mlflow import MLFlowLogger + +from ml.typing import Output + + +def _slide_names(metadata) -> list[str]: + if isinstance(metadata, dict): + return metadata["slide_name"] + return [m["slide_name"] for m in metadata] + + +class MLFlowPredictionCallback(Callback): + def _on_batch_end( + self, + trainer: Trainer, + outputs: Output, + batch: tuple, + ) -> None: + assert isinstance(trainer.logger, MLFlowLogger) + trainer.logger.log_table( + { + "slide": _slide_names(batch[-1]), + "prediction": outputs.tolist(), + }, + artifact_file="predictions.json", + ) + + def on_predict_batch_end( + self, + trainer: Trainer, + pl_module: LightningModule, + outputs: Output, + batch: tuple, + batch_idx: int, + dataloader_idx: int = 0, + ) -> None: + self._on_batch_end(trainer, outputs, batch) + assert isinstance(trainer.logger, MLFlowLogger) + + def on_test_batch_end( + self, + trainer: Trainer, + pl_module: LightningModule, + outputs: Output, + batch: tuple, + batch_idx: int, + dataloader_idx: int = 0, + ) -> None: + self._on_batch_end(trainer, outputs, batch) diff --git a/ml/mil.py b/ml/mil.py index e162b3f8..d93cc469 100644 --- a/ml/mil.py +++ b/ml/mil.py @@ -109,12 +109,13 @@ def test_step(self, batch: BagsInput) -> None: outputs = self(bags) - self.test_metrics.update(self.activation(outputs), labels) + probabilities = self.activation(outputs) + self.test_metrics.update(probabilities, labels) self.log_dict( self.test_metrics, on_epoch=True, on_step=False, batch_size=len(bags) ) - return outputs + return probabilities def predict_step(self, batch: BagsPredictInput) -> Output: return self.activation(self(batch[0])) From 70540f1b03dab61175bda7e6fda58419cecce001 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 17:18:09 +0200 Subject: [PATCH 33/54] feat: ml configs --- .../fold_1.yaml | 1 + .../fold_2.yaml | 1 + .../fold_3.yaml | 1 + .../fold_4.yaml | 1 + .../fold_5.yaml | 1 + .../fold_1.yaml | 1 + .../fold_2.yaml | 1 + .../fold_3.yaml | 1 + .../fold_4.yaml | 1 + .../fold_5.yaml | 1 + .../fold_1.yaml | 1 + .../fold_2.yaml | 1 + .../fold_3.yaml | 1 + .../fold_4.yaml | 1 + .../fold_5.yaml | 1 + .../nancy_high/fold_1.yaml | 1 + .../nancy_high/fold_2.yaml | 1 + .../nancy_high/fold_3.yaml | 1 + .../nancy_high/fold_4.yaml | 1 + .../nancy_high/fold_5.yaml | 1 + .../nancy_low/fold_1.yaml | 1 + .../nancy_low/fold_2.yaml | 1 + .../nancy_low/fold_3.yaml | 1 + .../nancy_low/fold_4.yaml | 1 + .../nancy_low/fold_5.yaml | 1 + .../neutrophils/fold_1.yaml | 1 + .../neutrophils/fold_2.yaml | 1 + .../neutrophils/fold_3.yaml | 1 + .../neutrophils/fold_4.yaml | 1 + .../neutrophils/fold_5.yaml | 1 + .../nancy_high/1_prov-gigapath/fold_1.yaml | 1 + .../nancy_high/1_prov-gigapath/fold_2.yaml | 1 + .../nancy_high/1_prov-gigapath/fold_3.yaml | 1 + .../nancy_high/1_prov-gigapath/fold_4.yaml | 1 + .../nancy_high/1_prov-gigapath/fold_5.yaml | 1 + .../nancy_high/1_uni2/fold_1.yaml | 1 + .../nancy_high/1_uni2/fold_2.yaml | 1 + .../nancy_high/1_uni2/fold_3.yaml | 1 + .../nancy_high/1_uni2/fold_4.yaml | 1 + .../nancy_high/1_uni2/fold_5.yaml | 1 + .../nancy_high/1_virchow2/fold_1.yaml | 1 + .../nancy_high/1_virchow2/fold_2.yaml | 1 + .../nancy_high/1_virchow2/fold_3.yaml | 1 + .../nancy_high/1_virchow2/fold_4.yaml | 1 + .../nancy_high/1_virchow2/fold_5.yaml | 1 + .../nancy_high/2_virchow2/fold_1.yaml | 1 + .../nancy_high/2_virchow2/fold_2.yaml | 1 + .../nancy_high/2_virchow2/fold_3.yaml | 1 + .../nancy_high/2_virchow2/fold_4.yaml | 1 + .../nancy_high/2_virchow2/fold_5.yaml | 1 + .../nancy_low/1_prov-gigapath/fold_1.yaml | 1 + .../nancy_low/1_prov-gigapath/fold_2.yaml | 1 + .../nancy_low/1_prov-gigapath/fold_3.yaml | 1 + .../nancy_low/1_prov-gigapath/fold_4.yaml | 1 + .../nancy_low/1_prov-gigapath/fold_5.yaml | 1 + .../nancy_low/1_uni2/fold_1.yaml | 1 + .../nancy_low/1_uni2/fold_2.yaml | 1 + .../nancy_low/1_uni2/fold_3.yaml | 1 + .../nancy_low/1_uni2/fold_4.yaml | 1 + .../nancy_low/1_uni2/fold_5.yaml | 1 + .../nancy_low/1_virchow2/fold_1.yaml | 1 + .../nancy_low/1_virchow2/fold_2.yaml | 1 + .../nancy_low/1_virchow2/fold_3.yaml | 1 + .../nancy_low/1_virchow2/fold_4.yaml | 1 + .../nancy_low/1_virchow2/fold_5.yaml | 1 + .../nancy_low/2_virchow2/fold_1.yaml | 1 + .../nancy_low/2_virchow2/fold_2.yaml | 1 + .../nancy_low/2_virchow2/fold_3.yaml | 1 + .../nancy_low/2_virchow2/fold_4.yaml | 1 + .../nancy_low/2_virchow2/fold_5.yaml | 1 + .../neutrophils/1_prov-gigapath/fold_1.yaml | 1 + .../neutrophils/1_prov-gigapath/fold_2.yaml | 1 + .../neutrophils/1_prov-gigapath/fold_3.yaml | 1 + .../neutrophils/1_prov-gigapath/fold_4.yaml | 1 + .../neutrophils/1_prov-gigapath/fold_5.yaml | 1 + .../neutrophils/1_uni2/fold_1.yaml | 1 + .../neutrophils/1_uni2/fold_2.yaml | 1 + .../neutrophils/1_uni2/fold_3.yaml | 1 + .../neutrophils/1_uni2/fold_4.yaml | 1 + .../neutrophils/1_uni2/fold_5.yaml | 1 + .../neutrophils/1_virchow2/fold_1.yaml | 1 + .../neutrophils/1_virchow2/fold_2.yaml | 1 + .../neutrophils/1_virchow2/fold_3.yaml | 1 + .../neutrophils/1_virchow2/fold_4.yaml | 1 + .../neutrophils/1_virchow2/fold_5.yaml | 1 + .../neutrophils/2_virchow2/fold_1.yaml | 1 + .../neutrophils/2_virchow2/fold_2.yaml | 1 + .../neutrophils/2_virchow2/fold_3.yaml | 1 + .../neutrophils/2_virchow2/fold_4.yaml | 1 + .../neutrophils/2_virchow2/fold_5.yaml | 1 + .../test/fold_1.yaml | 10 ++++ .../test/fold_2.yaml | 10 ++++ .../test/fold_3.yaml | 10 ++++ .../test/fold_4.yaml | 10 ++++ .../test/fold_5.yaml | 10 ++++ .../train}/fold_1.yaml | 2 +- .../train}/fold_2.yaml | 2 +- .../{ => train}/fold_3.yaml | 2 +- .../train}/fold_4.yaml | 2 +- .../{ => train}/fold_5.yaml | 2 +- .../test/fold_1.yaml | 10 ++++ .../test/fold_2.yaml | 10 ++++ .../test/fold_3.yaml | 10 ++++ .../test/fold_4.yaml | 10 ++++ .../test/fold_5.yaml | 10 ++++ .../train}/fold_1.yaml | 2 +- .../train}/fold_2.yaml | 2 +- .../{ => train}/fold_3.yaml | 2 +- .../train}/fold_4.yaml | 2 +- .../{ => train}/fold_5.yaml | 2 +- .../test/fold_1.yaml | 10 ++++ .../test/fold_2.yaml | 10 ++++ .../test/fold_3.yaml | 10 ++++ .../test/fold_4.yaml | 10 ++++ .../test/fold_5.yaml | 10 ++++ .../{ => train}/fold_1.yaml | 2 +- .../{ => train}/fold_2.yaml | 2 +- .../{ => train}/fold_3.yaml | 2 +- .../{ => train}/fold_4.yaml | 2 +- .../{ => train}/fold_5.yaml | 2 +- .../nancy_high/test/fold_1.yaml | 10 ++++ .../nancy_high/test/fold_2.yaml | 10 ++++ .../nancy_high/test/fold_3.yaml | 10 ++++ .../nancy_high/test/fold_4.yaml | 10 ++++ .../nancy_high/test/fold_5.yaml | 10 ++++ .../nancy_high/{ => train}/fold_1.yaml | 2 +- .../nancy_high/train}/fold_2.yaml | 2 +- .../nancy_high/train}/fold_3.yaml | 2 +- .../nancy_high/train}/fold_4.yaml | 2 +- .../nancy_high/{ => train}/fold_5.yaml | 2 +- .../nancy_low/test/fold_1.yaml | 10 ++++ .../nancy_low/test/fold_2.yaml | 10 ++++ .../nancy_low/test/fold_3.yaml | 10 ++++ .../nancy_low/test/fold_4.yaml | 10 ++++ .../nancy_low/test/fold_5.yaml | 10 ++++ .../nancy_low/train}/fold_1.yaml | 2 +- .../nancy_low/train}/fold_2.yaml | 2 +- .../nancy_low/train}/fold_3.yaml | 2 +- .../nancy_low/train}/fold_4.yaml | 2 +- .../nancy_low/{ => train}/fold_5.yaml | 2 +- .../neutrophils/test/fold_1.yaml | 10 ++++ .../neutrophils/test/fold_2.yaml | 10 ++++ .../neutrophils/test/fold_3.yaml | 10 ++++ .../neutrophils/test/fold_4.yaml | 10 ++++ .../neutrophils/test/fold_5.yaml | 10 ++++ .../neutrophils/train}/fold_1.yaml | 2 +- .../neutrophils/train}/fold_2.yaml | 2 +- .../neutrophils/{ => train}/fold_3.yaml | 2 +- .../neutrophils/train}/fold_4.yaml | 2 +- .../neutrophils/{ => train}/fold_5.yaml | 2 +- .../1_prov-gigapath/test/fold_1.yaml | 10 ++++ .../1_prov-gigapath/test/fold_2.yaml | 10 ++++ .../1_prov-gigapath/test/fold_3.yaml | 10 ++++ .../1_prov-gigapath/test/fold_4.yaml | 10 ++++ .../1_prov-gigapath/test/fold_5.yaml | 10 ++++ .../1_prov-gigapath/{ => train}/fold_1.yaml | 2 +- .../1_prov-gigapath/train}/fold_2.yaml | 2 +- .../1_prov-gigapath/train}/fold_3.yaml | 2 +- .../1_prov-gigapath/train}/fold_4.yaml | 2 +- .../1_prov-gigapath/{ => train}/fold_5.yaml | 2 +- .../nancy_high/1_uni2/test/fold_1.yaml | 10 ++++ .../nancy_high/1_uni2/test/fold_2.yaml | 10 ++++ .../nancy_high/1_uni2/test/fold_3.yaml | 10 ++++ .../nancy_high/1_uni2/test/fold_4.yaml | 10 ++++ .../nancy_high/1_uni2/test/fold_5.yaml | 10 ++++ .../nancy_high/1_uni2/{ => train}/fold_1.yaml | 2 +- .../nancy_high/1_uni2/{ => train}/fold_2.yaml | 2 +- .../nancy_high/1_uni2/{ => train}/fold_3.yaml | 2 +- .../nancy_high/1_uni2/{ => train}/fold_4.yaml | 2 +- .../nancy_high/1_uni2/{ => train}/fold_5.yaml | 2 +- .../nancy_high/1_virchow2/test/fold_1.yaml | 10 ++++ .../nancy_high/1_virchow2/test/fold_2.yaml | 10 ++++ .../nancy_high/1_virchow2/test/fold_3.yaml | 10 ++++ .../nancy_high/1_virchow2/test/fold_4.yaml | 10 ++++ .../nancy_high/1_virchow2/test/fold_5.yaml | 10 ++++ .../1_virchow2/{ => train}/fold_1.yaml | 2 +- .../1_virchow2/{ => train}/fold_2.yaml | 2 +- .../1_virchow2/{ => train}/fold_3.yaml | 2 +- .../1_virchow2/{ => train}/fold_4.yaml | 2 +- .../1_virchow2/{ => train}/fold_5.yaml | 2 +- .../nancy_high/2_virchow2/test/fold_1.yaml | 10 ++++ .../nancy_high/2_virchow2/test/fold_2.yaml | 10 ++++ .../nancy_high/2_virchow2/test/fold_3.yaml | 10 ++++ .../nancy_high/2_virchow2/test/fold_4.yaml | 10 ++++ .../nancy_high/2_virchow2/test/fold_5.yaml | 10 ++++ .../2_virchow2/{ => train}/fold_1.yaml | 2 +- .../2_virchow2/{ => train}/fold_2.yaml | 2 +- .../2_virchow2/{ => train}/fold_3.yaml | 2 +- .../2_virchow2/{ => train}/fold_4.yaml | 2 +- .../2_virchow2/{ => train}/fold_5.yaml | 2 +- .../1_prov-gigapath/test/fold_1.yaml | 10 ++++ .../1_prov-gigapath/test/fold_2.yaml | 10 ++++ .../1_prov-gigapath/test/fold_3.yaml | 10 ++++ .../1_prov-gigapath/test/fold_4.yaml | 10 ++++ .../1_prov-gigapath/test/fold_5.yaml | 10 ++++ .../1_prov-gigapath/train}/fold_1.yaml | 2 +- .../1_prov-gigapath/train}/fold_2.yaml | 2 +- .../1_prov-gigapath/train}/fold_3.yaml | 2 +- .../1_prov-gigapath/train}/fold_4.yaml | 2 +- .../1_prov-gigapath/{ => train}/fold_5.yaml | 2 +- .../nancy_low/1_uni2/test/fold_1.yaml | 10 ++++ .../nancy_low/1_uni2/test/fold_2.yaml | 10 ++++ .../nancy_low/1_uni2/test/fold_3.yaml | 10 ++++ .../nancy_low/1_uni2/test/fold_4.yaml | 10 ++++ .../nancy_low/1_uni2/test/fold_5.yaml | 10 ++++ .../nancy_low/1_uni2/{ => train}/fold_1.yaml | 2 +- .../nancy_low/1_uni2/{ => train}/fold_2.yaml | 2 +- .../nancy_low/1_uni2/{ => train}/fold_3.yaml | 2 +- .../nancy_low/1_uni2/{ => train}/fold_4.yaml | 2 +- .../nancy_low/1_uni2/{ => train}/fold_5.yaml | 2 +- .../nancy_low/1_virchow2/test/fold_1.yaml | 10 ++++ .../nancy_low/1_virchow2/test/fold_2.yaml | 10 ++++ .../nancy_low/1_virchow2/test/fold_3.yaml | 10 ++++ .../nancy_low/1_virchow2/test/fold_4.yaml | 10 ++++ .../nancy_low/1_virchow2/test/fold_5.yaml | 10 ++++ .../1_virchow2/{ => train}/fold_1.yaml | 2 +- .../1_virchow2/{ => train}/fold_2.yaml | 2 +- .../1_virchow2/{ => train}/fold_3.yaml | 2 +- .../1_virchow2/{ => train}/fold_4.yaml | 2 +- .../1_virchow2/{ => train}/fold_5.yaml | 2 +- .../nancy_low/2_virchow2/test/fold_1.yaml | 10 ++++ .../nancy_low/2_virchow2/test/fold_2.yaml | 10 ++++ .../nancy_low/2_virchow2/test/fold_3.yaml | 10 ++++ .../nancy_low/2_virchow2/test/fold_4.yaml | 10 ++++ .../nancy_low/2_virchow2/test/fold_5.yaml | 10 ++++ .../2_virchow2/{ => train}/fold_1.yaml | 2 +- .../2_virchow2/{ => train}/fold_2.yaml | 2 +- .../2_virchow2/{ => train}/fold_3.yaml | 2 +- .../2_virchow2/{ => train}/fold_4.yaml | 2 +- .../2_virchow2/{ => train}/fold_5.yaml | 2 +- .../1_prov-gigapath/test/fold_1.yaml | 10 ++++ .../1_prov-gigapath/test/fold_2.yaml | 10 ++++ .../1_prov-gigapath/test/fold_3.yaml | 10 ++++ .../1_prov-gigapath/test/fold_4.yaml | 10 ++++ .../1_prov-gigapath/test/fold_5.yaml | 10 ++++ .../1_prov-gigapath/train}/fold_1.yaml | 2 +- .../1_prov-gigapath/train}/fold_2.yaml | 2 +- .../1_prov-gigapath/{ => train}/fold_3.yaml | 2 +- .../1_prov-gigapath/train}/fold_4.yaml | 2 +- .../1_prov-gigapath/{ => train}/fold_5.yaml | 2 +- .../neutrophils/1_uni2/test/fold_1.yaml | 10 ++++ .../neutrophils/1_uni2/test/fold_2.yaml | 10 ++++ .../neutrophils/1_uni2/test/fold_3.yaml | 10 ++++ .../neutrophils/1_uni2/test/fold_4.yaml | 10 ++++ .../neutrophils/1_uni2/test/fold_5.yaml | 10 ++++ .../1_uni2/{ => train}/fold_1.yaml | 2 +- .../1_uni2/{ => train}/fold_2.yaml | 2 +- .../1_uni2/{ => train}/fold_3.yaml | 2 +- .../1_uni2/{ => train}/fold_4.yaml | 2 +- .../1_uni2/{ => train}/fold_5.yaml | 2 +- .../neutrophils/1_virchow2/test/fold_1.yaml | 10 ++++ .../neutrophils/1_virchow2/test/fold_2.yaml | 10 ++++ .../neutrophils/1_virchow2/test/fold_3.yaml | 10 ++++ .../neutrophils/1_virchow2/test/fold_4.yaml | 10 ++++ .../neutrophils/1_virchow2/test/fold_5.yaml | 10 ++++ .../1_virchow2/{ => train}/fold_1.yaml | 2 +- .../1_virchow2/{ => train}/fold_2.yaml | 2 +- .../1_virchow2/{ => train}/fold_3.yaml | 2 +- .../1_virchow2/{ => train}/fold_4.yaml | 2 +- .../1_virchow2/{ => train}/fold_5.yaml | 2 +- .../neutrophils/2_virchow2/test/fold_1.yaml | 10 ++++ .../neutrophils/2_virchow2/test/fold_2.yaml | 10 ++++ .../neutrophils/2_virchow2/test/fold_3.yaml | 10 ++++ .../neutrophils/2_virchow2/test/fold_4.yaml | 10 ++++ .../neutrophils/2_virchow2/test/fold_5.yaml | 10 ++++ .../2_virchow2/{ => train}/fold_1.yaml | 2 +- .../2_virchow2/{ => train}/fold_2.yaml | 2 +- .../2_virchow2/{ => train}/fold_3.yaml | 2 +- .../2_virchow2/{ => train}/fold_4.yaml | 2 +- .../2_virchow2/{ => train}/fold_5.yaml | 2 +- .../run.yaml | 7 +++ configs/experiment/ml/mil_bags.yaml | 8 --- .../ml/test/classification_embeddings.yaml | 13 +++++ .../ml/test/classification_tiles.yaml | 13 +++++ configs/experiment/ml/test/mil_bags.yaml | 8 +++ .../ml/test/ordered_regression_tiles.yaml | 9 ++++ .../classification_embeddings.yaml | 2 +- .../ml/{ => train}/classification_tiles.yaml | 2 +- configs/experiment/ml/train/mil_bags.yaml | 8 +++ .../{ => train}/ordered_regression_tiles.yaml | 2 +- configs/ml.yaml | 9 ++++ configs/ml/data/bags.yaml | 4 ++ configs/ml/data/embeddings.yaml | 4 ++ configs/ml/data/tiles.yaml | 4 ++ configs/ml/neutrophils.yaml | 5 ++ configs/ml/test.yaml | 10 ++++ configs/ml/train.yaml | 9 +--- configs/train_mil_old.yaml | 54 ------------------- 288 files changed, 1178 insertions(+), 163 deletions(-) create mode 100644 configs/checkpoints/experiment_i_baseline_classification/fold_1.yaml create mode 100644 configs/checkpoints/experiment_i_baseline_classification/fold_2.yaml create mode 100644 configs/checkpoints/experiment_i_baseline_classification/fold_3.yaml create mode 100644 configs/checkpoints/experiment_i_baseline_classification/fold_4.yaml create mode 100644 configs/checkpoints/experiment_i_baseline_classification/fold_5.yaml create mode 100644 configs/checkpoints/experiment_ii_ordered_regression/fold_1.yaml create mode 100644 configs/checkpoints/experiment_ii_ordered_regression/fold_2.yaml create mode 100644 configs/checkpoints/experiment_ii_ordered_regression/fold_3.yaml create mode 100644 configs/checkpoints/experiment_ii_ordered_regression/fold_4.yaml create mode 100644 configs/checkpoints/experiment_ii_ordered_regression/fold_5.yaml create mode 100644 configs/checkpoints/experiment_iii_pathology_foundation_model/fold_1.yaml create mode 100644 configs/checkpoints/experiment_iii_pathology_foundation_model/fold_2.yaml create mode 100644 configs/checkpoints/experiment_iii_pathology_foundation_model/fold_3.yaml create mode 100644 configs/checkpoints/experiment_iii_pathology_foundation_model/fold_4.yaml create mode 100644 configs/checkpoints/experiment_iii_pathology_foundation_model/fold_5.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_1.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_2.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_3.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_4.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_5.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_1.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_2.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_3.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_4.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_5.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_1.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_2.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_3.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_4.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_5.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_1.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_2.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_3.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_4.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_5.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_1.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_2.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_3.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_4.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_5.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_1.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_2.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_3.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_4.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_5.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_1.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_2.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_3.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_4.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_5.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_1.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_2.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_3.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_4.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_5.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_1.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_2.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_3.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_4.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_5.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_1.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_2.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_3.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_4.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_5.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_1.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_2.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_3.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_4.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_5.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_1.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_2.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_3.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_4.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_5.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_1.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_2.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_3.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_4.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_5.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_1.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_2.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_3.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_4.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_5.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_1.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_2.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_3.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_4.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_i_baseline_classification/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_i_baseline_classification/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_i_baseline_classification/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_i_baseline_classification/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_i_baseline_classification/test/fold_5.yaml rename configs/experiment/ml/{experiment_ii_ordered_regression => experiment_i_baseline_classification/train}/fold_1.yaml (75%) rename configs/experiment/ml/{experiment_ii_ordered_regression => experiment_i_baseline_classification/train}/fold_2.yaml (75%) rename configs/experiment/ml/experiment_i_baseline_classification/{ => train}/fold_3.yaml (75%) rename configs/experiment/ml/{experiment_ii_ordered_regression => experiment_i_baseline_classification/train}/fold_4.yaml (75%) rename configs/experiment/ml/experiment_i_baseline_classification/{ => train}/fold_5.yaml (75%) create mode 100644 configs/experiment/ml/experiment_ii_ordered_regression/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_ii_ordered_regression/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_ii_ordered_regression/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_ii_ordered_regression/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_ii_ordered_regression/test/fold_5.yaml rename configs/experiment/ml/{experiment_i_baseline_classification => experiment_ii_ordered_regression/train}/fold_1.yaml (73%) rename configs/experiment/ml/{experiment_i_baseline_classification => experiment_ii_ordered_regression/train}/fold_2.yaml (73%) rename configs/experiment/ml/experiment_ii_ordered_regression/{ => train}/fold_3.yaml (73%) rename configs/experiment/ml/{experiment_i_baseline_classification => experiment_ii_ordered_regression/train}/fold_4.yaml (73%) rename configs/experiment/ml/experiment_ii_ordered_regression/{ => train}/fold_5.yaml (73%) create mode 100644 configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_5.yaml rename configs/experiment/ml/experiment_iii_pathology_foundation_model/{ => train}/fold_1.yaml (76%) rename configs/experiment/ml/experiment_iii_pathology_foundation_model/{ => train}/fold_2.yaml (76%) rename configs/experiment/ml/experiment_iii_pathology_foundation_model/{ => train}/fold_3.yaml (76%) rename configs/experiment/ml/experiment_iii_pathology_foundation_model/{ => train}/fold_4.yaml (76%) rename configs/experiment/ml/experiment_iii_pathology_foundation_model/{ => train}/fold_5.yaml (76%) create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_5.yaml rename configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/{ => train}/fold_1.yaml (87%) rename configs/experiment/ml/{experiment_v_more_foundation_models/nancy_high/1_prov-gigapath => experiment_iv_mil_and_hierarchical_modeling/nancy_high/train}/fold_2.yaml (87%) rename configs/experiment/ml/{experiment_v_more_foundation_models/nancy_high/1_prov-gigapath => experiment_iv_mil_and_hierarchical_modeling/nancy_high/train}/fold_3.yaml (87%) rename configs/experiment/ml/{experiment_v_more_foundation_models/nancy_high/1_prov-gigapath => experiment_iv_mil_and_hierarchical_modeling/nancy_high/train}/fold_4.yaml (87%) rename configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/{ => train}/fold_5.yaml (87%) create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_5.yaml rename configs/experiment/ml/{experiment_v_more_foundation_models/nancy_low/1_prov-gigapath => experiment_iv_mil_and_hierarchical_modeling/nancy_low/train}/fold_1.yaml (87%) rename configs/experiment/ml/{experiment_v_more_foundation_models/nancy_low/1_prov-gigapath => experiment_iv_mil_and_hierarchical_modeling/nancy_low/train}/fold_2.yaml (87%) rename configs/experiment/ml/{experiment_v_more_foundation_models/nancy_low/1_prov-gigapath => experiment_iv_mil_and_hierarchical_modeling/nancy_low/train}/fold_3.yaml (87%) rename configs/experiment/ml/{experiment_v_more_foundation_models/nancy_low/1_prov-gigapath => experiment_iv_mil_and_hierarchical_modeling/nancy_low/train}/fold_4.yaml (87%) rename configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/{ => train}/fold_5.yaml (87%) create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_5.yaml rename configs/experiment/ml/{experiment_v_more_foundation_models/neutrophils/1_prov-gigapath => experiment_iv_mil_and_hierarchical_modeling/neutrophils/train}/fold_1.yaml (87%) rename configs/experiment/ml/{experiment_v_more_foundation_models/neutrophils/1_prov-gigapath => experiment_iv_mil_and_hierarchical_modeling/neutrophils/train}/fold_2.yaml (87%) rename configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/{ => train}/fold_3.yaml (87%) rename configs/experiment/ml/{experiment_v_more_foundation_models/neutrophils/1_prov-gigapath => experiment_iv_mil_and_hierarchical_modeling/neutrophils/train}/fold_4.yaml (87%) rename configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/{ => train}/fold_5.yaml (87%) create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_5.yaml rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/{ => train}/fold_1.yaml (87%) rename configs/experiment/ml/{experiment_iv_mil_and_hierarchical_modeling/nancy_high => experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train}/fold_2.yaml (87%) rename configs/experiment/ml/{experiment_iv_mil_and_hierarchical_modeling/nancy_high => experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train}/fold_3.yaml (87%) rename configs/experiment/ml/{experiment_iv_mil_and_hierarchical_modeling/nancy_high => experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train}/fold_4.yaml (87%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/{ => train}/fold_5.yaml (87%) create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_5.yaml rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/{ => train}/fold_1.yaml (85%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/{ => train}/fold_2.yaml (85%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/{ => train}/fold_3.yaml (85%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/{ => train}/fold_4.yaml (85%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/{ => train}/fold_5.yaml (85%) create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_5.yaml rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/{ => train}/fold_1.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/{ => train}/fold_2.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/{ => train}/fold_3.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/{ => train}/fold_4.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/{ => train}/fold_5.yaml (86%) create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_5.yaml rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/{ => train}/fold_1.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/{ => train}/fold_2.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/{ => train}/fold_3.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/{ => train}/fold_4.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/{ => train}/fold_5.yaml (86%) create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_5.yaml rename configs/experiment/ml/{experiment_iv_mil_and_hierarchical_modeling/nancy_low => experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train}/fold_1.yaml (87%) rename configs/experiment/ml/{experiment_iv_mil_and_hierarchical_modeling/nancy_low => experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train}/fold_2.yaml (87%) rename configs/experiment/ml/{experiment_iv_mil_and_hierarchical_modeling/nancy_low => experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train}/fold_3.yaml (87%) rename configs/experiment/ml/{experiment_iv_mil_and_hierarchical_modeling/nancy_low => experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train}/fold_4.yaml (87%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/{ => train}/fold_5.yaml (87%) create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_5.yaml rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/{ => train}/fold_1.yaml (85%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/{ => train}/fold_2.yaml (85%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/{ => train}/fold_3.yaml (85%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/{ => train}/fold_4.yaml (85%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/{ => train}/fold_5.yaml (85%) create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_5.yaml rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/{ => train}/fold_1.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/{ => train}/fold_2.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/{ => train}/fold_3.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/{ => train}/fold_4.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/{ => train}/fold_5.yaml (86%) create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_5.yaml rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/{ => train}/fold_1.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/{ => train}/fold_2.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/{ => train}/fold_3.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/{ => train}/fold_4.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/{ => train}/fold_5.yaml (86%) create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_5.yaml rename configs/experiment/ml/{experiment_iv_mil_and_hierarchical_modeling/neutrophils => experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train}/fold_1.yaml (87%) rename configs/experiment/ml/{experiment_iv_mil_and_hierarchical_modeling/neutrophils => experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train}/fold_2.yaml (87%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/{ => train}/fold_3.yaml (87%) rename configs/experiment/ml/{experiment_iv_mil_and_hierarchical_modeling/neutrophils => experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train}/fold_4.yaml (87%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/{ => train}/fold_5.yaml (87%) create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_5.yaml rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/{ => train}/fold_1.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/{ => train}/fold_2.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/{ => train}/fold_3.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/{ => train}/fold_4.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/{ => train}/fold_5.yaml (86%) create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_5.yaml rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/{ => train}/fold_1.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/{ => train}/fold_2.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/{ => train}/fold_3.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/{ => train}/fold_4.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/{ => train}/fold_5.yaml (86%) create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_5.yaml rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/{ => train}/fold_1.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/{ => train}/fold_2.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/{ => train}/fold_3.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/{ => train}/fold_4.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/{ => train}/fold_5.yaml (86%) create mode 100644 configs/experiment/ml/experiment_vi_neutrophil_detection/run.yaml delete mode 100644 configs/experiment/ml/mil_bags.yaml create mode 100644 configs/experiment/ml/test/classification_embeddings.yaml create mode 100644 configs/experiment/ml/test/classification_tiles.yaml create mode 100644 configs/experiment/ml/test/mil_bags.yaml create mode 100644 configs/experiment/ml/test/ordered_regression_tiles.yaml rename configs/experiment/ml/{ => train}/classification_embeddings.yaml (65%) rename configs/experiment/ml/{ => train}/classification_tiles.yaml (66%) create mode 100644 configs/experiment/ml/train/mil_bags.yaml rename configs/experiment/ml/{ => train}/ordered_regression_tiles.yaml (56%) create mode 100644 configs/ml.yaml create mode 100644 configs/ml/neutrophils.yaml create mode 100644 configs/ml/test.yaml delete mode 100644 configs/train_mil_old.yaml diff --git a/configs/checkpoints/experiment_i_baseline_classification/fold_1.yaml b/configs/checkpoints/experiment_i_baseline_classification/fold_1.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_i_baseline_classification/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_i_baseline_classification/fold_2.yaml b/configs/checkpoints/experiment_i_baseline_classification/fold_2.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_i_baseline_classification/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_i_baseline_classification/fold_3.yaml b/configs/checkpoints/experiment_i_baseline_classification/fold_3.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_i_baseline_classification/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_i_baseline_classification/fold_4.yaml b/configs/checkpoints/experiment_i_baseline_classification/fold_4.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_i_baseline_classification/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_i_baseline_classification/fold_5.yaml b/configs/checkpoints/experiment_i_baseline_classification/fold_5.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_i_baseline_classification/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_ii_ordered_regression/fold_1.yaml b/configs/checkpoints/experiment_ii_ordered_regression/fold_1.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_ii_ordered_regression/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_ii_ordered_regression/fold_2.yaml b/configs/checkpoints/experiment_ii_ordered_regression/fold_2.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_ii_ordered_regression/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_ii_ordered_regression/fold_3.yaml b/configs/checkpoints/experiment_ii_ordered_regression/fold_3.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_ii_ordered_regression/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_ii_ordered_regression/fold_4.yaml b/configs/checkpoints/experiment_ii_ordered_regression/fold_4.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_ii_ordered_regression/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_ii_ordered_regression/fold_5.yaml b/configs/checkpoints/experiment_ii_ordered_regression/fold_5.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_ii_ordered_regression/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_1.yaml b/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_1.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_2.yaml b/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_2.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_3.yaml b/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_3.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_4.yaml b/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_4.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_5.yaml b/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_5.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_1.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_1.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_2.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_2.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_3.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_3.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_4.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_4.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_5.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_5.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_1.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_1.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_2.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_2.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_3.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_3.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_4.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_4.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_5.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_5.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_1.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_1.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_2.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_2.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_3.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_3.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_4.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_4.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_5.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_5.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_1.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_1.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_2.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_2.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_3.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_3.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_4.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_4.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_5.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_5.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_1.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_1.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_2.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_2.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_3.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_3.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_4.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_4.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_5.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_5.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_1.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_1.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_2.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_2.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_3.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_3.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_4.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_4.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_5.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_5.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_1.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_1.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_2.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_2.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_3.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_3.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_4.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_4.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_5.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_5.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_1.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_1.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_2.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_2.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_3.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_3.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_4.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_4.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_5.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_5.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_1.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_1.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_2.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_2.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_3.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_3.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_4.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_4.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_5.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_5.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_1.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_1.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_2.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_2.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_3.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_3.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_4.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_4.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_5.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_5.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_1.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_1.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_2.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_2.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_3.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_3.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_4.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_4.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_5.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_5.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_1.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_1.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_2.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_2.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_3.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_3.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_4.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_4.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_5.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_5.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_1.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_1.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_2.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_2.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_3.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_3.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_4.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_4.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_5.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_5.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_1.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_1.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_2.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_2.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_3.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_3.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_4.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_4.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_5.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_5.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_1.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_1.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_2.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_2.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_3.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_3.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_4.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_4.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_5.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_5.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_1.yaml b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_1.yaml new file mode 100644 index 00000000..1d4fff51 --- /dev/null +++ b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_i_baseline_classification/train/fold_1 + - /ml/test + - /checkpoints/experiment_i_baseline_classification/fold_1 + - _self_ + +data: + test: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_2.yaml b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_2.yaml new file mode 100644 index 00000000..d1b94134 --- /dev/null +++ b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_i_baseline_classification/train/fold_2 + - /ml/test + - /checkpoints/experiment_i_baseline_classification/fold_2 + - _self_ + +data: + test: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_3.yaml b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_3.yaml new file mode 100644 index 00000000..e03bab7b --- /dev/null +++ b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_i_baseline_classification/train/fold_3 + - /ml/test + - /checkpoints/experiment_i_baseline_classification/fold_3 + - _self_ + +data: + test: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_4.yaml b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_4.yaml new file mode 100644 index 00000000..8a7d8b64 --- /dev/null +++ b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_i_baseline_classification/train/fold_4 + - /ml/test + - /checkpoints/experiment_i_baseline_classification/fold_4 + - _self_ + +data: + test: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_5.yaml b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_5.yaml new file mode 100644 index 00000000..3478bbaf --- /dev/null +++ b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_i_baseline_classification/train/fold_5 + - /ml/test + - /checkpoints/experiment_i_baseline_classification/fold_5 + - _self_ + +data: + test: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/fold_1.yaml b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_1.yaml similarity index 75% rename from configs/experiment/ml/experiment_ii_ordered_regression/fold_1.yaml rename to configs/experiment/ml/experiment_i_baseline_classification/train/fold_1.yaml index 0f7c3bb2..82773857 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/fold_1.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/ordered_regression_tiles + - /experiment/ml/train/classification_tiles - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/fold_2.yaml b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_2.yaml similarity index 75% rename from configs/experiment/ml/experiment_ii_ordered_regression/fold_2.yaml rename to configs/experiment/ml/experiment_i_baseline_classification/train/fold_2.yaml index adb5ea91..4280cebe 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/fold_2.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/ordered_regression_tiles + - /experiment/ml/train/classification_tiles - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_i_baseline_classification/fold_3.yaml b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_3.yaml similarity index 75% rename from configs/experiment/ml/experiment_i_baseline_classification/fold_3.yaml rename to configs/experiment/ml/experiment_i_baseline_classification/train/fold_3.yaml index b084923f..eeb2c372 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/fold_3.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/classification_tiles + - /experiment/ml/train/classification_tiles - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/fold_4.yaml b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_4.yaml similarity index 75% rename from configs/experiment/ml/experiment_ii_ordered_regression/fold_4.yaml rename to configs/experiment/ml/experiment_i_baseline_classification/train/fold_4.yaml index efdc0e04..caa448f5 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/fold_4.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/ordered_regression_tiles + - /experiment/ml/train/classification_tiles - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_i_baseline_classification/fold_5.yaml b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_5.yaml similarity index 75% rename from configs/experiment/ml/experiment_i_baseline_classification/fold_5.yaml rename to configs/experiment/ml/experiment_i_baseline_classification/train/fold_5.yaml index cfdb3748..3bad4443 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/fold_5.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/classification_tiles + - /experiment/ml/train/classification_tiles - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_1.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_1.yaml new file mode 100644 index 00000000..f1d14bcd --- /dev/null +++ b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_ii_ordered_regression/train/fold_1 + - /ml/test + - /checkpoints/experiment_ii_ordered_regression/fold_1 + - _self_ + +data: + test: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_2.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_2.yaml new file mode 100644 index 00000000..1d2da59e --- /dev/null +++ b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_ii_ordered_regression/train/fold_2 + - /ml/test + - /checkpoints/experiment_ii_ordered_regression/fold_2 + - _self_ + +data: + test: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_3.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_3.yaml new file mode 100644 index 00000000..ba03cefb --- /dev/null +++ b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_ii_ordered_regression/train/fold_3 + - /ml/test + - /checkpoints/experiment_ii_ordered_regression/fold_3 + - _self_ + +data: + test: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_4.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_4.yaml new file mode 100644 index 00000000..ff175404 --- /dev/null +++ b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_ii_ordered_regression/train/fold_4 + - /ml/test + - /checkpoints/experiment_ii_ordered_regression/fold_4 + - _self_ + +data: + test: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_5.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_5.yaml new file mode 100644 index 00000000..bd66527f --- /dev/null +++ b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_ii_ordered_regression/train/fold_5 + - /ml/test + - /checkpoints/experiment_ii_ordered_regression/fold_5 + - _self_ + +data: + test: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/fold_1.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_1.yaml similarity index 73% rename from configs/experiment/ml/experiment_i_baseline_classification/fold_1.yaml rename to configs/experiment/ml/experiment_ii_ordered_regression/train/fold_1.yaml index 930ec631..599b17dc 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/fold_1.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/classification_tiles + - /experiment/ml/train/ordered_regression_tiles - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_i_baseline_classification/fold_2.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_2.yaml similarity index 73% rename from configs/experiment/ml/experiment_i_baseline_classification/fold_2.yaml rename to configs/experiment/ml/experiment_ii_ordered_regression/train/fold_2.yaml index a1ffc9a8..97413596 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/fold_2.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/classification_tiles + - /experiment/ml/train/ordered_regression_tiles - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/fold_3.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_3.yaml similarity index 73% rename from configs/experiment/ml/experiment_ii_ordered_regression/fold_3.yaml rename to configs/experiment/ml/experiment_ii_ordered_regression/train/fold_3.yaml index 72438184..0a85a512 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/fold_3.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/ordered_regression_tiles + - /experiment/ml/train/ordered_regression_tiles - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_i_baseline_classification/fold_4.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_4.yaml similarity index 73% rename from configs/experiment/ml/experiment_i_baseline_classification/fold_4.yaml rename to configs/experiment/ml/experiment_ii_ordered_regression/train/fold_4.yaml index becf03b4..7558e4f6 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/fold_4.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/classification_tiles + - /experiment/ml/train/ordered_regression_tiles - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/fold_5.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_5.yaml similarity index 73% rename from configs/experiment/ml/experiment_ii_ordered_regression/fold_5.yaml rename to configs/experiment/ml/experiment_ii_ordered_regression/train/fold_5.yaml index af8e3ae7..953c5569 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/fold_5.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/ordered_regression_tiles + - /experiment/ml/train/ordered_regression_tiles - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_1.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_1.yaml new file mode 100644 index 00000000..9f76138c --- /dev/null +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iii_pathology_foundation_model/train/fold_1 + - /ml/test + - /checkpoints/experiment_iii_pathology_foundation_model/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_2.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_2.yaml new file mode 100644 index 00000000..cce8282a --- /dev/null +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iii_pathology_foundation_model/train/fold_2 + - /ml/test + - /checkpoints/experiment_iii_pathology_foundation_model/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_3.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_3.yaml new file mode 100644 index 00000000..8a992f59 --- /dev/null +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iii_pathology_foundation_model/train/fold_3 + - /ml/test + - /checkpoints/experiment_iii_pathology_foundation_model/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_4.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_4.yaml new file mode 100644 index 00000000..d4222cd1 --- /dev/null +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iii_pathology_foundation_model/train/fold_4 + - /ml/test + - /checkpoints/experiment_iii_pathology_foundation_model/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_5.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_5.yaml new file mode 100644 index 00000000..26aaedaf --- /dev/null +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iii_pathology_foundation_model/train/fold_5 + - /ml/test + - /checkpoints/experiment_iii_pathology_foundation_model/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_1.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_1.yaml similarity index 76% rename from configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_1.yaml rename to configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_1.yaml index da3cf76f..459cacbd 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_1.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/classification_embeddings + - /experiment/ml/train/classification_embeddings - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_2.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_2.yaml similarity index 76% rename from configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_2.yaml rename to configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_2.yaml index feb94cd8..626fd2d1 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_2.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/classification_embeddings + - /experiment/ml/train/classification_embeddings - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_3.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_3.yaml similarity index 76% rename from configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_3.yaml rename to configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_3.yaml index 66d65332..0289f07d 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_3.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/classification_embeddings + - /experiment/ml/train/classification_embeddings - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_4.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_4.yaml similarity index 76% rename from configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_4.yaml rename to configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_4.yaml index 5a34a012..25cfce03 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_4.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/classification_embeddings + - /experiment/ml/train/classification_embeddings - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_5.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_5.yaml similarity index 76% rename from configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_5.yaml rename to configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_5.yaml index 9a6827c7..9f886c20 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_5.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/classification_embeddings + - /experiment/ml/train/classification_embeddings - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_1.yaml new file mode 100644 index 00000000..7d4efbb9 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_1 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_2.yaml new file mode 100644 index 00000000..fc73925b --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_2 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_3.yaml new file mode 100644 index 00000000..b1dbd3ce --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_3 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_4.yaml new file mode 100644 index 00000000..f974eb1c --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_4 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_5.yaml new file mode 100644 index 00000000..54631380 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_5 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_1.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_1.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_1.yaml index ae75e561..cbbfcfbd 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_1.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_2.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_2.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_2.yaml index 43d25a74..fd8b4af4 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_2.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_3.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_3.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_3.yaml index cc001f1e..1a5c4fb9 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_3.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_4.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_4.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_4.yaml index 9d5d1715..e262f5f6 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_4.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_5.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_5.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_5.yaml index 669909d1..eeeb2b64 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_5.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_1.yaml new file mode 100644 index 00000000..2d65b973 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_1 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_2.yaml new file mode 100644 index 00000000..bdd837b6 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_2 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_3.yaml new file mode 100644 index 00000000..77123dcc --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_3 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_4.yaml new file mode 100644 index 00000000..dc3f611d --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_4 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_5.yaml new file mode 100644 index 00000000..90509883 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_5 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_1.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_1.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_1.yaml index 971ec79c..0ebf71ee 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_1.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_2.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_2.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_2.yaml index 36e43eaf..c3cd9d77 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_2.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_3.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_3.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_3.yaml index 68088cfc..2908577f 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_3.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_4.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_4.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_4.yaml index e117dabe..2b1b0bae 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_4.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_5.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_5.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_5.yaml index fa3df868..06c02916 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_5.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_1.yaml new file mode 100644 index 00000000..cd8c1e2f --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_1 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_2.yaml new file mode 100644 index 00000000..b810d4ea --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_2 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_3.yaml new file mode 100644 index 00000000..75a90e9d --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_3 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_4.yaml new file mode 100644 index 00000000..66aa4511 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_4 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_5.yaml new file mode 100644 index 00000000..dfd5f649 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_5 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_1.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_1.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_1.yaml index e1203265..47319e2c 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_1.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_2.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_2.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_2.yaml index b250fd71..fdc7c00a 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_2.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_3.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_3.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_3.yaml index e775ee82..e71e33a3 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_3.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_4.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_4.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_4.yaml index c2b1202b..8b8e06f5 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_4.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_5.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_5.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_5.yaml index 2beb7520..ae2db3a5 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_5.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_1.yaml new file mode 100644 index 00000000..cf54bd53 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_1 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_2.yaml new file mode 100644 index 00000000..e017792b --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_2 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_3.yaml new file mode 100644 index 00000000..d6f3f3cf --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_3 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_4.yaml new file mode 100644 index 00000000..c525576a --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_4 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_5.yaml new file mode 100644 index 00000000..f6077895 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_5 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_1.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_1.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_1.yaml index ae75e561..cbbfcfbd 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_2.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_2.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_2.yaml index 43d25a74..fd8b4af4 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_3.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_3.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_3.yaml index cc001f1e..1a5c4fb9 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_4.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_4.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_4.yaml index 9d5d1715..e262f5f6 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_5.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_5.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_5.yaml index 669909d1..eeeb2b64 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_1.yaml new file mode 100644 index 00000000..0af1d479 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_1 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_2.yaml new file mode 100644 index 00000000..4aa762fc --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_2 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_3.yaml new file mode 100644 index 00000000..6abadd72 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_3 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_4.yaml new file mode 100644 index 00000000..0a86a61d --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_4 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_5.yaml new file mode 100644 index 00000000..36e6187f --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_5 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_1.yaml similarity index 85% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_1.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_1.yaml index d38bc7d9..76eefbf4 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_2.yaml similarity index 85% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_2.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_2.yaml index acec3265..67e57433 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_3.yaml similarity index 85% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_3.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_3.yaml index 859199a7..b62e356e 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_4.yaml similarity index 85% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_4.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_4.yaml index 1aa61e85..804fdc50 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_5.yaml similarity index 85% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_5.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_5.yaml index 347c782f..682cafd6 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_1.yaml new file mode 100644 index 00000000..914315be --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_1 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_2.yaml new file mode 100644 index 00000000..20bdc607 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_2 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_3.yaml new file mode 100644 index 00000000..a90e9001 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_3 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_4.yaml new file mode 100644 index 00000000..1c346e58 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_4 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_5.yaml new file mode 100644 index 00000000..4468451f --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_5 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_1.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_1.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_1.yaml index 6943a55d..f5b1da71 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_2.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_2.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_2.yaml index bd0318a5..f0bdc1fc 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_3.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_3.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_3.yaml index 468f3c99..63b47858 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_4.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_4.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_4.yaml index 1e1eb569..277c1832 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_5.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_5.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_5.yaml index 4261aeed..3cb722b7 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_1.yaml new file mode 100644 index 00000000..13b5f321 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_1 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_2.yaml new file mode 100644 index 00000000..68542ba5 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_2 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_3.yaml new file mode 100644 index 00000000..8b4e80bd --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_3 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_4.yaml new file mode 100644 index 00000000..a60e34fd --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_4 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_5.yaml new file mode 100644 index 00000000..38402d97 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_5 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_1.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_1.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_1.yaml index 8797d261..7005a0b4 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_2.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_2.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_2.yaml index 28ab24b5..fa611454 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_3.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_3.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_3.yaml index 613d1037..721b84ea 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_4.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_4.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_4.yaml index 673194c8..0c7797f0 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_5.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_5.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_5.yaml index d91a22fb..30952c84 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_1.yaml new file mode 100644 index 00000000..0ae53acd --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_1 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_2.yaml new file mode 100644 index 00000000..b4217925 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_2 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_3.yaml new file mode 100644 index 00000000..dc4989c6 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_3 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_4.yaml new file mode 100644 index 00000000..70e573fb --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_4 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_5.yaml new file mode 100644 index 00000000..03107ffb --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_5 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_1.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_1.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_1.yaml index 971ec79c..0ebf71ee 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_2.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_2.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_2.yaml index 36e43eaf..c3cd9d77 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_3.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_3.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_3.yaml index 68088cfc..2908577f 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_4.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_4.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_4.yaml index e117dabe..2b1b0bae 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_5.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_5.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_5.yaml index fa3df868..06c02916 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_1.yaml new file mode 100644 index 00000000..b0667f7c --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_1 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_2.yaml new file mode 100644 index 00000000..16ea3488 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_2 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_3.yaml new file mode 100644 index 00000000..989a640b --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_3 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_4.yaml new file mode 100644 index 00000000..a72f3dd1 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_4 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_5.yaml new file mode 100644 index 00000000..bfad1985 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_5 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_1.yaml similarity index 85% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_1.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_1.yaml index 9e09df62..38db5686 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_2.yaml similarity index 85% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_2.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_2.yaml index bacb48eb..d675521e 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_3.yaml similarity index 85% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_3.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_3.yaml index d13cf5ba..7ef5181d 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_4.yaml similarity index 85% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_4.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_4.yaml index 3eabdcfb..92f8f8c6 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_5.yaml similarity index 85% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_5.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_5.yaml index 6815f1d5..e29771cb 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_1.yaml new file mode 100644 index 00000000..98362b65 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_1 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_2.yaml new file mode 100644 index 00000000..487aaf52 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_2 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_3.yaml new file mode 100644 index 00000000..774b2fea --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_3 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_4.yaml new file mode 100644 index 00000000..4d422039 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_4 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_5.yaml new file mode 100644 index 00000000..3c1f38d0 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_5 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_1.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_1.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_1.yaml index 12e15bc2..582892cf 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_2.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_2.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_2.yaml index f642759e..6d6921dc 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_3.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_3.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_3.yaml index bd98259d..b456e5be 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_4.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_4.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_4.yaml index 3ce73081..22dbc4c8 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_5.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_5.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_5.yaml index 4c80f845..ceb1fff1 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_1.yaml new file mode 100644 index 00000000..184b653a --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_1 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_2.yaml new file mode 100644 index 00000000..7cbec3f8 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_2 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_3.yaml new file mode 100644 index 00000000..be080676 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_3 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_4.yaml new file mode 100644 index 00000000..37178961 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_4 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_5.yaml new file mode 100644 index 00000000..0f1bfdf5 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_5 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_1.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_1.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_1.yaml index 27d2edf4..0b3302d4 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_2.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_2.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_2.yaml index 7fe2ad69..a8b407b1 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_3.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_3.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_3.yaml index 80cec9f8..56b8a40b 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_4.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_4.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_4.yaml index 51d1a19c..d07ed808 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_5.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_5.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_5.yaml index f09d6d2b..eab00b33 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_1.yaml new file mode 100644 index 00000000..fe1d9c62 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_1 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_2.yaml new file mode 100644 index 00000000..510234ff --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_2 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_3.yaml new file mode 100644 index 00000000..64ab3ae7 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_3 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_4.yaml new file mode 100644 index 00000000..dfb73928 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_4 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_5.yaml new file mode 100644 index 00000000..22c29eca --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_5 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_1.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_1.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_1.yaml index e1203265..47319e2c 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_2.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_2.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_2.yaml index b250fd71..fdc7c00a 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_3.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_3.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_3.yaml index e775ee82..e71e33a3 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_4.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_4.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_4.yaml index c2b1202b..8b8e06f5 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_5.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_5.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_5.yaml index 2beb7520..ae2db3a5 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_1.yaml new file mode 100644 index 00000000..434d1be5 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_1 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_2.yaml new file mode 100644 index 00000000..aee8c0ec --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_2 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_3.yaml new file mode 100644 index 00000000..c5b8d8c2 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_3 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_4.yaml new file mode 100644 index 00000000..c753a8da --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_4 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_5.yaml new file mode 100644 index 00000000..7080e15b --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_5 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_1.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_1.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_1.yaml index 42c44b28..3ebd1ea4 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_2.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_2.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_2.yaml index 32911600..1d8b21c7 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_3.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_3.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_3.yaml index f837e341..6086623f 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_4.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_4.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_4.yaml index 3d5bc5df..0023f19d 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_5.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_5.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_5.yaml index 170bd5a1..52fb1e3a 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_1.yaml new file mode 100644 index 00000000..3b1b11b7 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_1 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_2.yaml new file mode 100644 index 00000000..05d33072 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_2 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_3.yaml new file mode 100644 index 00000000..5a89a792 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_3 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_4.yaml new file mode 100644 index 00000000..33c966d7 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_4 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_5.yaml new file mode 100644 index 00000000..8b84680c --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_5 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_1.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_1.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_1.yaml index 92f2aa40..64cf9067 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_2.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_2.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_2.yaml index 904ace03..5f54c1c1 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_3.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_3.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_3.yaml index 060ae87e..12ea5b86 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_4.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_4.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_4.yaml index bfd6eacc..f43a98d5 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_5.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_5.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_5.yaml index b2edf75d..2da15caf 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_1.yaml new file mode 100644 index 00000000..220f82fc --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_1 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_2.yaml new file mode 100644 index 00000000..f7c800b4 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_2 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_3.yaml new file mode 100644 index 00000000..a72fb456 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_3 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_4.yaml new file mode 100644 index 00000000..a1ce0af1 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_4 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_5.yaml new file mode 100644 index 00000000..68fb366c --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_5 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_1.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_1.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_1.yaml index 24f16598..b1439c0a 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_2.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_2.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_2.yaml index 688d5148..b846471d 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_3.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_3.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_3.yaml index f6b0c433..4550d3c5 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_4.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_4.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_4.yaml index 059393fe..c101ef70 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_5.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_5.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_5.yaml index 0d81920e..23b345c9 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_vi_neutrophil_detection/run.yaml b/configs/experiment/ml/experiment_vi_neutrophil_detection/run.yaml new file mode 100644 index 00000000..633feb2f --- /dev/null +++ b/configs/experiment/ml/experiment_vi_neutrophil_detection/run.yaml @@ -0,0 +1,7 @@ +defaults: + - /ml/neutrophils + - /dataset/neutrophils@dataset: ikem + - _self_ + +metadata: + run_name: 'Neutrophils ML - ikem - 0_320' diff --git a/configs/experiment/ml/mil_bags.yaml b/configs/experiment/ml/mil_bags.yaml deleted file mode 100644 index effe3ede..00000000 --- a/configs/experiment/ml/mil_bags.yaml +++ /dev/null @@ -1,8 +0,0 @@ -defaults: - - /ml/train - - /ml/model: mil - - /ml/data: bags - - _self_ - -metadata: - run_name: 'MIL Bags - ${data.train.mode} - fold ${val_fold}' diff --git a/configs/experiment/ml/test/classification_embeddings.yaml b/configs/experiment/ml/test/classification_embeddings.yaml new file mode 100644 index 00000000..f75cddef --- /dev/null +++ b/configs/experiment/ml/test/classification_embeddings.yaml @@ -0,0 +1,13 @@ +defaults: + - /ml/test + - /ml/model: classification + - /ml/data: embeddings + - /ml/backbone@model.backbone: identity + - _self_ + +model: + decode_head: + _target_: ml.modeling.LinearProbe + +metadata: + run_name: '📏 Testing: Classification Embeddings - ${data.test.mode} - fold ${val_fold}' diff --git a/configs/experiment/ml/test/classification_tiles.yaml b/configs/experiment/ml/test/classification_tiles.yaml new file mode 100644 index 00000000..c0dd1f9d --- /dev/null +++ b/configs/experiment/ml/test/classification_tiles.yaml @@ -0,0 +1,13 @@ +defaults: + - /ml/test + - /ml/model: classification + - /ml/data: tiles + - /ml/backbone@model.backbone: vgg16 + - _self_ + +model: + decode_head: + _target_: ml.modeling.ClassificationHead + +metadata: + run_name: '📏 Testing: Classification Tiles - ${data.test.mode} - fold ${val_fold}' diff --git a/configs/experiment/ml/test/mil_bags.yaml b/configs/experiment/ml/test/mil_bags.yaml new file mode 100644 index 00000000..323ce5d5 --- /dev/null +++ b/configs/experiment/ml/test/mil_bags.yaml @@ -0,0 +1,8 @@ +defaults: + - /ml/test + - /ml/model: mil + - /ml/data: bags + - _self_ + +metadata: + run_name: '📏 Testing: MIL Bags - ${data.test.mode} - fold ${val_fold}' diff --git a/configs/experiment/ml/test/ordered_regression_tiles.yaml b/configs/experiment/ml/test/ordered_regression_tiles.yaml new file mode 100644 index 00000000..00c5499d --- /dev/null +++ b/configs/experiment/ml/test/ordered_regression_tiles.yaml @@ -0,0 +1,9 @@ +defaults: + - /ml/test + - /ml/model: ordered_regression + - /ml/data: tiles + - /ml/backbone@model.backbone: vgg16 + - _self_ + +metadata: + run_name: '📏 Testing: Ordered Regression Tiles - ${data.test.mode} - fold ${val_fold}' diff --git a/configs/experiment/ml/classification_embeddings.yaml b/configs/experiment/ml/train/classification_embeddings.yaml similarity index 65% rename from configs/experiment/ml/classification_embeddings.yaml rename to configs/experiment/ml/train/classification_embeddings.yaml index 34166470..0f3469ac 100644 --- a/configs/experiment/ml/classification_embeddings.yaml +++ b/configs/experiment/ml/train/classification_embeddings.yaml @@ -10,4 +10,4 @@ model: _target_: ml.modeling.LinearProbe metadata: - run_name: 'Classification Embeddings - ${data.train.mode} - fold ${val_fold}' + run_name: '🏋️‍♂️ Training: Classification Embeddings - ${data.train.mode} - fold ${val_fold}' diff --git a/configs/experiment/ml/classification_tiles.yaml b/configs/experiment/ml/train/classification_tiles.yaml similarity index 66% rename from configs/experiment/ml/classification_tiles.yaml rename to configs/experiment/ml/train/classification_tiles.yaml index 876e9fab..c5bab424 100644 --- a/configs/experiment/ml/classification_tiles.yaml +++ b/configs/experiment/ml/train/classification_tiles.yaml @@ -10,4 +10,4 @@ model: _target_: ml.modeling.ClassificationHead metadata: - run_name: 'Classification Tiles - ${data.train.mode} - fold ${val_fold}' + run_name: '🏋️‍♂️ Training: Classification Tiles - ${data.train.mode} - fold ${val_fold}' diff --git a/configs/experiment/ml/train/mil_bags.yaml b/configs/experiment/ml/train/mil_bags.yaml new file mode 100644 index 00000000..05c2f72c --- /dev/null +++ b/configs/experiment/ml/train/mil_bags.yaml @@ -0,0 +1,8 @@ +defaults: + - /ml/train + - /ml/model: mil + - /ml/data: bags + - _self_ + +metadata: + run_name: '🏋️‍♂️ Training: MIL Bags - ${data.train.mode} - fold ${val_fold}' diff --git a/configs/experiment/ml/ordered_regression_tiles.yaml b/configs/experiment/ml/train/ordered_regression_tiles.yaml similarity index 56% rename from configs/experiment/ml/ordered_regression_tiles.yaml rename to configs/experiment/ml/train/ordered_regression_tiles.yaml index dea06c9b..1a10ac3b 100644 --- a/configs/experiment/ml/ordered_regression_tiles.yaml +++ b/configs/experiment/ml/train/ordered_regression_tiles.yaml @@ -6,4 +6,4 @@ defaults: - _self_ metadata: - run_name: 'Ordered Regression Tiles - ${data.train.mode} - fold ${val_fold}' + run_name: '🏋️‍♂️ Training: Ordered Regression Tiles - ${data.train.mode} - fold ${val_fold}' diff --git a/configs/ml.yaml b/configs/ml.yaml new file mode 100644 index 00000000..9f7e2336 --- /dev/null +++ b/configs/ml.yaml @@ -0,0 +1,9 @@ +defaults: + - base + - _self_ + +seed: ${random_seed:} +checkpoint: null + +metadata: + user: AdamK diff --git a/configs/ml/data/bags.yaml b/configs/ml/data/bags.yaml index 3860df01..c8798205 100644 --- a/configs/ml/data/bags.yaml +++ b/configs/ml/data/bags.yaml @@ -14,3 +14,7 @@ val: mode: ??? val_fold: ${val_fold} is_val: true +test: + _target_: ml.data.datasets.Bags + uris: ??? + mode: ??? diff --git a/configs/ml/data/embeddings.yaml b/configs/ml/data/embeddings.yaml index d7ba1006..3f50facd 100644 --- a/configs/ml/data/embeddings.yaml +++ b/configs/ml/data/embeddings.yaml @@ -14,3 +14,7 @@ val: mode: ??? val_fold: ${val_fold} is_val: true +test: + _target_: ml.data.datasets.Embeddings + uris: ??? + mode: ??? diff --git a/configs/ml/data/tiles.yaml b/configs/ml/data/tiles.yaml index f227b7fa..16fa0be4 100644 --- a/configs/ml/data/tiles.yaml +++ b/configs/ml/data/tiles.yaml @@ -14,3 +14,7 @@ val: mode: ??? val_fold: ${val_fold} is_val: true +test: + _target_: ml.data.datasets.Tiles + uris: ??? + mode: ??? diff --git a/configs/ml/neutrophils.yaml b/configs/ml/neutrophils.yaml new file mode 100644 index 00000000..6711ca92 --- /dev/null +++ b/configs/ml/neutrophils.yaml @@ -0,0 +1,5 @@ +# @package _global_ + +metadata: + run_name: "🏋️‍♂️📏🎯 Neutrophils" + description: "Train and evaluate neutrophil detection model" \ No newline at end of file diff --git a/configs/ml/test.yaml b/configs/ml/test.yaml new file mode 100644 index 00000000..d60813df --- /dev/null +++ b/configs/ml/test.yaml @@ -0,0 +1,10 @@ +defaults: + - /ml + - _self_ + +mode: test +checkpoint: ??? + +trainer: + callbacks: + - _target_: ml.callbacks.MLFlowPredictionCallback diff --git a/configs/ml/train.yaml b/configs/ml/train.yaml index 788192f8..653ef64d 100644 --- a/configs/ml/train.yaml +++ b/configs/ml/train.yaml @@ -1,11 +1,8 @@ defaults: - - hydra: default - - logger: mlflow + - /ml - _self_ -seed: ${random_seed:} mode: fit -checkpoint: null val_fold: ??? trainer: @@ -21,7 +18,3 @@ trainer: monitor: validation/kappa mode: max patience: 20 - -metadata: - experiment_name: Ulcerative Colitis - user: AdamK diff --git a/configs/train_mil_old.yaml b/configs/train_mil_old.yaml deleted file mode 100644 index 2119f4b7..00000000 --- a/configs/train_mil_old.yaml +++ /dev/null @@ -1,54 +0,0 @@ -defaults: - - hydra: default - - logger: mlflow - - /data/datasets@data.train: tile_embeddings/tile_embeddings - - uris - - paths - - _self_ - -seed: ${random_seed:} -mode: fit -checkpoint: null -cohort: ??? -data_mode: ??? -level: ??? -foundation: ??? - -trainer: - enable_checkpointing: True - max_epochs: 300 - log_every_n_steps: 5 - callbacks: - - _target_: lightning.pytorch.callbacks.ModelCheckpoint - save_top_k: 1 - monitor: validation/kappa - mode: max - - _target_: lightning.pytorch.callbacks.EarlyStopping - monitor: validation/kappa - mode: max - patience: 20 - -data: - batch_size: 8 - target_column: ulceration - num_workers: 4 - kfold_splits: 5 - k: 1 - train: - tiling_uris: ${uris.tiling.${level}.${cohort}.train} - embeddings_uris: ${uris.embeddings.${level}.${cohort}.${foundation}} - mode: ${data_mode} - embeddings_folders: ${paths.embeddings.${level}.${cohort}.${foundation}} - stride_eq_tile: false - -model: - _target_: ulcerative_colitis.ulcerative_colitis_attention_mil.UlcerativeColitisModelAttentionMIL - lr: 0.00001 - foundation: ${foundation} - -metadata: - experiment_name: 'Ulcerative Colitis' - run_name: '🏋️‍♂️ Training: ${data_mode} - ${cohort} - ${level} - ${foundation} (${data.k}/${data.kfold_splits})' - description: 'Ulcerative Colitis' - user: AdamK - hyperparams: {} \ No newline at end of file From 3fffc856e254d2a8690dc48d38383c9ebdd4dd79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 18:22:24 +0200 Subject: [PATCH 34/54] feat: postprocessing confs --- configs/checkpoints/final/nancy_high.yaml | 1 + configs/checkpoints/final/nancy_low.yaml | 1 + configs/checkpoints/final/neutrophils.yaml | 1 + .../run.yaml | 3 - .../experiment/ml/final/nancy_high/test.yaml | 17 +++ .../experiment/ml/final/nancy_high/train.yaml | 27 +++++ .../experiment/ml/final/nancy_low/test.yaml | 17 +++ .../experiment/ml/final/nancy_low/train.yaml | 27 +++++ .../experiment/ml/final/neutrophils/test.yaml | 16 +++ .../ml/final/neutrophils/train.yaml | 27 +++++ .../postprocessing/ensembling/ftn_final.yaml | 8 -- .../ensembling/knl_patos_final.yaml | 8 -- .../fold_1.yaml} | 4 +- .../experiment_vii_ensembling/fold_2.yaml | 6 + .../experiment_vii_ensembling/fold_3.yaml | 6 + .../experiment_vii_ensembling/fold_4.yaml | 6 + .../experiment_vii_ensembling/fold_5.yaml | 6 + .../entropy/fold_1.yaml} | 2 +- .../entropy/fold_2.yaml | 8 ++ .../entropy/fold_3.yaml | 8 ++ .../entropy/fold_4.yaml | 8 ++ .../entropy/fold_5.yaml | 8 ++ .../herfindahl/fold_1.yaml} | 2 +- .../herfindahl/fold_2.yaml | 8 ++ .../herfindahl/fold_3.yaml | 8 ++ .../herfindahl/fold_4.yaml | 8 ++ .../herfindahl/fold_5.yaml | 8 ++ .../std/fold_1.yaml} | 3 +- .../std/fold_2.yaml | 8 ++ .../std/fold_3.yaml | 8 ++ .../std/fold_4.yaml | 8 ++ .../std/fold_5.yaml | 8 ++ .../{ensembling => final_ensembling}/ftn.yaml | 2 +- .../ikem.yaml | 2 +- .../knl_patos.yaml | 2 +- .../ftn.yaml} | 2 +- .../ikem.yaml} | 2 +- .../knl_patos.yaml} | 2 +- .../markov_chain_confidence/ftn_entropy.yaml | 8 -- .../ftn_herfindahl.yaml | 8 -- .../ftn_std_final.yaml | 9 -- .../knl_patos_entropy.yaml | 8 -- .../knl_patos_herfindahl.yaml | 8 -- .../knl_patos_std_final.yaml | 9 -- configs/postprocessing/ensembling.yaml | 6 +- .../markov_chain_confidence.yaml | 4 +- configs/predictions/ftn.yaml | 22 ---- configs/predictions/ftn/final.yaml | 4 + configs/predictions/ikem.yaml | 22 ---- configs/predictions/ikem/final.yaml | 4 + configs/predictions/ikem/fold_1.yaml | 4 + configs/predictions/ikem/fold_2.yaml | 4 + configs/predictions/ikem/fold_3.yaml | 4 + configs/predictions/ikem/fold_4.yaml | 4 + configs/predictions/ikem/fold_5.yaml | 4 + configs/predictions/knl_patos.yaml | 22 ---- configs/predictions/knl_patos/final.yaml | 4 + postprocessing/ensembling.py | 105 +++++++----------- postprocessing/markov_chain_confidence.py | 65 ++++++----- postprocessing/utils.py | 25 ++--- 60 files changed, 381 insertions(+), 268 deletions(-) create mode 100644 configs/checkpoints/final/nancy_high.yaml create mode 100644 configs/checkpoints/final/nancy_low.yaml create mode 100644 configs/checkpoints/final/neutrophils.yaml create mode 100644 configs/experiment/ml/final/nancy_high/test.yaml create mode 100644 configs/experiment/ml/final/nancy_high/train.yaml create mode 100644 configs/experiment/ml/final/nancy_low/test.yaml create mode 100644 configs/experiment/ml/final/nancy_low/train.yaml create mode 100644 configs/experiment/ml/final/neutrophils/test.yaml create mode 100644 configs/experiment/ml/final/neutrophils/train.yaml delete mode 100644 configs/experiment/postprocessing/ensembling/ftn_final.yaml delete mode 100644 configs/experiment/postprocessing/ensembling/knl_patos_final.yaml rename configs/experiment/postprocessing/{ensembling/ikem_final.yaml => experiment_vii_ensembling/fold_1.yaml} (60%) create mode 100644 configs/experiment/postprocessing/experiment_vii_ensembling/fold_2.yaml create mode 100644 configs/experiment/postprocessing/experiment_vii_ensembling/fold_3.yaml create mode 100644 configs/experiment/postprocessing/experiment_vii_ensembling/fold_4.yaml create mode 100644 configs/experiment/postprocessing/experiment_vii_ensembling/fold_5.yaml rename configs/experiment/postprocessing/{markov_chain_confidence/ikem_entropy.yaml => experiment_viii_markov_chain_model_aggregation/entropy/fold_1.yaml} (70%) create mode 100644 configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_2.yaml create mode 100644 configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_3.yaml create mode 100644 configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_4.yaml create mode 100644 configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_5.yaml rename configs/experiment/postprocessing/{markov_chain_confidence/ikem_herfindahl.yaml => experiment_viii_markov_chain_model_aggregation/herfindahl/fold_1.yaml} (71%) create mode 100644 configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_2.yaml create mode 100644 configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_3.yaml create mode 100644 configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_4.yaml create mode 100644 configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_5.yaml rename configs/experiment/postprocessing/{markov_chain_confidence/ikem_std_final.yaml => experiment_viii_markov_chain_model_aggregation/std/fold_1.yaml} (65%) create mode 100644 configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_2.yaml create mode 100644 configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_3.yaml create mode 100644 configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_4.yaml create mode 100644 configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_5.yaml rename configs/experiment/postprocessing/{ensembling => final_ensembling}/ftn.yaml (66%) rename configs/experiment/postprocessing/{ensembling => final_ensembling}/ikem.yaml (66%) rename configs/experiment/postprocessing/{ensembling => final_ensembling}/knl_patos.yaml (64%) rename configs/experiment/postprocessing/{markov_chain_confidence/ftn_std.yaml => final_markov_chain_confidence/ftn.yaml} (70%) rename configs/experiment/postprocessing/{markov_chain_confidence/ikem_std.yaml => final_markov_chain_confidence/ikem.yaml} (70%) rename configs/experiment/postprocessing/{markov_chain_confidence/knl_patos_std.yaml => final_markov_chain_confidence/knl_patos.yaml} (68%) delete mode 100644 configs/experiment/postprocessing/markov_chain_confidence/ftn_entropy.yaml delete mode 100644 configs/experiment/postprocessing/markov_chain_confidence/ftn_herfindahl.yaml delete mode 100644 configs/experiment/postprocessing/markov_chain_confidence/ftn_std_final.yaml delete mode 100644 configs/experiment/postprocessing/markov_chain_confidence/knl_patos_entropy.yaml delete mode 100644 configs/experiment/postprocessing/markov_chain_confidence/knl_patos_herfindahl.yaml delete mode 100644 configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std_final.yaml delete mode 100644 configs/predictions/ftn.yaml create mode 100644 configs/predictions/ftn/final.yaml delete mode 100644 configs/predictions/ikem.yaml create mode 100644 configs/predictions/ikem/final.yaml create mode 100644 configs/predictions/ikem/fold_1.yaml create mode 100644 configs/predictions/ikem/fold_2.yaml create mode 100644 configs/predictions/ikem/fold_3.yaml create mode 100644 configs/predictions/ikem/fold_4.yaml create mode 100644 configs/predictions/ikem/fold_5.yaml delete mode 100644 configs/predictions/knl_patos.yaml create mode 100644 configs/predictions/knl_patos/final.yaml diff --git a/configs/checkpoints/final/nancy_high.yaml b/configs/checkpoints/final/nancy_high.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/final/nancy_high.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/final/nancy_low.yaml b/configs/checkpoints/final/nancy_low.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/final/nancy_low.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/final/neutrophils.yaml b/configs/checkpoints/final/neutrophils.yaml new file mode 100644 index 00000000..d882745e --- /dev/null +++ b/configs/checkpoints/final/neutrophils.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/experiment/ml/experiment_vi_neutrophil_detection/run.yaml b/configs/experiment/ml/experiment_vi_neutrophil_detection/run.yaml index 633feb2f..a446016d 100644 --- a/configs/experiment/ml/experiment_vi_neutrophil_detection/run.yaml +++ b/configs/experiment/ml/experiment_vi_neutrophil_detection/run.yaml @@ -2,6 +2,3 @@ defaults: - /ml/neutrophils - /dataset/neutrophils@dataset: ikem - _self_ - -metadata: - run_name: 'Neutrophils ML - ikem - 0_320' diff --git a/configs/experiment/ml/final/nancy_high/test.yaml b/configs/experiment/ml/final/nancy_high/test.yaml new file mode 100644 index 00000000..79fc3bd7 --- /dev/null +++ b/configs/experiment/ml/final/nancy_high/test.yaml @@ -0,0 +1,17 @@ +defaults: + - /experiment/ml/final/nancy_high/train + - /ml/test + - /checkpoints/final/nancy_high + - _self_ + +data: + test: + uris: + - ${ikem.mlflow_uris.embeddings.test_final} + - ${ftn.mlflow_uris.embeddings.test_final} + - ${knl_patos.mlflow_uris.embeddings.test_final} + mode: nancy_high + +metadata: + run_name: '📏 Testing: MIL Bags - nancy_high - final' + diff --git a/configs/experiment/ml/final/nancy_high/train.yaml b/configs/experiment/ml/final/nancy_high/train.yaml new file mode 100644 index 00000000..d267e780 --- /dev/null +++ b/configs/experiment/ml/final/nancy_high/train.yaml @@ -0,0 +1,27 @@ +defaults: + - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem + - /dataset/embeddings/ftn/2_virchow2@ftn + - /dataset/embeddings/knl_patos/2_virchow2@knl_patos + - _self_ + +val_fold: null +data: + train: + uris: + - ${ikem.mlflow_uris.embeddings.train} + - ${ftn.mlflow_uris.embeddings.train} + - ${knl_patos.mlflow_uris.embeddings.train} + mode: nancy_high + val: + uris: + - ${ikem.mlflow_uris.embeddings.test_preliminary} + - ${ftn.mlflow_uris.embeddings.test_preliminary} + - ${knl_patos.mlflow_uris.embeddings.test_preliminary} + mode: nancy_high +model: + foundation: virchow2 + num_classes: 4 + +metadata: + run_name: '🏋️‍♂️ Training: MIL Bags - nancy_high - final' diff --git a/configs/experiment/ml/final/nancy_low/test.yaml b/configs/experiment/ml/final/nancy_low/test.yaml new file mode 100644 index 00000000..6f4ff8ca --- /dev/null +++ b/configs/experiment/ml/final/nancy_low/test.yaml @@ -0,0 +1,17 @@ +defaults: + - /experiment/ml/final/nancy_low/train + - /ml/test + - /checkpoints/final/nancy_low + - _self_ + +data: + test: + uris: + - ${ikem.mlflow_uris.embeddings.test_final} + - ${ftn.mlflow_uris.embeddings.test_final} + - ${knl_patos.mlflow_uris.embeddings.test_final} + mode: nancy_low + +metadata: + run_name: '📏 Testing: MIL Bags - nancy_low - final' + diff --git a/configs/experiment/ml/final/nancy_low/train.yaml b/configs/experiment/ml/final/nancy_low/train.yaml new file mode 100644 index 00000000..e5df77f3 --- /dev/null +++ b/configs/experiment/ml/final/nancy_low/train.yaml @@ -0,0 +1,27 @@ +defaults: + - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem + - /dataset/embeddings/ftn/2_virchow2@ftn + - /dataset/embeddings/knl_patos/2_virchow2@knl_patos + - _self_ + +val_fold: null +data: + train: + uris: + - ${ikem.mlflow_uris.embeddings.train} + - ${ftn.mlflow_uris.embeddings.train} + - ${knl_patos.mlflow_uris.embeddings.train} + mode: nancy_low + val: + uris: + - ${ikem.mlflow_uris.embeddings.test_preliminary} + - ${ftn.mlflow_uris.embeddings.test_preliminary} + - ${knl_patos.mlflow_uris.embeddings.test_preliminary} + mode: nancy_low +model: + foundation: virchow2 + num_classes: 3 + +metadata: + run_name: '🏋️‍♂️ Training: MIL Bags - nancy_low - final' diff --git a/configs/experiment/ml/final/neutrophils/test.yaml b/configs/experiment/ml/final/neutrophils/test.yaml new file mode 100644 index 00000000..89ae941d --- /dev/null +++ b/configs/experiment/ml/final/neutrophils/test.yaml @@ -0,0 +1,16 @@ +defaults: + - /experiment/ml/final/neutrophils/train + - /ml/test + - /checkpoints/final/neutrophils + - _self_ + +data: + test: + uris: + - ${ikem.mlflow_uris.embeddings.test_final} + - ${ftn.mlflow_uris.embeddings.test_final} + - ${knl_patos.mlflow_uris.embeddings.test_final} + mode: neutrophils + +metadata: + run_name: '📏 Testing: MIL Bags - neutrophils - final' diff --git a/configs/experiment/ml/final/neutrophils/train.yaml b/configs/experiment/ml/final/neutrophils/train.yaml new file mode 100644 index 00000000..c452f787 --- /dev/null +++ b/configs/experiment/ml/final/neutrophils/train.yaml @@ -0,0 +1,27 @@ +defaults: + - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem + - /dataset/embeddings/ftn/2_virchow2@ftn + - /dataset/embeddings/knl_patos/2_virchow2@knl_patos + - _self_ + +val_fold: null +data: + train: + uris: + - ${ikem.mlflow_uris.embeddings.train} + - ${ftn.mlflow_uris.embeddings.train} + - ${knl_patos.mlflow_uris.embeddings.train} + mode: neutrophils + val: + uris: + - ${ikem.mlflow_uris.embeddings.test_preliminary} + - ${ftn.mlflow_uris.embeddings.test_preliminary} + - ${knl_patos.mlflow_uris.embeddings.test_preliminary} + mode: neutrophils +model: + foundation: virchow2 + num_classes: 1 + +metadata: + run_name: '🏋️‍♂️ Training: MIL Bags - neutrophils - final' diff --git a/configs/experiment/postprocessing/ensembling/ftn_final.yaml b/configs/experiment/postprocessing/ensembling/ftn_final.yaml deleted file mode 100644 index 3c52f5e2..00000000 --- a/configs/experiment/postprocessing/ensembling/ftn_final.yaml +++ /dev/null @@ -1,8 +0,0 @@ -# @package _global_ - -defaults: - - /dataset/processed/ftn@dataset - - /predictions/ftn@predictions - - _self_ - -folds: [final] diff --git a/configs/experiment/postprocessing/ensembling/knl_patos_final.yaml b/configs/experiment/postprocessing/ensembling/knl_patos_final.yaml deleted file mode 100644 index d9a2c27b..00000000 --- a/configs/experiment/postprocessing/ensembling/knl_patos_final.yaml +++ /dev/null @@ -1,8 +0,0 @@ -# @package _global_ - -defaults: - - /dataset/processed/knl_patos@dataset - - /predictions/knl_patos@predictions - - _self_ - -folds: [final] diff --git a/configs/experiment/postprocessing/ensembling/ikem_final.yaml b/configs/experiment/postprocessing/experiment_vii_ensembling/fold_1.yaml similarity index 60% rename from configs/experiment/postprocessing/ensembling/ikem_final.yaml rename to configs/experiment/postprocessing/experiment_vii_ensembling/fold_1.yaml index 0b5f874d..ebb28ded 100644 --- a/configs/experiment/postprocessing/ensembling/ikem_final.yaml +++ b/configs/experiment/postprocessing/experiment_vii_ensembling/fold_1.yaml @@ -2,7 +2,5 @@ defaults: - /dataset/processed/ikem@dataset - - /predictions/ikem@predictions + - /predictions/ikem/fold_1@predictions - _self_ - -folds: [final] diff --git a/configs/experiment/postprocessing/experiment_vii_ensembling/fold_2.yaml b/configs/experiment/postprocessing/experiment_vii_ensembling/fold_2.yaml new file mode 100644 index 00000000..4f3f2605 --- /dev/null +++ b/configs/experiment/postprocessing/experiment_vii_ensembling/fold_2.yaml @@ -0,0 +1,6 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_2@predictions + - _self_ diff --git a/configs/experiment/postprocessing/experiment_vii_ensembling/fold_3.yaml b/configs/experiment/postprocessing/experiment_vii_ensembling/fold_3.yaml new file mode 100644 index 00000000..861f8485 --- /dev/null +++ b/configs/experiment/postprocessing/experiment_vii_ensembling/fold_3.yaml @@ -0,0 +1,6 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_3@predictions + - _self_ diff --git a/configs/experiment/postprocessing/experiment_vii_ensembling/fold_4.yaml b/configs/experiment/postprocessing/experiment_vii_ensembling/fold_4.yaml new file mode 100644 index 00000000..d75e1a7a --- /dev/null +++ b/configs/experiment/postprocessing/experiment_vii_ensembling/fold_4.yaml @@ -0,0 +1,6 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_4@predictions + - _self_ diff --git a/configs/experiment/postprocessing/experiment_vii_ensembling/fold_5.yaml b/configs/experiment/postprocessing/experiment_vii_ensembling/fold_5.yaml new file mode 100644 index 00000000..6b066c89 --- /dev/null +++ b/configs/experiment/postprocessing/experiment_vii_ensembling/fold_5.yaml @@ -0,0 +1,6 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_5@predictions + - _self_ diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ikem_entropy.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_1.yaml similarity index 70% rename from configs/experiment/postprocessing/markov_chain_confidence/ikem_entropy.yaml rename to configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_1.yaml index 10f7c506..bba8cd5d 100644 --- a/configs/experiment/postprocessing/markov_chain_confidence/ikem_entropy.yaml +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_1.yaml @@ -2,7 +2,7 @@ defaults: - /dataset/processed/ikem@dataset - - /predictions/ikem@predictions + - /predictions/ikem/fold_1@predictions - _self_ confidence: entropy diff --git a/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_2.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_2.yaml new file mode 100644 index 00000000..b2713d41 --- /dev/null +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_2.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_2@predictions + - _self_ + +confidence: entropy diff --git a/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_3.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_3.yaml new file mode 100644 index 00000000..333f2ad8 --- /dev/null +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_3.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_3@predictions + - _self_ + +confidence: entropy diff --git a/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_4.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_4.yaml new file mode 100644 index 00000000..94bd4c5d --- /dev/null +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_4.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_4@predictions + - _self_ + +confidence: entropy diff --git a/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_5.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_5.yaml new file mode 100644 index 00000000..1bdaffd9 --- /dev/null +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_5.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_5@predictions + - _self_ + +confidence: entropy diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ikem_herfindahl.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_1.yaml similarity index 71% rename from configs/experiment/postprocessing/markov_chain_confidence/ikem_herfindahl.yaml rename to configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_1.yaml index be93eaae..439642e7 100644 --- a/configs/experiment/postprocessing/markov_chain_confidence/ikem_herfindahl.yaml +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_1.yaml @@ -2,7 +2,7 @@ defaults: - /dataset/processed/ikem@dataset - - /predictions/ikem@predictions + - /predictions/ikem/fold_1@predictions - _self_ confidence: herfindahl diff --git a/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_2.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_2.yaml new file mode 100644 index 00000000..5fa57a8c --- /dev/null +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_2.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_2@predictions + - _self_ + +confidence: herfindahl diff --git a/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_3.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_3.yaml new file mode 100644 index 00000000..fd3111e5 --- /dev/null +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_3.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_3@predictions + - _self_ + +confidence: herfindahl diff --git a/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_4.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_4.yaml new file mode 100644 index 00000000..02d6f770 --- /dev/null +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_4.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_4@predictions + - _self_ + +confidence: herfindahl diff --git a/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_5.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_5.yaml new file mode 100644 index 00000000..c9ca4e6f --- /dev/null +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_5.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_5@predictions + - _self_ + +confidence: herfindahl diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ikem_std_final.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_1.yaml similarity index 65% rename from configs/experiment/postprocessing/markov_chain_confidence/ikem_std_final.yaml rename to configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_1.yaml index cc887d2f..012765e3 100644 --- a/configs/experiment/postprocessing/markov_chain_confidence/ikem_std_final.yaml +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_1.yaml @@ -2,8 +2,7 @@ defaults: - /dataset/processed/ikem@dataset - - /predictions/ikem@predictions + - /predictions/ikem/fold_1@predictions - _self_ confidence: std -folds: [final] diff --git a/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_2.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_2.yaml new file mode 100644 index 00000000..613f8594 --- /dev/null +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_2.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_2@predictions + - _self_ + +confidence: std diff --git a/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_3.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_3.yaml new file mode 100644 index 00000000..d7d2ec96 --- /dev/null +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_3.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_3@predictions + - _self_ + +confidence: std diff --git a/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_4.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_4.yaml new file mode 100644 index 00000000..cd94cbae --- /dev/null +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_4.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_4@predictions + - _self_ + +confidence: std diff --git a/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_5.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_5.yaml new file mode 100644 index 00000000..b69ad598 --- /dev/null +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_5.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_5@predictions + - _self_ + +confidence: std diff --git a/configs/experiment/postprocessing/ensembling/ftn.yaml b/configs/experiment/postprocessing/final_ensembling/ftn.yaml similarity index 66% rename from configs/experiment/postprocessing/ensembling/ftn.yaml rename to configs/experiment/postprocessing/final_ensembling/ftn.yaml index 4e1029a9..611cf7aa 100644 --- a/configs/experiment/postprocessing/ensembling/ftn.yaml +++ b/configs/experiment/postprocessing/final_ensembling/ftn.yaml @@ -2,5 +2,5 @@ defaults: - /dataset/processed/ftn@dataset - - /predictions/ftn@predictions + - /predictions/ftn/final@predictions - _self_ diff --git a/configs/experiment/postprocessing/ensembling/ikem.yaml b/configs/experiment/postprocessing/final_ensembling/ikem.yaml similarity index 66% rename from configs/experiment/postprocessing/ensembling/ikem.yaml rename to configs/experiment/postprocessing/final_ensembling/ikem.yaml index 310d01e8..83e24537 100644 --- a/configs/experiment/postprocessing/ensembling/ikem.yaml +++ b/configs/experiment/postprocessing/final_ensembling/ikem.yaml @@ -2,5 +2,5 @@ defaults: - /dataset/processed/ikem@dataset - - /predictions/ikem@predictions + - /predictions/ikem/final@predictions - _self_ diff --git a/configs/experiment/postprocessing/ensembling/knl_patos.yaml b/configs/experiment/postprocessing/final_ensembling/knl_patos.yaml similarity index 64% rename from configs/experiment/postprocessing/ensembling/knl_patos.yaml rename to configs/experiment/postprocessing/final_ensembling/knl_patos.yaml index ccee46d9..49daa063 100644 --- a/configs/experiment/postprocessing/ensembling/knl_patos.yaml +++ b/configs/experiment/postprocessing/final_ensembling/knl_patos.yaml @@ -2,5 +2,5 @@ defaults: - /dataset/processed/knl_patos@dataset - - /predictions/knl_patos@predictions + - /predictions/knl_patos/final@predictions - _self_ diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ftn_std.yaml b/configs/experiment/postprocessing/final_markov_chain_confidence/ftn.yaml similarity index 70% rename from configs/experiment/postprocessing/markov_chain_confidence/ftn_std.yaml rename to configs/experiment/postprocessing/final_markov_chain_confidence/ftn.yaml index e0fdbd05..2da5b203 100644 --- a/configs/experiment/postprocessing/markov_chain_confidence/ftn_std.yaml +++ b/configs/experiment/postprocessing/final_markov_chain_confidence/ftn.yaml @@ -2,7 +2,7 @@ defaults: - /dataset/processed/ftn@dataset - - /predictions/ftn@predictions + - /predictions/ftn/final@predictions - _self_ confidence: std diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ikem_std.yaml b/configs/experiment/postprocessing/final_markov_chain_confidence/ikem.yaml similarity index 70% rename from configs/experiment/postprocessing/markov_chain_confidence/ikem_std.yaml rename to configs/experiment/postprocessing/final_markov_chain_confidence/ikem.yaml index 4a48c463..f5cf823b 100644 --- a/configs/experiment/postprocessing/markov_chain_confidence/ikem_std.yaml +++ b/configs/experiment/postprocessing/final_markov_chain_confidence/ikem.yaml @@ -2,7 +2,7 @@ defaults: - /dataset/processed/ikem@dataset - - /predictions/ikem@predictions + - /predictions/ikem/final@predictions - _self_ confidence: std diff --git a/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std.yaml b/configs/experiment/postprocessing/final_markov_chain_confidence/knl_patos.yaml similarity index 68% rename from configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std.yaml rename to configs/experiment/postprocessing/final_markov_chain_confidence/knl_patos.yaml index b76293f8..b5b0ac84 100644 --- a/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std.yaml +++ b/configs/experiment/postprocessing/final_markov_chain_confidence/knl_patos.yaml @@ -2,7 +2,7 @@ defaults: - /dataset/processed/knl_patos@dataset - - /predictions/knl_patos@predictions + - /predictions/knl_patos/final@predictions - _self_ confidence: std diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ftn_entropy.yaml b/configs/experiment/postprocessing/markov_chain_confidence/ftn_entropy.yaml deleted file mode 100644 index c17c079f..00000000 --- a/configs/experiment/postprocessing/markov_chain_confidence/ftn_entropy.yaml +++ /dev/null @@ -1,8 +0,0 @@ -# @package _global_ - -defaults: - - /dataset/processed/ftn@dataset - - /predictions/ftn@predictions - - _self_ - -confidence: entropy diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ftn_herfindahl.yaml b/configs/experiment/postprocessing/markov_chain_confidence/ftn_herfindahl.yaml deleted file mode 100644 index 89b35d0f..00000000 --- a/configs/experiment/postprocessing/markov_chain_confidence/ftn_herfindahl.yaml +++ /dev/null @@ -1,8 +0,0 @@ -# @package _global_ - -defaults: - - /dataset/processed/ftn@dataset - - /predictions/ftn@predictions - - _self_ - -confidence: herfindahl diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ftn_std_final.yaml b/configs/experiment/postprocessing/markov_chain_confidence/ftn_std_final.yaml deleted file mode 100644 index 95cadb97..00000000 --- a/configs/experiment/postprocessing/markov_chain_confidence/ftn_std_final.yaml +++ /dev/null @@ -1,9 +0,0 @@ -# @package _global_ - -defaults: - - /dataset/processed/ftn@dataset - - /predictions/ftn@predictions - - _self_ - -confidence: std -folds: [final] diff --git a/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_entropy.yaml b/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_entropy.yaml deleted file mode 100644 index ef9629c9..00000000 --- a/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_entropy.yaml +++ /dev/null @@ -1,8 +0,0 @@ -# @package _global_ - -defaults: - - /dataset/processed/knl_patos@dataset - - /predictions/knl_patos@predictions - - _self_ - -confidence: entropy diff --git a/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_herfindahl.yaml b/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_herfindahl.yaml deleted file mode 100644 index 225c711c..00000000 --- a/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_herfindahl.yaml +++ /dev/null @@ -1,8 +0,0 @@ -# @package _global_ - -defaults: - - /dataset/processed/knl_patos@dataset - - /predictions/knl_patos@predictions - - _self_ - -confidence: herfindahl diff --git a/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std_final.yaml b/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std_final.yaml deleted file mode 100644 index 013824d8..00000000 --- a/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std_final.yaml +++ /dev/null @@ -1,9 +0,0 @@ -# @package _global_ - -defaults: - - /dataset/processed/knl_patos@dataset - - /predictions/knl_patos@predictions - - _self_ - -confidence: std -folds: [final] diff --git a/configs/postprocessing/ensembling.yaml b/configs/postprocessing/ensembling.yaml index 60919b65..838a596c 100644 --- a/configs/postprocessing/ensembling.yaml +++ b/configs/postprocessing/ensembling.yaml @@ -1,9 +1,5 @@ # @package _global_ -folds: ["1/5", "2/5", "3/5", "4/5", "5/5"] - metadata: - run_name: "Ensembling: ${dataset.institution}" + run_name: "🔀 Ensembling: ${dataset.institution}" description: Slide-level ensembling for ${dataset.institution} - hyperparams: - folds: ${folds} diff --git a/configs/postprocessing/markov_chain_confidence.yaml b/configs/postprocessing/markov_chain_confidence.yaml index f6ee23a0..76dd59ca 100644 --- a/configs/postprocessing/markov_chain_confidence.yaml +++ b/configs/postprocessing/markov_chain_confidence.yaml @@ -1,11 +1,9 @@ # @package _global_ -folds: ["1/5", "2/5", "3/5", "4/5", "5/5"] confidence: ??? # options: entropy, herfindahl, std metadata: - run_name: "Markov Chain Confidence (${confidence}): ${dataset.institution}" + run_name: "🔗 Markov Chain Confidence (${confidence}): ${dataset.institution}" description: Markov chain absorption confidence scores for ${dataset.institution} hyperparams: - folds: ${folds} confidence: ${confidence} diff --git a/configs/predictions/ftn.yaml b/configs/predictions/ftn.yaml deleted file mode 100644 index 694f3e7f..00000000 --- a/configs/predictions/ftn.yaml +++ /dev/null @@ -1,22 +0,0 @@ -mlflow_uris: - nancy_high: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... - nancy_low: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... - neutrophils: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... diff --git a/configs/predictions/ftn/final.yaml b/configs/predictions/ftn/final.yaml new file mode 100644 index 00000000..a9b9fd7f --- /dev/null +++ b/configs/predictions/ftn/final.yaml @@ -0,0 +1,4 @@ +mlflow_uris: + nancy_high: ??? + nancy_low: ??? + neutrophils: ??? \ No newline at end of file diff --git a/configs/predictions/ikem.yaml b/configs/predictions/ikem.yaml deleted file mode 100644 index 694f3e7f..00000000 --- a/configs/predictions/ikem.yaml +++ /dev/null @@ -1,22 +0,0 @@ -mlflow_uris: - nancy_high: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... - nancy_low: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... - neutrophils: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... diff --git a/configs/predictions/ikem/final.yaml b/configs/predictions/ikem/final.yaml new file mode 100644 index 00000000..a9b9fd7f --- /dev/null +++ b/configs/predictions/ikem/final.yaml @@ -0,0 +1,4 @@ +mlflow_uris: + nancy_high: ??? + nancy_low: ??? + neutrophils: ??? \ No newline at end of file diff --git a/configs/predictions/ikem/fold_1.yaml b/configs/predictions/ikem/fold_1.yaml new file mode 100644 index 00000000..a9b9fd7f --- /dev/null +++ b/configs/predictions/ikem/fold_1.yaml @@ -0,0 +1,4 @@ +mlflow_uris: + nancy_high: ??? + nancy_low: ??? + neutrophils: ??? \ No newline at end of file diff --git a/configs/predictions/ikem/fold_2.yaml b/configs/predictions/ikem/fold_2.yaml new file mode 100644 index 00000000..a9b9fd7f --- /dev/null +++ b/configs/predictions/ikem/fold_2.yaml @@ -0,0 +1,4 @@ +mlflow_uris: + nancy_high: ??? + nancy_low: ??? + neutrophils: ??? \ No newline at end of file diff --git a/configs/predictions/ikem/fold_3.yaml b/configs/predictions/ikem/fold_3.yaml new file mode 100644 index 00000000..a9b9fd7f --- /dev/null +++ b/configs/predictions/ikem/fold_3.yaml @@ -0,0 +1,4 @@ +mlflow_uris: + nancy_high: ??? + nancy_low: ??? + neutrophils: ??? \ No newline at end of file diff --git a/configs/predictions/ikem/fold_4.yaml b/configs/predictions/ikem/fold_4.yaml new file mode 100644 index 00000000..a9b9fd7f --- /dev/null +++ b/configs/predictions/ikem/fold_4.yaml @@ -0,0 +1,4 @@ +mlflow_uris: + nancy_high: ??? + nancy_low: ??? + neutrophils: ??? \ No newline at end of file diff --git a/configs/predictions/ikem/fold_5.yaml b/configs/predictions/ikem/fold_5.yaml new file mode 100644 index 00000000..a9b9fd7f --- /dev/null +++ b/configs/predictions/ikem/fold_5.yaml @@ -0,0 +1,4 @@ +mlflow_uris: + nancy_high: ??? + nancy_low: ??? + neutrophils: ??? \ No newline at end of file diff --git a/configs/predictions/knl_patos.yaml b/configs/predictions/knl_patos.yaml deleted file mode 100644 index 694f3e7f..00000000 --- a/configs/predictions/knl_patos.yaml +++ /dev/null @@ -1,22 +0,0 @@ -mlflow_uris: - nancy_high: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... - nancy_low: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... - neutrophils: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... diff --git a/configs/predictions/knl_patos/final.yaml b/configs/predictions/knl_patos/final.yaml new file mode 100644 index 00000000..a9b9fd7f --- /dev/null +++ b/configs/predictions/knl_patos/final.yaml @@ -0,0 +1,4 @@ +mlflow_uris: + nancy_high: ??? + nancy_low: ??? + neutrophils: ??? \ No newline at end of file diff --git a/postprocessing/ensembling.py b/postprocessing/ensembling.py index 683f8533..b808f5a1 100644 --- a/postprocessing/ensembling.py +++ b/postprocessing/ensembling.py @@ -16,10 +16,7 @@ recall_score, ) -from postprocessing.utils import load_folds, load_label_map - - -METRIC_KEYS = ["accuracy", "precision", "recall", "specificity", "cohen_kappa"] +from postprocessing.utils import load_predictions, load_label_map def macro_specificity(y_true: np.ndarray, y_pred: np.ndarray) -> float: @@ -35,7 +32,7 @@ def macro_specificity(y_true: np.ndarray, y_pred: np.ndarray) -> float: return float(np.mean(specs)) -def fold_metrics(y_true: np.ndarray, y_pred: np.ndarray) -> dict[str, float]: +def compute_metrics(y_true: np.ndarray, y_pred: np.ndarray) -> dict[str, float]: return { "accuracy": accuracy_score(y_true, y_pred), "precision": precision_score(y_true, y_pred, average="macro", zero_division=0), @@ -45,64 +42,48 @@ def fold_metrics(y_true: np.ndarray, y_pred: np.ndarray) -> dict[str, float]: } -def log_table_metrics( - label: str, folds: list[str], per_fold: list[dict[str, float]] -) -> None: - for fold, m in zip(folds, per_fold, strict=True): - fold_key = fold.replace("/", "_") - mlflow.log_metrics({f"{label}/fold_{fold_key}/{k}": v for k, v in m.items()}) - means = {k: float(np.mean([m[k] for m in per_fold])) for k in METRIC_KEYS} - mlflow.log_metrics({f"{label}/mean/{k}": v for k, v in means.items()}) - - -FoldData = dict[str, pd.DataFrame] +PredictionData = dict[str, pd.DataFrame] def run_ensembling( - folds: list[str], folds_data: list[FoldData] -) -> tuple[list[dict[str, float]], list[dict[str, float]], pd.DataFrame]: - ens_per_fold: list[dict[str, float]] = [] - hier_per_fold: list[dict[str, float]] = [] - results = [] - - for fold, fold_data in zip(folds, folds_data, strict=True): - neut_df = fold_data["neutrophils"] - nlow_df = fold_data["nancy_low"] - nhigh_df = fold_data["nancy_high"] - - neut_prob = np.array(neut_df["prediction"]) - low_probs = np.array(nlow_df["prediction"].tolist()) - high_probs = np.array(nhigh_df["prediction"].tolist()) - - y_true = neut_df["nancy"].values - low_branch = low_probs[:, :2].argmax(axis=1) - high_branch = high_probs[:, 1:].argmax(axis=1) + 2 - - # Ensembling: soft majority vote across three tasks - route_high_ens = ( - neut_prob + low_probs[:, 2] + high_probs[:, 1:].sum(axis=1) - ) >= 1.5 - ens_pred = np.where(route_high_ens, high_branch, low_branch) - ens_per_fold.append(fold_metrics(y_true, ens_pred)) - - # Hierarchical: neutrophils task alone routes - hier_pred = np.where(neut_prob >= 0.5, high_branch, low_branch) - hier_per_fold.append(fold_metrics(y_true, hier_pred)) - + data: PredictionData, +) -> tuple[dict[str, float], dict[str, float], pd.DataFrame]: + neut_df = data["neutrophils"] + nlow_df = data["nancy_low"] + nhigh_df = data["nancy_high"] + + neut_prob = np.array(neut_df["prediction"]) + low_probs = np.array(nlow_df["prediction"].tolist()) + high_probs = np.array(nhigh_df["prediction"].tolist()) + + y_true = neut_df["nancy"].values + low_branch = low_probs[:, :2].argmax(axis=1) + high_branch = high_probs[:, 1:].argmax(axis=1) + 2 + + # Ensembling: soft majority vote across three tasks + route_high_ens = ( + neut_prob + low_probs[:, 2] + high_probs[:, 1:].sum(axis=1) + ) >= 1.5 + ens_pred = np.where(route_high_ens, high_branch, low_branch) + ens_metrics = compute_metrics(y_true, ens_pred) + + # Hierarchical: neutrophils task alone routes + hier_pred = np.where(neut_prob >= 0.5, high_branch, low_branch) + hier_metrics = compute_metrics(y_true, hier_pred) + + results = [ + { + "slide": slide, + "nancy": int(yt), + "pred_ensembling": int(ens_yp), + "pred_hierarchical": int(hier_yp), + } for slide, yt, ens_yp, hier_yp in zip( neut_df.index, y_true, ens_pred, hier_pred, strict=True - ): - results.append( - { - "fold": fold, - "slide": slide, - "nancy": int(yt), - "pred_ensembling": int(ens_yp), - "pred_hierarchical": int(hier_yp), - } - ) + ) + ] - return ens_per_fold, hier_per_fold, pd.DataFrame(results) + return ens_metrics, hier_metrics, pd.DataFrame(results) @with_cli_args(["+postprocessing=ensembling"]) @@ -110,12 +91,12 @@ def run_ensembling( @autolog def main(config: DictConfig, logger: MLFlowLogger) -> None: label_map = load_label_map(config.dataset.mlflow_uris.dataset) - folds: list[str] = list(config.folds) - folds_data = load_folds(config.predictions.mlflow_uris, folds, label_map) - ens_per_fold, hier_per_fold, results = run_ensembling(folds, folds_data) + uris = {task: config.predictions.mlflow_uris[task] for task in ["neutrophils", "nancy_low", "nancy_high"]} + data = load_predictions(uris, label_map) + ens_metrics, hier_metrics, results = run_ensembling(data) - log_table_metrics("ensembling", folds, ens_per_fold) - log_table_metrics("hierarchical", folds, hier_per_fold) + logger.log_metrics({f"ensembling/{k}": v for k, v in ens_metrics.items()}) + logger.log_metrics({f"hierarchical/{k}": v for k, v in hier_metrics.items()}) with TemporaryDirectory() as tmpdir: output_path = Path(tmpdir) / "results.csv" diff --git a/postprocessing/markov_chain_confidence.py b/postprocessing/markov_chain_confidence.py index f874458d..aab35034 100644 --- a/postprocessing/markov_chain_confidence.py +++ b/postprocessing/markov_chain_confidence.py @@ -8,7 +8,7 @@ from rationai.mlkit import autolog, with_cli_args from rationai.mlkit.lightning.loggers import MLFlowLogger -from postprocessing.utils import load_folds, load_label_map +from postprocessing.utils import load_predictions, load_label_map class Confidence(Enum): @@ -20,27 +20,27 @@ class Confidence(Enum): def absorption_distribution( neut_df: pd.DataFrame, nlow_df: pd.DataFrame, nhigh_df: pd.DataFrame ) -> np.ndarray: - low = np.array(nlow_df["prediction"].tolist()) # (n, 3) + low = np.array(nlow_df["prediction"].tolist()) # (n, 3) high = np.array(nhigh_df["prediction"].tolist()) # (n, 4) a = 1.0 - np.array(neut_df["prediction"]) # P(neut -> nancy_low) - b = low[:, 2] # P(nancy_low -> nancy_high) - c = low[:, 0] # P(nancy_low -> NHI-0) + b = low[:, 2] # P(nancy_low -> nancy_high) + c = low[:, 0] # P(nancy_low -> NHI-0) d = high[:, 0] # P(nancy_high -> nancy_low) e = high[:, 1] # P(nancy_high -> NHI-2) f = high[:, 2] # P(nancy_high -> NHI-3) denom = 1.0 - b * d - flow_low = a + d - a * d # absorption flow factor for NHI 0/1 + flow_low = a + d - a * d # absorption flow factor for NHI 0/1 flow_high = 1.0 - a * (1.0 - b) # absorption flow factor for NHI 2/3/4 return np.column_stack( [ - c * flow_low / denom, # P(NHI-0) - low[:, 1] * flow_low / denom, # P(NHI-1) - e * flow_high / denom, # P(NHI-2) - f * flow_high / denom, # P(NHI-3) - high[:, 3] * flow_high / denom, # P(NHI-4) + c * flow_low / denom, # P(NHI-0) + low[:, 1] * flow_low / denom, # P(NHI-1) + e * flow_high / denom, # P(NHI-2) + f * flow_high / denom, # P(NHI-3) + high[:, 3] * flow_high / denom, # P(NHI-4) ] ) @@ -65,33 +65,30 @@ def compute_confidence(pi: np.ndarray, mode: Confidence) -> np.ndarray: def main(config: DictConfig, logger: MLFlowLogger) -> None: confidence_mode = Confidence(config.confidence) label_map = load_label_map(config.dataset.mlflow_uris.dataset) - folds: list[str] = list(config.folds) - folds_data = load_folds(config.predictions.mlflow_uris, folds, label_map) + uris = {task: config.predictions.mlflow_uris[task] for task in ["neutrophils", "nancy_low", "nancy_high"]} + data = load_predictions(uris, label_map) - rows = [] - for fold, fold_data in zip(folds, folds_data, strict=True): - pi = absorption_distribution( - fold_data["neutrophils"], fold_data["nancy_low"], fold_data["nancy_high"] + pi = absorption_distribution( + data["neutrophils"], data["nancy_low"], data["nancy_high"] + ) + confidence = compute_confidence(pi, confidence_mode) + + rows = [ + { + "slide": slide, + "pi_0": pi_row[0], + "pi_1": pi_row[1], + "pi_2": pi_row[2], + "pi_3": pi_row[3], + "pi_4": pi_row[4], + "confidence": conf, + } + for slide, pi_row, conf in zip( + data["neutrophils"].index, pi, confidence, strict=True ) - confidence = compute_confidence(pi, confidence_mode) + ] - for slide, pi_row, conf in zip( - fold_data["neutrophils"].index, pi, confidence, strict=True - ): - rows.append( - { - "slide": slide, - "fold": fold, - "pi_0": pi_row[0], - "pi_1": pi_row[1], - "pi_2": pi_row[2], - "pi_3": pi_row[3], - "pi_4": pi_row[4], - "confidence": conf, - } - ) - - mlflow.log_table(pd.DataFrame(rows), artifact_file="confidence.json") + logger.log_table(pd.DataFrame(rows), artifact_file="confidence.json") if __name__ == "__main__": diff --git a/postprocessing/utils.py b/postprocessing/utils.py index ca79fa18..4625ac37 100644 --- a/postprocessing/utils.py +++ b/postprocessing/utils.py @@ -15,7 +15,7 @@ def load_label_map(dataset_uri: str) -> dict[str, int]: return {str(k): int(v) for k, v in dataset["nancy"].items()} -def load_fold_predictions(uri: str, label_map: dict[str, int]) -> pd.DataFrame: +def load_task_predictions(uri: str, label_map: dict[str, int]) -> pd.DataFrame: artifact_path = Path(mlflow.artifacts.download_artifacts(uri)) if artifact_path.is_dir(): (artifact_path,) = artifact_path.glob("*.json") @@ -28,19 +28,12 @@ def load_fold_predictions(uri: str, label_map: dict[str, int]) -> pd.DataFrame: return df.set_index("slide") -def load_folds( - uris: Mapping[str, Mapping[str, str]], - folds: list[str], +def load_predictions( + uris: Mapping[str, str], label_map: dict[str, int], -) -> list[dict[str, pd.DataFrame]]: - folds_data = [] - for fold in folds: - fold_dfs = { - task: load_fold_predictions(uris[task][fold], label_map) for task in TASKS - } - common = fold_dfs[TASKS[0]].index - for df in fold_dfs.values(): - common = common.intersection(df.index) - folds_data.append({k: v.loc[common] for k, v in fold_dfs.items()}) - print(f"Fold {fold}: {len(common)} slides") - return folds_data +) -> dict[str, pd.DataFrame]: + task_dfs = {task: load_task_predictions(uris[task], label_map) for task in TASKS} + common = task_dfs[TASKS[0]].index + for df in task_dfs.values(): + common = common.intersection(df.index) + return {k: v.loc[common] for k, v in task_dfs.items()} From 8d5235f35b7d5fa843b13a984247bdcf49f52a6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 18:24:56 +0200 Subject: [PATCH 35/54] feat: uris --- .../ml/experiment_i_baseline_classification/test/fold_1.yaml | 2 +- .../ml/experiment_i_baseline_classification/test/fold_2.yaml | 2 +- .../ml/experiment_i_baseline_classification/test/fold_3.yaml | 2 +- .../ml/experiment_i_baseline_classification/test/fold_4.yaml | 2 +- .../ml/experiment_i_baseline_classification/test/fold_5.yaml | 2 +- .../experiment_i_baseline_classification/train/fold_1.yaml | 5 +++-- .../experiment_i_baseline_classification/train/fold_2.yaml | 5 +++-- .../experiment_i_baseline_classification/train/fold_3.yaml | 5 +++-- .../experiment_i_baseline_classification/train/fold_4.yaml | 5 +++-- .../experiment_i_baseline_classification/train/fold_5.yaml | 5 +++-- .../ml/experiment_ii_ordered_regression/test/fold_1.yaml | 2 +- .../ml/experiment_ii_ordered_regression/test/fold_2.yaml | 2 +- .../ml/experiment_ii_ordered_regression/test/fold_3.yaml | 2 +- .../ml/experiment_ii_ordered_regression/test/fold_4.yaml | 2 +- .../ml/experiment_ii_ordered_regression/test/fold_5.yaml | 2 +- .../ml/experiment_ii_ordered_regression/train/fold_1.yaml | 5 +++-- .../ml/experiment_ii_ordered_regression/train/fold_2.yaml | 5 +++-- .../ml/experiment_ii_ordered_regression/train/fold_3.yaml | 5 +++-- .../ml/experiment_ii_ordered_regression/train/fold_4.yaml | 5 +++-- .../ml/experiment_ii_ordered_regression/train/fold_5.yaml | 5 +++-- .../test/fold_1.yaml | 2 +- .../test/fold_2.yaml | 2 +- .../test/fold_3.yaml | 2 +- .../test/fold_4.yaml | 2 +- .../test/fold_5.yaml | 2 +- .../train/fold_1.yaml | 5 +++-- .../train/fold_2.yaml | 5 +++-- .../train/fold_3.yaml | 5 +++-- .../train/fold_4.yaml | 5 +++-- .../train/fold_5.yaml | 5 +++-- .../nancy_high/test/fold_1.yaml | 2 +- .../nancy_high/test/fold_2.yaml | 2 +- .../nancy_high/test/fold_3.yaml | 2 +- .../nancy_high/test/fold_4.yaml | 2 +- .../nancy_high/test/fold_5.yaml | 2 +- .../nancy_high/train/fold_1.yaml | 5 +++-- .../nancy_high/train/fold_2.yaml | 5 +++-- .../nancy_high/train/fold_3.yaml | 5 +++-- .../nancy_high/train/fold_4.yaml | 5 +++-- .../nancy_high/train/fold_5.yaml | 5 +++-- .../nancy_low/test/fold_1.yaml | 2 +- .../nancy_low/test/fold_2.yaml | 2 +- .../nancy_low/test/fold_3.yaml | 2 +- .../nancy_low/test/fold_4.yaml | 2 +- .../nancy_low/test/fold_5.yaml | 2 +- .../nancy_low/train/fold_1.yaml | 5 +++-- .../nancy_low/train/fold_2.yaml | 5 +++-- .../nancy_low/train/fold_3.yaml | 5 +++-- .../nancy_low/train/fold_4.yaml | 5 +++-- .../nancy_low/train/fold_5.yaml | 5 +++-- .../neutrophils/test/fold_1.yaml | 2 +- .../neutrophils/test/fold_2.yaml | 2 +- .../neutrophils/test/fold_3.yaml | 2 +- .../neutrophils/test/fold_4.yaml | 2 +- .../neutrophils/test/fold_5.yaml | 2 +- .../neutrophils/train/fold_1.yaml | 5 +++-- .../neutrophils/train/fold_2.yaml | 5 +++-- .../neutrophils/train/fold_3.yaml | 5 +++-- .../neutrophils/train/fold_4.yaml | 5 +++-- .../neutrophils/train/fold_5.yaml | 5 +++-- .../nancy_high/1_prov-gigapath/test/fold_1.yaml | 2 +- .../nancy_high/1_prov-gigapath/test/fold_2.yaml | 2 +- .../nancy_high/1_prov-gigapath/test/fold_3.yaml | 2 +- .../nancy_high/1_prov-gigapath/test/fold_4.yaml | 2 +- .../nancy_high/1_prov-gigapath/test/fold_5.yaml | 2 +- .../nancy_high/1_prov-gigapath/train/fold_1.yaml | 5 +++-- .../nancy_high/1_prov-gigapath/train/fold_2.yaml | 5 +++-- .../nancy_high/1_prov-gigapath/train/fold_3.yaml | 5 +++-- .../nancy_high/1_prov-gigapath/train/fold_4.yaml | 5 +++-- .../nancy_high/1_prov-gigapath/train/fold_5.yaml | 5 +++-- .../nancy_high/1_uni2/test/fold_1.yaml | 2 +- .../nancy_high/1_uni2/test/fold_2.yaml | 2 +- .../nancy_high/1_uni2/test/fold_3.yaml | 2 +- .../nancy_high/1_uni2/test/fold_4.yaml | 2 +- .../nancy_high/1_uni2/test/fold_5.yaml | 2 +- .../nancy_high/1_uni2/train/fold_1.yaml | 5 +++-- .../nancy_high/1_uni2/train/fold_2.yaml | 5 +++-- .../nancy_high/1_uni2/train/fold_3.yaml | 5 +++-- .../nancy_high/1_uni2/train/fold_4.yaml | 5 +++-- .../nancy_high/1_uni2/train/fold_5.yaml | 5 +++-- .../nancy_high/1_virchow2/test/fold_1.yaml | 2 +- .../nancy_high/1_virchow2/test/fold_2.yaml | 2 +- .../nancy_high/1_virchow2/test/fold_3.yaml | 2 +- .../nancy_high/1_virchow2/test/fold_4.yaml | 2 +- .../nancy_high/1_virchow2/test/fold_5.yaml | 2 +- .../nancy_high/1_virchow2/train/fold_1.yaml | 5 +++-- .../nancy_high/1_virchow2/train/fold_2.yaml | 5 +++-- .../nancy_high/1_virchow2/train/fold_3.yaml | 5 +++-- .../nancy_high/1_virchow2/train/fold_4.yaml | 5 +++-- .../nancy_high/1_virchow2/train/fold_5.yaml | 5 +++-- .../nancy_high/2_virchow2/test/fold_1.yaml | 2 +- .../nancy_high/2_virchow2/test/fold_2.yaml | 2 +- .../nancy_high/2_virchow2/test/fold_3.yaml | 2 +- .../nancy_high/2_virchow2/test/fold_4.yaml | 2 +- .../nancy_high/2_virchow2/test/fold_5.yaml | 2 +- .../nancy_high/2_virchow2/train/fold_1.yaml | 5 +++-- .../nancy_high/2_virchow2/train/fold_2.yaml | 5 +++-- .../nancy_high/2_virchow2/train/fold_3.yaml | 5 +++-- .../nancy_high/2_virchow2/train/fold_4.yaml | 5 +++-- .../nancy_high/2_virchow2/train/fold_5.yaml | 5 +++-- .../nancy_low/1_prov-gigapath/test/fold_1.yaml | 2 +- .../nancy_low/1_prov-gigapath/test/fold_2.yaml | 2 +- .../nancy_low/1_prov-gigapath/test/fold_3.yaml | 2 +- .../nancy_low/1_prov-gigapath/test/fold_4.yaml | 2 +- .../nancy_low/1_prov-gigapath/test/fold_5.yaml | 2 +- .../nancy_low/1_prov-gigapath/train/fold_1.yaml | 5 +++-- .../nancy_low/1_prov-gigapath/train/fold_2.yaml | 5 +++-- .../nancy_low/1_prov-gigapath/train/fold_3.yaml | 5 +++-- .../nancy_low/1_prov-gigapath/train/fold_4.yaml | 5 +++-- .../nancy_low/1_prov-gigapath/train/fold_5.yaml | 5 +++-- .../nancy_low/1_uni2/test/fold_1.yaml | 2 +- .../nancy_low/1_uni2/test/fold_2.yaml | 2 +- .../nancy_low/1_uni2/test/fold_3.yaml | 2 +- .../nancy_low/1_uni2/test/fold_4.yaml | 2 +- .../nancy_low/1_uni2/test/fold_5.yaml | 2 +- .../nancy_low/1_uni2/train/fold_1.yaml | 5 +++-- .../nancy_low/1_uni2/train/fold_2.yaml | 5 +++-- .../nancy_low/1_uni2/train/fold_3.yaml | 5 +++-- .../nancy_low/1_uni2/train/fold_4.yaml | 5 +++-- .../nancy_low/1_uni2/train/fold_5.yaml | 5 +++-- .../nancy_low/1_virchow2/test/fold_1.yaml | 2 +- .../nancy_low/1_virchow2/test/fold_2.yaml | 2 +- .../nancy_low/1_virchow2/test/fold_3.yaml | 2 +- .../nancy_low/1_virchow2/test/fold_4.yaml | 2 +- .../nancy_low/1_virchow2/test/fold_5.yaml | 2 +- .../nancy_low/1_virchow2/train/fold_1.yaml | 5 +++-- .../nancy_low/1_virchow2/train/fold_2.yaml | 5 +++-- .../nancy_low/1_virchow2/train/fold_3.yaml | 5 +++-- .../nancy_low/1_virchow2/train/fold_4.yaml | 5 +++-- .../nancy_low/1_virchow2/train/fold_5.yaml | 5 +++-- .../nancy_low/2_virchow2/test/fold_1.yaml | 2 +- .../nancy_low/2_virchow2/test/fold_2.yaml | 2 +- .../nancy_low/2_virchow2/test/fold_3.yaml | 2 +- .../nancy_low/2_virchow2/test/fold_4.yaml | 2 +- .../nancy_low/2_virchow2/test/fold_5.yaml | 2 +- .../nancy_low/2_virchow2/train/fold_1.yaml | 5 +++-- .../nancy_low/2_virchow2/train/fold_2.yaml | 5 +++-- .../nancy_low/2_virchow2/train/fold_3.yaml | 5 +++-- .../nancy_low/2_virchow2/train/fold_4.yaml | 5 +++-- .../nancy_low/2_virchow2/train/fold_5.yaml | 5 +++-- .../neutrophils/1_prov-gigapath/test/fold_1.yaml | 2 +- .../neutrophils/1_prov-gigapath/test/fold_2.yaml | 2 +- .../neutrophils/1_prov-gigapath/test/fold_3.yaml | 2 +- .../neutrophils/1_prov-gigapath/test/fold_4.yaml | 2 +- .../neutrophils/1_prov-gigapath/test/fold_5.yaml | 2 +- .../neutrophils/1_prov-gigapath/train/fold_1.yaml | 5 +++-- .../neutrophils/1_prov-gigapath/train/fold_2.yaml | 5 +++-- .../neutrophils/1_prov-gigapath/train/fold_3.yaml | 5 +++-- .../neutrophils/1_prov-gigapath/train/fold_4.yaml | 5 +++-- .../neutrophils/1_prov-gigapath/train/fold_5.yaml | 5 +++-- .../neutrophils/1_uni2/test/fold_1.yaml | 2 +- .../neutrophils/1_uni2/test/fold_2.yaml | 2 +- .../neutrophils/1_uni2/test/fold_3.yaml | 2 +- .../neutrophils/1_uni2/test/fold_4.yaml | 2 +- .../neutrophils/1_uni2/test/fold_5.yaml | 2 +- .../neutrophils/1_uni2/train/fold_1.yaml | 5 +++-- .../neutrophils/1_uni2/train/fold_2.yaml | 5 +++-- .../neutrophils/1_uni2/train/fold_3.yaml | 5 +++-- .../neutrophils/1_uni2/train/fold_4.yaml | 5 +++-- .../neutrophils/1_uni2/train/fold_5.yaml | 5 +++-- .../neutrophils/1_virchow2/test/fold_1.yaml | 2 +- .../neutrophils/1_virchow2/test/fold_2.yaml | 2 +- .../neutrophils/1_virchow2/test/fold_3.yaml | 2 +- .../neutrophils/1_virchow2/test/fold_4.yaml | 2 +- .../neutrophils/1_virchow2/test/fold_5.yaml | 2 +- .../neutrophils/1_virchow2/train/fold_1.yaml | 5 +++-- .../neutrophils/1_virchow2/train/fold_2.yaml | 5 +++-- .../neutrophils/1_virchow2/train/fold_3.yaml | 5 +++-- .../neutrophils/1_virchow2/train/fold_4.yaml | 5 +++-- .../neutrophils/1_virchow2/train/fold_5.yaml | 5 +++-- .../neutrophils/2_virchow2/test/fold_1.yaml | 2 +- .../neutrophils/2_virchow2/test/fold_2.yaml | 2 +- .../neutrophils/2_virchow2/test/fold_3.yaml | 2 +- .../neutrophils/2_virchow2/test/fold_4.yaml | 2 +- .../neutrophils/2_virchow2/test/fold_5.yaml | 2 +- .../neutrophils/2_virchow2/train/fold_1.yaml | 5 +++-- .../neutrophils/2_virchow2/train/fold_2.yaml | 5 +++-- .../neutrophils/2_virchow2/train/fold_3.yaml | 5 +++-- .../neutrophils/2_virchow2/train/fold_4.yaml | 5 +++-- .../neutrophils/2_virchow2/train/fold_5.yaml | 5 +++-- 180 files changed, 360 insertions(+), 270 deletions(-) diff --git a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_1.yaml b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_1.yaml index 1d4fff51..2eab7354 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_2.yaml b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_2.yaml index d1b94134..49fb0ffa 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_3.yaml b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_3.yaml index e03bab7b..5bb8a52a 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_4.yaml b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_4.yaml index 8a7d8b64..82916c4a 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_5.yaml b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_5.yaml index 3478bbaf..b218e3d0 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/train/fold_1.yaml b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_1.yaml index 82773857..3ab29e55 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_1.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/classification_tiles + - /dataset/tiled/ikem/0_512@ikem - _self_ val_fold: 1 data: train: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all val: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/train/fold_2.yaml b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_2.yaml index 4280cebe..157f86d9 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_2.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/classification_tiles + - /dataset/tiled/ikem/0_512@ikem - _self_ val_fold: 2 data: train: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all val: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/train/fold_3.yaml b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_3.yaml index eeb2c372..997bb42b 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_3.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/classification_tiles + - /dataset/tiled/ikem/0_512@ikem - _self_ val_fold: 3 data: train: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all val: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/train/fold_4.yaml b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_4.yaml index caa448f5..285e85f8 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_4.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/classification_tiles + - /dataset/tiled/ikem/0_512@ikem - _self_ val_fold: 4 data: train: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all val: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/train/fold_5.yaml b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_5.yaml index 3bad4443..2b766dec 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_5.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/classification_tiles + - /dataset/tiled/ikem/0_512@ikem - _self_ val_fold: 5 data: train: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all val: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_1.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_1.yaml index f1d14bcd..e847d65b 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_2.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_2.yaml index 1d2da59e..cc081ebd 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_3.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_3.yaml index ba03cefb..3636567a 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_4.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_4.yaml index ff175404..5337248f 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_5.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_5.yaml index bd66527f..b161c8ab 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_1.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_1.yaml index 599b17dc..da80aeab 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_1.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/ordered_regression_tiles + - /dataset/tiled/ikem/0_512@ikem - _self_ val_fold: 1 data: train: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all val: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_2.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_2.yaml index 97413596..f8db0baf 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_2.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/ordered_regression_tiles + - /dataset/tiled/ikem/0_512@ikem - _self_ val_fold: 2 data: train: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all val: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_3.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_3.yaml index 0a85a512..70f37085 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_3.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/ordered_regression_tiles + - /dataset/tiled/ikem/0_512@ikem - _self_ val_fold: 3 data: train: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all val: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_4.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_4.yaml index 7558e4f6..f245424c 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_4.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/ordered_regression_tiles + - /dataset/tiled/ikem/0_512@ikem - _self_ val_fold: 4 data: train: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all val: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_5.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_5.yaml index 953c5569..d1adc82c 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_5.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/ordered_regression_tiles + - /dataset/tiled/ikem/0_512@ikem - _self_ val_fold: 5 data: train: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all val: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_1.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_1.yaml index 9f76138c..fcae733d 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_2.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_2.yaml index cce8282a..8f2d4724 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_3.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_3.yaml index 8a992f59..a05de431 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_4.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_4.yaml index d4222cd1..4927f24b 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_5.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_5.yaml index 26aaedaf..904b97e3 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_1.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_1.yaml index 459cacbd..a2ceeabf 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_1.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/classification_embeddings + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: all val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_2.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_2.yaml index 626fd2d1..a87da1ca 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_2.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/classification_embeddings + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: all val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_3.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_3.yaml index 0289f07d..01505142 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_3.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/classification_embeddings + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: all val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_4.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_4.yaml index 25cfce03..2cbd4d7b 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_4.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/classification_embeddings + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: all val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_5.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_5.yaml index 9f886c20..609c1cd2 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_5.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/classification_embeddings + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: all val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: all diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_1.yaml index 7d4efbb9..016b7518 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_2.yaml index fc73925b..7009ae6f 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_3.yaml index b1dbd3ce..d86f7b07 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_4.yaml index f974eb1c..a4479f05 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_5.yaml index 54631380..156b607b 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_1.yaml index cbbfcfbd..ed98687d 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_2.yaml index fd8b4af4..3cbab67d 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_3.yaml index 1a5c4fb9..760456ec 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_4.yaml index e262f5f6..a391e84c 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_5.yaml index eeeb2b64..30e1eceb 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_1.yaml index 2d65b973..0af81430 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_2.yaml index bdd837b6..5f348c97 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_3.yaml index 77123dcc..25c9ba15 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_4.yaml index dc3f611d..a59bb3b2 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_5.yaml index 90509883..3390f33b 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_1.yaml index 0ebf71ee..76379b7a 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_2.yaml index c3cd9d77..2104a63f 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_3.yaml index 2908577f..25d11734 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_4.yaml index 2b1b0bae..ac00756c 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_5.yaml index 06c02916..eb5bdaa7 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_1.yaml index cd8c1e2f..e611a14b 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_2.yaml index b810d4ea..4ecf6f07 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_3.yaml index 75a90e9d..8462dade 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_4.yaml index 66aa4511..f1da2e93 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_5.yaml index dfd5f649..101d62c7 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_1.yaml index 47319e2c..1d53ca34 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_2.yaml index fdc7c00a..cf16049a 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_3.yaml index e71e33a3..bb4a6b4a 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_4.yaml index 8b8e06f5..a5cedb87 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_5.yaml index ae2db3a5..58661ada 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_1.yaml index cf54bd53..acee0218 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_2.yaml index e017792b..8f0a5934 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_3.yaml index d6f3f3cf..d2bc7827 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_4.yaml index c525576a..bdc8ce0d 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_5.yaml index f6077895..de30f7b4 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_1.yaml index cbbfcfbd..ed98687d 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_2.yaml index fd8b4af4..3cbab67d 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_3.yaml index 1a5c4fb9..760456ec 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_4.yaml index e262f5f6..a391e84c 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_5.yaml index eeeb2b64..30e1eceb 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_1.yaml index 0af1d479..a8939b08 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_2.yaml index 4aa762fc..0a49a298 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_3.yaml index 6abadd72..155a70e0 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_4.yaml index 0a86a61d..d7babbb2 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_5.yaml index 36e6187f..61a389e9 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_1.yaml index 76eefbf4..b0e75b07 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_2.yaml index 67e57433..29825ed5 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_3.yaml index b62e356e..e64c0513 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_4.yaml index 804fdc50..741e1a84 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_5.yaml index 682cafd6..b3ea4260 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_1.yaml index 914315be..12c1dd24 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_2.yaml index 20bdc607..5ecaeb07 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_3.yaml index a90e9001..c1cb4cc5 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_4.yaml index 1c346e58..af2c7338 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_5.yaml index 4468451f..8e454438 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_1.yaml index f5b1da71..bfddec20 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_2.yaml index f0bdc1fc..96874281 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_3.yaml index 63b47858..c23e3c98 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_4.yaml index 277c1832..5249943f 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_5.yaml index 3cb722b7..687b8809 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_1.yaml index 13b5f321..6eb05f0f 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_2.yaml index 68542ba5..98233ed5 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_3.yaml index 8b4e80bd..ff2900eb 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_4.yaml index a60e34fd..ea151f25 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_5.yaml index 38402d97..3bdb6c40 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_1.yaml index 7005a0b4..6afdd26b 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_2.yaml index fa611454..76fae366 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_3.yaml index 721b84ea..1f1ff3c1 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_4.yaml index 0c7797f0..080d28cb 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_5.yaml index 30952c84..dc7d16d8 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_1.yaml index 0ae53acd..64c43919 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_2.yaml index b4217925..8e599d60 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_3.yaml index dc4989c6..40e110c1 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_4.yaml index 70e573fb..313b8969 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_5.yaml index 03107ffb..53f3fa15 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_1.yaml index 0ebf71ee..76379b7a 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_2.yaml index c3cd9d77..2104a63f 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_3.yaml index 2908577f..25d11734 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_4.yaml index 2b1b0bae..ac00756c 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_5.yaml index 06c02916..eb5bdaa7 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_1.yaml index b0667f7c..8802d60f 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_2.yaml index 16ea3488..07318071 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_3.yaml index 989a640b..537016ab 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_4.yaml index a72f3dd1..996e32b1 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_5.yaml index bfad1985..9055ea27 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_1.yaml index 38db5686..62a02942 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_2.yaml index d675521e..1edbecf3 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_3.yaml index 7ef5181d..cd1286c7 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_4.yaml index 92f8f8c6..2eebdf85 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_5.yaml index e29771cb..c09e7340 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_1.yaml index 98362b65..178cf8cb 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_2.yaml index 487aaf52..9d24a791 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_3.yaml index 774b2fea..4c6d5919 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_4.yaml index 4d422039..ed62dc9b 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_5.yaml index 3c1f38d0..e860bbca 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_1.yaml index 582892cf..addbf5ad 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_2.yaml index 6d6921dc..354f674a 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_3.yaml index b456e5be..68da8479 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_4.yaml index 22dbc4c8..5437530f 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_5.yaml index ceb1fff1..d1b64025 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_1.yaml index 184b653a..dd0bf5ae 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_2.yaml index 7cbec3f8..4c0bd9b8 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_3.yaml index be080676..5cd4ee19 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_4.yaml index 37178961..5ce6d7db 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_5.yaml index 0f1bfdf5..0e4da89c 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_1.yaml index 0b3302d4..32d54fae 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_2.yaml index a8b407b1..19612282 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_3.yaml index 56b8a40b..93194b0f 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_4.yaml index d07ed808..a3c725bd 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_5.yaml index eab00b33..3a582b95 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_1.yaml index fe1d9c62..0cc42185 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_2.yaml index 510234ff..332842cc 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_3.yaml index 64ab3ae7..abd9c2d4 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_4.yaml index dfb73928..39a794c9 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_5.yaml index 22c29eca..b8675745 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_1.yaml index 47319e2c..1d53ca34 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_2.yaml index fdc7c00a..cf16049a 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_3.yaml index e71e33a3..bb4a6b4a 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_4.yaml index 8b8e06f5..a5cedb87 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_5.yaml index ae2db3a5..58661ada 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_1.yaml index 434d1be5..3d1369b9 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_2.yaml index aee8c0ec..b87b8d78 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_3.yaml index c5b8d8c2..25896de4 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_4.yaml index c753a8da..09e1e795 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_5.yaml index 7080e15b..5153fed0 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_1.yaml index 3ebd1ea4..2fd9c134 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_2.yaml index 1d8b21c7..8d627d9f 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_3.yaml index 6086623f..942eb99c 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_4.yaml index 0023f19d..ba22dba0 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_5.yaml index 52fb1e3a..5829e156 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_1.yaml index 3b1b11b7..162a3d5f 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_2.yaml index 05d33072..82cc5348 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_3.yaml index 5a89a792..66c95807 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_4.yaml index 33c966d7..a1614738 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_5.yaml index 8b84680c..80f2ec59 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_1.yaml index 64cf9067..610be2d4 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_2.yaml index 5f54c1c1..d292bdfe 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_3.yaml index 12ea5b86..a6661f4e 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_4.yaml index f43a98d5..b4ad3ab8 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_5.yaml index 2da15caf..7ccdfb33 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_1.yaml index 220f82fc..b6fd710f 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_2.yaml index f7c800b4..2e852739 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_3.yaml index a72fb456..40fb19f9 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_4.yaml index a1ce0af1..fb6b4631 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_5.yaml index 68fb366c..ccbabacc 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_1.yaml index b1439c0a..8d16f29c 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_2.yaml index b846471d..c5d241b9 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_3.yaml index 4550d3c5..5f80a3cc 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_4.yaml index c101ef70..0309748a 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_5.yaml index 23b345c9..10c548a3 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: virchow2 From 29633f785f30cfc674e27596f44bc2e6c66a3ade Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 18:29:25 +0200 Subject: [PATCH 36/54] feat: artifacts deleted --- configs/dataset/embeddings/ftn/1_prov-gigapath.yaml | 6 +++--- configs/dataset/embeddings/ftn/1_uni2.yaml | 6 +++--- configs/dataset/embeddings/ftn/1_virchow2.yaml | 6 +++--- configs/dataset/embeddings/ftn/2_virchow2.yaml | 6 +++--- configs/dataset/embeddings/ikem/1_prov-gigapath.yaml | 6 +++--- configs/dataset/embeddings/ikem/1_uni2.yaml | 6 +++--- configs/dataset/embeddings/ikem/1_virchow2.yaml | 6 +++--- configs/dataset/embeddings/ikem/2_virchow2.yaml | 6 +++--- .../dataset/embeddings/knl_patos/1_prov-gigapath.yaml | 4 ++-- configs/dataset/embeddings/knl_patos/1_uni2.yaml | 4 ++-- configs/dataset/embeddings/knl_patos/1_virchow2.yaml | 4 ++-- configs/dataset/embeddings/knl_patos/2_virchow2.yaml | 4 ++-- configs/dataset/neutrophils/ftn.yaml | 2 +- configs/dataset/neutrophils/ikem.yaml | 2 +- configs/dataset/neutrophils/knl_patos.yaml | 2 +- configs/dataset/processed/ftn.yaml | 2 +- configs/dataset/processed/ikem.yaml | 2 +- configs/dataset/processed/knl_patos.yaml | 2 +- configs/dataset/processed_w_masks/ftn.yaml | 10 +++++----- configs/dataset/processed_w_masks/ikem.yaml | 10 +++++----- configs/dataset/processed_w_masks/knl_patos.yaml | 8 ++++---- configs/dataset/tiled/ftn/0_320.yaml | 6 +++--- configs/dataset/tiled/ftn/0_512.yaml | 6 +++--- configs/dataset/tiled/ftn/1_224.yaml | 6 +++--- configs/dataset/tiled/ftn/2_224.yaml | 6 +++--- configs/dataset/tiled/ikem/0_320.yaml | 6 +++--- configs/dataset/tiled/ikem/0_512.yaml | 6 +++--- configs/dataset/tiled/ikem/1_224.yaml | 6 +++--- configs/dataset/tiled/ikem/2_224.yaml | 6 +++--- configs/dataset/tiled/knl_patos/0_320.yaml | 4 ++-- configs/dataset/tiled/knl_patos/0_512.yaml | 4 ++-- configs/dataset/tiled/knl_patos/1_224.yaml | 4 ++-- configs/dataset/tiled/knl_patos/2_224.yaml | 4 ++-- 33 files changed, 84 insertions(+), 84 deletions(-) diff --git a/configs/dataset/embeddings/ftn/1_prov-gigapath.yaml b/configs/dataset/embeddings/ftn/1_prov-gigapath.yaml index 08ba0e42..6d3950cf 100644 --- a/configs/dataset/embeddings/ftn/1_prov-gigapath.yaml +++ b/configs/dataset/embeddings/ftn/1_prov-gigapath.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: embeddings: - train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn - test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn - test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/embeddings/ftn/1_uni2.yaml b/configs/dataset/embeddings/ftn/1_uni2.yaml index 08ba0e42..6d3950cf 100644 --- a/configs/dataset/embeddings/ftn/1_uni2.yaml +++ b/configs/dataset/embeddings/ftn/1_uni2.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: embeddings: - train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn - test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn - test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/embeddings/ftn/1_virchow2.yaml b/configs/dataset/embeddings/ftn/1_virchow2.yaml index 08ba0e42..6d3950cf 100644 --- a/configs/dataset/embeddings/ftn/1_virchow2.yaml +++ b/configs/dataset/embeddings/ftn/1_virchow2.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: embeddings: - train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn - test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn - test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/embeddings/ftn/2_virchow2.yaml b/configs/dataset/embeddings/ftn/2_virchow2.yaml index 5cb4f4e7..63cf7354 100644 --- a/configs/dataset/embeddings/ftn/2_virchow2.yaml +++ b/configs/dataset/embeddings/ftn/2_virchow2.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: embeddings: - train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn - test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn - test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/embeddings/ikem/1_prov-gigapath.yaml b/configs/dataset/embeddings/ikem/1_prov-gigapath.yaml index a9353b51..b44ca180 100644 --- a/configs/dataset/embeddings/ikem/1_prov-gigapath.yaml +++ b/configs/dataset/embeddings/ikem/1_prov-gigapath.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: embeddings: - train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem - test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem - test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/embeddings/ikem/1_uni2.yaml b/configs/dataset/embeddings/ikem/1_uni2.yaml index a9353b51..b44ca180 100644 --- a/configs/dataset/embeddings/ikem/1_uni2.yaml +++ b/configs/dataset/embeddings/ikem/1_uni2.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: embeddings: - train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem - test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem - test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/embeddings/ikem/1_virchow2.yaml b/configs/dataset/embeddings/ikem/1_virchow2.yaml index a9353b51..b44ca180 100644 --- a/configs/dataset/embeddings/ikem/1_virchow2.yaml +++ b/configs/dataset/embeddings/ikem/1_virchow2.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: embeddings: - train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem - test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem - test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/embeddings/ikem/2_virchow2.yaml b/configs/dataset/embeddings/ikem/2_virchow2.yaml index 6752183b..37ca7c47 100644 --- a/configs/dataset/embeddings/ikem/2_virchow2.yaml +++ b/configs/dataset/embeddings/ikem/2_virchow2.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: embeddings: - train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem - test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem - test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/embeddings/knl_patos/1_prov-gigapath.yaml b/configs/dataset/embeddings/knl_patos/1_prov-gigapath.yaml index 9952d82b..7f8b7902 100644 --- a/configs/dataset/embeddings/knl_patos/1_prov-gigapath.yaml +++ b/configs/dataset/embeddings/knl_patos/1_prov-gigapath.yaml @@ -4,5 +4,5 @@ defaults: mlflow_uris: embeddings: - test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos - test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/embeddings/knl_patos/1_uni2.yaml b/configs/dataset/embeddings/knl_patos/1_uni2.yaml index 9952d82b..7f8b7902 100644 --- a/configs/dataset/embeddings/knl_patos/1_uni2.yaml +++ b/configs/dataset/embeddings/knl_patos/1_uni2.yaml @@ -4,5 +4,5 @@ defaults: mlflow_uris: embeddings: - test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos - test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/embeddings/knl_patos/1_virchow2.yaml b/configs/dataset/embeddings/knl_patos/1_virchow2.yaml index 9952d82b..7f8b7902 100644 --- a/configs/dataset/embeddings/knl_patos/1_virchow2.yaml +++ b/configs/dataset/embeddings/knl_patos/1_virchow2.yaml @@ -4,5 +4,5 @@ defaults: mlflow_uris: embeddings: - test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos - test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/embeddings/knl_patos/2_virchow2.yaml b/configs/dataset/embeddings/knl_patos/2_virchow2.yaml index 1acf5ee3..dfa15783 100644 --- a/configs/dataset/embeddings/knl_patos/2_virchow2.yaml +++ b/configs/dataset/embeddings/knl_patos/2_virchow2.yaml @@ -4,5 +4,5 @@ defaults: mlflow_uris: embeddings: - test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos - test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/neutrophils/ftn.yaml b/configs/dataset/neutrophils/ftn.yaml index 3446ced0..d31d7380 100644 --- a/configs/dataset/neutrophils/ftn.yaml +++ b/configs/dataset/neutrophils/ftn.yaml @@ -3,4 +3,4 @@ defaults: - _self_ mlflow_uris: - neutrophils: mlflow-artifacts:/86/deee774e63644dd1a5e3d3e15a429224/artifacts/neutrophils + neutrophils: ??? diff --git a/configs/dataset/neutrophils/ikem.yaml b/configs/dataset/neutrophils/ikem.yaml index 81d33b21..819642e6 100644 --- a/configs/dataset/neutrophils/ikem.yaml +++ b/configs/dataset/neutrophils/ikem.yaml @@ -3,4 +3,4 @@ defaults: - _self_ mlflow_uris: - neutrophils: mlflow-artifacts:/86/c01579c246ad4f66a3b3cc0d8aa644fe/artifacts/neutrophils + neutrophils: ??? diff --git a/configs/dataset/neutrophils/knl_patos.yaml b/configs/dataset/neutrophils/knl_patos.yaml index 5303a9ad..c98eb76f 100644 --- a/configs/dataset/neutrophils/knl_patos.yaml +++ b/configs/dataset/neutrophils/knl_patos.yaml @@ -3,4 +3,4 @@ defaults: - _self_ mlflow_uris: - neutrophils: mlflow-artifacts:/86/24d97109978e4c8ba13ac1972d22be96/artifacts/neutrophils + neutrophils: ??? diff --git a/configs/dataset/processed/ftn.yaml b/configs/dataset/processed/ftn.yaml index c79fe2a7..a3d5297e 100644 --- a/configs/dataset/processed/ftn.yaml +++ b/configs/dataset/processed/ftn.yaml @@ -3,4 +3,4 @@ defaults: - _self_ mlflow_uris: - dataset: mlflow-artifacts:/86/d2b2f1835fc647e2ba3639ce606f4768/artifacts/dataset.csv + dataset: ??? diff --git a/configs/dataset/processed/ikem.yaml b/configs/dataset/processed/ikem.yaml index 79e84ad7..4d42bc91 100644 --- a/configs/dataset/processed/ikem.yaml +++ b/configs/dataset/processed/ikem.yaml @@ -3,4 +3,4 @@ defaults: - _self_ mlflow_uris: - dataset: mlflow-artifacts:/86/7c6e7cc142494d45b6513185318d4462/artifacts/dataset.csv + dataset: ??? diff --git a/configs/dataset/processed/knl_patos.yaml b/configs/dataset/processed/knl_patos.yaml index 7c2c3dde..3315f48a 100644 --- a/configs/dataset/processed/knl_patos.yaml +++ b/configs/dataset/processed/knl_patos.yaml @@ -3,4 +3,4 @@ defaults: - _self_ mlflow_uris: - dataset: mlflow-artifacts:/86/f690f64ded624da9a7150a7a92385aec/artifacts/dataset.csv + dataset: ??? diff --git a/configs/dataset/processed_w_masks/ftn.yaml b/configs/dataset/processed_w_masks/ftn.yaml index bb163a7c..0a6ce921 100644 --- a/configs/dataset/processed_w_masks/ftn.yaml +++ b/configs/dataset/processed_w_masks/ftn.yaml @@ -3,9 +3,9 @@ defaults: - _self_ mlflow_uris: - tissue_mask: mlflow-artifacts:/86/17149d1de7014112aba3a252a76d10bc/artifacts/tissue_masks - qc_mask: mlflow-artifacts:/86/d2301fc279c94682a639583731c2fded/artifacts + tissue_mask: ??? + qc_mask: ??? splits: - train: mlflow-artifacts:/86/a0fa337bf26146dab42062237285737f/artifacts/train.csv - test_preliminary: mlflow-artifacts:/86/a0fa337bf26146dab42062237285737f/artifacts/test_preliminary.csv - test_final: mlflow-artifacts:/86/a0fa337bf26146dab42062237285737f/artifacts/test_final.csv + train: ??? + test_preliminary: ??? + test_final: ??? diff --git a/configs/dataset/processed_w_masks/ikem.yaml b/configs/dataset/processed_w_masks/ikem.yaml index 1ca391b8..a3f8ab89 100644 --- a/configs/dataset/processed_w_masks/ikem.yaml +++ b/configs/dataset/processed_w_masks/ikem.yaml @@ -3,9 +3,9 @@ defaults: - _self_ mlflow_uris: - tissue_mask: mlflow-artifacts:/86/94481ac59246471fb874bfb4dccb5e67/artifacts/tissue_masks - qc_mask: mlflow-artifacts:/86/65e794b652ab4369aad2e7dbe60eddca/artifacts + tissue_mask: ??? + qc_mask: ??? splits: - train: mlflow-artifacts:/86/9a2d8f975bc24dceb5271c5699560a8f/artifacts/train.csv - test_preliminary: mlflow-artifacts:/86/9a2d8f975bc24dceb5271c5699560a8f/artifacts/test_preliminary.csv - test_final: mlflow-artifacts:/86/9a2d8f975bc24dceb5271c5699560a8f/artifacts/test_final.csv + train: ??? + test_preliminary: ??? + test_final: ??? diff --git a/configs/dataset/processed_w_masks/knl_patos.yaml b/configs/dataset/processed_w_masks/knl_patos.yaml index 648fbec8..fc29e2e2 100644 --- a/configs/dataset/processed_w_masks/knl_patos.yaml +++ b/configs/dataset/processed_w_masks/knl_patos.yaml @@ -3,8 +3,8 @@ defaults: - _self_ mlflow_uris: - tissue_mask: mlflow-artifacts:/86/6cdfa5ce4f7242a9b2bb394bfd5ed705/artifacts/tissue_masks - qc_mask: mlflow-artifacts:/86/7cc5586efbca4ecd8f7ac2847b4ee199/artifacts + tissue_mask: ??? + qc_mask: ??? splits: - test_preliminary: mlflow-artifacts:/86/4d517fd564c741ec8e14679a340ebcb0/artifacts/test_preliminary.csv - test_final: mlflow-artifacts:/86/4d517fd564c741ec8e14679a340ebcb0/artifacts/test_final.csv + test_preliminary: ??? + test_final: ??? diff --git a/configs/dataset/tiled/ftn/0_320.yaml b/configs/dataset/tiled/ftn/0_320.yaml index 3f9db69e..c6aba9b8 100644 --- a/configs/dataset/tiled/ftn/0_320.yaml +++ b/configs/dataset/tiled/ftn/0_320.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: tiling: - train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn - test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn - test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/tiled/ftn/0_512.yaml b/configs/dataset/tiled/ftn/0_512.yaml index 3f9db69e..c6aba9b8 100644 --- a/configs/dataset/tiled/ftn/0_512.yaml +++ b/configs/dataset/tiled/ftn/0_512.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: tiling: - train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn - test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn - test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/tiled/ftn/1_224.yaml b/configs/dataset/tiled/ftn/1_224.yaml index 3f9db69e..c6aba9b8 100644 --- a/configs/dataset/tiled/ftn/1_224.yaml +++ b/configs/dataset/tiled/ftn/1_224.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: tiling: - train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn - test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn - test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/tiled/ftn/2_224.yaml b/configs/dataset/tiled/ftn/2_224.yaml index 3f9db69e..c6aba9b8 100644 --- a/configs/dataset/tiled/ftn/2_224.yaml +++ b/configs/dataset/tiled/ftn/2_224.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: tiling: - train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn - test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn - test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/tiled/ikem/0_320.yaml b/configs/dataset/tiled/ikem/0_320.yaml index c8f212ca..ce2ee775 100644 --- a/configs/dataset/tiled/ikem/0_320.yaml +++ b/configs/dataset/tiled/ikem/0_320.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: tiling: - train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem - test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem - test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/tiled/ikem/0_512.yaml b/configs/dataset/tiled/ikem/0_512.yaml index c8f212ca..ce2ee775 100644 --- a/configs/dataset/tiled/ikem/0_512.yaml +++ b/configs/dataset/tiled/ikem/0_512.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: tiling: - train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem - test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem - test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/tiled/ikem/1_224.yaml b/configs/dataset/tiled/ikem/1_224.yaml index c8f212ca..ce2ee775 100644 --- a/configs/dataset/tiled/ikem/1_224.yaml +++ b/configs/dataset/tiled/ikem/1_224.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: tiling: - train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem - test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem - test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/tiled/ikem/2_224.yaml b/configs/dataset/tiled/ikem/2_224.yaml index c8f212ca..ce2ee775 100644 --- a/configs/dataset/tiled/ikem/2_224.yaml +++ b/configs/dataset/tiled/ikem/2_224.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: tiling: - train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem - test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem - test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/tiled/knl_patos/0_320.yaml b/configs/dataset/tiled/knl_patos/0_320.yaml index a8e44014..eceb9270 100644 --- a/configs/dataset/tiled/knl_patos/0_320.yaml +++ b/configs/dataset/tiled/knl_patos/0_320.yaml @@ -4,5 +4,5 @@ defaults: mlflow_uris: tiling: - test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos - test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/tiled/knl_patos/0_512.yaml b/configs/dataset/tiled/knl_patos/0_512.yaml index a8e44014..eceb9270 100644 --- a/configs/dataset/tiled/knl_patos/0_512.yaml +++ b/configs/dataset/tiled/knl_patos/0_512.yaml @@ -4,5 +4,5 @@ defaults: mlflow_uris: tiling: - test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos - test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/tiled/knl_patos/1_224.yaml b/configs/dataset/tiled/knl_patos/1_224.yaml index a8e44014..eceb9270 100644 --- a/configs/dataset/tiled/knl_patos/1_224.yaml +++ b/configs/dataset/tiled/knl_patos/1_224.yaml @@ -4,5 +4,5 @@ defaults: mlflow_uris: tiling: - test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos - test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/tiled/knl_patos/2_224.yaml b/configs/dataset/tiled/knl_patos/2_224.yaml index a8e44014..eceb9270 100644 --- a/configs/dataset/tiled/knl_patos/2_224.yaml +++ b/configs/dataset/tiled/knl_patos/2_224.yaml @@ -4,5 +4,5 @@ defaults: mlflow_uris: tiling: - test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos - test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file + test_preliminary: ??? + test_final: ??? \ No newline at end of file From bb71d720ec11e6cd8f1f4cac99451b608522b34e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 18:42:45 +0200 Subject: [PATCH 37/54] feature: scripts --- scripts/ml/neutrophils.py | 16 ++++++++++++++++ scripts/ml/test.py | 18 ++++++++++++++++++ scripts/ml/train.py | 18 ++++++++++++++++++ scripts/postprocessing/ensembling.py | 2 +- .../postprocessing/markov_chain_confidence.py | 2 +- 5 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 scripts/ml/neutrophils.py create mode 100644 scripts/ml/test.py create mode 100644 scripts/ml/train.py diff --git a/scripts/ml/neutrophils.py b/scripts/ml/neutrophils.py new file mode 100644 index 00000000..cd5727a6 --- /dev/null +++ b/scripts/ml/neutrophils.py @@ -0,0 +1,16 @@ +from kube_jobs import submit_job + + +submit_job( + job_name="ulcerative-colitis-ml-neutrophils-...", + username=..., + public=False, + cpu=4, + memory="8Gi", + script=[ + "git clone https://github.com/RationAI/ulcerative-colitis.git workdir", + "cd workdir", + "uv sync --frozen", + "uv run -m ml.neutrophils +experiment=ml/experiment_vi_neutrophil_detection/run", + ], +) diff --git a/scripts/ml/test.py b/scripts/ml/test.py new file mode 100644 index 00000000..fbdbc099 --- /dev/null +++ b/scripts/ml/test.py @@ -0,0 +1,18 @@ +from kube_jobs import storage, submit_job + + +submit_job( + job_name="ulcerative-colitis-ml-test-...", + username=..., + public=False, + gpu="mig-1g.10gb", + cpu=10, + memory="64Gi", + script=[ + "git clone https://github.com/RationAI/ulcerative-colitis.git workdir", + "cd workdir", + "uv sync --frozen", + "uv run -m ml +experiment=ml/.../...", + ], + storage=[storage.secure.DATA], +) diff --git a/scripts/ml/train.py b/scripts/ml/train.py new file mode 100644 index 00000000..12571e2d --- /dev/null +++ b/scripts/ml/train.py @@ -0,0 +1,18 @@ +from kube_jobs import storage, submit_job + + +submit_job( + job_name="ulcerative-colitis-ml-train-...", + username=..., + public=False, + gpu="mig-1g.10gb", + cpu=10, + memory="64Gi", + script=[ + "git clone https://github.com/RationAI/ulcerative-colitis.git workdir", + "cd workdir", + "uv sync --frozen", + "uv run -m ml +experiment=ml/.../...", + ], + storage=[storage.secure.DATA], +) diff --git a/scripts/postprocessing/ensembling.py b/scripts/postprocessing/ensembling.py index 570b5379..a474cf69 100644 --- a/scripts/postprocessing/ensembling.py +++ b/scripts/postprocessing/ensembling.py @@ -11,6 +11,6 @@ "git clone https://github.com/RationAI/ulcerative-colitis.git workdir", "cd workdir", "uv sync --frozen", - "uv run -m postprocessing.ensembling +experiment/postprocessing/ensembling=...", + "uv run -m postprocessing.ensembling +experiment=postprocessing/..._ensembling/...", ], ) diff --git a/scripts/postprocessing/markov_chain_confidence.py b/scripts/postprocessing/markov_chain_confidence.py index 99a2eec8..6c221778 100644 --- a/scripts/postprocessing/markov_chain_confidence.py +++ b/scripts/postprocessing/markov_chain_confidence.py @@ -11,6 +11,6 @@ "git clone https://github.com/RationAI/ulcerative-colitis.git workdir", "cd workdir", "uv sync --frozen", - "uv run -m postprocessing.markov_chain_confidence +experiment/postprocessing/markov_chain_confidence=...", + "uv run -m postprocessing.markov_chain_confidence +experiment=postprocessing/..._markov_chain_.../...", ], ) From cc369f200e52776aeec984d007bb4c601e223c60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 19:06:01 +0200 Subject: [PATCH 38/54] fix: bugs --- ml/base.py | 11 +++++++---- ml/mil.py | 2 +- ml/modeling/__init__.py | 8 +++----- ml/modeling/classification_head.py | 4 +--- ml/modeling/linear_probe.py | 4 +--- ml/modeling/normalization.py | 6 ------ ml/ordered_regression.py | 3 ++- 7 files changed, 15 insertions(+), 23 deletions(-) diff --git a/ml/base.py b/ml/base.py index f9472264..845c566d 100644 --- a/ml/base.py +++ b/ml/base.py @@ -9,7 +9,7 @@ MeanAggregator, ) from torch import Tensor -from torch.nn import Module, ModuleDict +from torch.nn import Module, ModuleDict, Softmax from torch.optim.adam import Adam from torch.optim.optimizer import Optimizer from torchmetrics import MetricCollection @@ -32,6 +32,7 @@ def __init__(self, backbone: Module, lr: float) -> None: super().__init__() self.backbone = backbone self.lr = lr + self.activation = Softmax(dim=-1) N_CLASSES = 5 @@ -86,16 +87,18 @@ def validation_step(self, batch: TilesInput) -> None: loss = self.criterion(outputs, targets) self.log("validation/loss", loss, on_epoch=True, prog_bar=True) targets = targets.reshape(-1) - self.update_metrics(self.val_metrics, outputs, targets, metadata) + probabilities = self.activation(outputs) + self.update_metrics(self.val_metrics, probabilities, targets, metadata) self.log_metrics(self.val_metrics) def test_step(self, batch: TilesInput) -> Output: inputs, targets, metadata = batch outputs = self(inputs) targets = targets.reshape(-1) - self.update_metrics(self.test_metrics, outputs, targets, metadata) + probabilities = self.activation(outputs) + self.update_metrics(self.test_metrics, probabilities, targets, metadata) self.log_metrics(self.test_metrics) - return outputs + return probabilities def predict_step(self, batch: TilesPredictInput) -> Output: return self(batch[0]) diff --git a/ml/mil.py b/ml/mil.py index d93cc469..d34d4633 100644 --- a/ml/mil.py +++ b/ml/mil.py @@ -104,7 +104,7 @@ def validation_step(self, batch: BagsInput) -> None: self.val_metrics, on_epoch=True, on_step=False, batch_size=len(bags) ) - def test_step(self, batch: BagsInput) -> None: + def test_step(self, batch: BagsInput) -> Tensor: bags, labels, _ = batch outputs = self(bags) diff --git a/ml/modeling/__init__.py b/ml/modeling/__init__.py index 744b0f6a..a7425cc9 100644 --- a/ml/modeling/__init__.py +++ b/ml/modeling/__init__.py @@ -1,16 +1,14 @@ from ml.modeling.classification_head import ClassificationHead -from ml.modeling.normalization import ( - power_normalization, - sigmoid_normalization, -) +from ml.modeling.linear_probe import LinearProbe +from ml.modeling.normalization import sigmoid_normalization from ml.modeling.ordinal_regression_head import LogisticCumulativeLink from ml.modeling.regression_head import RegressionHead __all__ = [ "ClassificationHead", + "LinearProbe", "LogisticCumulativeLink", "RegressionHead", - "power_normalization", "sigmoid_normalization", ] diff --git a/ml/modeling/classification_head.py b/ml/modeling/classification_head.py index 65970007..31dd6356 100644 --- a/ml/modeling/classification_head.py +++ b/ml/modeling/classification_head.py @@ -10,6 +10,4 @@ def __init__(self) -> None: def forward(self, x: Tensor) -> Tensor: x = self.global_pool(x) # (B, C, 1, 1) x = x.flatten(start_dim=-3, end_dim=-1) # (B, C) - x = self.proj(x) - x = x.softmax(dim=-1) - return x + return self.proj(x) diff --git a/ml/modeling/linear_probe.py b/ml/modeling/linear_probe.py index f4907ca3..51c4041b 100644 --- a/ml/modeling/linear_probe.py +++ b/ml/modeling/linear_probe.py @@ -7,6 +7,4 @@ def __init__(self) -> None: self.proj = nn.Linear(1536, 5) def forward(self, x: Tensor) -> Tensor: - x = self.proj(x) - x = x.softmax(dim=-1) - return x + return self.proj(x) diff --git a/ml/modeling/normalization.py b/ml/modeling/normalization.py index 238ad110..424441dd 100644 --- a/ml/modeling/normalization.py +++ b/ml/modeling/normalization.py @@ -4,9 +4,3 @@ def sigmoid_normalization(x: Tensor) -> Tensor: return torch.softmax(x.sigmoid(), dim=1) - - -def power_normalization(x: Tensor, power: float) -> Tensor: - x -= x.min() - x = torch.pow(x, power) - return x / (x.max() + 1e-6) diff --git a/ml/ordered_regression.py b/ml/ordered_regression.py index 69325906..eb549958 100644 --- a/ml/ordered_regression.py +++ b/ml/ordered_regression.py @@ -1,5 +1,5 @@ from torch import Tensor -from torch.nn import Module +from torch.nn import Identity, Module from ml.base import BaseModule from ml.loss import CumulativeLinkLoss @@ -14,6 +14,7 @@ def __init__(self, backbone: Module, lr: float) -> None: self.decode_head = RegressionHead() self.cumulative_link = LogisticCumulativeLink(num_classes=self.N_CLASSES) self.criterion = CumulativeLinkLoss() + self.activation = Identity() self._build_metrics() def forward(self, x: Tensor) -> Output: From e5bf6d150cc47ac7767f5852af91ba8b60ba58b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 17:09:51 +0000 Subject: [PATCH 39/54] fix: ruff --- ml/__main__.py | 1 + postprocessing/ensembling.py | 8 +++++--- postprocessing/markov_chain_confidence.py | 8 +++++--- preprocessing/neutrophils.py | 3 ++- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/ml/__main__.py b/ml/__main__.py index ddf68ce5..504ce913 100644 --- a/ml/__main__.py +++ b/ml/__main__.py @@ -6,6 +6,7 @@ from omegaconf import DictConfig, OmegaConf from rationai.mlkit import Trainer, autolog + OmegaConf.register_new_resolver( "random_seed", lambda: randint(0, 2**31), use_cache=True ) diff --git a/postprocessing/ensembling.py b/postprocessing/ensembling.py index b808f5a1..e1bd9c51 100644 --- a/postprocessing/ensembling.py +++ b/postprocessing/ensembling.py @@ -2,7 +2,6 @@ from tempfile import TemporaryDirectory import hydra -import mlflow import numpy as np import pandas as pd from omegaconf import DictConfig @@ -16,7 +15,7 @@ recall_score, ) -from postprocessing.utils import load_predictions, load_label_map +from postprocessing.utils import load_label_map, load_predictions def macro_specificity(y_true: np.ndarray, y_pred: np.ndarray) -> float: @@ -91,7 +90,10 @@ def run_ensembling( @autolog def main(config: DictConfig, logger: MLFlowLogger) -> None: label_map = load_label_map(config.dataset.mlflow_uris.dataset) - uris = {task: config.predictions.mlflow_uris[task] for task in ["neutrophils", "nancy_low", "nancy_high"]} + uris = { + task: config.predictions.mlflow_uris[task] + for task in ["neutrophils", "nancy_low", "nancy_high"] + } data = load_predictions(uris, label_map) ens_metrics, hier_metrics, results = run_ensembling(data) diff --git a/postprocessing/markov_chain_confidence.py b/postprocessing/markov_chain_confidence.py index aab35034..fc9cac56 100644 --- a/postprocessing/markov_chain_confidence.py +++ b/postprocessing/markov_chain_confidence.py @@ -1,14 +1,13 @@ from enum import Enum import hydra -import mlflow import numpy as np import pandas as pd from omegaconf import DictConfig from rationai.mlkit import autolog, with_cli_args from rationai.mlkit.lightning.loggers import MLFlowLogger -from postprocessing.utils import load_predictions, load_label_map +from postprocessing.utils import load_label_map, load_predictions class Confidence(Enum): @@ -65,7 +64,10 @@ def compute_confidence(pi: np.ndarray, mode: Confidence) -> np.ndarray: def main(config: DictConfig, logger: MLFlowLogger) -> None: confidence_mode = Confidence(config.confidence) label_map = load_label_map(config.dataset.mlflow_uris.dataset) - uris = {task: config.predictions.mlflow_uris[task] for task in ["neutrophils", "nancy_low", "nancy_high"]} + uris = { + task: config.predictions.mlflow_uris[task] + for task in ["neutrophils", "nancy_low", "nancy_high"] + } data = load_predictions(uris, label_map) pi = absorption_distribution( diff --git a/preprocessing/neutrophils.py b/preprocessing/neutrophils.py index 058d9717..a33e0c37 100644 --- a/preprocessing/neutrophils.py +++ b/preprocessing/neutrophils.py @@ -5,13 +5,14 @@ import hydra import pandas as pd import torch -from ml.data.datasets import TilesPredict from omegaconf import DictConfig from rationai.mlkit import autolog, with_cli_args from rationai.mlkit.lightning.loggers import MLFlowLogger from torch.utils.data import DataLoader from tqdm import tqdm +from ml.data.datasets import TilesPredict + class NeutrophilDetector(torch.nn.Module): def __init__(self, confidence: float, weights_url: str) -> None: From 3548ffccc934fa324186bff58b9079adbc1da947 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 19:26:45 +0000 Subject: [PATCH 40/54] chore: ruff --- .ruff.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ruff.toml b/.ruff.toml index fb5e992b..56aac6ef 100644 --- a/.ruff.toml +++ b/.ruff.toml @@ -36,7 +36,7 @@ extend-ignore = [ "D106", # missing docstring in public nested class "D107", # missing docstring in __init__ "N812", # lowercase imported as non lowercase - "TCH002", # move third-party into a type-checking block + "TC002", # move third-party into a type-checking block "F722", # jaxtyping ] From c993466d504de4b286d5c1ea963e36fabeea1b13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 19:28:34 +0000 Subject: [PATCH 41/54] fix: ruff --- ml/data/datasets/embeddings.py | 4 +++- ml/data/datasets/tiles.py | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ml/data/datasets/embeddings.py b/ml/data/datasets/embeddings.py index 4c47aa2c..87a42601 100644 --- a/ml/data/datasets/embeddings.py +++ b/ml/data/datasets/embeddings.py @@ -74,7 +74,9 @@ def __init__( super().__init__(uris=(uris,) if isinstance(uris, str) else uris) def generate_datasets(self) -> Iterable[_Embeddings[EmbeddingsSample]]: - self.slides = process_slides(self.slides, self.mode, val_fold=self.val_fold, is_val=self.is_val) + self.slides = process_slides( + self.slides, self.mode, val_fold=self.val_fold, is_val=self.is_val + ) return ( _Embeddings( slide_metadata=dict(slide), diff --git a/ml/data/datasets/tiles.py b/ml/data/datasets/tiles.py index 9e3b9840..1153e203 100644 --- a/ml/data/datasets/tiles.py +++ b/ml/data/datasets/tiles.py @@ -95,7 +95,9 @@ def __init__( super().__init__(uris=(uris,) if isinstance(uris, str) else uris) def generate_datasets(self) -> Iterable[_Tiles[TilesSample]]: - self.slides = process_slides(self.slides, self.mode, val_fold=self.val_fold, is_val=self.is_val) + self.slides = process_slides( + self.slides, self.mode, val_fold=self.val_fold, is_val=self.is_val + ) return ( _Tiles( slide_metadata=dict(slide), From d395ca1fd57be175303f8140142e943b0f4128ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 20:42:07 +0000 Subject: [PATCH 42/54] chore: mypy --- ml/base.py | 13 ++++--- ml/callbacks/mlflow_prediction_callback.py | 17 +++++---- ml/data/data_module.py | 41 ++++++++++++++-------- ml/data/datasets/bags.py | 2 +- ml/data/datasets/embeddings.py | 2 +- ml/data/datasets/labels.py | 3 +- ml/data/datasets/tiles.py | 6 ++-- ml/mil.py | 10 +++--- ml/neutrophils.py | 18 +++++----- ml/typing.py | 9 +++++ preprocessing/neutrophils.py | 2 +- 11 files changed, 77 insertions(+), 46 deletions(-) diff --git a/ml/base.py b/ml/base.py index 845c566d..044b97cc 100644 --- a/ml/base.py +++ b/ml/base.py @@ -1,6 +1,6 @@ from abc import abstractmethod from collections.abc import Mapping -from typing import cast +from typing import Any, cast from lightning import LightningModule from rationai.mlkit.metrics import ( @@ -12,7 +12,7 @@ from torch.nn import Module, ModuleDict, Softmax from torch.optim.adam import Adam from torch.optim.optimizer import Optimizer -from torchmetrics import MetricCollection +from torchmetrics import Metric, MetricCollection from torchmetrics.classification import ( MulticlassAccuracy, MulticlassAUROC, @@ -32,7 +32,7 @@ def __init__(self, backbone: Module, lr: float) -> None: super().__init__() self.backbone = backbone self.lr = lr - self.activation = Softmax(dim=-1) + self.activation: Module = Softmax(dim=-1) N_CLASSES = 5 @@ -48,7 +48,10 @@ def _build_metrics(self) -> None: "kappa": MulticlassCohenKappa(num_classes=self.N_CLASSES), } val_metrics: dict[str, MetricCollection] = { - "tiles_all": MetricCollection(metrics, prefix="validation/tiles/"), + "tiles_all": MetricCollection( + cast("dict[str, Metric | MetricCollection]", metrics), + prefix="validation/tiles/", + ), "slide_max": AggregatedMetricCollection( metrics, aggregator=MaxAggregator(), @@ -106,7 +109,7 @@ def predict_step(self, batch: TilesPredictInput) -> Output: def configure_optimizers(self) -> Optimizer: return Adam(self.parameters(), lr=self.lr) - def log_dict(self, dictionary: MetricCollection, *args, **kwargs) -> None: + def log_dict(self, dictionary: MetricCollection, *args: Any, **kwargs: Any) -> None: # type: ignore[override] for name, metric in dictionary.items(): result = cast("Tensor", metric.compute()) if result.shape: diff --git a/ml/callbacks/mlflow_prediction_callback.py b/ml/callbacks/mlflow_prediction_callback.py index eaf80a66..a47e70c2 100644 --- a/ml/callbacks/mlflow_prediction_callback.py +++ b/ml/callbacks/mlflow_prediction_callback.py @@ -1,10 +1,13 @@ +from typing import cast + from lightning import Callback, LightningModule, Trainer +from lightning.pytorch.utilities.types import STEP_OUTPUT from rationai.mlkit.lightning.loggers.mlflow import MLFlowLogger -from ml.typing import Output +from ml.typing import Input, MetadataBags, MetadataBatch, Output -def _slide_names(metadata) -> list[str]: +def _slide_names(metadata: list[MetadataBags] | MetadataBatch) -> list[str]: if isinstance(metadata, dict): return metadata["slide_name"] return [m["slide_name"] for m in metadata] @@ -15,7 +18,7 @@ def _on_batch_end( self, trainer: Trainer, outputs: Output, - batch: tuple, + batch: Input, ) -> None: assert isinstance(trainer.logger, MLFlowLogger) trainer.logger.log_table( @@ -31,7 +34,7 @@ def on_predict_batch_end( trainer: Trainer, pl_module: LightningModule, outputs: Output, - batch: tuple, + batch: Input, batch_idx: int, dataloader_idx: int = 0, ) -> None: @@ -42,9 +45,9 @@ def on_test_batch_end( self, trainer: Trainer, pl_module: LightningModule, - outputs: Output, - batch: tuple, + outputs: STEP_OUTPUT, + batch: Input, batch_idx: int, dataloader_idx: int = 0, ) -> None: - self._on_batch_end(trainer, outputs, batch) + self._on_batch_end(trainer, cast("Output", outputs), batch) diff --git a/ml/data/data_module.py b/ml/data/data_module.py index 481432ad..4e47d1dd 100644 --- a/ml/data/data_module.py +++ b/ml/data/data_module.py @@ -1,14 +1,25 @@ -from collections.abc import Callable, Iterable +from typing import Any import torch from hydra.utils import instantiate from lightning import LightningDataModule from omegaconf import DictConfig -from torch import Tensor from torch.utils.data import DataLoader +from torch.utils.data.dataloader import _collate_fn_t from ml.data.samplers import AutoWeightedRandomSampler -from ml.typing import Metadata +from ml.typing import ( + BagsInput, + BagsPredictInput, + EmbeddingsInput, + EmbeddingsPredictInput, + Input, + PredictInput, + PredictSample, + Sample, + TilesInput, + TilesPredictInput, +) class DataModule(LightningDataModule): @@ -17,8 +28,8 @@ def __init__( batch_size: int, num_workers: int = 0, weighted_sampling: bool = True, - collate_fn: Callable | None = None, - collate_fn_predict: Callable | None = None, + collate_fn: _collate_fn_t[Sample] | None = None, + collate_fn_predict: _collate_fn_t[PredictSample] | None = None, **datasets: DictConfig, ) -> None: super().__init__() @@ -41,7 +52,7 @@ def setup(self, stage: str) -> None: case "predict": self.predict = instantiate(self.datasets["predict"]) - def train_dataloader(self) -> Iterable: + def train_dataloader(self) -> DataLoader[TilesInput | EmbeddingsInput | BagsInput]: sampler = ( AutoWeightedRandomSampler(self.train) if self.weighted_sampling else None ) @@ -56,7 +67,7 @@ def train_dataloader(self) -> Iterable: persistent_workers=self.num_workers > 0, ) - def val_dataloader(self) -> Iterable: + def val_dataloader(self) -> DataLoader[TilesInput | EmbeddingsInput | BagsInput]: return DataLoader( self.val, batch_size=self.batch_size, @@ -65,7 +76,7 @@ def val_dataloader(self) -> Iterable: persistent_workers=self.num_workers > 0, ) - def test_dataloader(self) -> Iterable: + def test_dataloader(self) -> DataLoader[TilesInput | EmbeddingsInput | BagsInput]: return DataLoader( self.test, batch_size=self.batch_size, @@ -73,7 +84,9 @@ def test_dataloader(self) -> Iterable: collate_fn=self.collate_fn, ) - def predict_dataloader(self) -> Iterable: + def predict_dataloader( + self, + ) -> DataLoader[TilesPredictInput | EmbeddingsPredictInput | BagsPredictInput]: return DataLoader( self.predict, batch_size=self.batch_size, @@ -83,7 +96,7 @@ def predict_dataloader(self) -> Iterable: class BagsDataModule(DataModule): - def __init__(self, **kwargs) -> None: + def __init__(self, **kwargs: Any) -> None: super().__init__( collate_fn=collate_fn, collate_fn_predict=collate_fn_predict, @@ -92,14 +105,14 @@ def __init__(self, **kwargs) -> None: def collate_fn( - batch: list[tuple[Tensor, Tensor, Metadata]], -) -> tuple[Tensor, Tensor, list[Metadata]]: + batch: list[Sample], +) -> Input: inputs, labels, metadatas = zip(*batch, strict=True) return torch.stack(list(inputs)), torch.stack(list(labels)), list(metadatas) def collate_fn_predict( - batch: list[tuple[Tensor, Metadata]], -) -> tuple[Tensor, list[Metadata]]: + batch: list[PredictSample], +) -> PredictInput: inputs, metadatas = zip(*batch, strict=True) return torch.stack(list(inputs)), list(metadatas) diff --git a/ml/data/datasets/bags.py b/ml/data/datasets/bags.py index 6b19646c..5e9ea75f 100644 --- a/ml/data/datasets/bags.py +++ b/ml/data/datasets/bags.py @@ -48,7 +48,7 @@ def __init__( def __len__(self) -> int: return len(self.slides) - def __getitem__(self, idx: int) -> BagsSample | BagsPredictSample: + def __getitem__(self, idx: int) -> T: slide_metadata = self.slides[idx] tiles = self._meta.filter_tiles_by_slide(slide_metadata["id"]) slide_name = str(slide_metadata["name"]) diff --git a/ml/data/datasets/embeddings.py b/ml/data/datasets/embeddings.py index 87a42601..4e8178ac 100644 --- a/ml/data/datasets/embeddings.py +++ b/ml/data/datasets/embeddings.py @@ -33,7 +33,7 @@ def __init__( def __len__(self) -> int: return len(self.tiles) - def __getitem__(self, idx: int) -> EmbeddingsSample | EmbeddingsPredictSample: + def __getitem__(self, idx: int) -> T: tile = self.tiles[idx] metadata = MetadataEmbeddings( slide_name=self.slide_metadata["name"], diff --git a/ml/data/datasets/labels.py b/ml/data/datasets/labels.py index 82aa67f9..faa7894b 100644 --- a/ml/data/datasets/labels.py +++ b/ml/data/datasets/labels.py @@ -1,5 +1,6 @@ from enum import Enum from pathlib import Path +from typing import Any import torch from datasets import Dataset as HFDataset @@ -41,7 +42,7 @@ def process_slides( return slides -def get_label(slide_metadata: dict, mode: LabelMode) -> torch.Tensor: +def get_label(slide_metadata: dict[str, Any], mode: LabelMode) -> torch.Tensor: match mode: case LabelMode.NEUTROPHILS: return torch.tensor(slide_metadata["neutrophils"]).float() diff --git a/ml/data/datasets/tiles.py b/ml/data/datasets/tiles.py index 1153e203..5463ae6a 100644 --- a/ml/data/datasets/tiles.py +++ b/ml/data/datasets/tiles.py @@ -1,5 +1,5 @@ from collections.abc import Iterable -from typing import Generic, TypeVar +from typing import Any, Generic, TypeVar from albumentations.core.composition import TransformType from albumentations.pytorch import ToTensorV2 @@ -18,7 +18,7 @@ class _Tiles(Dataset[T], Generic[T]): def __init__( self, - slide_metadata: dict, + slide_metadata: dict[str, Any], tiles: HFDataset, mode: LabelMode | str | None, include_labels: bool = True, @@ -45,7 +45,7 @@ def __init__( def __len__(self) -> int: return len(self.slide_tiles) - def __getitem__(self, idx: int) -> TilesSample | TilesPredictSample: + def __getitem__(self, idx: int) -> T: image = self.slide_tiles[idx] metadata = MetadataTiles( slide_name=self.slide_tiles.slide_path.stem, diff --git a/ml/mil.py b/ml/mil.py index d34d4633..7cf92b8a 100644 --- a/ml/mil.py +++ b/ml/mil.py @@ -1,5 +1,5 @@ from copy import deepcopy -from typing import cast +from typing import Any, Literal, cast import torch from lightning import LightningModule @@ -48,7 +48,9 @@ def __init__( self.activation = nn.Sigmoid() if num_classes == 1 else nn.Softmax(dim=-1) self.lr = lr - task = "binary" if num_classes == 1 else "multiclass" + task: Literal["binary", "multiclass"] = ( + "binary" if num_classes == 1 else "multiclass" + ) metrics: dict[str, Metric | MetricCollection] = { "AUC": AUROC(task=task, num_classes=num_classes, average="none"), "accuracy": Accuracy(task=task, num_classes=num_classes), @@ -125,8 +127,8 @@ def configure_optimizers(self) -> Optimizer: raise ValueError("Learning rate must be set for training.") return Adam(self.parameters(), lr=self.lr) - def log_dict(self, metrics: MetricCollection, *args, **kwargs) -> None: - for name, result in metrics.compute().items(): + def log_dict(self, dictionary: MetricCollection, *args: Any, **kwargs: Any) -> None: # type: ignore[override] + for name, result in dictionary.compute().items(): result = cast("Tensor", result) if result.shape: for i, value in enumerate(result): diff --git a/ml/neutrophils.py b/ml/neutrophils.py index d7589aa4..5a3dbe68 100644 --- a/ml/neutrophils.py +++ b/ml/neutrophils.py @@ -1,5 +1,6 @@ from functools import partial from pathlib import Path +from typing import cast import hydra import mlflow.artifacts @@ -23,7 +24,8 @@ def add_path(path: str, folder: Path, suffix: str) -> Path: def download_data(datasets: ListConfig) -> tuple[pd.DataFrame, pd.DataFrame]: - train_dfs, test_dfs = [], [] + train_dfs: list[pd.DataFrame] = [] + test_dfs: list[pd.DataFrame] = [] for dataset in datasets: uris = dataset.mlflow_uris neutrophils = Path(mlflow.artifacts.download_artifacts(uris.neutrophils)) @@ -43,11 +45,9 @@ def download_data(datasets: ListConfig) -> tuple[pd.DataFrame, pd.DataFrame]: ) .set_index("id") .assign( - tissue_mask=lambda df, f=add_tissue_mask: df["path"].apply(f) # type: ignore[reportCallIssues] - ) - .assign( - neutrophils=lambda df, f=add_neutrophils: df["path"].apply(f) # type: ignore[reportCallIssues] + tissue_mask=lambda df, f=add_tissue_mask: df["path"].map(f), ) + .assign(neutrophils=lambda df, f=add_neutrophils: df["path"].map(f)) ) return pd.concat(train_dfs), pd.concat(test_dfs) @@ -55,10 +55,10 @@ def download_data(datasets: ListConfig) -> tuple[pd.DataFrame, pd.DataFrame]: def get_tissue_size(tissue_mask_path: Path) -> float: """Calculate tissue size in mm^2.""" - image = pyvips.Image.new_from_file(tissue_mask_path) - mpp_x = 1000 / image.get("Xres") # type: ignore[pyvips] - mpp_y = 1000 / image.get("Yres") # type: ignore[pyvips] - return image.avg() * image.width * image.height / 255 * mpp_x * mpp_y * 1e-6 # type: ignore[pyvips] + image = cast("pyvips.Image", pyvips.Image.new_from_file(tissue_mask_path)) + mpp_x = 1000 / image.get("Xres") # pyright: ignore[reportOperatorIssue] + mpp_y = 1000 / image.get("Yres") # pyright: ignore[reportOperatorIssue] + return image.avg() * image.width * image.height / 255 * mpp_x * mpp_y * 1e-6 # pyright: ignore[reportOperatorIssue, reportCallIssue, reportOptionalCall] def create_dataset(df: pd.DataFrame) -> tuple[np.ndarray, np.ndarray]: diff --git a/ml/typing.py b/ml/typing.py index edd3b020..10af5664 100644 --- a/ml/typing.py +++ b/ml/typing.py @@ -9,6 +9,13 @@ class Metadata(TypedDict): slide_name: str +Sample: TypeAlias = tuple[Tensor, Tensor, Metadata] +PredictSample: TypeAlias = tuple[Tensor, Metadata] + +# Input: TypeAlias = tuple[Tensor, Tensor, list[Metadata]] +# PredictInput: TypeAlias = tuple[Tensor, list[Metadata]] + + class MetadataBatch(TypedDict): slide_name: list[str] @@ -55,4 +62,6 @@ class MetadataBags(Metadata): BagsInput: TypeAlias = tuple[Tensor, Tensor, list[MetadataBags]] BagsPredictInput: TypeAlias = tuple[Tensor, list[MetadataBags]] +Input: TypeAlias = BagsInput | TilesInput | EmbeddingsInput +PredictInput: TypeAlias = BagsPredictInput | TilesPredictInput | EmbeddingsPredictInput Output: TypeAlias = Tensor diff --git a/preprocessing/neutrophils.py b/preprocessing/neutrophils.py index a33e0c37..c7d07b06 100644 --- a/preprocessing/neutrophils.py +++ b/preprocessing/neutrophils.py @@ -23,7 +23,7 @@ def __init__(self, confidence: float, weights_url: str) -> None: "torch.nn.Module", torch.hub.load("ultralytics/yolov5", "custom", path=temp_file.name), ) - self.model.conf = confidence + self.model.conf = torch.tensor(confidence) def forward(self, x: torch.Tensor) -> torch.Tensor: return self.model(x) From fa0d5e78ea6f44cf633ef7978556ef746742b15e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 20:55:10 +0000 Subject: [PATCH 43/54] chore: mypy --- ml/data/datasets/bags.py | 6 +++--- ml/data/datasets/embeddings.py | 10 +++++----- ml/data/datasets/tiles.py | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/ml/data/datasets/bags.py b/ml/data/datasets/bags.py index 5e9ea75f..61916965 100644 --- a/ml/data/datasets/bags.py +++ b/ml/data/datasets/bags.py @@ -1,7 +1,7 @@ from collections import Counter from collections.abc import Iterable from pathlib import Path -from typing import Generic, TypeVar +from typing import Generic, TypeVar, cast import torch import torch.nn.functional as F @@ -70,12 +70,12 @@ def __getitem__(self, idx: int) -> T: ) if not self.include_labels: - return embeddings, metadata + return cast("T", (embeddings, metadata)) assert self.mode is not None label = get_label(slide_metadata, self.mode) - return embeddings, label, metadata + return cast("T", (embeddings, label, metadata)) class Bags(_Bags[BagsSample]): diff --git a/ml/data/datasets/embeddings.py b/ml/data/datasets/embeddings.py index 4e8178ac..517a0c32 100644 --- a/ml/data/datasets/embeddings.py +++ b/ml/data/datasets/embeddings.py @@ -1,5 +1,5 @@ from collections.abc import Iterable -from typing import Generic, TypeVar +from typing import Any, Generic, TypeVar, cast import torch from datasets import Dataset as HFDataset @@ -17,7 +17,7 @@ class _Embeddings(Generic[T], Dataset[T]): def __init__( self, - slide_metadata: dict, + slide_metadata: dict[str, Any], tiles: HFDataset, mode: LabelMode | str | None, include_labels: bool = True, @@ -43,11 +43,11 @@ def __getitem__(self, idx: int) -> T: embedding = torch.tensor(tile["embedding"]) if not self.include_labels: - return embedding, metadata + return cast("T", (embedding, metadata)) assert self.mode is not None, "Mode must be specified for labels." label = get_label(tile, self.mode) - return embedding, label, metadata + return cast("T", (embedding, label, metadata)) class Embeddings(MetaTiledSlides[EmbeddingsSample]): @@ -55,7 +55,7 @@ class Embeddings(MetaTiledSlides[EmbeddingsSample]): def labels(self) -> list[int]: return [ int(get_label(ds.slide_metadata, self.mode).item()) - for ds in self.datasets + for ds in cast("list[_Embeddings[EmbeddingsSample]]", self.datasets) for _ in range(len(ds)) ] diff --git a/ml/data/datasets/tiles.py b/ml/data/datasets/tiles.py index 5463ae6a..26b67fd2 100644 --- a/ml/data/datasets/tiles.py +++ b/ml/data/datasets/tiles.py @@ -1,5 +1,5 @@ from collections.abc import Iterable -from typing import Any, Generic, TypeVar +from typing import Any, Generic, TypeVar, cast from albumentations.core.composition import TransformType from albumentations.pytorch import ToTensorV2 @@ -60,11 +60,11 @@ def __getitem__(self, idx: int) -> T: image = self.to_tensor(image=image)["image"] if not self.include_labels: - return image, metadata + return cast("T", (image, metadata)) assert self.mode is not None, "Mode must be specified for labels." label = get_label(self.slide_metadata, self.mode) - return image, label, metadata + return cast("T", (image, label, metadata)) class Tiles(MetaTiledSlides[TilesSample]): @@ -72,7 +72,7 @@ class Tiles(MetaTiledSlides[TilesSample]): def labels(self) -> list[int]: return [ int(get_label(ds.slide_metadata, self.mode).item()) - for ds in self.datasets + for ds in cast("list[_Tiles[TilesSample]]", self.datasets) for _ in range(len(ds)) ] From a3165e5a85938136af1763570b80d8f525d128e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 23:21:07 +0200 Subject: [PATCH 44/54] feat: readme --- README.md | 138 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 137 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5001a559..ecce0a4a 100644 --- a/README.md +++ b/README.md @@ -1 +1,137 @@ -# Machine Learning Template +# Automated Grading of Ulcerative Colitis from H&E Whole Slide Images + +This repository contains the machine learning pipeline developed for automated histological grading of ulcerative colitis (UC) biopsies using the Nancy Histological Index (NHI). The approach frames NHI grading as a hierarchical classification problem: a binary neutrophil-detection task routes each whole-slide image through either a low-grade (NHI 0–2) or a high-grade (NHI 2–4) classifier. All models are based on pretrained pathology foundation models and use attention-based multiple instance learning (MIL) over tile embeddings, making them applicable to gigapixel slides without requiring tile-level annotations. Experiments evaluate multiple foundation models (prov-gigapath, UNI, UNI2, Virchow, Virchow2), MIL against tile-level approaches, ordered regression, and ensembling/confidence strategies over a multi-institution cohort (IKEM, FTN, KNL). + +> **Note: This code is not runnable as-is.** The underlying H&E whole-slide image data and derived embeddings are sensitive patient data from clinical institutions and are not included in this repository. The code is provided for reference and reproducibility of the methodology only. + +--- + +## Repository Structure + +``` +. +├── configs/ # Hydra configuration tree +│ ├── dataset/ # Dataset split URIs (embeddings, slides, tiles) +│ ├── checkpoints/ # Checkpoint paths for test/inference runs +│ ├── predictions/ # MLflow prediction artifact URIs (per institution/fold) +│ └── experiment/ +│ ├── ml/ # ML training & test experiment configs (Exp I–VI + final) +│ └── postprocessing/ # Postprocessing experiment configs (Exp VII–VIII + final) +├── ml/ # PyTorch Lightning modules & entry point +│ ├── __main__.py # Entry point: `python -m ml` +│ ├── base.py # BaseModule (tile-level training loop) +│ ├── classification.py # Tile-level softmax classification +│ ├── ordered_regression.py # Cumulative link ordered regression +│ ├── mil.py # Attention MIL (bag-level) +│ ├── neutrophils.py # Binary neutrophil detection (tile-level) +│ └── modeling/ # Building blocks (heads, normalization) +├── preprocessing/ # Data preparation pipeline +│ ├── tiling.py # Tile extraction from WSIs +│ ├── tissue_masks.py # Tissue segmentation +│ ├── quality_control.py # Tile quality filtering +│ ├── embeddings.py # Foundation model feature extraction +│ ├── neutrophils.py # Neutrophil pseudo-label extraction +│ ├── create_dataset.py # Assemble HuggingFace dataset +│ └── split_dataset.py # Train/val/test split assignment +├── postprocessing/ # Slide-level aggregation & confidence +│ ├── ensembling.py # Soft majority vote + hierarchical ensembling +│ └── markov_chain_confidence.py # Markov chain absorption confidence scores +├── scripts/ # Kubernetes job submission scripts +│ ├── ml/ # train.py, test.py, neutrophils.py +│ ├── preprocessing/ # Preprocessing job scripts +│ └── postprocessing/ # Postprocessing job scripts +├── pyproject.toml +└── thesis.pdf # Thesis manuscript +``` + +--- + +## Setup + +Requires Python 3.12 and [`uv`](https://github.com/astral-sh/uv). + +```bash +uv sync --frozen +``` + +--- + +## Pipeline Overview + +The full pipeline runs in four stages: + +### 1. Preprocessing + +Tiles are extracted from WSIs, tissue-masked, quality-filtered, and encoded by a foundation model into fixed-dimensional embeddings. Datasets are assembled as HuggingFace Datasets and registered in MLflow. + +```bash +# Tissue segmentation masks +uv run --active -m preprocessing.tissue_masks +dataset=processed/... + +# Tile extraction from WSIs +uv run --active -m preprocessing.tiling +dataset=processed_w_masks/... +experiment=preprocessing/tiling/... + +# Tile quality filtering +uv run -m preprocessing.quality_control +dataset=processed/... + +# Foundation model feature extraction +uv run --active -m preprocessing.embeddings +dataset=tiled/... + +# Assemble HuggingFace dataset +uv run -m preprocessing.create_dataset +dataset=raw/... + +# Train/val/test split assignment +uv run -m preprocessing.split_dataset +experiment=preprocessing/split_dataset/... +``` + +### 2. ML Training + +Models are trained via Hydra experiment configs. The entry point is `python -m ml` and an experiment config must be selected: + +```bash +# Example: train Experiment IV (MIL) fold 1 +uv run -m ml +experiment=ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_1 + +# Example: train final model (all institutions combined) +uv run -m ml +experiment=ml/final/nancy_high/train +``` + +### 3. ML Testing / Inference + +```bash +# Example: test Experiment IV fold 1 +uv run -m ml +experiment=ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_1 + +# Neutrophil detection (produces binary slide-level predictions) +uv run -m ml.neutrophils +experiment=ml/experiment_vi_neutrophil_detection/run +``` + +### 4. Postprocessing + +Slide-level predictions from the three hierarchical tasks are combined into final NHI grades and confidence scores: + +```bash +# Ensembling (soft majority vote + hierarchical routing) +uv run -m postprocessing.ensembling +postprocessing=ensembling + +# Markov chain absorption confidence +uv run -m postprocessing.markov_chain_confidence +postprocessing=markov_chain_confidence +``` + +--- + +## Experiments + +| # | Name | Config path | Description | +|---|------|-------------|-------------| +| I | Baseline Classification | `experiment/ml/experiment_i_baseline_classification` | VGG16 tile-level classifier trained on raw pixel tiles | +| II | Ordered Regression | `experiment/ml/experiment_ii_ordered_regression` | Cumulative link loss for NHI ordinal structure | +| III | Pathology Foundation Models | `experiment/ml/experiment_iii_pathology_foundation_model` | Linear probe on frozen prov-gigapath embeddings | +| IV | MIL & Hierarchical Modeling | `experiment/ml/experiment_iv_mil_and_hierarchical_modeling` | Attention MIL; three-task hierarchical decomposition | +| V | More Foundation Models | `experiment/ml/experiment_v_more_foundation_models` | MIL sweep over all foundation models | +| VI | Neutrophil Detection | `experiment/ml/experiment_vi_neutrophil_detection` | Binary tile-level neutrophil classifier | +| VII | Ensembling | `experiment/postprocessing/experiment_vii_ensembling` | Soft majority vote vs. hierarchical routing | +| VIII | Markov Chain Confidence | `experiment/postprocessing/experiment_viii_markov_chain_model_aggregation` | Absorption distribution confidence (entropy / herfindahl / std) | +| — | Final Model | `experiment/ml/final` | Attention MIL (virchow2) trained on all three institutions | + +All cross-validation experiments run 5 folds over the IKEM institution. Final evaluation uses the held-out test split across IKEM, FTN, and KNL. From 7aad84f9fbc3afec7499f0547178d9ef7a0e65d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 23:25:35 +0200 Subject: [PATCH 45/54] feat: qc thresholds --- configs/ml/data/bags.yaml | 9 +++++++++ configs/ml/data/embeddings.yaml | 9 +++++++++ configs/ml/data/tiles.yaml | 9 +++++++++ 3 files changed, 27 insertions(+) diff --git a/configs/ml/data/bags.yaml b/configs/ml/data/bags.yaml index c8798205..6e53f425 100644 --- a/configs/ml/data/bags.yaml +++ b/configs/ml/data/bags.yaml @@ -8,13 +8,22 @@ train: mode: ??? val_fold: ${val_fold} is_val: false + thresholds: + blur_mean: 0.25 + artifacts_mean: 0.25 val: _target_: ml.data.datasets.Bags uris: ??? mode: ??? val_fold: ${val_fold} is_val: true + thresholds: + blur_mean: 0.25 + artifacts_mean: 0.25 test: _target_: ml.data.datasets.Bags uris: ??? mode: ??? + thresholds: + blur_mean: 0.25 + artifacts_mean: 0.25 diff --git a/configs/ml/data/embeddings.yaml b/configs/ml/data/embeddings.yaml index 3f50facd..1f0551eb 100644 --- a/configs/ml/data/embeddings.yaml +++ b/configs/ml/data/embeddings.yaml @@ -8,13 +8,22 @@ train: mode: ??? val_fold: ${val_fold} is_val: false + thresholds: + blur_mean: 0.25 + artifacts_mean: 0.25 val: _target_: ml.data.datasets.Embeddings uris: ??? mode: ??? val_fold: ${val_fold} is_val: true + thresholds: + blur_mean: 0.25 + artifacts_mean: 0.25 test: _target_: ml.data.datasets.Embeddings uris: ??? mode: ??? + thresholds: + blur_mean: 0.25 + artifacts_mean: 0.25 diff --git a/configs/ml/data/tiles.yaml b/configs/ml/data/tiles.yaml index 16fa0be4..1beea854 100644 --- a/configs/ml/data/tiles.yaml +++ b/configs/ml/data/tiles.yaml @@ -8,13 +8,22 @@ train: mode: ??? val_fold: ${val_fold} is_val: false + thresholds: + blur_mean: 0.25 + artifacts_mean: 0.25 val: _target_: ml.data.datasets.Tiles uris: ??? mode: ??? val_fold: ${val_fold} is_val: true + thresholds: + blur_mean: 0.25 + artifacts_mean: 0.25 test: _target_: ml.data.datasets.Tiles uris: ??? mode: ??? + thresholds: + blur_mean: 0.25 + artifacts_mean: 0.25 From e114530ca3fb096549b2ab3131842084314bae28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Sat, 29 Aug 2026 17:54:28 +0200 Subject: [PATCH 46/54] Experiment/ikem validation (#14) * feat: add ikem validation configuration * fix: update institution name in ikem validation configuration * feat: add drop_missing parameter to create_dataset function * fix: correct typo in dataset configuration parameter * fix: update condition for institution check in create_dataset function * feat: add ikem validation configuration file * feat: add ikem validation configuration and update storage parameters in quality control script * feat: implement filtering of dataset by QC errors using qc_errors_uri * fix: improve line handling in filter_dataset_by_qc_errors function * fix: update qc_main to handle qc_errors.log more efficiently * feat: enhance QC handling in tiling process with NaN filling and mask availability checks * fix: update qc_mask URI in ikem validation configuration * feat: add ikem validation configuration for dataset processing --- .../dataset/processed/ikem_validation.yaml | 6 ++ .../processed_w_masks/ikem_validation.yaml | 9 +++ configs/dataset/raw/ikem_validation.yaml | 15 ++++ configs/dataset/tiled/ikem_validation.yaml | 7 ++ configs/preprocessing/quality_control.yaml | 6 ++ preprocessing/create_dataset.py | 14 +++- preprocessing/quality_control.py | 47 +++++++++-- preprocessing/tiling.py | 77 ++++++++++++++++++- scripts/preprocessing/quality_control.py | 2 +- 9 files changed, 169 insertions(+), 14 deletions(-) create mode 100644 configs/dataset/processed/ikem_validation.yaml create mode 100644 configs/dataset/processed_w_masks/ikem_validation.yaml create mode 100644 configs/dataset/raw/ikem_validation.yaml create mode 100644 configs/dataset/tiled/ikem_validation.yaml diff --git a/configs/dataset/processed/ikem_validation.yaml b/configs/dataset/processed/ikem_validation.yaml new file mode 100644 index 00000000..1193d5db --- /dev/null +++ b/configs/dataset/processed/ikem_validation.yaml @@ -0,0 +1,6 @@ +defaults: + - /dataset/raw/ikem_validation@_here_ + - _self_ + +mlflow_uris: + dataset: mlflow-artifacts:/86/f91742d3b2d749deb7337ee8554fe8f0/artifacts/dataset.csv diff --git a/configs/dataset/processed_w_masks/ikem_validation.yaml b/configs/dataset/processed_w_masks/ikem_validation.yaml new file mode 100644 index 00000000..7bcbdc09 --- /dev/null +++ b/configs/dataset/processed_w_masks/ikem_validation.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/processed/ikem_validation@_here_ + - _self_ + +mlflow_uris: + tissue_mask: mlflow-artifacts:/86/bad4715238634f929f3787b4e757a683/artifacts/tissue_masks + qc_mask: mlflow-artifacts:/86/c54cdb4537fc4072a907899788133d0b/artifacts + splits: + predict: mlflow-artifacts:/86/f91742d3b2d749deb7337ee8554fe8f0/artifacts/dataset.csv \ No newline at end of file diff --git a/configs/dataset/raw/ikem_validation.yaml b/configs/dataset/raw/ikem_validation.yaml new file mode 100644 index 00000000..20565121 --- /dev/null +++ b/configs/dataset/raw/ikem_validation.yaml @@ -0,0 +1,15 @@ +institution: ikem_validation +folder: /mnt/data/IKEM/colon/IBD_AI/validation +# [0-9]{2,4} - case ID (2 to 4 digits) (in year scope) +# _ - underscore separator +# 23 - year (2023) +# _ - underscore separator +# HE - stain type +# _ - underscore separator +# [0AB] - slide block (A, B, or 0) +# .czi - file extension +regex_pattern: ^[0-9]{2,4}_23_HE_[0AB]\.czi$ +labels: + - NANAI_validace.xlsx + +drop_missing: false \ No newline at end of file diff --git a/configs/dataset/tiled/ikem_validation.yaml b/configs/dataset/tiled/ikem_validation.yaml new file mode 100644 index 00000000..22cee58b --- /dev/null +++ b/configs/dataset/tiled/ikem_validation.yaml @@ -0,0 +1,7 @@ +defaults: + - /dataset/processed_w_masks/ikem_validation@_here_ + - _self_ + +mlflow_uris: + tiling: + predict: mlflow-artifacts:/86/ef20b95b9e9348de9e4ca81597b3447a/artifacts/predict - ikem_validation \ No newline at end of file diff --git a/configs/preprocessing/quality_control.yaml b/configs/preprocessing/quality_control.yaml index ffd08cea..493b9a1c 100644 --- a/configs/preprocessing/quality_control.yaml +++ b/configs/preprocessing/quality_control.yaml @@ -2,6 +2,12 @@ output_dir: ${project_dir}/quality_control/${dataset.institution} +# Optional MLflow artifact URI to a previous run's qc_errors.log, e.g. +# mlflow-artifacts:/86/433c941b3706450aa499f9bee4b17701/artifacts/qc_errors.log +# When set, the dataset is filtered down to only the slides that failed QC +# in that run. Leave as null to use the whole dataset. +qc_errors_uri: null + request_timeout: 18000 max_concurrent: 5 diff --git a/preprocessing/create_dataset.py b/preprocessing/create_dataset.py index 551dd39d..695b86d1 100644 --- a/preprocessing/create_dataset.py +++ b/preprocessing/create_dataset.py @@ -48,14 +48,18 @@ def get_slides(folder_path: Path, pattern: re.Pattern[str]) -> pd.DataFrame: def create_dataset( - folder: str, labels: list[str], institution: str, pattern: re.Pattern[str] + folder: str, + labels: list[str], + institution: str, + pattern: re.Pattern[str], + drop_missing: bool = True, ) -> tuple[pd.DataFrame, list[str], list[str]]: folder_path = Path(folder) labels_df = get_labels(folder_path, labels) slides_df = get_slides(folder_path, pattern) # IKEM has only case-level labels (FTN has one slide per case) - on = "case_id" if institution == "ikem" else "slide_id" + on = "case_id" if institution.startswith("ikem") else "slide_id" dataset_df = slides_df.join(labels_df, on=on, how="outer") dataset_df.index.name = "slide_id" @@ -69,8 +73,9 @@ def create_dataset( missing_slides = dataset_df[dataset_df["path"].isna()][on].to_list() dataset_df = dataset_df[["case_id", "path", "nancy"]] - dataset_df = dataset_df.dropna() - dataset_df["nancy"] = dataset_df["nancy"].astype(int) + if drop_missing: + dataset_df = dataset_df.dropna() + dataset_df["nancy"] = dataset_df["nancy"].astype(int) return dataset_df, missing_slides, missing_labels @@ -84,6 +89,7 @@ def main(config: DictConfig, logger: MLFlowLogger) -> None: config.dataset.labels, config.dataset.institution, re.compile(config.dataset.regex_pattern), + config.dataset.drop_missing ) with tempfile.TemporaryDirectory() as tmpdir: diff --git a/preprocessing/quality_control.py b/preprocessing/quality_control.py index 8f657366..f29e9dd6 100644 --- a/preprocessing/quality_control.py +++ b/preprocessing/quality_control.py @@ -49,6 +49,34 @@ def organize_masks(output_path: Path, subdir: str, mask_prefix: str) -> None: file.rename(destination) +def filter_dataset_by_qc_errors( + dataset: pd.DataFrame, qc_errors_uri: str | None +) -> pd.DataFrame: + """Keep only the rows of `dataset` whose slide failed QC. + + `qc_errors_uri` is an MLflow artifact URI pointing to a `qc_errors.log` + file produced by `qc_main` (lines formatted as + "Failed to process {wsi_path}: {error}"), e.g. + "mlflow-artifacts:/86/433c941b3706450aa499f9bee4b17701/artifacts/qc_errors.log". + If `qc_errors_uri` is None, no QC run is available to filter by and the + whole dataset is returned unchanged. + """ + if qc_errors_uri is None: + return dataset + + prefix = "Failed to process " + failed_paths: set[str] = set() + with open(download_artifacts(qc_errors_uri)) as log_file: + for line in log_file: + line = line.rstrip("\n") + if not line.startswith(prefix): + continue + wsi_path, _, _error = line[len(prefix) :].partition(":") + failed_paths.add(wsi_path.strip()) + + return dataset[dataset["path"].isin(failed_paths)].reset_index(drop=True) + + async def qc_main( output_path: Path, slides: list[str], @@ -57,6 +85,10 @@ async def qc_main( max_concurrent: int, qc_parameters: QCParameters, ) -> None: + qc_errors_path = output_path / "qc_errors.log" + if qc_errors_path.exists(): + qc_errors_path.unlink() + async with rationai.AsyncClient() as client: # type: ignore[attr-defined] async for result in tqdm( client.qc.check_slides( @@ -69,7 +101,7 @@ async def qc_main( total=len(slides), ): if not result.success: - with open(output_path / "qc_errors.log", "a") as log_file: + with open(qc_errors_path, "a") as log_file: log_file.write( f"Failed to process {result.wsi_path}: {result.error}\n" ) @@ -78,11 +110,13 @@ async def qc_main( for prefix, artifact_name in get_qc_masks(qc_parameters): organize_masks(Path(output_path), artifact_name, prefix) - # Merge generated csv files - csvs = list(Path(output_path).glob("*.csv")) - pd.concat([pd.read_csv(f) for f in csvs]).to_csv( - Path(output_path, "qc_metrics.csv"), index=False - ) + # Merge generated csv files, appending to any pre-existing qc_metrics.csv + metrics_path = Path(output_path, "qc_metrics.csv") + csvs = [f for f in Path(output_path).glob("*.csv") if f != metrics_path] + new_metrics = [pd.read_csv(f) for f in csvs] + if metrics_path.exists(): + new_metrics.insert(0, pd.read_csv(metrics_path)) + pd.concat(new_metrics).to_csv(metrics_path, index=False) # Remove individual csv files for f in csvs: @@ -96,6 +130,7 @@ async def qc_main( @autolog def main(config: DictConfig, logger: MLFlowLogger) -> None: dataset = pd.read_csv(download_artifacts(config.dataset.mlflow_uris.dataset)) + dataset = filter_dataset_by_qc_errors(dataset, config.get("qc_errors_uri")) output_path = Path(config.output_dir) output_path.mkdir(parents=True, exist_ok=True) diff --git a/preprocessing/tiling.py b/preprocessing/tiling.py index 9318876a..b404c4ba 100644 --- a/preprocessing/tiling.py +++ b/preprocessing/tiling.py @@ -42,7 +42,15 @@ def add_nancy_index(row: dict[str, Any], df: pd.DataFrame) -> dict[str, Any]: def qc_agg(row: dict[str, Any], df: pd.DataFrame) -> dict[str, Any]: - qc_df = cast("pd.Series", df.loc[Path(row["path"]).stem]) + stem = Path(row["path"]).stem + + if stem not in df.index: + print(f"[tiling] WARNING: no QC row for slide '{stem}', filling NaN") + row["blur_mean"] = float("nan") + row["artifacts_mean"] = float("nan") + return row + + qc_df = cast("pd.Series", df.loc[stem]) row["blur_mean"] = qc_df[QC_BLUR_MEAN_COLUMN] row["artifacts_mean"] = qc_df[QC_ARTIFACTS_MEAN_COLUMN] @@ -62,6 +70,17 @@ def add_mask_paths( row["tissue_mask_path"] = str(tissue_folder / f"{stem}.tiff") for key, subfolder in QC_SUBFOLDERS.items(): row[f"{key}_mask_path"] = str(qc_folder / subfolder / f"{stem}.tiff") + + # The tissue mask is always expected to exist; the QC masks (blur and + # artifacts) come from the same QC run and are either both present or + # both missing, e.g. when QC hasn't run on a slide yet. + missing = [ + key for key in QC_SUBFOLDERS if not Path(row[f"{key}_mask_path"]).exists() + ] + if missing: + print(f"[tiling] WARNING: missing QC mask(s) {missing} for slide '{stem}'") + row["qc_masks_available"] = not missing + return row @@ -90,6 +109,7 @@ def tile(row: dict[str, Any]) -> list[dict[str, Any]]: "tissue_mask_path": row["tissue_mask_path"], "blur_mask_path": row["blur_mask_path"], "artifacts_mask_path": row["artifacts_mask_path"], + "qc_masks_available": row["qc_masks_available"], } for x, y in grid_tiles( slide_extent=(row["extent_x"], row["extent_y"]), @@ -110,10 +130,30 @@ def extract_coverages(row: dict[str, Any], *cols: str) -> dict[str, Any]: return row +def fill_nan_coverages(row: dict[str, Any], *cols: str) -> dict[str, Any]: + for c in cols: + row[c] = float("nan") + return row + + +def drop_columns(row: dict[str, Any], *cols: str) -> dict[str, Any]: + for c in cols: + row.pop(c, None) + return row + + def filter_tissue(row: dict[str, Any], threshold: float) -> bool: return row["tissue"] >= threshold +def filter_mask_available(row: dict[str, Any], key: str) -> bool: + return row[key] + + +def filter_mask_missing(row: dict[str, Any], key: str) -> bool: + return not row[key] + + def select(row: dict[str, Any]) -> dict[str, Any]: return { "slide_id": row["slide_id"], @@ -150,7 +190,7 @@ def tiling( tissue_roi = create_tissue_roi(tile_extent) qc_roi = create_qc_roi(tile_extent) - tiles = ( + all_tiles = ( slides.map( add_mask_paths, # pyright: ignore[reportArgumentType] fn_args=(qc_folder, tissue_folder), @@ -173,7 +213,22 @@ def tiling( **HI_MEM, ) .map(extract_coverages, fn_args=("tissue",), **LO_CPU, **LO_MEM) # pyright: ignore[reportArgumentType] + .map(drop_columns, fn_args=("tissue_overlap",), **LO_CPU, **LO_MEM) # pyright: ignore[reportArgumentType] .filter(filter_tissue, fn_args=(tissue_threshold,), **LO_CPU, **LO_MEM) # pyright: ignore[reportArgumentType] + ) + + # blur and artifacts QC masks come from the same QC run, so they're + # either both present or both missing for a slide (e.g. QC hasn't run on + # it yet). Split off the tiles whose QC masks exist and compute the real + # coverages, fill NaN for the rest, then recombine so no tile is dropped + # just because QC hasn't run on its slide. + qc_tiles_available = ( + all_tiles.filter( + filter_mask_available, # pyright: ignore[reportArgumentType] + fn_args=("qc_masks_available",), + **LO_CPU, + **LO_MEM, + ) .with_column( "blur_overlap", tile_overlay_overlap( @@ -201,7 +256,23 @@ def tiling( **HI_MEM, ) .map(extract_coverages, fn_args=("blur", "artifacts"), **LO_CPU, **LO_MEM) # pyright: ignore[reportArgumentType] - .map(select, **LO_CPU, **LO_MEM) + .map( + drop_columns, + fn_args=("blur_overlap", "artifacts_overlap"), + **LO_CPU, + **LO_MEM, + ) # pyright: ignore[reportArgumentType] + ) + + qc_tiles_missing = all_tiles.filter( + filter_mask_missing, # pyright: ignore[reportArgumentType] + fn_args=("qc_masks_available",), + **LO_CPU, + **LO_MEM, + ).map(fill_nan_coverages, fn_args=("blur", "artifacts"), **LO_CPU, **LO_MEM) # pyright: ignore[reportArgumentType] + + tiles = qc_tiles_available.union(qc_tiles_missing).map( + select, **LO_CPU, **LO_MEM ) return slides.to_pandas(), tiles.to_pandas() diff --git a/scripts/preprocessing/quality_control.py b/scripts/preprocessing/quality_control.py index dcb56b62..06dfb8c0 100644 --- a/scripts/preprocessing/quality_control.py +++ b/scripts/preprocessing/quality_control.py @@ -13,5 +13,5 @@ "uv sync --frozen", "uv run -m preprocessing.quality_control +dataset=processed/...", ], - storage=[storage.secure.DATA], + storage=[storage.secure.DATA, storage.secure.PROJECTS], ) From c1ebb33d5cb6040919eaffdcb7046c9115bc8c2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Sat, 29 Aug 2026 16:57:01 +0000 Subject: [PATCH 47/54] feat: update configuration files and add new prediction setup --- configs/checkpoints/final/nancy_high.yaml | 4 +++- configs/checkpoints/final/nancy_low.yaml | 4 +++- configs/checkpoints/final/neutrophils.yaml | 4 +++- .../dataset/embeddings/ikem_validation.yaml | 7 ++++++ .../experiment/ml/final/nancy_high/test.yaml | 2 ++ .../experiment/ml/final/nancy_high/train.yaml | 2 ++ .../experiment/ml/final/nancy_low/test.yaml | 2 ++ .../experiment/ml/final/nancy_low/train.yaml | 2 ++ .../experiment/ml/final/neutrophils/test.yaml | 2 ++ .../ml/final/neutrophils/train.yaml | 2 ++ .../ml/ikem_validation/nancy_high.yaml | 22 +++++++++++++++++++ .../ml/ikem_validation/nancy_low.yaml | 22 +++++++++++++++++++ .../ml/ikem_validation/neutrophils.yaml | 22 +++++++++++++++++++ configs/experiment/ml/predict/mil_bags.yaml | 10 +++++++++ .../ml/test/classification_embeddings.yaml | 6 +++-- .../ml/test/classification_tiles.yaml | 6 +++-- configs/experiment/ml/test/mil_bags.yaml | 6 +++-- .../ml/test/ordered_regression_tiles.yaml | 6 +++-- .../ml/train/classification_embeddings.yaml | 6 +++-- .../ml/train/classification_tiles.yaml | 6 +++-- configs/experiment/ml/train/mil_bags.yaml | 6 +++-- .../ml/train/ordered_regression_tiles.yaml | 6 +++-- configs/ml/data/bags.yaml | 7 ++++++ configs/ml/predict.yaml | 12 ++++++++++ configs/ml/test.yaml | 4 +++- configs/ml/train.yaml | 3 ++- ml/__main__.py | 2 +- 27 files changed, 161 insertions(+), 22 deletions(-) create mode 100644 configs/dataset/embeddings/ikem_validation.yaml create mode 100644 configs/experiment/ml/ikem_validation/nancy_high.yaml create mode 100644 configs/experiment/ml/ikem_validation/nancy_low.yaml create mode 100644 configs/experiment/ml/ikem_validation/neutrophils.yaml create mode 100644 configs/experiment/ml/predict/mil_bags.yaml create mode 100644 configs/ml/predict.yaml diff --git a/configs/checkpoints/final/nancy_high.yaml b/configs/checkpoints/final/nancy_high.yaml index d882745e..edc4856f 100644 --- a/configs/checkpoints/final/nancy_high.yaml +++ b/configs/checkpoints/final/nancy_high.yaml @@ -1 +1,3 @@ -checkpoint: ??? +# @package _global_ + +checkpoint: mlflow-artifacts:/86/ac693e2ee17e4254a30786c0668e7af4/artifacts/checkpoints/epoch=299-step=176100 diff --git a/configs/checkpoints/final/nancy_low.yaml b/configs/checkpoints/final/nancy_low.yaml index d882745e..99697228 100644 --- a/configs/checkpoints/final/nancy_low.yaml +++ b/configs/checkpoints/final/nancy_low.yaml @@ -1 +1,3 @@ -checkpoint: ??? +# @package _global_ + +checkpoint: mlflow-artifacts:/86/452e6f1bf18c45d3bc1d2ae9b44154ae/artifacts/checkpoints/epoch=299-step=176100/checkpoint.ckpt diff --git a/configs/checkpoints/final/neutrophils.yaml b/configs/checkpoints/final/neutrophils.yaml index d882745e..318560df 100644 --- a/configs/checkpoints/final/neutrophils.yaml +++ b/configs/checkpoints/final/neutrophils.yaml @@ -1 +1,3 @@ -checkpoint: ??? +# @package _global_ + +checkpoint: mlflow-artifacts:/86/5f9d50d8dccf45e6b8a80d8d3b0f773c/artifacts/checkpoints/epoch=70-step=41677/checkpoint.ckpt diff --git a/configs/dataset/embeddings/ikem_validation.yaml b/configs/dataset/embeddings/ikem_validation.yaml new file mode 100644 index 00000000..e7481456 --- /dev/null +++ b/configs/dataset/embeddings/ikem_validation.yaml @@ -0,0 +1,7 @@ +defaults: + - /dataset/tiled/ikem_validation@_here_ + - _self_ + +mlflow_uris: + embeddings: + predict: mlflow-artifacts:/86/12b0609fdc36429f9b7a13e581ed4cd4/artifacts/predict - ikem_validation \ No newline at end of file diff --git a/configs/experiment/ml/final/nancy_high/test.yaml b/configs/experiment/ml/final/nancy_high/test.yaml index 79fc3bd7..1b3f8b58 100644 --- a/configs/experiment/ml/final/nancy_high/test.yaml +++ b/configs/experiment/ml/final/nancy_high/test.yaml @@ -1,3 +1,5 @@ +# @package _global_ + defaults: - /experiment/ml/final/nancy_high/train - /ml/test diff --git a/configs/experiment/ml/final/nancy_high/train.yaml b/configs/experiment/ml/final/nancy_high/train.yaml index d267e780..97f60bec 100644 --- a/configs/experiment/ml/final/nancy_high/train.yaml +++ b/configs/experiment/ml/final/nancy_high/train.yaml @@ -1,3 +1,5 @@ +# @package _global_ + defaults: - /experiment/ml/train/mil_bags - /dataset/embeddings/ikem/2_virchow2@ikem diff --git a/configs/experiment/ml/final/nancy_low/test.yaml b/configs/experiment/ml/final/nancy_low/test.yaml index 6f4ff8ca..1ead379a 100644 --- a/configs/experiment/ml/final/nancy_low/test.yaml +++ b/configs/experiment/ml/final/nancy_low/test.yaml @@ -1,3 +1,5 @@ +# @package _global_ + defaults: - /experiment/ml/final/nancy_low/train - /ml/test diff --git a/configs/experiment/ml/final/nancy_low/train.yaml b/configs/experiment/ml/final/nancy_low/train.yaml index e5df77f3..d74bba36 100644 --- a/configs/experiment/ml/final/nancy_low/train.yaml +++ b/configs/experiment/ml/final/nancy_low/train.yaml @@ -1,3 +1,5 @@ +# @package _global_ + defaults: - /experiment/ml/train/mil_bags - /dataset/embeddings/ikem/2_virchow2@ikem diff --git a/configs/experiment/ml/final/neutrophils/test.yaml b/configs/experiment/ml/final/neutrophils/test.yaml index 89ae941d..22e2b8b6 100644 --- a/configs/experiment/ml/final/neutrophils/test.yaml +++ b/configs/experiment/ml/final/neutrophils/test.yaml @@ -1,3 +1,5 @@ +# @package _global_ + defaults: - /experiment/ml/final/neutrophils/train - /ml/test diff --git a/configs/experiment/ml/final/neutrophils/train.yaml b/configs/experiment/ml/final/neutrophils/train.yaml index c452f787..78ad709f 100644 --- a/configs/experiment/ml/final/neutrophils/train.yaml +++ b/configs/experiment/ml/final/neutrophils/train.yaml @@ -1,3 +1,5 @@ +# @package _global_ + defaults: - /experiment/ml/train/mil_bags - /dataset/embeddings/ikem/2_virchow2@ikem diff --git a/configs/experiment/ml/ikem_validation/nancy_high.yaml b/configs/experiment/ml/ikem_validation/nancy_high.yaml new file mode 100644 index 00000000..1eb7a7ac --- /dev/null +++ b/configs/experiment/ml/ikem_validation/nancy_high.yaml @@ -0,0 +1,22 @@ +# @package _global_ + +defaults: + - /experiment/ml/predict/mil_bags + - /checkpoints/final/nancy_high + - /dataset/embeddings/ikem_validation@ikem_validation + - _self_ + +data: + predict: + uris: + - ${ikem_validation.mlflow_uris.embeddings.predict} + mode: nancy_high + +model: + foundation: virchow2 + num_classes: 4 + +metadata: + run_name: '🎯 Predicting: MIL Bags - nancy_high - ikem validation' + description: 'Predict nancy_high MIL bag scores on the IKEM validation cohort' + diff --git a/configs/experiment/ml/ikem_validation/nancy_low.yaml b/configs/experiment/ml/ikem_validation/nancy_low.yaml new file mode 100644 index 00000000..835f72ea --- /dev/null +++ b/configs/experiment/ml/ikem_validation/nancy_low.yaml @@ -0,0 +1,22 @@ +# @package _global_ + +defaults: + - /experiment/ml/predict/mil_bags + - /checkpoints/final/nancy_low + - /dataset/embeddings/ikem_validation@ikem_validation + - _self_ + +data: + predict: + uris: + - ${ikem_validation.mlflow_uris.embeddings.predict} + mode: nancy_low + +model: + foundation: virchow2 + num_classes: 3 + +metadata: + run_name: '🎯 Predicting: MIL Bags - nancy_low - ikem validation' + description: 'Predict nancy_low MIL bag scores on the IKEM validation cohort' + diff --git a/configs/experiment/ml/ikem_validation/neutrophils.yaml b/configs/experiment/ml/ikem_validation/neutrophils.yaml new file mode 100644 index 00000000..0c590b10 --- /dev/null +++ b/configs/experiment/ml/ikem_validation/neutrophils.yaml @@ -0,0 +1,22 @@ +# @package _global_ + +defaults: + - /experiment/ml/predict/mil_bags + - /checkpoints/final/neutrophils + - /dataset/embeddings/ikem_validation@ikem_validation + - _self_ + +data: + predict: + uris: + - ${ikem_validation.mlflow_uris.embeddings.predict} + mode: neutrophils + +model: + foundation: virchow2 + num_classes: 2 + +metadata: + run_name: '🎯 Predicting: MIL Bags - neutrophils - ikem validation' + description: 'Predict neutrophil MIL bag scores on the IKEM validation cohort' + diff --git a/configs/experiment/ml/predict/mil_bags.yaml b/configs/experiment/ml/predict/mil_bags.yaml new file mode 100644 index 00000000..8278b661 --- /dev/null +++ b/configs/experiment/ml/predict/mil_bags.yaml @@ -0,0 +1,10 @@ +# @package _global_ + +defaults: + - /ml/predict + - /ml/model@model: mil + - /ml/data@data: bags + - _self_ + +metadata: + run_name: '🎯 Predicting: MIL Bags - ${data.test.mode} - fold ${val_fold}' diff --git a/configs/experiment/ml/test/classification_embeddings.yaml b/configs/experiment/ml/test/classification_embeddings.yaml index f75cddef..43e62e41 100644 --- a/configs/experiment/ml/test/classification_embeddings.yaml +++ b/configs/experiment/ml/test/classification_embeddings.yaml @@ -1,7 +1,9 @@ +# @package _global_ + defaults: - /ml/test - - /ml/model: classification - - /ml/data: embeddings + - /ml/model@model: classification + - /ml/data@data: embeddings - /ml/backbone@model.backbone: identity - _self_ diff --git a/configs/experiment/ml/test/classification_tiles.yaml b/configs/experiment/ml/test/classification_tiles.yaml index c0dd1f9d..6ca786e4 100644 --- a/configs/experiment/ml/test/classification_tiles.yaml +++ b/configs/experiment/ml/test/classification_tiles.yaml @@ -1,7 +1,9 @@ +# @package _global_ + defaults: - /ml/test - - /ml/model: classification - - /ml/data: tiles + - /ml/model@model: classification + - /ml/data@data: tiles - /ml/backbone@model.backbone: vgg16 - _self_ diff --git a/configs/experiment/ml/test/mil_bags.yaml b/configs/experiment/ml/test/mil_bags.yaml index 323ce5d5..d8414fd6 100644 --- a/configs/experiment/ml/test/mil_bags.yaml +++ b/configs/experiment/ml/test/mil_bags.yaml @@ -1,7 +1,9 @@ +# @package _global_ + defaults: - /ml/test - - /ml/model: mil - - /ml/data: bags + - /ml/model@model: mil + - /ml/data@data: bags - _self_ metadata: diff --git a/configs/experiment/ml/test/ordered_regression_tiles.yaml b/configs/experiment/ml/test/ordered_regression_tiles.yaml index 00c5499d..e66379f2 100644 --- a/configs/experiment/ml/test/ordered_regression_tiles.yaml +++ b/configs/experiment/ml/test/ordered_regression_tiles.yaml @@ -1,7 +1,9 @@ +# @package _global_ + defaults: - /ml/test - - /ml/model: ordered_regression - - /ml/data: tiles + - /ml/model@model: ordered_regression + - /ml/data@data: tiles - /ml/backbone@model.backbone: vgg16 - _self_ diff --git a/configs/experiment/ml/train/classification_embeddings.yaml b/configs/experiment/ml/train/classification_embeddings.yaml index 0f3469ac..84bf924e 100644 --- a/configs/experiment/ml/train/classification_embeddings.yaml +++ b/configs/experiment/ml/train/classification_embeddings.yaml @@ -1,7 +1,9 @@ +# @package _global_ + defaults: - /ml/train - - /ml/model: classification - - /ml/data: embeddings + - /ml/model@model: classification + - /ml/data@data: embeddings - /ml/backbone@model.backbone: identity - _self_ diff --git a/configs/experiment/ml/train/classification_tiles.yaml b/configs/experiment/ml/train/classification_tiles.yaml index c5bab424..6ee7f624 100644 --- a/configs/experiment/ml/train/classification_tiles.yaml +++ b/configs/experiment/ml/train/classification_tiles.yaml @@ -1,7 +1,9 @@ +# @package _global_ + defaults: - /ml/train - - /ml/model: classification - - /ml/data: tiles + - /ml/model@model: classification + - /ml/data@data: tiles - /ml/backbone@model.backbone: vgg16 - _self_ diff --git a/configs/experiment/ml/train/mil_bags.yaml b/configs/experiment/ml/train/mil_bags.yaml index 05c2f72c..e01d0519 100644 --- a/configs/experiment/ml/train/mil_bags.yaml +++ b/configs/experiment/ml/train/mil_bags.yaml @@ -1,7 +1,9 @@ +# @package _global_ + defaults: - /ml/train - - /ml/model: mil - - /ml/data: bags + - /ml/model@model: mil + - /ml/data@data: bags - _self_ metadata: diff --git a/configs/experiment/ml/train/ordered_regression_tiles.yaml b/configs/experiment/ml/train/ordered_regression_tiles.yaml index 1a10ac3b..d7ec12f0 100644 --- a/configs/experiment/ml/train/ordered_regression_tiles.yaml +++ b/configs/experiment/ml/train/ordered_regression_tiles.yaml @@ -1,7 +1,9 @@ +# @package _global_ + defaults: - /ml/train - - /ml/model: ordered_regression - - /ml/data: tiles + - /ml/model@model: ordered_regression + - /ml/data@data: tiles - /ml/backbone@model.backbone: vgg16 - _self_ diff --git a/configs/ml/data/bags.yaml b/configs/ml/data/bags.yaml index 6e53f425..ebf93f98 100644 --- a/configs/ml/data/bags.yaml +++ b/configs/ml/data/bags.yaml @@ -27,3 +27,10 @@ test: thresholds: blur_mean: 0.25 artifacts_mean: 0.25 +predict: + _target_: ml.data.datasets.Bags + uris: ??? + mode: ??? + thresholds: + blur_mean: 0.25 + artifacts_mean: 0.25 diff --git a/configs/ml/predict.yaml b/configs/ml/predict.yaml new file mode 100644 index 00000000..a20a4868 --- /dev/null +++ b/configs/ml/predict.yaml @@ -0,0 +1,12 @@ +# @package _global_ + +defaults: + - _self_ + +mode: predict +checkpoint: ??? +val_fold: null + +trainer: + callbacks: + - _target_: ml.callbacks.MLFlowPredictionCallback diff --git a/configs/ml/test.yaml b/configs/ml/test.yaml index d60813df..66a65552 100644 --- a/configs/ml/test.yaml +++ b/configs/ml/test.yaml @@ -1,9 +1,11 @@ +# @package _global_ + defaults: - - /ml - _self_ mode: test checkpoint: ??? +val_fold: null trainer: callbacks: diff --git a/configs/ml/train.yaml b/configs/ml/train.yaml index 653ef64d..7cd8f4af 100644 --- a/configs/ml/train.yaml +++ b/configs/ml/train.yaml @@ -1,5 +1,6 @@ +# @package _global_ + defaults: - - /ml - _self_ mode: fit diff --git a/ml/__main__.py b/ml/__main__.py index 504ce913..5456e65d 100644 --- a/ml/__main__.py +++ b/ml/__main__.py @@ -12,7 +12,7 @@ ) -@hydra.main(config_path="../configs", config_name="default", version_base=None) +@hydra.main(config_path="../configs", config_name="ml", version_base=None) @autolog def main(config: DictConfig, logger: Logger | None) -> None: seed_everything(config.seed, workers=True) From 93bfe9accceede55548f5ef020db55bc49438964 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Sat, 29 Aug 2026 17:05:58 +0000 Subject: [PATCH 48/54] fix: update threshold keys in bags, embeddings, and tiles configurations --- configs/ml/data/bags.yaml | 16 ++++++++-------- configs/ml/data/embeddings.yaml | 12 ++++++------ configs/ml/data/tiles.yaml | 12 ++++++------ 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/configs/ml/data/bags.yaml b/configs/ml/data/bags.yaml index ebf93f98..2a676fb9 100644 --- a/configs/ml/data/bags.yaml +++ b/configs/ml/data/bags.yaml @@ -9,8 +9,8 @@ train: val_fold: ${val_fold} is_val: false thresholds: - blur_mean: 0.25 - artifacts_mean: 0.25 + blur: 0.25 + artifacts: 0.25 val: _target_: ml.data.datasets.Bags uris: ??? @@ -18,19 +18,19 @@ val: val_fold: ${val_fold} is_val: true thresholds: - blur_mean: 0.25 - artifacts_mean: 0.25 + blur: 0.25 + artifacts: 0.25 test: _target_: ml.data.datasets.Bags uris: ??? mode: ??? thresholds: - blur_mean: 0.25 - artifacts_mean: 0.25 + blur: 0.25 + artifacts: 0.25 predict: _target_: ml.data.datasets.Bags uris: ??? mode: ??? thresholds: - blur_mean: 0.25 - artifacts_mean: 0.25 + blur: 0.25 + artifacts: 0.25 diff --git a/configs/ml/data/embeddings.yaml b/configs/ml/data/embeddings.yaml index 1f0551eb..71275b2a 100644 --- a/configs/ml/data/embeddings.yaml +++ b/configs/ml/data/embeddings.yaml @@ -9,8 +9,8 @@ train: val_fold: ${val_fold} is_val: false thresholds: - blur_mean: 0.25 - artifacts_mean: 0.25 + blur: 0.25 + artifacts: 0.25 val: _target_: ml.data.datasets.Embeddings uris: ??? @@ -18,12 +18,12 @@ val: val_fold: ${val_fold} is_val: true thresholds: - blur_mean: 0.25 - artifacts_mean: 0.25 + blur: 0.25 + artifacts: 0.25 test: _target_: ml.data.datasets.Embeddings uris: ??? mode: ??? thresholds: - blur_mean: 0.25 - artifacts_mean: 0.25 + blur: 0.25 + artifacts: 0.25 diff --git a/configs/ml/data/tiles.yaml b/configs/ml/data/tiles.yaml index 1beea854..24a48b8a 100644 --- a/configs/ml/data/tiles.yaml +++ b/configs/ml/data/tiles.yaml @@ -9,8 +9,8 @@ train: val_fold: ${val_fold} is_val: false thresholds: - blur_mean: 0.25 - artifacts_mean: 0.25 + blur: 0.25 + artifacts: 0.25 val: _target_: ml.data.datasets.Tiles uris: ??? @@ -18,12 +18,12 @@ val: val_fold: ${val_fold} is_val: true thresholds: - blur_mean: 0.25 - artifacts_mean: 0.25 + blur: 0.25 + artifacts: 0.25 test: _target_: ml.data.datasets.Tiles uris: ??? mode: ??? thresholds: - blur_mean: 0.25 - artifacts_mean: 0.25 + blur: 0.25 + artifacts: 0.25 From f4e7a61894ef1a65a8da70127dec405dfcd48e5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Sat, 29 Aug 2026 17:34:06 +0000 Subject: [PATCH 49/54] fix: remove redundant mode entries from ikem validation configuration files --- configs/experiment/ml/ikem_validation/nancy_high.yaml | 1 - configs/experiment/ml/ikem_validation/nancy_low.yaml | 1 - configs/experiment/ml/ikem_validation/neutrophils.yaml | 1 - 3 files changed, 3 deletions(-) diff --git a/configs/experiment/ml/ikem_validation/nancy_high.yaml b/configs/experiment/ml/ikem_validation/nancy_high.yaml index 1eb7a7ac..8f30a9fe 100644 --- a/configs/experiment/ml/ikem_validation/nancy_high.yaml +++ b/configs/experiment/ml/ikem_validation/nancy_high.yaml @@ -10,7 +10,6 @@ data: predict: uris: - ${ikem_validation.mlflow_uris.embeddings.predict} - mode: nancy_high model: foundation: virchow2 diff --git a/configs/experiment/ml/ikem_validation/nancy_low.yaml b/configs/experiment/ml/ikem_validation/nancy_low.yaml index 835f72ea..29ebae9f 100644 --- a/configs/experiment/ml/ikem_validation/nancy_low.yaml +++ b/configs/experiment/ml/ikem_validation/nancy_low.yaml @@ -10,7 +10,6 @@ data: predict: uris: - ${ikem_validation.mlflow_uris.embeddings.predict} - mode: nancy_low model: foundation: virchow2 diff --git a/configs/experiment/ml/ikem_validation/neutrophils.yaml b/configs/experiment/ml/ikem_validation/neutrophils.yaml index 0c590b10..0fa186e0 100644 --- a/configs/experiment/ml/ikem_validation/neutrophils.yaml +++ b/configs/experiment/ml/ikem_validation/neutrophils.yaml @@ -10,7 +10,6 @@ data: predict: uris: - ${ikem_validation.mlflow_uris.embeddings.predict} - mode: neutrophils model: foundation: virchow2 From c9a655f275df1d73127ce2e9a888d3c615aff2ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Sat, 29 Aug 2026 17:36:32 +0000 Subject: [PATCH 50/54] fix: add missing mode entry in ikem validation configuration files --- configs/experiment/ml/ikem_validation/nancy_high.yaml | 1 + configs/experiment/ml/ikem_validation/nancy_low.yaml | 1 + configs/experiment/ml/ikem_validation/neutrophils.yaml | 1 + 3 files changed, 3 insertions(+) diff --git a/configs/experiment/ml/ikem_validation/nancy_high.yaml b/configs/experiment/ml/ikem_validation/nancy_high.yaml index 8f30a9fe..aefab005 100644 --- a/configs/experiment/ml/ikem_validation/nancy_high.yaml +++ b/configs/experiment/ml/ikem_validation/nancy_high.yaml @@ -10,6 +10,7 @@ data: predict: uris: - ${ikem_validation.mlflow_uris.embeddings.predict} + mode: null model: foundation: virchow2 diff --git a/configs/experiment/ml/ikem_validation/nancy_low.yaml b/configs/experiment/ml/ikem_validation/nancy_low.yaml index 29ebae9f..1f11c164 100644 --- a/configs/experiment/ml/ikem_validation/nancy_low.yaml +++ b/configs/experiment/ml/ikem_validation/nancy_low.yaml @@ -10,6 +10,7 @@ data: predict: uris: - ${ikem_validation.mlflow_uris.embeddings.predict} + mode: null model: foundation: virchow2 diff --git a/configs/experiment/ml/ikem_validation/neutrophils.yaml b/configs/experiment/ml/ikem_validation/neutrophils.yaml index 0fa186e0..e1c009f6 100644 --- a/configs/experiment/ml/ikem_validation/neutrophils.yaml +++ b/configs/experiment/ml/ikem_validation/neutrophils.yaml @@ -10,6 +10,7 @@ data: predict: uris: - ${ikem_validation.mlflow_uris.embeddings.predict} + mode: null model: foundation: virchow2 From 58ffbc21895cd10148de67f737c700ca73e1bbe0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Sat, 29 Aug 2026 17:40:09 +0000 Subject: [PATCH 51/54] fix: correct target dataset for prediction in bags configuration --- configs/ml/data/bags.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/ml/data/bags.yaml b/configs/ml/data/bags.yaml index 2a676fb9..c1dbdf41 100644 --- a/configs/ml/data/bags.yaml +++ b/configs/ml/data/bags.yaml @@ -28,7 +28,7 @@ test: blur: 0.25 artifacts: 0.25 predict: - _target_: ml.data.datasets.Bags + _target_: ml.data.datasets.BagsPredict uris: ??? mode: ??? thresholds: From 7c02847a844001b23561cb7263af2835f5664216 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Sat, 29 Aug 2026 17:57:59 +0000 Subject: [PATCH 52/54] fix: update number of classes in neutrophils configuration to match model requirements --- configs/experiment/ml/ikem_validation/neutrophils.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/experiment/ml/ikem_validation/neutrophils.yaml b/configs/experiment/ml/ikem_validation/neutrophils.yaml index e1c009f6..032b7ab5 100644 --- a/configs/experiment/ml/ikem_validation/neutrophils.yaml +++ b/configs/experiment/ml/ikem_validation/neutrophils.yaml @@ -14,7 +14,7 @@ data: model: foundation: virchow2 - num_classes: 2 + num_classes: 1 metadata: run_name: '🎯 Predicting: MIL Bags - neutrophils - ikem validation' From a2ca1dbfedd3672a16c76f2597ee0230725ac52c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Sat, 29 Aug 2026 18:39:13 +0000 Subject: [PATCH 53/54] fix: add missing checkpoint file extension in nancy_high configuration --- configs/checkpoints/final/nancy_high.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/checkpoints/final/nancy_high.yaml b/configs/checkpoints/final/nancy_high.yaml index edc4856f..9a4bace2 100644 --- a/configs/checkpoints/final/nancy_high.yaml +++ b/configs/checkpoints/final/nancy_high.yaml @@ -1,3 +1,3 @@ # @package _global_ -checkpoint: mlflow-artifacts:/86/ac693e2ee17e4254a30786c0668e7af4/artifacts/checkpoints/epoch=299-step=176100 +checkpoint: mlflow-artifacts:/86/ac693e2ee17e4254a30786c0668e7af4/artifacts/checkpoints/epoch=299-step=176100/checkpoint.ckpt From e38f750281eb39c85904534db78a7012ee40c971 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Sat, 29 Aug 2026 18:57:25 +0000 Subject: [PATCH 54/54] feat: add prediction scripts and configurations for ensembling and markov chain confidence --- README.md | 13 +++- .../predict_ensembling/ikem_validation.yaml | 6 ++ .../ikem_validation.yaml | 8 +++ .../postprocessing/ensembling_predict.yaml | 5 ++ .../markov_chain_confidence_predict.yaml | 9 +++ configs/predictions/ikem_validation.yaml | 4 ++ postprocessing/ensembling_predict.py | 64 +++++++++++++++++++ .../markov_chain_confidence_predict.py | 50 +++++++++++++++ postprocessing/utils.py | 8 ++- scripts/postprocessing/ensembling_predict.py | 16 +++++ .../markov_chain_confidence_predict.py | 16 +++++ 11 files changed, 196 insertions(+), 3 deletions(-) create mode 100644 configs/experiment/postprocessing/predict_ensembling/ikem_validation.yaml create mode 100644 configs/experiment/postprocessing/predict_markov_chain_confidence/ikem_validation.yaml create mode 100644 configs/postprocessing/ensembling_predict.yaml create mode 100644 configs/postprocessing/markov_chain_confidence_predict.yaml create mode 100644 configs/predictions/ikem_validation.yaml create mode 100644 postprocessing/ensembling_predict.py create mode 100644 postprocessing/markov_chain_confidence_predict.py create mode 100644 scripts/postprocessing/ensembling_predict.py create mode 100644 scripts/postprocessing/markov_chain_confidence_predict.py diff --git a/README.md b/README.md index ecce0a4a..d39c05a4 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,9 @@ This repository contains the machine learning pipeline developed for automated h │ └── split_dataset.py # Train/val/test split assignment ├── postprocessing/ # Slide-level aggregation & confidence │ ├── ensembling.py # Soft majority vote + hierarchical ensembling -│ └── markov_chain_confidence.py # Markov chain absorption confidence scores +│ ├── markov_chain_confidence.py # Markov chain absorption confidence scores +│ ├── ensembling_predict.py # Ensembling for unlabeled cohorts (no metrics) +│ └── markov_chain_confidence_predict.py # Confidence scores for unlabeled cohorts ├── scripts/ # Kubernetes job submission scripts │ ├── ml/ # train.py, test.py, neutrophils.py │ ├── preprocessing/ # Preprocessing job scripts @@ -118,6 +120,15 @@ uv run -m postprocessing.ensembling +postprocessing=ensembling uv run -m postprocessing.markov_chain_confidence +postprocessing=markov_chain_confidence ``` +For unlabeled cohorts (no ground-truth NHI grades, e.g. external validation), use the +`_predict` variants, which skip label loading and metric computation and only emit +predictions / confidence scores: + +```bash +uv run -m postprocessing.ensembling_predict +postprocessing=ensembling_predict +uv run -m postprocessing.markov_chain_confidence_predict +postprocessing=markov_chain_confidence_predict +``` + --- ## Experiments diff --git a/configs/experiment/postprocessing/predict_ensembling/ikem_validation.yaml b/configs/experiment/postprocessing/predict_ensembling/ikem_validation.yaml new file mode 100644 index 00000000..6ba8ad74 --- /dev/null +++ b/configs/experiment/postprocessing/predict_ensembling/ikem_validation.yaml @@ -0,0 +1,6 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem_validation@dataset + - /predictions/ikem_validation@predictions + - _self_ diff --git a/configs/experiment/postprocessing/predict_markov_chain_confidence/ikem_validation.yaml b/configs/experiment/postprocessing/predict_markov_chain_confidence/ikem_validation.yaml new file mode 100644 index 00000000..b03f84fd --- /dev/null +++ b/configs/experiment/postprocessing/predict_markov_chain_confidence/ikem_validation.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem_validation@dataset + - /predictions/ikem_validation@predictions + - _self_ + +confidence: std diff --git a/configs/postprocessing/ensembling_predict.yaml b/configs/postprocessing/ensembling_predict.yaml new file mode 100644 index 00000000..99d75eb8 --- /dev/null +++ b/configs/postprocessing/ensembling_predict.yaml @@ -0,0 +1,5 @@ +# @package _global_ + +metadata: + run_name: "🔀 Ensembling (predict): ${dataset.institution}" + description: Slide-level ensembling predictions for ${dataset.institution} (no ground truth) diff --git a/configs/postprocessing/markov_chain_confidence_predict.yaml b/configs/postprocessing/markov_chain_confidence_predict.yaml new file mode 100644 index 00000000..51e43488 --- /dev/null +++ b/configs/postprocessing/markov_chain_confidence_predict.yaml @@ -0,0 +1,9 @@ +# @package _global_ + +confidence: ??? # options: entropy, herfindahl, std + +metadata: + run_name: "🔗 Markov Chain Confidence (${confidence}, predict): ${dataset.institution}" + description: Markov chain absorption confidence scores for ${dataset.institution} (no ground truth) + hyperparams: + confidence: ${confidence} diff --git a/configs/predictions/ikem_validation.yaml b/configs/predictions/ikem_validation.yaml new file mode 100644 index 00000000..615cbe53 --- /dev/null +++ b/configs/predictions/ikem_validation.yaml @@ -0,0 +1,4 @@ +mlflow_uris: + nancy_high: mlflow-artifacts:/86/83d0ea0be81941978007d61ab541f5e0/artifacts/predictions.json + nancy_low: mlflow-artifacts:/86/acb168543a5d4816b27efb7846c2df6b/artifacts/predictions.json + neutrophils: mlflow-artifacts:/86/9045d4feda9a4a3a9bca71ce6ba7a0f8/artifacts/predictions.json \ No newline at end of file diff --git a/postprocessing/ensembling_predict.py b/postprocessing/ensembling_predict.py new file mode 100644 index 00000000..b5c2c6e3 --- /dev/null +++ b/postprocessing/ensembling_predict.py @@ -0,0 +1,64 @@ +from pathlib import Path +from tempfile import TemporaryDirectory + +import hydra +import numpy as np +import pandas as pd +from omegaconf import DictConfig +from rationai.mlkit import autolog, with_cli_args +from rationai.mlkit.lightning.loggers import MLFlowLogger + +from postprocessing.utils import load_predictions + +PredictionData = dict[str, pd.DataFrame] + + +def run_ensembling_predict(data: PredictionData) -> pd.DataFrame: + neut_df = data["neutrophils"] + nlow_df = data["nancy_low"] + nhigh_df = data["nancy_high"] + + neut_prob = np.array(neut_df["prediction"]) + low_probs = np.array(nlow_df["prediction"].tolist()) + high_probs = np.array(nhigh_df["prediction"].tolist()) + + low_branch = low_probs[:, :2].argmax(axis=1) + high_branch = high_probs[:, 1:].argmax(axis=1) + 2 + + # Ensembling: soft majority vote across three tasks + route_high_ens = ( + neut_prob + low_probs[:, 2] + high_probs[:, 1:].sum(axis=1) + ) >= 1.5 + ens_pred = np.where(route_high_ens, high_branch, low_branch) + + # Hierarchical: neutrophils task alone routes + hier_pred = np.where(neut_prob >= 0.5, high_branch, low_branch) + + return pd.DataFrame( + { + "slide": neut_df.index, + "pred_ensembling": ens_pred.astype(int), + "pred_hierarchical": hier_pred.astype(int), + } + ) + + +@with_cli_args(["+postprocessing=ensembling_predict"]) +@hydra.main(config_path="../configs", config_name="postprocessing", version_base=None) +@autolog +def main(config: DictConfig, logger: MLFlowLogger) -> None: + uris = { + task: config.predictions.mlflow_uris[task] + for task in ["neutrophils", "nancy_low", "nancy_high"] + } + data = load_predictions(uris) + results = run_ensembling_predict(data) + + with TemporaryDirectory() as tmpdir: + output_path = Path(tmpdir) / "results.csv" + results.to_csv(output_path, index=False) + logger.log_artifact(str(output_path)) + + +if __name__ == "__main__": + main() diff --git a/postprocessing/markov_chain_confidence_predict.py b/postprocessing/markov_chain_confidence_predict.py new file mode 100644 index 00000000..025adac3 --- /dev/null +++ b/postprocessing/markov_chain_confidence_predict.py @@ -0,0 +1,50 @@ +import hydra +import pandas as pd +from omegaconf import DictConfig +from rationai.mlkit import autolog, with_cli_args +from rationai.mlkit.lightning.loggers import MLFlowLogger + +from postprocessing.markov_chain_confidence import ( + Confidence, + absorption_distribution, + compute_confidence, +) +from postprocessing.utils import load_predictions + + +@with_cli_args(["+postprocessing=markov_chain_confidence_predict"]) +@hydra.main(config_path="../configs", config_name="postprocessing", version_base=None) +@autolog +def main(config: DictConfig, logger: MLFlowLogger) -> None: + confidence_mode = Confidence(config.confidence) + uris = { + task: config.predictions.mlflow_uris[task] + for task in ["neutrophils", "nancy_low", "nancy_high"] + } + data = load_predictions(uris) + + pi = absorption_distribution( + data["neutrophils"], data["nancy_low"], data["nancy_high"] + ) + confidence = compute_confidence(pi, confidence_mode) + + rows = [ + { + "slide": slide, + "pi_0": pi_row[0], + "pi_1": pi_row[1], + "pi_2": pi_row[2], + "pi_3": pi_row[3], + "pi_4": pi_row[4], + "confidence": conf, + } + for slide, pi_row, conf in zip( + data["neutrophils"].index, pi, confidence, strict=True + ) + ] + + logger.log_table(pd.DataFrame(rows), artifact_file="confidence.json") + + +if __name__ == "__main__": + main() diff --git a/postprocessing/utils.py b/postprocessing/utils.py index 4625ac37..1a637556 100644 --- a/postprocessing/utils.py +++ b/postprocessing/utils.py @@ -15,13 +15,17 @@ def load_label_map(dataset_uri: str) -> dict[str, int]: return {str(k): int(v) for k, v in dataset["nancy"].items()} -def load_task_predictions(uri: str, label_map: dict[str, int]) -> pd.DataFrame: +def load_task_predictions( + uri: str, label_map: dict[str, int] | None = None +) -> pd.DataFrame: artifact_path = Path(mlflow.artifacts.download_artifacts(uri)) if artifact_path.is_dir(): (artifact_path,) = artifact_path.glob("*.json") with open(artifact_path) as f: d = json.load(f) df = pd.DataFrame(d["data"], columns=d["columns"]) + if label_map is None: + return df.set_index("slide") df["nancy"] = df["slide"].map(label_map) df = df[df["nancy"].notna()].copy() df["nancy"] = df["nancy"].astype(int) @@ -30,7 +34,7 @@ def load_task_predictions(uri: str, label_map: dict[str, int]) -> pd.DataFrame: def load_predictions( uris: Mapping[str, str], - label_map: dict[str, int], + label_map: dict[str, int] | None = None, ) -> dict[str, pd.DataFrame]: task_dfs = {task: load_task_predictions(uris[task], label_map) for task in TASKS} common = task_dfs[TASKS[0]].index diff --git a/scripts/postprocessing/ensembling_predict.py b/scripts/postprocessing/ensembling_predict.py new file mode 100644 index 00000000..ac8678e2 --- /dev/null +++ b/scripts/postprocessing/ensembling_predict.py @@ -0,0 +1,16 @@ +from kube_jobs import submit_job + + +submit_job( + job_name="ulcerative-colitis-ensembling-predict-...", + username=..., + public=False, + cpu=2, + memory="4Gi", + script=[ + "git clone https://github.com/RationAI/ulcerative-colitis.git workdir", + "cd workdir", + "uv sync --frozen", + "uv run -m postprocessing.ensembling_predict +experiment=postprocessing/predict_ensembling/ikem_validation", + ], +) diff --git a/scripts/postprocessing/markov_chain_confidence_predict.py b/scripts/postprocessing/markov_chain_confidence_predict.py new file mode 100644 index 00000000..71c2709b --- /dev/null +++ b/scripts/postprocessing/markov_chain_confidence_predict.py @@ -0,0 +1,16 @@ +from kube_jobs import submit_job + + +submit_job( + job_name="ulcerative-colitis-markov-chain-confidence-predict-...", + username=..., + public=False, + cpu=2, + memory="4Gi", + script=[ + "git clone https://github.com/RationAI/ulcerative-colitis.git workdir", + "cd workdir", + "uv sync --frozen", + "uv run -m postprocessing.markov_chain_confidence_predict +experiment=postprocessing/predict_markov_chain_confidence/ikem_validation", + ], +)