From 18ae3e93ebd0e9d3fa3f1ad87435a8a4f6dba8d7 Mon Sep 17 00:00:00 2001
From: dcarron <daniel.carron@idiap.ch>
Date: Thu, 1 Jun 2023 17:15:13 +0200
Subject: [PATCH] Moved hivtb configs to data

---
 pyproject.toml                                | 42 ++++++++---------
 .../configs/datasets/hivtb/__init__.py        | 29 ------------
 src/ptbench/configs/datasets/hivtb/fold_0.py  | 14 ------
 .../configs/datasets/hivtb/fold_0_rgb.py      | 14 ------
 src/ptbench/configs/datasets/hivtb/fold_1.py  | 14 ------
 .../configs/datasets/hivtb/fold_1_rgb.py      | 14 ------
 src/ptbench/configs/datasets/hivtb/fold_2.py  | 14 ------
 .../configs/datasets/hivtb/fold_2_rgb.py      | 14 ------
 src/ptbench/configs/datasets/hivtb/fold_3.py  | 14 ------
 .../configs/datasets/hivtb/fold_3_rgb.py      | 14 ------
 src/ptbench/configs/datasets/hivtb/fold_4.py  | 14 ------
 .../configs/datasets/hivtb/fold_4_rgb.py      | 14 ------
 src/ptbench/configs/datasets/hivtb/fold_5.py  | 14 ------
 .../configs/datasets/hivtb/fold_5_rgb.py      | 14 ------
 src/ptbench/configs/datasets/hivtb/fold_6.py  | 14 ------
 .../configs/datasets/hivtb/fold_6_rgb.py      | 14 ------
 src/ptbench/configs/datasets/hivtb/fold_7.py  | 14 ------
 .../configs/datasets/hivtb/fold_7_rgb.py      | 14 ------
 src/ptbench/configs/datasets/hivtb/fold_8.py  | 14 ------
 .../configs/datasets/hivtb/fold_8_rgb.py      | 14 ------
 src/ptbench/configs/datasets/hivtb/fold_9.py  | 14 ------
 .../configs/datasets/hivtb/fold_9_rgb.py      | 14 ------
 src/ptbench/data/hivtb/__init__.py            | 27 ++++++++++-
 src/ptbench/data/hivtb/fold_0.py              | 46 ++++++++++++++++++
 src/ptbench/data/hivtb/fold_0_rgb.py          | 46 ++++++++++++++++++
 src/ptbench/data/hivtb/fold_1.py              | 46 ++++++++++++++++++
 src/ptbench/data/hivtb/fold_1_rgb.py          | 46 ++++++++++++++++++
 src/ptbench/data/hivtb/fold_2.py              | 46 ++++++++++++++++++
 src/ptbench/data/hivtb/fold_2_rgb.py          | 47 +++++++++++++++++++
 src/ptbench/data/hivtb/fold_3.py              | 46 ++++++++++++++++++
 src/ptbench/data/hivtb/fold_3_rgb.py          | 46 ++++++++++++++++++
 src/ptbench/data/hivtb/fold_4.py              | 46 ++++++++++++++++++
 src/ptbench/data/hivtb/fold_4_rgb.py          | 46 ++++++++++++++++++
 src/ptbench/data/hivtb/fold_5.py              | 46 ++++++++++++++++++
 src/ptbench/data/hivtb/fold_5_rgb.py          | 46 ++++++++++++++++++
 src/ptbench/data/hivtb/fold_6.py              | 46 ++++++++++++++++++
 src/ptbench/data/hivtb/fold_6_rgb.py          | 46 ++++++++++++++++++
 src/ptbench/data/hivtb/fold_7.py              | 46 ++++++++++++++++++
 src/ptbench/data/hivtb/fold_7_rgb.py          | 46 ++++++++++++++++++
 src/ptbench/data/hivtb/fold_8.py              | 46 ++++++++++++++++++
 src/ptbench/data/hivtb/fold_8_rgb.py          | 46 ++++++++++++++++++
 src/ptbench/data/hivtb/fold_9.py              | 46 ++++++++++++++++++
 src/ptbench/data/hivtb/fold_9_rgb.py          | 46 ++++++++++++++++++
 43 files changed, 968 insertions(+), 331 deletions(-)
 delete mode 100644 src/ptbench/configs/datasets/hivtb/__init__.py
 delete mode 100644 src/ptbench/configs/datasets/hivtb/fold_0.py
 delete mode 100644 src/ptbench/configs/datasets/hivtb/fold_0_rgb.py
 delete mode 100644 src/ptbench/configs/datasets/hivtb/fold_1.py
 delete mode 100644 src/ptbench/configs/datasets/hivtb/fold_1_rgb.py
 delete mode 100644 src/ptbench/configs/datasets/hivtb/fold_2.py
 delete mode 100644 src/ptbench/configs/datasets/hivtb/fold_2_rgb.py
 delete mode 100644 src/ptbench/configs/datasets/hivtb/fold_3.py
 delete mode 100644 src/ptbench/configs/datasets/hivtb/fold_3_rgb.py
 delete mode 100644 src/ptbench/configs/datasets/hivtb/fold_4.py
 delete mode 100644 src/ptbench/configs/datasets/hivtb/fold_4_rgb.py
 delete mode 100644 src/ptbench/configs/datasets/hivtb/fold_5.py
 delete mode 100644 src/ptbench/configs/datasets/hivtb/fold_5_rgb.py
 delete mode 100644 src/ptbench/configs/datasets/hivtb/fold_6.py
 delete mode 100644 src/ptbench/configs/datasets/hivtb/fold_6_rgb.py
 delete mode 100644 src/ptbench/configs/datasets/hivtb/fold_7.py
 delete mode 100644 src/ptbench/configs/datasets/hivtb/fold_7_rgb.py
 delete mode 100644 src/ptbench/configs/datasets/hivtb/fold_8.py
 delete mode 100644 src/ptbench/configs/datasets/hivtb/fold_8_rgb.py
 delete mode 100644 src/ptbench/configs/datasets/hivtb/fold_9.py
 delete mode 100644 src/ptbench/configs/datasets/hivtb/fold_9_rgb.py
 create mode 100644 src/ptbench/data/hivtb/fold_0.py
 create mode 100644 src/ptbench/data/hivtb/fold_0_rgb.py
 create mode 100644 src/ptbench/data/hivtb/fold_1.py
 create mode 100644 src/ptbench/data/hivtb/fold_1_rgb.py
 create mode 100644 src/ptbench/data/hivtb/fold_2.py
 create mode 100644 src/ptbench/data/hivtb/fold_2_rgb.py
 create mode 100644 src/ptbench/data/hivtb/fold_3.py
 create mode 100644 src/ptbench/data/hivtb/fold_3_rgb.py
 create mode 100644 src/ptbench/data/hivtb/fold_4.py
 create mode 100644 src/ptbench/data/hivtb/fold_4_rgb.py
 create mode 100644 src/ptbench/data/hivtb/fold_5.py
 create mode 100644 src/ptbench/data/hivtb/fold_5_rgb.py
 create mode 100644 src/ptbench/data/hivtb/fold_6.py
 create mode 100644 src/ptbench/data/hivtb/fold_6_rgb.py
 create mode 100644 src/ptbench/data/hivtb/fold_7.py
 create mode 100644 src/ptbench/data/hivtb/fold_7_rgb.py
 create mode 100644 src/ptbench/data/hivtb/fold_8.py
 create mode 100644 src/ptbench/data/hivtb/fold_8_rgb.py
 create mode 100644 src/ptbench/data/hivtb/fold_9.py
 create mode 100644 src/ptbench/data/hivtb/fold_9_rgb.py

diff --git a/pyproject.toml b/pyproject.toml
index 107619fd..6eee969f 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -152,7 +152,7 @@ shenzhen_rs_f7 = "ptbench.configs.datasets.shenzhen_RS.fold_7"
 shenzhen_rs_f8 = "ptbench.configs.datasets.shenzhen_RS.fold_8"
 shenzhen_rs_f9 = "ptbench.configs.datasets.shenzhen_RS.fold_9"
 # indian dataset (and cross-validation folds)
-indian = "ptbench.configs.datasets.indian.default"
+indian = "ptbench.data.indian.default"
 indian_rgb = "ptbench.configs.datasets.indian.rgb"
 indian_f0 = "ptbench.configs.datasets.indian.fold_0"
 indian_f1 = "ptbench.configs.datasets.indian.fold_1"
@@ -433,26 +433,26 @@ tbpoc_rs_f7 = "ptbench.configs.datasets.tbpoc_RS.fold_7"
 tbpoc_rs_f8 = "ptbench.configs.datasets.tbpoc_RS.fold_8"
 tbpoc_rs_f9 = "ptbench.configs.datasets.tbpoc_RS.fold_9"
 # hivtb dataset (and cross-validation folds)
-hivtb_f0 = "ptbench.configs.datasets.hivtb.fold_0"
-hivtb_f1 = "ptbench.configs.datasets.hivtb.fold_1"
-hivtb_f2 = "ptbench.configs.datasets.hivtb.fold_2"
-hivtb_f3 = "ptbench.configs.datasets.hivtb.fold_3"
-hivtb_f4 = "ptbench.configs.datasets.hivtb.fold_4"
-hivtb_f5 = "ptbench.configs.datasets.hivtb.fold_5"
-hivtb_f6 = "ptbench.configs.datasets.hivtb.fold_6"
-hivtb_f7 = "ptbench.configs.datasets.hivtb.fold_7"
-hivtb_f8 = "ptbench.configs.datasets.hivtb.fold_8"
-hivtb_f9 = "ptbench.configs.datasets.hivtb.fold_9"
-hivtb_f0_rgb = "ptbench.configs.datasets.hivtb.fold_0_rgb"
-hivtb_f1_rgb = "ptbench.configs.datasets.hivtb.fold_1_rgb"
-hivtb_f2_rgb = "ptbench.configs.datasets.hivtb.fold_2_rgb"
-hivtb_f3_rgb = "ptbench.configs.datasets.hivtb.fold_3_rgb"
-hivtb_f4_rgb = "ptbench.configs.datasets.hivtb.fold_4_rgb"
-hivtb_f5_rgb = "ptbench.configs.datasets.hivtb.fold_5_rgb"
-hivtb_f6_rgb = "ptbench.configs.datasets.hivtb.fold_6_rgb"
-hivtb_f7_rgb = "ptbench.configs.datasets.hivtb.fold_7_rgb"
-hivtb_f8_rgb = "ptbench.configs.datasets.hivtb.fold_8_rgb"
-hivtb_f9_rgb = "ptbench.configs.datasets.hivtb.fold_9_rgb"
+hivtb_f0 = "ptbench.data.hivtb.fold_0"
+hivtb_f1 = "ptbench.data.hivtb.fold_1"
+hivtb_f2 = "ptbench.data.hivtb.fold_2"
+hivtb_f3 = "ptbench.data.hivtb.fold_3"
+hivtb_f4 = "ptbench.data.hivtb.fold_4"
+hivtb_f5 = "ptbench.data.hivtb.fold_5"
+hivtb_f6 = "ptbench.data.hivtb.fold_6"
+hivtb_f7 = "ptbench.data.hivtb.fold_7"
+hivtb_f8 = "ptbench.data.hivtb.fold_8"
+hivtb_f9 = "ptbench.data.hivtb.fold_9"
+hivtb_f0_rgb = "ptbench.data.hivtb.fold_0_rgb"
+hivtb_f1_rgb = "ptbench.data.hivtb.fold_1_rgb"
+hivtb_f2_rgb = "ptbench.data.hivtb.fold_2_rgb"
+hivtb_f3_rgb = "ptbench.data.hivtb.fold_3_rgb"
+hivtb_f4_rgb = "ptbench.data.hivtb.fold_4_rgb"
+hivtb_f5_rgb = "ptbench.data.hivtb.fold_5_rgb"
+hivtb_f6_rgb = "ptbench.data.hivtb.fold_6_rgb"
+hivtb_f7_rgb = "ptbench.data.hivtb.fold_7_rgb"
+hivtb_f8_rgb = "ptbench.data.hivtb.fold_8_rgb"
+hivtb_f9_rgb = "ptbench.data.hivtb.fold_9_rgb"
 # extended hivtb dataset (with radiological signs)
 hivtb_rs_f0 = "ptbench.configs.datasets.hivtb_RS.fold_0"
 hivtb_rs_f1 = "ptbench.configs.datasets.hivtb_RS.fold_1"
diff --git a/src/ptbench/configs/datasets/hivtb/__init__.py b/src/ptbench/configs/datasets/hivtb/__init__.py
deleted file mode 100644
index e026f4a4..00000000
--- a/src/ptbench/configs/datasets/hivtb/__init__.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# SPDX-FileCopyrightText: Copyright © 2023 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.hivtb 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/hivtb/fold_0.py b/src/ptbench/configs/datasets/hivtb/fold_0.py
deleted file mode 100644
index 36cb16e0..00000000
--- a/src/ptbench/configs/datasets/hivtb/fold_0.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-"""HIV-TB dataset for TB detection (cross validation fold 0)
-
-* Split reference: none (stratified kfolding)
-* This configuration resolution: 512 x 512 (default)
-* See :py:mod:`ptbench.data.hivtb` for dataset details
-"""
-
-from . import _maker
-
-dataset = _maker("fold_0")
diff --git a/src/ptbench/configs/datasets/hivtb/fold_0_rgb.py b/src/ptbench/configs/datasets/hivtb/fold_0_rgb.py
deleted file mode 100644
index d8bf759a..00000000
--- a/src/ptbench/configs/datasets/hivtb/fold_0_rgb.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-"""HIV-TB dataset for TB detection (cross validation fold 0)
-
-* Split reference: none (stratified kfolding)
-* This configuration resolution: 512 x 512 (default)
-* See :py:mod:`ptbench.data.hivtb` for dataset details
-"""
-
-from . import _maker
-
-dataset = _maker("fold_0", RGB=True)
diff --git a/src/ptbench/configs/datasets/hivtb/fold_1.py b/src/ptbench/configs/datasets/hivtb/fold_1.py
deleted file mode 100644
index bacec20d..00000000
--- a/src/ptbench/configs/datasets/hivtb/fold_1.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-"""HIV-TB dataset for TB detection (cross validation fold 1)
-
-* Split reference: none (stratified kfolding)
-* This configuration resolution: 512 x 512 (default)
-* See :py:mod:`ptbench.data.hivtb` for dataset details
-"""
-
-from . import _maker
-
-dataset = _maker("fold_1")
diff --git a/src/ptbench/configs/datasets/hivtb/fold_1_rgb.py b/src/ptbench/configs/datasets/hivtb/fold_1_rgb.py
deleted file mode 100644
index 7dc5eb62..00000000
--- a/src/ptbench/configs/datasets/hivtb/fold_1_rgb.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-"""HIV-TB dataset for TB detection (cross validation fold 1)
-
-* Split reference: none (stratified kfolding)
-* This configuration resolution: 512 x 512 (default)
-* See :py:mod:`ptbench.data.hivtb` for dataset details
-"""
-
-from . import _maker
-
-dataset = _maker("fold_1", RGB=True)
diff --git a/src/ptbench/configs/datasets/hivtb/fold_2.py b/src/ptbench/configs/datasets/hivtb/fold_2.py
deleted file mode 100644
index edd54798..00000000
--- a/src/ptbench/configs/datasets/hivtb/fold_2.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-"""HIV-TB dataset for TB detection (cross validation fold 2)
-
-* Split reference: none (stratified kfolding)
-* This configuration resolution: 512 x 512 (default)
-* See :py:mod:`ptbench.data.hivtb` for dataset details
-"""
-
-from . import _maker
-
-dataset = _maker("fold_2")
diff --git a/src/ptbench/configs/datasets/hivtb/fold_2_rgb.py b/src/ptbench/configs/datasets/hivtb/fold_2_rgb.py
deleted file mode 100644
index cb88d1e1..00000000
--- a/src/ptbench/configs/datasets/hivtb/fold_2_rgb.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-"""HIV-TB dataset for TB detection (cross validation fold 2)
-
-* Split reference: none (stratified kfolding)
-* This configuration resolution: 512 x 512 (default)
-* See :py:mod:`ptbench.data.hivtb` for dataset details
-"""
-
-from . import _maker
-
-dataset = _maker("fold_2", RGB=True)
diff --git a/src/ptbench/configs/datasets/hivtb/fold_3.py b/src/ptbench/configs/datasets/hivtb/fold_3.py
deleted file mode 100644
index 2e8371b8..00000000
--- a/src/ptbench/configs/datasets/hivtb/fold_3.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-"""HIV-TB dataset for TB detection (cross validation fold 3)
-
-* Split reference: none (stratified kfolding)
-* This configuration resolution: 512 x 512 (default)
-* See :py:mod:`ptbench.data.hivtb` for dataset details
-"""
-
-from . import _maker
-
-dataset = _maker("fold_3")
diff --git a/src/ptbench/configs/datasets/hivtb/fold_3_rgb.py b/src/ptbench/configs/datasets/hivtb/fold_3_rgb.py
deleted file mode 100644
index c4fc878f..00000000
--- a/src/ptbench/configs/datasets/hivtb/fold_3_rgb.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-"""HIV-TB dataset for TB detection (cross validation fold 3)
-
-* Split reference: none (stratified kfolding)
-* This configuration resolution: 512 x 512 (default)
-* See :py:mod:`ptbench.data.hivtb` for dataset details
-"""
-
-from . import _maker
-
-dataset = _maker("fold_3", RGB=True)
diff --git a/src/ptbench/configs/datasets/hivtb/fold_4.py b/src/ptbench/configs/datasets/hivtb/fold_4.py
deleted file mode 100644
index adbd52a4..00000000
--- a/src/ptbench/configs/datasets/hivtb/fold_4.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-"""HIV-TB dataset for TB detection (cross validation fold 4)
-
-* Split reference: none (stratified kfolding)
-* This configuration resolution: 512 x 512 (default)
-* See :py:mod:`ptbench.data.hivtb` for dataset details
-"""
-
-from . import _maker
-
-dataset = _maker("fold_4")
diff --git a/src/ptbench/configs/datasets/hivtb/fold_4_rgb.py b/src/ptbench/configs/datasets/hivtb/fold_4_rgb.py
deleted file mode 100644
index db79d17b..00000000
--- a/src/ptbench/configs/datasets/hivtb/fold_4_rgb.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-"""HIV-TB dataset for TB detection (cross validation fold 4)
-
-* Split reference: none (stratified kfolding)
-* This configuration resolution: 512 x 512 (default)
-* See :py:mod:`ptbench.data.hivtb` for dataset details
-"""
-
-from . import _maker
-
-dataset = _maker("fold_4", RGB=True)
diff --git a/src/ptbench/configs/datasets/hivtb/fold_5.py b/src/ptbench/configs/datasets/hivtb/fold_5.py
deleted file mode 100644
index 66862f15..00000000
--- a/src/ptbench/configs/datasets/hivtb/fold_5.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-"""HIV-TB dataset for TB detection (cross validation fold 5)
-
-* Split reference: none (stratified kfolding)
-* This configuration resolution: 512 x 512 (default)
-* See :py:mod:`ptbench.data.hivtb` for dataset details
-"""
-
-from . import _maker
-
-dataset = _maker("fold_5")
diff --git a/src/ptbench/configs/datasets/hivtb/fold_5_rgb.py b/src/ptbench/configs/datasets/hivtb/fold_5_rgb.py
deleted file mode 100644
index bf9805b7..00000000
--- a/src/ptbench/configs/datasets/hivtb/fold_5_rgb.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-"""HIV-TB dataset for TB detection (cross validation fold 5)
-
-* Split reference: none (stratified kfolding)
-* This configuration resolution: 512 x 512 (default)
-* See :py:mod:`ptbench.data.hivtb` for dataset details
-"""
-
-from . import _maker
-
-dataset = _maker("fold_5", RGB=True)
diff --git a/src/ptbench/configs/datasets/hivtb/fold_6.py b/src/ptbench/configs/datasets/hivtb/fold_6.py
deleted file mode 100644
index f4a4e786..00000000
--- a/src/ptbench/configs/datasets/hivtb/fold_6.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-"""HIV-TB dataset for TB detection (cross validation fold 6)
-
-* Split reference: none (stratified kfolding)
-* This configuration resolution: 512 x 512 (default)
-* See :py:mod:`ptbench.data.hivtb` for dataset details
-"""
-
-from . import _maker
-
-dataset = _maker("fold_6")
diff --git a/src/ptbench/configs/datasets/hivtb/fold_6_rgb.py b/src/ptbench/configs/datasets/hivtb/fold_6_rgb.py
deleted file mode 100644
index dd4e0f68..00000000
--- a/src/ptbench/configs/datasets/hivtb/fold_6_rgb.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-"""HIV-TB dataset for TB detection (cross validation fold 6)
-
-* Split reference: none (stratified kfolding)
-* This configuration resolution: 512 x 512 (default)
-* See :py:mod:`ptbench.data.hivtb` for dataset details
-"""
-
-from . import _maker
-
-dataset = _maker("fold_6", RGB=True)
diff --git a/src/ptbench/configs/datasets/hivtb/fold_7.py b/src/ptbench/configs/datasets/hivtb/fold_7.py
deleted file mode 100644
index 5a84c956..00000000
--- a/src/ptbench/configs/datasets/hivtb/fold_7.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-"""HIV-TB dataset for TB detection (cross validation fold 7)
-
-* Split reference: none (stratified kfolding)
-* This configuration resolution: 512 x 512 (default)
-* See :py:mod:`ptbench.data.hivtb` for dataset details
-"""
-
-from . import _maker
-
-dataset = _maker("fold_7")
diff --git a/src/ptbench/configs/datasets/hivtb/fold_7_rgb.py b/src/ptbench/configs/datasets/hivtb/fold_7_rgb.py
deleted file mode 100644
index 511f7d2c..00000000
--- a/src/ptbench/configs/datasets/hivtb/fold_7_rgb.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-"""HIV-TB dataset for TB detection (cross validation fold 7)
-
-* Split reference: none (stratified kfolding)
-* This configuration resolution: 512 x 512 (default)
-* See :py:mod:`ptbench.data.hivtb` for dataset details
-"""
-
-from . import _maker
-
-dataset = _maker("fold_7", RGB=True)
diff --git a/src/ptbench/configs/datasets/hivtb/fold_8.py b/src/ptbench/configs/datasets/hivtb/fold_8.py
deleted file mode 100644
index cfe6c632..00000000
--- a/src/ptbench/configs/datasets/hivtb/fold_8.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-"""HIV-TB dataset for TB detection (cross validation fold 8)
-
-* Split reference: none (stratified kfolding)
-* This configuration resolution: 512 x 512 (default)
-* See :py:mod:`ptbench.data.hivtb` for dataset details
-"""
-
-from . import _maker
-
-dataset = _maker("fold_8")
diff --git a/src/ptbench/configs/datasets/hivtb/fold_8_rgb.py b/src/ptbench/configs/datasets/hivtb/fold_8_rgb.py
deleted file mode 100644
index 7ddfabe6..00000000
--- a/src/ptbench/configs/datasets/hivtb/fold_8_rgb.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-"""HIV-TB dataset for TB detection (cross validation fold 8)
-
-* Split reference: none (stratified kfolding)
-* This configuration resolution: 512 x 512 (default)
-* See :py:mod:`ptbench.data.hivtb` for dataset details
-"""
-
-from . import _maker
-
-dataset = _maker("fold_8", RGB=True)
diff --git a/src/ptbench/configs/datasets/hivtb/fold_9.py b/src/ptbench/configs/datasets/hivtb/fold_9.py
deleted file mode 100644
index 27b45302..00000000
--- a/src/ptbench/configs/datasets/hivtb/fold_9.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-"""HIV-TB dataset for TB detection (cross validation fold 9)
-
-* Split reference: none (stratified kfolding)
-* This configuration resolution: 512 x 512 (default)
-* See :py:mod:`ptbench.data.hivtb` for dataset details
-"""
-
-from . import _maker
-
-dataset = _maker("fold_9")
diff --git a/src/ptbench/configs/datasets/hivtb/fold_9_rgb.py b/src/ptbench/configs/datasets/hivtb/fold_9_rgb.py
deleted file mode 100644
index 0b32f349..00000000
--- a/src/ptbench/configs/datasets/hivtb/fold_9_rgb.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-"""HIV-TB dataset for TB detection (cross validation fold 9)
-
-* Split reference: none (stratified kfolding)
-* This configuration resolution: 512 x 512 (default)
-* See :py:mod:`ptbench.data.hivtb` for dataset details
-"""
-
-from . import _maker
-
-dataset = _maker("fold_9", RGB=True)
diff --git a/src/ptbench/data/hivtb/__init__.py b/src/ptbench/data/hivtb/__init__.py
index dd87f9a4..b5d2753c 100644
--- a/src/ptbench/data/hivtb/__init__.py
+++ b/src/ptbench/data/hivtb/__init__.py
@@ -18,6 +18,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
 
@@ -50,9 +51,33 @@ def _loader(context, sample):
     return make_delayed(sample, _raw_data_loader)
 
 
-dataset = JSONDataset(
+json_dataset = JSONDataset(
     protocols=_protocols,
     fieldnames=("data", "label"),
     loader=_loader,
 )
 """HIV-TB 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/hivtb/fold_0.py b/src/ptbench/data/hivtb/fold_0.py
new file mode 100644
index 00000000..af3be161
--- /dev/null
+++ b/src/ptbench/data/hivtb/fold_0.py
@@ -0,0 +1,46 @@
+# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+"""HIV-TB dataset for TB detection (cross validation fold 0)
+
+* Split reference: none (stratified kfolding)
+* This configuration resolution: 512 x 512 (default)
+* See :py:mod:`ptbench.data.hivtb` 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/hivtb/fold_0_rgb.py b/src/ptbench/data/hivtb/fold_0_rgb.py
new file mode 100644
index 00000000..3a5e13cb
--- /dev/null
+++ b/src/ptbench/data/hivtb/fold_0_rgb.py
@@ -0,0 +1,46 @@
+# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+"""HIV-TB dataset for TB detection (cross validation fold 0)
+
+* Split reference: none (stratified kfolding)
+* This configuration resolution: 512 x 512 (default)
+* See :py:mod:`ptbench.data.hivtb` 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/hivtb/fold_1.py b/src/ptbench/data/hivtb/fold_1.py
new file mode 100644
index 00000000..ec86cab3
--- /dev/null
+++ b/src/ptbench/data/hivtb/fold_1.py
@@ -0,0 +1,46 @@
+# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+"""HIV-TB dataset for TB detection (cross validation fold 1)
+
+* Split reference: none (stratified kfolding)
+* This configuration resolution: 512 x 512 (default)
+* See :py:mod:`ptbench.data.hivtb` 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/hivtb/fold_1_rgb.py b/src/ptbench/data/hivtb/fold_1_rgb.py
new file mode 100644
index 00000000..4b5af9ec
--- /dev/null
+++ b/src/ptbench/data/hivtb/fold_1_rgb.py
@@ -0,0 +1,46 @@
+# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+"""HIV-TB dataset for TB detection (cross validation fold 1)
+
+* Split reference: none (stratified kfolding)
+* This configuration resolution: 512 x 512 (default)
+* See :py:mod:`ptbench.data.hivtb` 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/hivtb/fold_2.py b/src/ptbench/data/hivtb/fold_2.py
new file mode 100644
index 00000000..56ae69fe
--- /dev/null
+++ b/src/ptbench/data/hivtb/fold_2.py
@@ -0,0 +1,46 @@
+# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+"""HIV-TB dataset for TB detection (cross validation fold 2)
+
+* Split reference: none (stratified kfolding)
+* This configuration resolution: 512 x 512 (default)
+* See :py:mod:`ptbench.data.hivtb` 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/hivtb/fold_2_rgb.py b/src/ptbench/data/hivtb/fold_2_rgb.py
new file mode 100644
index 00000000..bd72b814
--- /dev/null
+++ b/src/ptbench/data/hivtb/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
+
+"""HIV-TB dataset for TB detection (cross validation fold 2)
+
+* Split reference: none (stratified kfolding)
+* This configuration resolution: 512 x 512 (default)
+* See :py:mod:`ptbench.data.hivtb` 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/hivtb/fold_3.py b/src/ptbench/data/hivtb/fold_3.py
new file mode 100644
index 00000000..5dbddeda
--- /dev/null
+++ b/src/ptbench/data/hivtb/fold_3.py
@@ -0,0 +1,46 @@
+# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+"""HIV-TB dataset for TB detection (cross validation fold 3)
+
+* Split reference: none (stratified kfolding)
+* This configuration resolution: 512 x 512 (default)
+* See :py:mod:`ptbench.data.hivtb` 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/hivtb/fold_3_rgb.py b/src/ptbench/data/hivtb/fold_3_rgb.py
new file mode 100644
index 00000000..6c6a8d67
--- /dev/null
+++ b/src/ptbench/data/hivtb/fold_3_rgb.py
@@ -0,0 +1,46 @@
+# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+"""HIV-TB dataset for TB detection (cross validation fold 3)
+
+* Split reference: none (stratified kfolding)
+* This configuration resolution: 512 x 512 (default)
+* See :py:mod:`ptbench.data.hivtb` 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/hivtb/fold_4.py b/src/ptbench/data/hivtb/fold_4.py
new file mode 100644
index 00000000..9ab5a79f
--- /dev/null
+++ b/src/ptbench/data/hivtb/fold_4.py
@@ -0,0 +1,46 @@
+# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+"""HIV-TB dataset for TB detection (cross validation fold 4)
+
+* Split reference: none (stratified kfolding)
+* This configuration resolution: 512 x 512 (default)
+* See :py:mod:`ptbench.data.hivtb` 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/hivtb/fold_4_rgb.py b/src/ptbench/data/hivtb/fold_4_rgb.py
new file mode 100644
index 00000000..99a56b41
--- /dev/null
+++ b/src/ptbench/data/hivtb/fold_4_rgb.py
@@ -0,0 +1,46 @@
+# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+"""HIV-TB dataset for TB detection (cross validation fold 4)
+
+* Split reference: none (stratified kfolding)
+* This configuration resolution: 512 x 512 (default)
+* See :py:mod:`ptbench.data.hivtb` 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/hivtb/fold_5.py b/src/ptbench/data/hivtb/fold_5.py
new file mode 100644
index 00000000..445ce458
--- /dev/null
+++ b/src/ptbench/data/hivtb/fold_5.py
@@ -0,0 +1,46 @@
+# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+"""HIV-TB dataset for TB detection (cross validation fold 5)
+
+* Split reference: none (stratified kfolding)
+* This configuration resolution: 512 x 512 (default)
+* See :py:mod:`ptbench.data.hivtb` 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/hivtb/fold_5_rgb.py b/src/ptbench/data/hivtb/fold_5_rgb.py
new file mode 100644
index 00000000..2033c03b
--- /dev/null
+++ b/src/ptbench/data/hivtb/fold_5_rgb.py
@@ -0,0 +1,46 @@
+# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+"""HIV-TB dataset for TB detection (cross validation fold 5)
+
+* Split reference: none (stratified kfolding)
+* This configuration resolution: 512 x 512 (default)
+* See :py:mod:`ptbench.data.hivtb` 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/hivtb/fold_6.py b/src/ptbench/data/hivtb/fold_6.py
new file mode 100644
index 00000000..fbbea2ad
--- /dev/null
+++ b/src/ptbench/data/hivtb/fold_6.py
@@ -0,0 +1,46 @@
+# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+"""HIV-TB dataset for TB detection (cross validation fold 6)
+
+* Split reference: none (stratified kfolding)
+* This configuration resolution: 512 x 512 (default)
+* See :py:mod:`ptbench.data.hivtb` 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/hivtb/fold_6_rgb.py b/src/ptbench/data/hivtb/fold_6_rgb.py
new file mode 100644
index 00000000..16bc6df5
--- /dev/null
+++ b/src/ptbench/data/hivtb/fold_6_rgb.py
@@ -0,0 +1,46 @@
+# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+"""HIV-TB dataset for TB detection (cross validation fold 6)
+
+* Split reference: none (stratified kfolding)
+* This configuration resolution: 512 x 512 (default)
+* See :py:mod:`ptbench.data.hivtb` 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/hivtb/fold_7.py b/src/ptbench/data/hivtb/fold_7.py
new file mode 100644
index 00000000..dcce836d
--- /dev/null
+++ b/src/ptbench/data/hivtb/fold_7.py
@@ -0,0 +1,46 @@
+# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+"""HIV-TB dataset for TB detection (cross validation fold 7)
+
+* Split reference: none (stratified kfolding)
+* This configuration resolution: 512 x 512 (default)
+* See :py:mod:`ptbench.data.hivtb` 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/hivtb/fold_7_rgb.py b/src/ptbench/data/hivtb/fold_7_rgb.py
new file mode 100644
index 00000000..292ef81e
--- /dev/null
+++ b/src/ptbench/data/hivtb/fold_7_rgb.py
@@ -0,0 +1,46 @@
+# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+"""HIV-TB dataset for TB detection (cross validation fold 7)
+
+* Split reference: none (stratified kfolding)
+* This configuration resolution: 512 x 512 (default)
+* See :py:mod:`ptbench.data.hivtb` 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/hivtb/fold_8.py b/src/ptbench/data/hivtb/fold_8.py
new file mode 100644
index 00000000..7ba95a1e
--- /dev/null
+++ b/src/ptbench/data/hivtb/fold_8.py
@@ -0,0 +1,46 @@
+# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+"""HIV-TB dataset for TB detection (cross validation fold 8)
+
+* Split reference: none (stratified kfolding)
+* This configuration resolution: 512 x 512 (default)
+* See :py:mod:`ptbench.data.hivtb` 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/hivtb/fold_8_rgb.py b/src/ptbench/data/hivtb/fold_8_rgb.py
new file mode 100644
index 00000000..eca72655
--- /dev/null
+++ b/src/ptbench/data/hivtb/fold_8_rgb.py
@@ -0,0 +1,46 @@
+# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+"""HIV-TB dataset for TB detection (cross validation fold 8)
+
+* Split reference: none (stratified kfolding)
+* This configuration resolution: 512 x 512 (default)
+* See :py:mod:`ptbench.data.hivtb` 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/hivtb/fold_9.py b/src/ptbench/data/hivtb/fold_9.py
new file mode 100644
index 00000000..4a244adf
--- /dev/null
+++ b/src/ptbench/data/hivtb/fold_9.py
@@ -0,0 +1,46 @@
+# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+"""HIV-TB dataset for TB detection (cross validation fold 9)
+
+* Split reference: none (stratified kfolding)
+* This configuration resolution: 512 x 512 (default)
+* See :py:mod:`ptbench.data.hivtb` 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/hivtb/fold_9_rgb.py b/src/ptbench/data/hivtb/fold_9_rgb.py
new file mode 100644
index 00000000..3a12fc23
--- /dev/null
+++ b/src/ptbench/data/hivtb/fold_9_rgb.py
@@ -0,0 +1,46 @@
+# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch>
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+"""HIV-TB dataset for TB detection (cross validation fold 9)
+
+* Split reference: none (stratified kfolding)
+* This configuration resolution: 512 x 512 (default)
+* See :py:mod:`ptbench.data.hivtb` 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
-- 
GitLab