diff --git a/pyproject.toml b/pyproject.toml index 6e06b1c9d195618427c18658bfc8a393496a09b4..107619fda093873189adc614ea440c6d06079545 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -82,28 +82,28 @@ alexnet_pre = "ptbench.configs.models.alexnet_pretrained" densenet = "ptbench.configs.models.densenet" densenet_pre = "ptbench.configs.models.densenet_pretrained" # montgomery dataset (and cross-validation folds) -montgomery = "ptbench.configs.datasets.montgomery.default" -montgomery_rgb = "ptbench.configs.datasets.montgomery.rgb" -montgomery_f0 = "ptbench.configs.datasets.montgomery.fold_0" -montgomery_f1 = "ptbench.configs.datasets.montgomery.fold_1" -montgomery_f2 = "ptbench.configs.datasets.montgomery.fold_2" -montgomery_f3 = "ptbench.configs.datasets.montgomery.fold_3" -montgomery_f4 = "ptbench.configs.datasets.montgomery.fold_4" -montgomery_f5 = "ptbench.configs.datasets.montgomery.fold_5" -montgomery_f6 = "ptbench.configs.datasets.montgomery.fold_6" -montgomery_f7 = "ptbench.configs.datasets.montgomery.fold_7" -montgomery_f8 = "ptbench.configs.datasets.montgomery.fold_8" -montgomery_f9 = "ptbench.configs.datasets.montgomery.fold_9" -montgomery_f0_rgb = "ptbench.configs.datasets.montgomery.fold_0_rgb" -montgomery_f1_rgb = "ptbench.configs.datasets.montgomery.fold_1_rgb" -montgomery_f2_rgb = "ptbench.configs.datasets.montgomery.fold_2_rgb" -montgomery_f3_rgb = "ptbench.configs.datasets.montgomery.fold_3_rgb" -montgomery_f4_rgb = "ptbench.configs.datasets.montgomery.fold_4_rgb" -montgomery_f5_rgb = "ptbench.configs.datasets.montgomery.fold_5_rgb" -montgomery_f6_rgb = "ptbench.configs.datasets.montgomery.fold_6_rgb" -montgomery_f7_rgb = "ptbench.configs.datasets.montgomery.fold_7_rgb" -montgomery_f8_rgb = "ptbench.configs.datasets.montgomery.fold_8_rgb" -montgomery_f9_rgb = "ptbench.configs.datasets.montgomery.fold_9_rgb" +montgomery = "ptbench.data.montgomery.default" +montgomery_rgb = "ptbench.data.montgomery.rgb" +montgomery_f0 = "ptbench.data.montgomery.fold_0" +montgomery_f1 = "ptbench.data.montgomery.montgomery.fold_1" +montgomery_f2 = "ptbench.data.montgomery.fold_2" +montgomery_f3 = "ptbench.data.montgomery.fold_3" +montgomery_f4 = "ptbench.data.montgomery.fold_4" +montgomery_f5 = "ptbench.data.montgomery.fold_5" +montgomery_f6 = "ptbench.data.montgomery.fold_6" +montgomery_f7 = "ptbench.data.montgomery.fold_7" +montgomery_f8 = "ptbench.data.montgomery.fold_8" +montgomery_f9 = "ptbench.data.montgomery.fold_9" +montgomery_f0_rgb = "ptbench.data.montgomery.fold_0_rgb" +montgomery_f1_rgb = "ptbench.data.montgomery.fold_1_rgb" +montgomery_f2_rgb = "ptbench.data.montgomery.fold_2_rgb" +montgomery_f3_rgb = "ptbench.data.montgomery.fold_3_rgb" +montgomery_f4_rgb = "ptbench.data.montgomery.fold_4_rgb" +montgomery_f5_rgb = "ptbench.data.montgomery.fold_5_rgb" +montgomery_f6_rgb = "ptbench.data.montgomery.fold_6_rgb" +montgomery_f7_rgb = "ptbench.data.montgomery.fold_7_rgb" +montgomery_f8_rgb = "ptbench.data.montgomery.fold_8_rgb" +montgomery_f9_rgb = "ptbench.data.montgomery.fold_9_rgb" # extended montgomery dataset (with radiological signs) montgomery_rs = "ptbench.configs.datasets.montgomery_RS.default" montgomery_rs_f0 = "ptbench.configs.datasets.montgomery_RS.fold_0" diff --git a/src/ptbench/configs/datasets/montgomery/__init__.py b/src/ptbench/configs/datasets/montgomery/__init__.py deleted file mode 100644 index 86070a90d32c2eca2e4b165831005cd630471682..0000000000000000000000000000000000000000 --- a/src/ptbench/configs/datasets/montgomery/__init__.py +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - - -def _maker(protocol, resize_size=512, cc_size=512, RGB=False): - from torchvision import transforms - - from ....data.montgomery import dataset as raw - from ....data.transforms import ElasticDeformation, RemoveBlackBorders - from .. import make_dataset as mk - - post_transforms = [] - if RGB: - post_transforms = [ - transforms.Lambda(lambda x: x.convert("RGB")), - transforms.ToTensor(), - ] - - return mk( - [raw.subsets(protocol)], - [ - RemoveBlackBorders(), - transforms.Resize(resize_size), - transforms.CenterCrop(cc_size), - ], - [ElasticDeformation(p=0.8)], - post_transforms, - ) diff --git a/src/ptbench/configs/datasets/montgomery/default.py b/src/ptbench/configs/datasets/montgomery/default.py deleted file mode 100644 index b00437e20d6d2fb4e55d2e10680d098478685e96..0000000000000000000000000000000000000000 --- a/src/ptbench/configs/datasets/montgomery/default.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Montgomery dataset for TB detection (default protocol) - -* Split reference: first 64% of TB and healthy CXR for "train" 16% for -* "validation", 20% for "test" -* This configuration resolution: 512 x 512 (default) -* See :py:mod:`ptbench.data.montgomery` for dataset details -""" - -from . import _maker - -dataset = _maker("default") diff --git a/src/ptbench/configs/datasets/montgomery/fold_0.py b/src/ptbench/configs/datasets/montgomery/fold_0.py deleted file mode 100644 index a1d712372ceb82669a0c64d48680d73f5117be75..0000000000000000000000000000000000000000 --- a/src/ptbench/configs/datasets/montgomery/fold_0.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Montgomery dataset for TB detection (cross validation fold 0) - -* Split reference: first 64% of TB and healthy CXR for "train" 16% for -* "validation", 20% for "test" -* This configuration resolution: 512 x 512 (default) -* See :py:mod:`ptbench.data.montgomery` for dataset details -""" - -from . import _maker - -dataset = _maker("fold_0") diff --git a/src/ptbench/configs/datasets/montgomery/fold_0_rgb.py b/src/ptbench/configs/datasets/montgomery/fold_0_rgb.py deleted file mode 100644 index 059dba2e9ccf4b86ded7fd453eb75f24e44224d1..0000000000000000000000000000000000000000 --- a/src/ptbench/configs/datasets/montgomery/fold_0_rgb.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Montgomery dataset for TB detection (cross validation fold 0, RGB) - -* Split reference: first 64% of TB and healthy CXR for "train" 16% for -* "validation", 20% for "test" -* This configuration resolution: 512 x 512 (default) -* See :py:mod:`ptbench.data.montgomery` for dataset details -""" - -from . import _maker - -dataset = _maker("fold_0", RGB=True) diff --git a/src/ptbench/configs/datasets/montgomery/fold_1.py b/src/ptbench/configs/datasets/montgomery/fold_1.py deleted file mode 100644 index 4ee7db38fcb04d3ba8a53ecb5ebd8259a10de337..0000000000000000000000000000000000000000 --- a/src/ptbench/configs/datasets/montgomery/fold_1.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Montgomery dataset for TB detection (cross validation fold 1) - -* Split reference: first 64% of TB and healthy CXR for "train" 16% for -* "validation", 20% for "test" -* This configuration resolution: 512 x 512 (default) -* See :py:mod:`ptbench.data.montgomery` for dataset details -""" - -from . import _maker - -dataset = _maker("fold_1") diff --git a/src/ptbench/configs/datasets/montgomery/fold_1_rgb.py b/src/ptbench/configs/datasets/montgomery/fold_1_rgb.py deleted file mode 100644 index 9bc9214c19569fb6db99db2210f2ac4becb91fb7..0000000000000000000000000000000000000000 --- a/src/ptbench/configs/datasets/montgomery/fold_1_rgb.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Montgomery dataset for TB detection (cross validation fold 1, RGB) - -* Split reference: first 64% of TB and healthy CXR for "train" 16% for -* "validation", 20% for "test" -* This configuration resolution: 512 x 512 (default) -* See :py:mod:`ptbench.data.montgomery` for dataset details -""" - -from . import _maker - -dataset = _maker("fold_1", RGB=True) diff --git a/src/ptbench/configs/datasets/montgomery/fold_2.py b/src/ptbench/configs/datasets/montgomery/fold_2.py deleted file mode 100644 index 6574b5de62a77dd8de866e84ef8715ce8946a5c2..0000000000000000000000000000000000000000 --- a/src/ptbench/configs/datasets/montgomery/fold_2.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Montgomery dataset for TB detection (cross validation fold 2) - -* Split reference: first 64% of TB and healthy CXR for "train" 16% for -* "validation", 20% for "test" -* This configuration resolution: 512 x 512 (default) -* See :py:mod:`ptbench.data.montgomery` for dataset details -""" - -from . import _maker - -dataset = _maker("fold_2") diff --git a/src/ptbench/configs/datasets/montgomery/fold_2_rgb.py b/src/ptbench/configs/datasets/montgomery/fold_2_rgb.py deleted file mode 100644 index 3423c925e07045e110ed9448577062a751abbb68..0000000000000000000000000000000000000000 --- a/src/ptbench/configs/datasets/montgomery/fold_2_rgb.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Montgomery dataset for TB detection (cross validation fold 2, RGB) - -* Split reference: first 64% of TB and healthy CXR for "train" 16% for -* "validation", 20% for "test" -* This configuration resolution: 512 x 512 (default) -* See :py:mod:`ptbench.data.montgomery` for dataset details -""" - -from . import _maker - -dataset = _maker("fold_2", RGB=True) diff --git a/src/ptbench/configs/datasets/montgomery/fold_3.py b/src/ptbench/configs/datasets/montgomery/fold_3.py deleted file mode 100644 index 99d94f141b1882b8f37f932fc6b25d69f049af97..0000000000000000000000000000000000000000 --- a/src/ptbench/configs/datasets/montgomery/fold_3.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Montgomery dataset for TB detection (cross validation fold 3) - -* Split reference: first 64% of TB and healthy CXR for "train" 16% for -* "validation", 20% for "test" -* This configuration resolution: 512 x 512 (default) -* See :py:mod:`ptbench.data.montgomery` for dataset details -""" - -from . import _maker - -dataset = _maker("fold_3") diff --git a/src/ptbench/configs/datasets/montgomery/fold_3_rgb.py b/src/ptbench/configs/datasets/montgomery/fold_3_rgb.py deleted file mode 100644 index c1873c5389dc718fdc4c9116f9aacb164351444d..0000000000000000000000000000000000000000 --- a/src/ptbench/configs/datasets/montgomery/fold_3_rgb.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Montgomery dataset for TB detection (cross validation fold 3, RGB) - -* Split reference: first 64% of TB and healthy CXR for "train" 16% for -* "validation", 20% for "test" -* This configuration resolution: 512 x 512 (default) -* See :py:mod:`ptbench.data.montgomery` for dataset details -""" - -from . import _maker - -dataset = _maker("fold_3", RGB=True) diff --git a/src/ptbench/configs/datasets/montgomery/fold_4.py b/src/ptbench/configs/datasets/montgomery/fold_4.py deleted file mode 100644 index 42584bad7ebb2e0e83233f8e2f6f9f4adea86c57..0000000000000000000000000000000000000000 --- a/src/ptbench/configs/datasets/montgomery/fold_4.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Montgomery dataset for TB detection (cross validation fold 4) - -* Split reference: first 64% of TB and healthy CXR for "train" 16% for -* "validation", 20% for "test" -* This configuration resolution: 512 x 512 (default) -* See :py:mod:`ptbench.data.montgomery` for dataset details -""" - -from . import _maker - -dataset = _maker("fold_4") diff --git a/src/ptbench/configs/datasets/montgomery/fold_4_rgb.py b/src/ptbench/configs/datasets/montgomery/fold_4_rgb.py deleted file mode 100644 index ed76962e9dbd92120125f80d6162a24ce4ccca1a..0000000000000000000000000000000000000000 --- a/src/ptbench/configs/datasets/montgomery/fold_4_rgb.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Montgomery dataset for TB detection (cross validation fold 4, RGB) - -* Split reference: first 64% of TB and healthy CXR for "train" 16% for -* "validation", 20% for "test" -* This configuration resolution: 512 x 512 (default) -* See :py:mod:`ptbench.data.montgomery` for dataset details -""" - -from . import _maker - -dataset = _maker("fold_4", RGB=True) diff --git a/src/ptbench/configs/datasets/montgomery/fold_5.py b/src/ptbench/configs/datasets/montgomery/fold_5.py deleted file mode 100644 index bb05a3f94a10efacf2060953c6530fef2f6836ba..0000000000000000000000000000000000000000 --- a/src/ptbench/configs/datasets/montgomery/fold_5.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Montgomery dataset for TB detection (cross validation fold 5) - -* Split reference: first 64% of TB and healthy CXR for "train" 16% for -* "validation", 20% for "test" -* This configuration resolution: 512 x 512 (default) -* See :py:mod:`ptbench.data.montgomery` for dataset details -""" - -from . import _maker - -dataset = _maker("fold_5") diff --git a/src/ptbench/configs/datasets/montgomery/fold_5_rgb.py b/src/ptbench/configs/datasets/montgomery/fold_5_rgb.py deleted file mode 100644 index a65fd2c77ec0d4febda6fe16f01fdb7f2b08f4b4..0000000000000000000000000000000000000000 --- a/src/ptbench/configs/datasets/montgomery/fold_5_rgb.py +++ /dev/null @@ -1,15 +0,0 @@ -# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Montgomery dataset for TB detection (cross validation fold 5, RGB) - -* Split reference: first 64% of TB and healthy CXR for "train" 16% for -* "validation", 20% for "test" -* This configuration resolution: 512 x 512 (default) -* See :py:mod:`ptbench.data.montgomery` for dataset details -""" - -from . import _maker - -dataset = _maker("fold_5", RGB=True) diff --git a/src/ptbench/configs/datasets/montgomery/fold_6.py b/src/ptbench/configs/datasets/montgomery/fold_6.py deleted file mode 100644 index bbd97489573f4c1c60d6a59a9bdb24fe5e5e4b1d..0000000000000000000000000000000000000000 --- a/src/ptbench/configs/datasets/montgomery/fold_6.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Montgomery dataset for TB detection (cross validation fold 6) - -* Split reference: first 64% of TB and healthy CXR for "train" 16% for -* "validation", 20% for "test" -* This configuration resolution: 512 x 512 (default) -* See :py:mod:`ptbench.data.montgomery` for dataset details -""" - -from . import _maker - -dataset = _maker("fold_6") diff --git a/src/ptbench/configs/datasets/montgomery/fold_6_rgb.py b/src/ptbench/configs/datasets/montgomery/fold_6_rgb.py deleted file mode 100644 index 89c7df33784af40b484a13d501887d3e4ec4ee00..0000000000000000000000000000000000000000 --- a/src/ptbench/configs/datasets/montgomery/fold_6_rgb.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Montgomery dataset for TB detection (cross validation fold 6, RGB) - -* Split reference: first 64% of TB and healthy CXR for "train" 16% for -* "validation", 20% for "test" -* This configuration resolution: 512 x 512 (default) -* See :py:mod:`ptbench.data.montgomery` for dataset details -""" - -from . import _maker - -dataset = _maker("fold_6", RGB=True) diff --git a/src/ptbench/configs/datasets/montgomery/fold_7.py b/src/ptbench/configs/datasets/montgomery/fold_7.py deleted file mode 100644 index 00ed7d68d846bfcf83f8da53b03a5b3116cc44d2..0000000000000000000000000000000000000000 --- a/src/ptbench/configs/datasets/montgomery/fold_7.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Montgomery dataset for TB detection (cross validation fold 7) - -* Split reference: first 64% of TB and healthy CXR for "train" 16% for -* "validation", 20% for "test" -* This configuration resolution: 512 x 512 (default) -* See :py:mod:`ptbench.data.montgomery` for dataset details -""" - -from . import _maker - -dataset = _maker("fold_7") diff --git a/src/ptbench/configs/datasets/montgomery/fold_7_rgb.py b/src/ptbench/configs/datasets/montgomery/fold_7_rgb.py deleted file mode 100644 index 01a7c829e0928d845b78d9ab1d80c59b1b9a61a5..0000000000000000000000000000000000000000 --- a/src/ptbench/configs/datasets/montgomery/fold_7_rgb.py +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - - -"""Montgomery dataset for TB detection (cross validation fold 7, RGB) - -* Split reference: first 64% of TB and healthy CXR for "train" 16% for -* "validation", 20% for "test" -* This configuration resolution: 512 x 512 (default) -* See :py:mod:`ptbench.data.montgomery` for dataset details -""" - -from . import _maker - -dataset = _maker("fold_7", RGB=True) diff --git a/src/ptbench/configs/datasets/montgomery/fold_8.py b/src/ptbench/configs/datasets/montgomery/fold_8.py deleted file mode 100644 index 96f49d744aa370bf892a5cf807fc32938a129c72..0000000000000000000000000000000000000000 --- a/src/ptbench/configs/datasets/montgomery/fold_8.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Montgomery dataset for TB detection (cross validation fold 8) - -* Split reference: first 64% of TB and healthy CXR for "train" 16% for -* "validation", 20% for "test" -* This configuration resolution: 512 x 512 (default) -* See :py:mod:`ptbench.data.montgomery` for dataset details -""" - -from . import _maker - -dataset = _maker("fold_8") diff --git a/src/ptbench/configs/datasets/montgomery/fold_8_rgb.py b/src/ptbench/configs/datasets/montgomery/fold_8_rgb.py deleted file mode 100644 index b9a2a55659c6c89e21337d085fb19b37fecba508..0000000000000000000000000000000000000000 --- a/src/ptbench/configs/datasets/montgomery/fold_8_rgb.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Montgomery dataset for TB detection (cross validation fold 8, RGB) - -* Split reference: first 64% of TB and healthy CXR for "train" 16% for -* "validation", 20% for "test" -* This configuration resolution: 512 x 512 (default) -* See :py:mod:`ptbench.data.montgomery` for dataset details -""" - -from . import _maker - -dataset = _maker("fold_8", RGB=True) diff --git a/src/ptbench/configs/datasets/montgomery/fold_9.py b/src/ptbench/configs/datasets/montgomery/fold_9.py deleted file mode 100644 index 114392e4d35e1ca022b4e2a9b9372880efe657e1..0000000000000000000000000000000000000000 --- a/src/ptbench/configs/datasets/montgomery/fold_9.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Montgomery dataset for TB detection (cross validation fold 9) - -* Split reference: first 64% of TB and healthy CXR for "train" 16% for -* "validation", 20% for "test" -* This configuration resolution: 512 x 512 (default) -* See :py:mod:`ptbench.data.montgomery` for dataset details -""" - -from . import _maker - -dataset = _maker("fold_9") diff --git a/src/ptbench/configs/datasets/montgomery/fold_9_rgb.py b/src/ptbench/configs/datasets/montgomery/fold_9_rgb.py deleted file mode 100644 index df5340cb2655312c3e6d2f3df066c1b9b29874ca..0000000000000000000000000000000000000000 --- a/src/ptbench/configs/datasets/montgomery/fold_9_rgb.py +++ /dev/null @@ -1,15 +0,0 @@ -# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Montgomery dataset for TB detection (cross validation fold 9, RGB) - -* Split reference: first 64% of TB and healthy CXR for "train" 16% for -* "validation", 20% for "test" -* This configuration resolution: 512 x 512 (default) -* See :py:mod:`ptbench.data.montgomery` for dataset details -""" - -from . import _maker - -dataset = _maker("fold_9", RGB=True) diff --git a/src/ptbench/configs/datasets/montgomery/rgb.py b/src/ptbench/configs/datasets/montgomery/rgb.py deleted file mode 100644 index 880ae2d14b4fad5984871b2b09a19e743ebadb39..0000000000000000000000000000000000000000 --- a/src/ptbench/configs/datasets/montgomery/rgb.py +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Montgomery dataset for TB detection (default protocol, converted in RGB) - -* Split reference: first 64% of TB and healthy CXR for "train" 16% for -* "validation", 20% for "test" -* This configuration resolution: 512 x 512 (default) -* See :py:mod:`ptbench.data.montgomery` for dataset details -""" - -from . import _maker - -dataset = _maker("default", RGB=True) diff --git a/src/ptbench/data/montgomery/__init__.py b/src/ptbench/data/montgomery/__init__.py index 38b50a26f241e57c53f7be0fbf211055d754ee08..65239cbf5d908075346675ad10e7c86569383f77 100644 --- a/src/ptbench/data/montgomery/__init__.py +++ b/src/ptbench/data/montgomery/__init__.py @@ -22,6 +22,7 @@ import importlib.resources import os from ...utils.rc import load_rc +from .. import make_dataset from ..dataset import JSONDataset from ..loader import load_pil_baw, make_delayed @@ -55,9 +56,33 @@ def _loader(context, sample): return make_delayed(sample, _raw_data_loader) -dataset = JSONDataset( +json_dataset = JSONDataset( protocols=_protocols, fieldnames=("data", "label"), loader=_loader, ) """Montgomery dataset object.""" + + +def _maker(protocol, resize_size=512, cc_size=512, RGB=False): + from torchvision import transforms + + from ..transforms import ElasticDeformation, RemoveBlackBorders + + post_transforms = [] + if RGB: + post_transforms = [ + transforms.Lambda(lambda x: x.convert("RGB")), + transforms.ToTensor(), + ] + + return make_dataset( + [json_dataset.subsets(protocol)], + [ + RemoveBlackBorders(), + transforms.Resize(resize_size), + transforms.CenterCrop(cc_size), + ], + [ElasticDeformation(p=0.8)], + post_transforms, + ) diff --git a/src/ptbench/data/montgomery/default.py b/src/ptbench/data/montgomery/default.py new file mode 100644 index 0000000000000000000000000000000000000000..1f5c0809869be5f011880e808e160024b3c1c1b0 --- /dev/null +++ b/src/ptbench/data/montgomery/default.py @@ -0,0 +1,47 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Montgomery dataset for TB detection (default protocol) + +* Split reference: first 64% of TB and healthy CXR for "train" 16% for +* "validation", 20% for "test" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.montgomery` for dataset details +""" + +from clapper.logging import setup + +from .. import return_subsets +from ..base_datamodule import BaseDataModule +from . import _maker + +logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") + + +class DefaultModule(BaseDataModule): + def __init__( + self, + train_batch_size=1, + predict_batch_size=1, + drop_incomplete_batch=False, + multiproc_kwargs=None, + ): + super().__init__( + train_batch_size=train_batch_size, + predict_batch_size=predict_batch_size, + drop_incomplete_batch=drop_incomplete_batch, + multiproc_kwargs=multiproc_kwargs, + ) + + def setup(self, stage: str): + self.dataset = _maker("default") + ( + self.train_dataset, + self.validation_dataset, + self.extra_validation_datasets, + self.predict_dataset, + ) = return_subsets(self.dataset) + + +datamodule = DefaultModule diff --git a/src/ptbench/data/montgomery/fold_0.py b/src/ptbench/data/montgomery/fold_0.py new file mode 100644 index 0000000000000000000000000000000000000000..c60791be50ccd5186ce8e4af263efb7d7513b07a --- /dev/null +++ b/src/ptbench/data/montgomery/fold_0.py @@ -0,0 +1,47 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Montgomery dataset for TB detection (cross validation fold 0) + +* Split reference: first 64% of TB and healthy CXR for "train" 16% for +* "validation", 20% for "test" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.montgomery` for dataset details +""" + +from clapper.logging import setup + +from .. import return_subsets +from ..base_datamodule import BaseDataModule +from . import _maker + +logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") + + +class DefaultModule(BaseDataModule): + def __init__( + self, + train_batch_size=1, + predict_batch_size=1, + drop_incomplete_batch=False, + multiproc_kwargs=None, + ): + super().__init__( + train_batch_size=train_batch_size, + predict_batch_size=predict_batch_size, + drop_incomplete_batch=drop_incomplete_batch, + multiproc_kwargs=multiproc_kwargs, + ) + + def setup(self, stage: str): + self.dataset = _maker("fold_0") + ( + self.train_dataset, + self.validation_dataset, + self.extra_validation_datasets, + self.predict_dataset, + ) = return_subsets(self.dataset) + + +datamodule = DefaultModule diff --git a/src/ptbench/data/montgomery/fold_0_rgb.py b/src/ptbench/data/montgomery/fold_0_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..8e8b0c8914b6a63dd9ab854984ff2bc51cb4e255 --- /dev/null +++ b/src/ptbench/data/montgomery/fold_0_rgb.py @@ -0,0 +1,47 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Montgomery dataset for TB detection (cross validation fold 0, RGB) + +* Split reference: first 64% of TB and healthy CXR for "train" 16% for +* "validation", 20% for "test" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.montgomery` for dataset details +""" + +from clapper.logging import setup + +from .. import return_subsets +from ..base_datamodule import BaseDataModule +from . import _maker + +logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") + + +class DefaultModule(BaseDataModule): + def __init__( + self, + train_batch_size=1, + predict_batch_size=1, + drop_incomplete_batch=False, + multiproc_kwargs=None, + ): + super().__init__( + train_batch_size=train_batch_size, + predict_batch_size=predict_batch_size, + drop_incomplete_batch=drop_incomplete_batch, + multiproc_kwargs=multiproc_kwargs, + ) + + def setup(self, stage: str): + self.dataset = _maker("fold_0", RGB=True) + ( + self.train_dataset, + self.validation_dataset, + self.extra_validation_datasets, + self.predict_dataset, + ) = return_subsets(self.dataset) + + +datamodule = DefaultModule diff --git a/src/ptbench/data/montgomery/fold_1.py b/src/ptbench/data/montgomery/fold_1.py new file mode 100644 index 0000000000000000000000000000000000000000..d6627e673978bcf960b8fb5f72add7cb4a13a141 --- /dev/null +++ b/src/ptbench/data/montgomery/fold_1.py @@ -0,0 +1,47 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Montgomery dataset for TB detection (cross validation fold 1) + +* Split reference: first 64% of TB and healthy CXR for "train" 16% for +* "validation", 20% for "test" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.montgomery` for dataset details +""" + +from clapper.logging import setup + +from .. import return_subsets +from ..base_datamodule import BaseDataModule +from . import _maker + +logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") + + +class DefaultModule(BaseDataModule): + def __init__( + self, + train_batch_size=1, + predict_batch_size=1, + drop_incomplete_batch=False, + multiproc_kwargs=None, + ): + super().__init__( + train_batch_size=train_batch_size, + predict_batch_size=predict_batch_size, + drop_incomplete_batch=drop_incomplete_batch, + multiproc_kwargs=multiproc_kwargs, + ) + + def setup(self, stage: str): + self.dataset = _maker("fold_1") + ( + self.train_dataset, + self.validation_dataset, + self.extra_validation_datasets, + self.predict_dataset, + ) = return_subsets(self.dataset) + + +datamodule = DefaultModule diff --git a/src/ptbench/data/montgomery/fold_1_rgb.py b/src/ptbench/data/montgomery/fold_1_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..bc47a322c3fd779e3bc19924f6d7ac7c13e71847 --- /dev/null +++ b/src/ptbench/data/montgomery/fold_1_rgb.py @@ -0,0 +1,47 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Montgomery dataset for TB detection (cross validation fold 1, RGB) + +* Split reference: first 64% of TB and healthy CXR for "train" 16% for +* "validation", 20% for "test" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.montgomery` for dataset details +""" + +from clapper.logging import setup + +from .. import return_subsets +from ..base_datamodule import BaseDataModule +from . import _maker + +logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") + + +class DefaultModule(BaseDataModule): + def __init__( + self, + train_batch_size=1, + predict_batch_size=1, + drop_incomplete_batch=False, + multiproc_kwargs=None, + ): + super().__init__( + train_batch_size=train_batch_size, + predict_batch_size=predict_batch_size, + drop_incomplete_batch=drop_incomplete_batch, + multiproc_kwargs=multiproc_kwargs, + ) + + def setup(self, stage: str): + self.dataset = _maker("fold_1", RGB=True) + ( + self.train_dataset, + self.validation_dataset, + self.extra_validation_datasets, + self.predict_dataset, + ) = return_subsets(self.dataset) + + +datamodule = DefaultModule diff --git a/src/ptbench/data/montgomery/fold_2.py b/src/ptbench/data/montgomery/fold_2.py new file mode 100644 index 0000000000000000000000000000000000000000..8c5f4a66fd2af0b9f26b67241f45c630f69bd06a --- /dev/null +++ b/src/ptbench/data/montgomery/fold_2.py @@ -0,0 +1,47 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Montgomery dataset for TB detection (cross validation fold 2) + +* Split reference: first 64% of TB and healthy CXR for "train" 16% for +* "validation", 20% for "test" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.montgomery` for dataset details +""" + +from clapper.logging import setup + +from .. import return_subsets +from ..base_datamodule import BaseDataModule +from . import _maker + +logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") + + +class DefaultModule(BaseDataModule): + def __init__( + self, + train_batch_size=1, + predict_batch_size=1, + drop_incomplete_batch=False, + multiproc_kwargs=None, + ): + super().__init__( + train_batch_size=train_batch_size, + predict_batch_size=predict_batch_size, + drop_incomplete_batch=drop_incomplete_batch, + multiproc_kwargs=multiproc_kwargs, + ) + + def setup(self, stage: str): + self.dataset = _maker("fold_2") + ( + self.train_dataset, + self.validation_dataset, + self.extra_validation_datasets, + self.predict_dataset, + ) = return_subsets(self.dataset) + + +datamodule = DefaultModule diff --git a/src/ptbench/data/montgomery/fold_2_rgb.py b/src/ptbench/data/montgomery/fold_2_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..b81a877b2bc7372a99812a27935e6daf42401568 --- /dev/null +++ b/src/ptbench/data/montgomery/fold_2_rgb.py @@ -0,0 +1,47 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Montgomery dataset for TB detection (cross validation fold 2, RGB) + +* Split reference: first 64% of TB and healthy CXR for "train" 16% for +* "validation", 20% for "test" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.montgomery` for dataset details +""" + +from clapper.logging import setup + +from .. import return_subsets +from ..base_datamodule import BaseDataModule +from . import _maker + +logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") + + +class DefaultModule(BaseDataModule): + def __init__( + self, + train_batch_size=1, + predict_batch_size=1, + drop_incomplete_batch=False, + multiproc_kwargs=None, + ): + super().__init__( + train_batch_size=train_batch_size, + predict_batch_size=predict_batch_size, + drop_incomplete_batch=drop_incomplete_batch, + multiproc_kwargs=multiproc_kwargs, + ) + + def setup(self, stage: str): + self.dataset = _maker("fold_2", RGB=True) + ( + self.train_dataset, + self.validation_dataset, + self.extra_validation_datasets, + self.predict_dataset, + ) = return_subsets(self.dataset) + + +datamodule = DefaultModule diff --git a/src/ptbench/data/montgomery/fold_3.py b/src/ptbench/data/montgomery/fold_3.py new file mode 100644 index 0000000000000000000000000000000000000000..8e685d7e3baa3a23924c62a77ffc61bf51e12056 --- /dev/null +++ b/src/ptbench/data/montgomery/fold_3.py @@ -0,0 +1,47 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Montgomery dataset for TB detection (cross validation fold 3) + +* Split reference: first 64% of TB and healthy CXR for "train" 16% for +* "validation", 20% for "test" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.montgomery` for dataset details +""" + +from clapper.logging import setup + +from .. import return_subsets +from ..base_datamodule import BaseDataModule +from . import _maker + +logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") + + +class DefaultModule(BaseDataModule): + def __init__( + self, + train_batch_size=1, + predict_batch_size=1, + drop_incomplete_batch=False, + multiproc_kwargs=None, + ): + super().__init__( + train_batch_size=train_batch_size, + predict_batch_size=predict_batch_size, + drop_incomplete_batch=drop_incomplete_batch, + multiproc_kwargs=multiproc_kwargs, + ) + + def setup(self, stage: str): + self.dataset = _maker("fold_3") + ( + self.train_dataset, + self.validation_dataset, + self.extra_validation_datasets, + self.predict_dataset, + ) = return_subsets(self.dataset) + + +datamodule = DefaultModule diff --git a/src/ptbench/data/montgomery/fold_3_rgb.py b/src/ptbench/data/montgomery/fold_3_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..7b600371c8d434d79049c6e6423b36e99f2a32cb --- /dev/null +++ b/src/ptbench/data/montgomery/fold_3_rgb.py @@ -0,0 +1,47 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Montgomery dataset for TB detection (cross validation fold 3, RGB) + +* Split reference: first 64% of TB and healthy CXR for "train" 16% for +* "validation", 20% for "test" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.montgomery` for dataset details +""" + +from clapper.logging import setup + +from .. import return_subsets +from ..base_datamodule import BaseDataModule +from . import _maker + +logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") + + +class DefaultModule(BaseDataModule): + def __init__( + self, + train_batch_size=1, + predict_batch_size=1, + drop_incomplete_batch=False, + multiproc_kwargs=None, + ): + super().__init__( + train_batch_size=train_batch_size, + predict_batch_size=predict_batch_size, + drop_incomplete_batch=drop_incomplete_batch, + multiproc_kwargs=multiproc_kwargs, + ) + + def setup(self, stage: str): + self.dataset = _maker("fold_3", RGB=True) + ( + self.train_dataset, + self.validation_dataset, + self.extra_validation_datasets, + self.predict_dataset, + ) = return_subsets(self.dataset) + + +datamodule = DefaultModule diff --git a/src/ptbench/data/montgomery/fold_4.py b/src/ptbench/data/montgomery/fold_4.py new file mode 100644 index 0000000000000000000000000000000000000000..9459cb938605df06823a86a96fbd1cf374fe9738 --- /dev/null +++ b/src/ptbench/data/montgomery/fold_4.py @@ -0,0 +1,47 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Montgomery dataset for TB detection (cross validation fold 4) + +* Split reference: first 64% of TB and healthy CXR for "train" 16% for +* "validation", 20% for "test" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.montgomery` for dataset details +""" + +from clapper.logging import setup + +from .. import return_subsets +from ..base_datamodule import BaseDataModule +from . import _maker + +logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") + + +class DefaultModule(BaseDataModule): + def __init__( + self, + train_batch_size=1, + predict_batch_size=1, + drop_incomplete_batch=False, + multiproc_kwargs=None, + ): + super().__init__( + train_batch_size=train_batch_size, + predict_batch_size=predict_batch_size, + drop_incomplete_batch=drop_incomplete_batch, + multiproc_kwargs=multiproc_kwargs, + ) + + def setup(self, stage: str): + self.dataset = _maker("fold_4") + ( + self.train_dataset, + self.validation_dataset, + self.extra_validation_datasets, + self.predict_dataset, + ) = return_subsets(self.dataset) + + +datamodule = DefaultModule diff --git a/src/ptbench/data/montgomery/fold_4_rgb.py b/src/ptbench/data/montgomery/fold_4_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..3eb136f654ab8d8d648468948e05dad774d85076 --- /dev/null +++ b/src/ptbench/data/montgomery/fold_4_rgb.py @@ -0,0 +1,47 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Montgomery dataset for TB detection (cross validation fold 4, RGB) + +* Split reference: first 64% of TB and healthy CXR for "train" 16% for +* "validation", 20% for "test" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.montgomery` for dataset details +""" + +from clapper.logging import setup + +from .. import return_subsets +from ..base_datamodule import BaseDataModule +from . import _maker + +logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") + + +class DefaultModule(BaseDataModule): + def __init__( + self, + train_batch_size=1, + predict_batch_size=1, + drop_incomplete_batch=False, + multiproc_kwargs=None, + ): + super().__init__( + train_batch_size=train_batch_size, + predict_batch_size=predict_batch_size, + drop_incomplete_batch=drop_incomplete_batch, + multiproc_kwargs=multiproc_kwargs, + ) + + def setup(self, stage: str): + self.dataset = _maker("fold_4", RGB=True) + ( + self.train_dataset, + self.validation_dataset, + self.extra_validation_datasets, + self.predict_dataset, + ) = return_subsets(self.dataset) + + +datamodule = DefaultModule diff --git a/src/ptbench/data/montgomery/fold_5.py b/src/ptbench/data/montgomery/fold_5.py new file mode 100644 index 0000000000000000000000000000000000000000..147690f6d54f15d50b52f88288dbc8a41dfb7f33 --- /dev/null +++ b/src/ptbench/data/montgomery/fold_5.py @@ -0,0 +1,47 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Montgomery dataset for TB detection (cross validation fold 5) + +* Split reference: first 64% of TB and healthy CXR for "train" 16% for +* "validation", 20% for "test" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.montgomery` for dataset details +""" + +from clapper.logging import setup + +from .. import return_subsets +from ..base_datamodule import BaseDataModule +from . import _maker + +logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") + + +class DefaultModule(BaseDataModule): + def __init__( + self, + train_batch_size=1, + predict_batch_size=1, + drop_incomplete_batch=False, + multiproc_kwargs=None, + ): + super().__init__( + train_batch_size=train_batch_size, + predict_batch_size=predict_batch_size, + drop_incomplete_batch=drop_incomplete_batch, + multiproc_kwargs=multiproc_kwargs, + ) + + def setup(self, stage: str): + self.dataset = _maker("fold_5") + ( + self.train_dataset, + self.validation_dataset, + self.extra_validation_datasets, + self.predict_dataset, + ) = return_subsets(self.dataset) + + +datamodule = DefaultModule diff --git a/src/ptbench/data/montgomery/fold_5_rgb.py b/src/ptbench/data/montgomery/fold_5_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..3e7cb73f6957086b99147812b07f733dc51af9ec --- /dev/null +++ b/src/ptbench/data/montgomery/fold_5_rgb.py @@ -0,0 +1,47 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Montgomery dataset for TB detection (cross validation fold 5, RGB) + +* Split reference: first 64% of TB and healthy CXR for "train" 16% for +* "validation", 20% for "test" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.montgomery` for dataset details +""" + +from clapper.logging import setup + +from .. import return_subsets +from ..base_datamodule import BaseDataModule +from . import _maker + +logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") + + +class DefaultModule(BaseDataModule): + def __init__( + self, + train_batch_size=1, + predict_batch_size=1, + drop_incomplete_batch=False, + multiproc_kwargs=None, + ): + super().__init__( + train_batch_size=train_batch_size, + predict_batch_size=predict_batch_size, + drop_incomplete_batch=drop_incomplete_batch, + multiproc_kwargs=multiproc_kwargs, + ) + + def setup(self, stage: str): + self.dataset = _maker("fold_5", RGB=True) + ( + self.train_dataset, + self.validation_dataset, + self.extra_validation_datasets, + self.predict_dataset, + ) = return_subsets(self.dataset) + + +datamodule = DefaultModule diff --git a/src/ptbench/data/montgomery/fold_6.py b/src/ptbench/data/montgomery/fold_6.py new file mode 100644 index 0000000000000000000000000000000000000000..69f24390ac01271c3e961950d429d973e535c380 --- /dev/null +++ b/src/ptbench/data/montgomery/fold_6.py @@ -0,0 +1,47 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Montgomery dataset for TB detection (cross validation fold 6) + +* Split reference: first 64% of TB and healthy CXR for "train" 16% for +* "validation", 20% for "test" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.montgomery` for dataset details +""" + +from clapper.logging import setup + +from .. import return_subsets +from ..base_datamodule import BaseDataModule +from . import _maker + +logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") + + +class DefaultModule(BaseDataModule): + def __init__( + self, + train_batch_size=1, + predict_batch_size=1, + drop_incomplete_batch=False, + multiproc_kwargs=None, + ): + super().__init__( + train_batch_size=train_batch_size, + predict_batch_size=predict_batch_size, + drop_incomplete_batch=drop_incomplete_batch, + multiproc_kwargs=multiproc_kwargs, + ) + + def setup(self, stage: str): + self.dataset = _maker("fold_6") + ( + self.train_dataset, + self.validation_dataset, + self.extra_validation_datasets, + self.predict_dataset, + ) = return_subsets(self.dataset) + + +datamodule = DefaultModule diff --git a/src/ptbench/data/montgomery/fold_6_rgb.py b/src/ptbench/data/montgomery/fold_6_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..ff3a8cdb0c00f511f4ebb7abcfabb10ae7853e99 --- /dev/null +++ b/src/ptbench/data/montgomery/fold_6_rgb.py @@ -0,0 +1,47 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Montgomery dataset for TB detection (cross validation fold 6, RGB) + +* Split reference: first 64% of TB and healthy CXR for "train" 16% for +* "validation", 20% for "test" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.montgomery` for dataset details +""" + +from clapper.logging import setup + +from .. import return_subsets +from ..base_datamodule import BaseDataModule +from . import _maker + +logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") + + +class DefaultModule(BaseDataModule): + def __init__( + self, + train_batch_size=1, + predict_batch_size=1, + drop_incomplete_batch=False, + multiproc_kwargs=None, + ): + super().__init__( + train_batch_size=train_batch_size, + predict_batch_size=predict_batch_size, + drop_incomplete_batch=drop_incomplete_batch, + multiproc_kwargs=multiproc_kwargs, + ) + + def setup(self, stage: str): + self.dataset = _maker("fold_6", RGB=True) + ( + self.train_dataset, + self.validation_dataset, + self.extra_validation_datasets, + self.predict_dataset, + ) = return_subsets(self.dataset) + + +datamodule = DefaultModule diff --git a/src/ptbench/data/montgomery/fold_7.py b/src/ptbench/data/montgomery/fold_7.py new file mode 100644 index 0000000000000000000000000000000000000000..20ba9d3a7da5ffcb8673e685a0534d82fdb7ed2b --- /dev/null +++ b/src/ptbench/data/montgomery/fold_7.py @@ -0,0 +1,47 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Montgomery dataset for TB detection (cross validation fold 7) + +* Split reference: first 64% of TB and healthy CXR for "train" 16% for +* "validation", 20% for "test" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.montgomery` for dataset details +""" + +from clapper.logging import setup + +from .. import return_subsets +from ..base_datamodule import BaseDataModule +from . import _maker + +logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") + + +class DefaultModule(BaseDataModule): + def __init__( + self, + train_batch_size=1, + predict_batch_size=1, + drop_incomplete_batch=False, + multiproc_kwargs=None, + ): + super().__init__( + train_batch_size=train_batch_size, + predict_batch_size=predict_batch_size, + drop_incomplete_batch=drop_incomplete_batch, + multiproc_kwargs=multiproc_kwargs, + ) + + def setup(self, stage: str): + self.dataset = _maker("fold_7") + ( + self.train_dataset, + self.validation_dataset, + self.extra_validation_datasets, + self.predict_dataset, + ) = return_subsets(self.dataset) + + +datamodule = DefaultModule diff --git a/src/ptbench/data/montgomery/fold_7_rgb.py b/src/ptbench/data/montgomery/fold_7_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..05664b06ab6393911a77b32418d6f2afb9d455fa --- /dev/null +++ b/src/ptbench/data/montgomery/fold_7_rgb.py @@ -0,0 +1,47 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Montgomery dataset for TB detection (cross validation fold 7, RGB) + +* Split reference: first 64% of TB and healthy CXR for "train" 16% for +* "validation", 20% for "test" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.montgomery` for dataset details +""" + +from clapper.logging import setup + +from .. import return_subsets +from ..base_datamodule import BaseDataModule +from . import _maker + +logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") + + +class DefaultModule(BaseDataModule): + def __init__( + self, + train_batch_size=1, + predict_batch_size=1, + drop_incomplete_batch=False, + multiproc_kwargs=None, + ): + super().__init__( + train_batch_size=train_batch_size, + predict_batch_size=predict_batch_size, + drop_incomplete_batch=drop_incomplete_batch, + multiproc_kwargs=multiproc_kwargs, + ) + + def setup(self, stage: str): + self.dataset = _maker("fold_7", RGB=True) + ( + self.train_dataset, + self.validation_dataset, + self.extra_validation_datasets, + self.predict_dataset, + ) = return_subsets(self.dataset) + + +datamodule = DefaultModule diff --git a/src/ptbench/data/montgomery/fold_8.py b/src/ptbench/data/montgomery/fold_8.py new file mode 100644 index 0000000000000000000000000000000000000000..e92ff959a9b1028c174c95719867f5086831d6c9 --- /dev/null +++ b/src/ptbench/data/montgomery/fold_8.py @@ -0,0 +1,47 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Montgomery dataset for TB detection (cross validation fold 8) + +* Split reference: first 64% of TB and healthy CXR for "train" 16% for +* "validation", 20% for "test" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.montgomery` for dataset details +""" + +from clapper.logging import setup + +from .. import return_subsets +from ..base_datamodule import BaseDataModule +from . import _maker + +logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") + + +class DefaultModule(BaseDataModule): + def __init__( + self, + train_batch_size=1, + predict_batch_size=1, + drop_incomplete_batch=False, + multiproc_kwargs=None, + ): + super().__init__( + train_batch_size=train_batch_size, + predict_batch_size=predict_batch_size, + drop_incomplete_batch=drop_incomplete_batch, + multiproc_kwargs=multiproc_kwargs, + ) + + def setup(self, stage: str): + self.dataset = _maker("fold_8") + ( + self.train_dataset, + self.validation_dataset, + self.extra_validation_datasets, + self.predict_dataset, + ) = return_subsets(self.dataset) + + +datamodule = DefaultModule diff --git a/src/ptbench/data/montgomery/fold_8_rgb.py b/src/ptbench/data/montgomery/fold_8_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..b7d59359dcde32694affea0e3df88ad747f48e31 --- /dev/null +++ b/src/ptbench/data/montgomery/fold_8_rgb.py @@ -0,0 +1,47 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Montgomery dataset for TB detection (cross validation fold 8, RGB) + +* Split reference: first 64% of TB and healthy CXR for "train" 16% for +* "validation", 20% for "test" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.montgomery` for dataset details +""" + +from clapper.logging import setup + +from .. import return_subsets +from ..base_datamodule import BaseDataModule +from . import _maker + +logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") + + +class DefaultModule(BaseDataModule): + def __init__( + self, + train_batch_size=1, + predict_batch_size=1, + drop_incomplete_batch=False, + multiproc_kwargs=None, + ): + super().__init__( + train_batch_size=train_batch_size, + predict_batch_size=predict_batch_size, + drop_incomplete_batch=drop_incomplete_batch, + multiproc_kwargs=multiproc_kwargs, + ) + + def setup(self, stage: str): + self.dataset = _maker("fold_8", RGB=True) + ( + self.train_dataset, + self.validation_dataset, + self.extra_validation_datasets, + self.predict_dataset, + ) = return_subsets(self.dataset) + + +datamodule = DefaultModule diff --git a/src/ptbench/data/montgomery/fold_9.py b/src/ptbench/data/montgomery/fold_9.py new file mode 100644 index 0000000000000000000000000000000000000000..81bbf72e78826f7e9560189be149d51cb729064e --- /dev/null +++ b/src/ptbench/data/montgomery/fold_9.py @@ -0,0 +1,47 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Montgomery dataset for TB detection (cross validation fold 9) + +* Split reference: first 64% of TB and healthy CXR for "train" 16% for +* "validation", 20% for "test" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.montgomery` for dataset details +""" + +from clapper.logging import setup + +from .. import return_subsets +from ..base_datamodule import BaseDataModule +from . import _maker + +logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") + + +class DefaultModule(BaseDataModule): + def __init__( + self, + train_batch_size=1, + predict_batch_size=1, + drop_incomplete_batch=False, + multiproc_kwargs=None, + ): + super().__init__( + train_batch_size=train_batch_size, + predict_batch_size=predict_batch_size, + drop_incomplete_batch=drop_incomplete_batch, + multiproc_kwargs=multiproc_kwargs, + ) + + def setup(self, stage: str): + self.dataset = _maker("fold_9") + ( + self.train_dataset, + self.validation_dataset, + self.extra_validation_datasets, + self.predict_dataset, + ) = return_subsets(self.dataset) + + +datamodule = DefaultModule diff --git a/src/ptbench/data/montgomery/fold_9_rgb.py b/src/ptbench/data/montgomery/fold_9_rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..e961e08ffe49a94001252c641ba8bee86758b44f --- /dev/null +++ b/src/ptbench/data/montgomery/fold_9_rgb.py @@ -0,0 +1,47 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Montgomery dataset for TB detection (cross validation fold 9, RGB) + +* Split reference: first 64% of TB and healthy CXR for "train" 16% for +* "validation", 20% for "test" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.montgomery` for dataset details +""" + +from clapper.logging import setup + +from .. import return_subsets +from ..base_datamodule import BaseDataModule +from . import _maker + +logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") + + +class DefaultModule(BaseDataModule): + def __init__( + self, + train_batch_size=1, + predict_batch_size=1, + drop_incomplete_batch=False, + multiproc_kwargs=None, + ): + super().__init__( + train_batch_size=train_batch_size, + predict_batch_size=predict_batch_size, + drop_incomplete_batch=drop_incomplete_batch, + multiproc_kwargs=multiproc_kwargs, + ) + + def setup(self, stage: str): + self.dataset = _maker("fold_9", RGB=True) + ( + self.train_dataset, + self.validation_dataset, + self.extra_validation_datasets, + self.predict_dataset, + ) = return_subsets(self.dataset) + + +datamodule = DefaultModule diff --git a/src/ptbench/data/montgomery/rgb.py b/src/ptbench/data/montgomery/rgb.py new file mode 100644 index 0000000000000000000000000000000000000000..c162126648f0baae5a921fa7f009da171fb8ccc7 --- /dev/null +++ b/src/ptbench/data/montgomery/rgb.py @@ -0,0 +1,47 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +"""Montgomery dataset for TB detection (default protocol, converted in RGB) + +* Split reference: first 64% of TB and healthy CXR for "train" 16% for +* "validation", 20% for "test" +* This configuration resolution: 512 x 512 (default) +* See :py:mod:`ptbench.data.montgomery` for dataset details +""" + +from clapper.logging import setup + +from .. import return_subsets +from ..base_datamodule import BaseDataModule +from . import _maker + +logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") + + +class DefaultModule(BaseDataModule): + def __init__( + self, + train_batch_size=1, + predict_batch_size=1, + drop_incomplete_batch=False, + multiproc_kwargs=None, + ): + super().__init__( + train_batch_size=train_batch_size, + predict_batch_size=predict_batch_size, + drop_incomplete_batch=drop_incomplete_batch, + multiproc_kwargs=multiproc_kwargs, + ) + + def setup(self, stage: str): + self.dataset = _maker("default", RGB=True) + ( + self.train_dataset, + self.validation_dataset, + self.extra_validation_datasets, + self.predict_dataset, + ) = return_subsets(self.dataset) + + +datamodule = DefaultModule