diff --git a/.reuse/dep5 b/.reuse/dep5 index f21f6e2ee48fcbef711be47c1c94f4248adb37b9..4e2a69c2921139df15d0edbb731375714f78b61e 100644 --- a/.reuse/dep5 +++ b/.reuse/dep5 @@ -15,8 +15,8 @@ Files: doc/results/img/*.jpg doc/results/img/*.png doc/results/img/*/*.jpg - src/ptbench/data/*/*.json - src/ptbench/data/*/*.json.bz2 + src/ptbench/config/data/*/*.json + src/ptbench/config/data/*/*.json.bz2 tests/data/*.csv tests/data/*.json tests/data/*.png diff --git a/doc/_templates/config.rst b/doc/_templates/config.rst index 3a1f3d38f834a9180521eb514aea2a5eef4a85b9..dc8a8877cb94fd522852f4ee9c3d43ecf3f8dc51 100644 --- a/doc/_templates/config.rst +++ b/doc/_templates/config.rst @@ -1,3 +1,6 @@ {% include "autosummary/module.rst" %} -.. literalinclude:: ../../../../src/{{ fullname.replace(".", "/") }}.py +.. literalinclude:: ../../../src/{{ fullname.replace(".", "/") }}.py :start-at: import + + +.. include:: ../../links.rst diff --git a/doc/api.rst b/doc/api.rst index 5bfd2b2ff89183687536b4a65a85f8ef0591588d..4b223ca53824abd5707cee134e792820c7c08d84 100644 --- a/doc/api.rst +++ b/doc/api.rst @@ -28,44 +28,6 @@ Auxiliary classes and methods to define raw dataset iterators. ptbench.data.split ptbench.data.typing -.. _ptbench.api.rawdata: - -Basic Datamodules ------------------ - -Pytorch_ :py:class:`torch.utils.data.DataLoader` access through lightning_ -:py:class:`lightning.pytorch.core.LightningDataModule`. - -.. autosummary:: - :toctree: api/data/raw - - ptbench.data.hivtb.datamodule - ptbench.data.indian.datamodule - ptbench.data.montgomery.datamodule - ptbench.data.nih_cxr14.datamodule - ptbench.data.padchest.datamodule - ptbench.data.shenzhen.datamodule - ptbench.data.tbpoc.datamodule - ptbench.data.tbx11k.datamodule - - -.. _ptbench.api.remixdata: - -Remixed Datamodules -------------------- - -Pytorch_ :py:class:`torch.utils.data.DataLoader` access through lightning_ -:py:class:`lightning.pytorch.core.LightningDataModule`. - -.. autosummary:: - :toctree: api/data/raw - - ptbench.data.montgomery_shenzhen.datamodule - ptbench.data.montgomery_shenzhen_indian.datamodule - ptbench.data.montgomery_shenzhen_indian_tbx11k.datamodule - ptbench.data.montgomery_shenzhen_indian_padchest.datamodule - ptbench.data.nih_cxr14_padchest.datamodule - .. _ptbench.api.models: diff --git a/doc/config.rst b/doc/config.rst index cedc8c0760a99467952171b791f17f06c39c0366..93c4559abe5306567cbfacb4ae6cc58fdfcd3091 100644 --- a/doc/config.rst +++ b/doc/config.rst @@ -13,68 +13,86 @@ datamodules. .. _ptbench.config.models: -Models -====== +Pre-configured Models +===================== + +Pre-configured models you can readily use. .. autosummary:: - :toctree: api/models/config + :toctree: api/config.models :template: config.rst - ptbench.models.config.alexnet - ptbench.models.config.alexnet_pretrained - ptbench.models.config.densenet - ptbench.models.config.densenet_pretrained - ptbench.models.config.densenet_rs - ptbench.models.config.logistic_regression - ptbench.models.config.mlp - ptbench.models.config.pasa + ptbench.config.models.alexnet + ptbench.config.models.alexnet_pretrained + ptbench.config.models.densenet + ptbench.config.models.densenet_pretrained + ptbench.config.models.densenet_rs + ptbench.config.models.logistic_regression + ptbench.config.models.mlp + ptbench.config.models.pasa .. _ptbench.config.datamodules: -Preset Datamodules +DataModule support ================== -Datamodules include iterative accessors to raw data -(:ref:`ptbench.setup.databases`) including data pre-processing to a minimum -input standard, if applicable. Use these datamodules for training and evaluating -your models. +Base DataModules and raw data loaders for the various databases currently +supported in this package, for your reference. Each pre-configured data module +can receive the name of one or more splits as argument to build a fully +functional data module that can be used in training, prediction or testing. .. autosummary:: - :toctree: api/data/config - :template: config.rst + :toctree: api/config.datamodules - ptbench.data.indian.default - ptbench.data.montgomery.default - ptbench.data.nih_cxr14.default - ptbench.data.padchest.idiap - ptbench.data.shenzhen.default - ptbench.data.tbx11k.v1_healthy_vs_atb - ptbench.data.tbx11k.v2_others_vs_atb + ptbench.config.data.hivtb.datamodule + ptbench.config.data.indian.datamodule + ptbench.config.data.montgomery.datamodule + ptbench.config.data.montgomery_shenzhen.datamodule + ptbench.config.data.montgomery_shenzhen_indian.datamodule + ptbench.config.data.montgomery_shenzhen_indian_padchest.datamodule + ptbench.config.data.montgomery_shenzhen_indian_tbx11k.datamodule + ptbench.config.data.nih_cxr14.datamodule + ptbench.config.data.nih_cxr14_padchest.datamodule + ptbench.config.data.padchest.datamodule + ptbench.config.data.shenzhen.datamodule + ptbench.config.data.tbpoc.datamodule + ptbench.config.data.tbx11k.datamodule -.. _ptbench.config.datamodules.remix: +.. _ptbench.config.datamodule-instances: -Remix Datamodules -================= +Pre-configured DataModules +========================== -We provide some aggregated datamodules to facilitate cross-database development. +DataModules provide access to preset pytorch dataloaders for training, +validating, testing and running prediction tasks. Each of the pre-configured +DataModule is based on one (or more) of the :ref:`supported base data modules +<ptbench.config.datamodules>`. .. autosummary:: - :toctree: api/data/config + :toctree: api/config.datamodule-instances :template: config.rst - ptbench.data.montgomery_shenzhen.default - ptbench.data.montgomery_shenzhen_indian.default - ptbench.data.montgomery_shenzhen_indian_padchest.default - ptbench.data.montgomery_shenzhen_indian_tbx11k.v1_healthy_vs_atb - ptbench.data.montgomery_shenzhen_indian_tbx11k.v2_others_vs_atb - ptbench.data.nih_cxr14_padchest.idiap - - -.. _ptbench.config.datamodules.folds: - -Cross-validation Datamodules + ptbench.config.data.indian.default + ptbench.config.data.montgomery.default + ptbench.config.data.montgomery_shenzhen.default + ptbench.config.data.montgomery_shenzhen_indian.default + ptbench.config.data.montgomery_shenzhen_indian_padchest.default + ptbench.config.data.montgomery_shenzhen_indian_tbx11k.v1_healthy_vs_atb + ptbench.config.data.montgomery_shenzhen_indian_tbx11k.v2_others_vs_atb + ptbench.config.data.nih_cxr14.default + ptbench.config.data.nih_cxr14_padchest.idiap + ptbench.config.data.padchest.idiap + ptbench.config.data.shenzhen.default + ptbench.config.data.tbx11k.v1_healthy_vs_atb + ptbench.config.data.tbx11k.v2_others_vs_atb + ptbench.config.data.tbx11k.v2_others_vs_atb + + +.. _ptbench.config.datamodule-instances.folds: + +Cross-validation DataModules ============================ We support cross-validation with precise preset folds. In this section, you @@ -84,19 +102,20 @@ datamodules. Nine other folds are available for every configuration (from 1 to .. autosummary:: - :toctree: api/data/config + :toctree: api/config.datamodule-folds :template: config.rst - ptbench.data.hivtb.fold_0 - ptbench.data.indian.fold_0 - ptbench.data.montgomery.fold_0 - ptbench.data.montgomery_shenzhen.fold_0 - ptbench.data.montgomery_shenzhen_indian.fold_0 - ptbench.data.montgomery_shenzhen_indian_tbx11k.v1_fold_0 - ptbench.data.montgomery_shenzhen_indian_tbx11k.v2_fold_0 - ptbench.data.shenzhen.fold_0 - ptbench.data.tbpoc.fold_0 - ptbench.data.tbx11k.v1_fold_0 - ptbench.data.tbx11k.v2_fold_0 + ptbench.config.data.hivtb.fold_0 + ptbench.config.data.indian.fold_0 + ptbench.config.data.montgomery.fold_0 + ptbench.config.data.montgomery_shenzhen.fold_0 + ptbench.config.data.montgomery_shenzhen_indian.fold_0 + ptbench.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_0 + ptbench.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_0 + ptbench.config.data.shenzhen.fold_0 + ptbench.config.data.tbpoc.fold_0 + ptbench.config.data.tbx11k.v1_fold_0 + ptbench.config.data.tbx11k.v2_fold_0 + .. include:: links.rst diff --git a/doc/links.rst b/doc/links.rst index 2e4540828cdfa3ee4f2b9d729c38b44b2b9e2b58..f4ba3310e86051b9555e9c919180187372125de0 100644 --- a/doc/links.rst +++ b/doc/links.rst @@ -25,6 +25,6 @@ .. models .. _imagenet: https://www.image-net.org .. _alexnet: https://en.wikipedia.org/wiki/AlexNet -.. _alexnet_pytorch: https://pytorch.org/hub/pytorch_vision_alexnet/ +.. _alexnet-pytorch: https://pytorch.org/hub/pytorch_vision_alexnet/ .. _densenet: https://arxiv.org/abs/1608.06993 -.. _densenet_pytorch: https://pytorch.org/hub/pytorch_vision_densenet/ +.. _densenet-pytorch: https://pytorch.org/hub/pytorch_vision_densenet/ diff --git a/doc/results/index.rst b/doc/results/index.rst index 0217fe6c798c9d1d0ad388f363313fa7c2819c42..0585e912d2b2841b437312c76417d92fad4a7394 100644 --- a/doc/results/index.rst +++ b/doc/results/index.rst @@ -113,37 +113,37 @@ Thresholds used: :scale: 50% :alt: Testing sets ROC curves for Pasa model trained on normalized-kfold MC - :py:mod:`Pasa <ptbench.models.config.pasa>`: Pasa trained on normalized-kfold MC + :py:mod:`Pasa <ptbench.config.models.pasa>`: Pasa trained on normalized-kfold MC - .. figure:: img/compare_pasa_mc_ch_kfold_500.jpg :align: center :scale: 50% :alt: Testing sets ROC curves for Pasa model trained on normalized-kfold MC-CH - :py:mod:`Pasa <ptbench.models.config.pasa>`: Pasa trained on normalized-kfold MC-CH + :py:mod:`Pasa <ptbench.config.models.pasa>`: Pasa trained on normalized-kfold MC-CH - .. figure:: img/compare_pasa_mc_ch_in_kfold_500.jpg :align: center :scale: 50% :alt: Testing sets ROC curves for Pasa model trained on normalized-kfold MC-CH-IN - :py:mod:`Pasa <ptbench.models.config.pasa>`: Pasa trained on normalized-kfold MC-CH-IN + :py:mod:`Pasa <ptbench.config.models.pasa>`: Pasa trained on normalized-kfold MC-CH-IN * - .. figure:: img/compare_densenet_mc_kfold_2000.jpg :align: center :scale: 50% :alt: Testing sets ROC curves for DenseNet model trained on normalized-kfold MC - :py:mod:`DenseNet <ptbench.models.config.densenet>`: DenseNet trained on normalized-kfold MC + :py:mod:`DenseNet <ptbench.config.models.densenet>`: DenseNet trained on normalized-kfold MC - .. figure:: img/compare_densenet_mc_ch_kfold_2000.jpg :align: center :scale: 50% :alt: Testing sets ROC curves for DenseNet model trained on normalized-kfold MC-CH - :py:mod:`DenseNet <ptbench.models.config.densenet>`: DenseNet trained on normalized-kfold MC-CH + :py:mod:`DenseNet <ptbench.config.models.densenet>`: DenseNet trained on normalized-kfold MC-CH - .. figure:: img/compare_densenet_mc_ch_in_kfold_2000.jpg :align: center :scale: 50% :alt: Testing sets ROC curves for DenseNet model trained on normalized-kfold MC-CH-IN - :py:mod:`DenseNet <ptbench.models.config.densenet>`: DenseNet trained on normalized-kfold MC-CH-IN + :py:mod:`DenseNet <ptbench.config.models.densenet>`: DenseNet trained on normalized-kfold MC-CH-IN DenseNet-121 (pretrained on ImageNet) """"""""""""""""""""""""""""""""""""" @@ -180,19 +180,19 @@ Thresholds used: :scale: 50% :alt: Testing sets ROC curves for DenseNet model trained on normalized-kfold MC - :py:mod:`DenseNet <ptbench.models.config.densenet>` DenseNet trained on normalized-kfold MC + :py:mod:`DenseNet <ptbench.config.models.densenet>` DenseNet trained on normalized-kfold MC - .. figure:: img/compare_densenetpreIN_mc_ch_kfold_600.jpg :align: center :scale: 50% :alt: Testing sets ROC curves for DenseNet model trained on normalized-kfold MC-CH - :py:mod:`DenseNet <ptbench.models.config.densenet>` DenseNet trained on normalized-kfold MC-CH + :py:mod:`DenseNet <ptbench.config.models.densenet>` DenseNet trained on normalized-kfold MC-CH - .. figure:: img/compare_densenetpreIN_mc_ch_ch_kfold_600.jpg :align: center :scale: 50% :alt: Testing sets ROC curves for DenseNet model trained on normalized-kfold MC-CH-IN - :py:mod:`DenseNet <ptbench.models.config.densenet>` DenseNet trained on normalized-kfold MC-CH-IN + :py:mod:`DenseNet <ptbench.config.models.densenet>` DenseNet trained on normalized-kfold MC-CH-IN Logistic Regression Classifier """""""""""""""""""""""""""""" @@ -229,19 +229,19 @@ Thresholds used: :scale: 50% :alt: Testing sets ROC curves for LogReg model trained on normalized-kfold MC - :py:mod:`LogReg <ptbench.models.config.logistic_regression>`: LogReg trained on normalized-kfold MC + :py:mod:`LogReg <ptbench.config.models.logistic_regression>`: LogReg trained on normalized-kfold MC - .. figure:: img/compare_logreg_mc_ch_kfold_100.jpg :align: center :scale: 50% :alt: Testing sets ROC curves for LogReg model trained on normalized-kfold MC-CH - :py:mod:`LogReg <ptbench.models.config.logistic_regression>`: LogReg trained on normalized-kfold MC-CH + :py:mod:`LogReg <ptbench.config.models.logistic_regression>`: LogReg trained on normalized-kfold MC-CH - .. figure:: img/compare_logreg_mc_ch_in_kfold_100.jpg :align: center :scale: 50% :alt: Testing sets ROC curves for LogReg model trained on normalized-kfold MC-CH-IN - :py:mod:`LogReg <ptbench.models.config.logistic_regression>`: LogReg trained on normalized-kfold MC-CH-IN + :py:mod:`LogReg <ptbench.config.models.logistic_regression>`: LogReg trained on normalized-kfold MC-CH-IN DenseNet-121 (pretrained on ImageNet and NIH CXR14) """"""""""""""""""""""""""""""""""""""""""""""""""" @@ -278,19 +278,19 @@ Thresholds used: :scale: 50% :alt: Testing sets ROC curves for DenseNet model trained on normalized-kfold MC (pretrained on NIH) - :py:mod:`DenseNet <ptbench.models.config.densenet>`: DenseNet trained on normalized-kfold MC (pretrained on NIH) + :py:mod:`DenseNet <ptbench.config.models.densenet>`: DenseNet trained on normalized-kfold MC (pretrained on NIH) - .. figure:: img/compare_densenetpre_mc_ch_kfold_300.jpg :align: center :scale: 50% :alt: Testing sets ROC curves for DenseNet model trained on normalized-kfold MC-CH (pretrained on NIH) - :py:mod:`DenseNet <ptbench.models.config.densenet>`: DenseNet trained on normalized-kfold MC-CH (pretrained on NIH) + :py:mod:`DenseNet <ptbench.config.models.densenet>`: DenseNet trained on normalized-kfold MC-CH (pretrained on NIH) - .. figure:: img/compare_densenetpre_mc_ch_in_kfold_300.jpg :align: center :scale: 50% :alt: Testing sets ROC curves for DenseNet model trained on normalized-kfold MC-CH-IN (pretrained on NIH) - :py:mod:`DenseNet <ptbench.models.config.densenet>`: DenseNet trained on normalized-kfold MC-CH-IN (pretrained on NIH) + :py:mod:`DenseNet <ptbench.config.models.densenet>`: DenseNet trained on normalized-kfold MC-CH-IN (pretrained on NIH) Global sensitivity analysis (relevance) diff --git a/doc/usage/evaluation.rst b/doc/usage/evaluation.rst index 8d98ca924873c9dec0c6781641541cceb9f36ee7..1778e126ce2de28c1cfe123178c0c85176f61b24 100644 --- a/doc/usage/evaluation.rst +++ b/doc/usage/evaluation.rst @@ -35,7 +35,7 @@ the pre-trained model. .. tip:: An option to generate grad-CAMs is available for the :py:mod:`DensenetRS - <ptbench.models.config.densenet_rs>` model. To activate it, use the + <ptbench.config.models.densenet_rs>` model. To activate it, use the ``--grad-cams`` argument. .. tip:: diff --git a/pyproject.toml b/pyproject.toml index f2de6fd46df9574bf29241d6fdf6515382474e00..8ebe16e4e5b18a26930ce3439a740c79e17cb980 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -41,7 +41,7 @@ dependencies = [ "torch>=1.8", "torchvision>=0.10", "lightning>=2.0.3", - "pydantic <2.0,>=1.7.4", # temporary, until issue #31 is fixed + "pydantic <2.0,>=1.7.4", # temporary, until issue #31 is fixed "tensorboard", ] @@ -70,168 +70,168 @@ ptbench = "ptbench.scripts.cli:cli" [project.entry-points."ptbench.config"] # models -pasa = "ptbench.models.config.pasa" -mlp = "ptbench.models.config.mlp" -logistic-regression = "ptbench.models.config.logistic_regression" -alexnet = "ptbench.models.config.alexnet" -alexnet-pretrained = "ptbench.models.config.alexnet_pretrained" -densenet = "ptbench.models.config.densenet" -densenet-pretrained = "ptbench.models.config.densenet_pretrained" +pasa = "ptbench.config.models.pasa" +mlp = "ptbench.config.models.mlp" +logistic-regression = "ptbench.config.models.logistic_regression" +alexnet = "ptbench.config.models.alexnet" +alexnet-pretrained = "ptbench.config.models.alexnet_pretrained" +densenet = "ptbench.config.models.densenet" +densenet-pretrained = "ptbench.config.models.densenet_pretrained" # montgomery dataset (and cross-validation folds) -montgomery = "ptbench.data.montgomery.default" -montgomery-f0 = "ptbench.data.montgomery.fold_0" -montgomery-f1 = "ptbench.data.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 = "ptbench.config.data.montgomery.default" +montgomery-f0 = "ptbench.config.data.montgomery.fold_0" +montgomery-f1 = "ptbench.config.data.montgomery.fold_1" +montgomery-f2 = "ptbench.config.data.montgomery.fold_2" +montgomery-f3 = "ptbench.config.data.montgomery.fold_3" +montgomery-f4 = "ptbench.config.data.montgomery.fold_4" +montgomery-f5 = "ptbench.config.data.montgomery.fold_5" +montgomery-f6 = "ptbench.config.data.montgomery.fold_6" +montgomery-f7 = "ptbench.config.data.montgomery.fold_7" +montgomery-f8 = "ptbench.config.data.montgomery.fold_8" +montgomery-f9 = "ptbench.config.data.montgomery.fold_9" # shenzhen dataset (and cross-validation folds) -shenzhen = "ptbench.data.shenzhen.default" -shenzhen-f0 = "ptbench.data.shenzhen.fold_0" -shenzhen-f1 = "ptbench.data.shenzhen.fold_1" -shenzhen-f2 = "ptbench.data.shenzhen.fold_2" -shenzhen-f3 = "ptbench.data.shenzhen.fold_3" -shenzhen-f4 = "ptbench.data.shenzhen.fold_4" -shenzhen-f5 = "ptbench.data.shenzhen.fold_5" -shenzhen-f6 = "ptbench.data.shenzhen.fold_6" -shenzhen-f7 = "ptbench.data.shenzhen.fold_7" -shenzhen-f8 = "ptbench.data.shenzhen.fold_8" -shenzhen-f9 = "ptbench.data.shenzhen.fold_9" +shenzhen = "ptbench.config.data.shenzhen.default" +shenzhen-f0 = "ptbench.config.data.shenzhen.fold_0" +shenzhen-f1 = "ptbench.config.data.shenzhen.fold_1" +shenzhen-f2 = "ptbench.config.data.shenzhen.fold_2" +shenzhen-f3 = "ptbench.config.data.shenzhen.fold_3" +shenzhen-f4 = "ptbench.config.data.shenzhen.fold_4" +shenzhen-f5 = "ptbench.config.data.shenzhen.fold_5" +shenzhen-f6 = "ptbench.config.data.shenzhen.fold_6" +shenzhen-f7 = "ptbench.config.data.shenzhen.fold_7" +shenzhen-f8 = "ptbench.config.data.shenzhen.fold_8" +shenzhen-f9 = "ptbench.config.data.shenzhen.fold_9" # indian dataset (and cross-validation folds) -indian = "ptbench.data.indian.default" -indian-f0 = "ptbench.data.indian.fold_0" -indian-f1 = "ptbench.data.indian.fold_1" -indian-f2 = "ptbench.data.indian.fold_2" -indian-f3 = "ptbench.data.indian.fold_3" -indian-f4 = "ptbench.data.indian.fold_4" -indian-f5 = "ptbench.data.indian.fold_5" -indian-f6 = "ptbench.data.indian.fold_6" -indian-f7 = "ptbench.data.indian.fold_7" -indian-f8 = "ptbench.data.indian.fold_8" -indian-f9 = "ptbench.data.indian.fold_9" +indian = "ptbench.config.data.indian.default" +indian-f0 = "ptbench.config.data.indian.fold_0" +indian-f1 = "ptbench.config.data.indian.fold_1" +indian-f2 = "ptbench.config.data.indian.fold_2" +indian-f3 = "ptbench.config.data.indian.fold_3" +indian-f4 = "ptbench.config.data.indian.fold_4" +indian-f5 = "ptbench.config.data.indian.fold_5" +indian-f6 = "ptbench.config.data.indian.fold_6" +indian-f7 = "ptbench.config.data.indian.fold_7" +indian-f8 = "ptbench.config.data.indian.fold_8" +indian-f9 = "ptbench.config.data.indian.fold_9" # TBX11K dataset split 1: healthy vs active tb, and cross-validation folds -tbx11k-v1-healthy-vs-atb = "ptbench.data.tbx11k.v1_healthy_vs_atb" -tbx11k-v1-f0 = "ptbench.data.tbx11k.v1_fold_0" -tbx11k-v1-f1 = "ptbench.data.tbx11k.v1_fold_1" -tbx11k-v1-f2 = "ptbench.data.tbx11k.v1_fold_2" -tbx11k-v1-f3 = "ptbench.data.tbx11k.v1_fold_3" -tbx11k-v1-f4 = "ptbench.data.tbx11k.v1_fold_4" -tbx11k-v1-f5 = "ptbench.data.tbx11k.v1_fold_5" -tbx11k-v1-f6 = "ptbench.data.tbx11k.v1_fold_6" -tbx11k-v1-f7 = "ptbench.data.tbx11k.v1_fold_7" -tbx11k-v1-f8 = "ptbench.data.tbx11k.v1_fold_8" -tbx11k-v1-f9 = "ptbench.data.tbx11k.v1_fold_9" +tbx11k-v1-healthy-vs-atb = "ptbench.config.data.tbx11k.v1_healthy_vs_atb" +tbx11k-v1-f0 = "ptbench.config.data.tbx11k.v1_fold_0" +tbx11k-v1-f1 = "ptbench.config.data.tbx11k.v1_fold_1" +tbx11k-v1-f2 = "ptbench.config.data.tbx11k.v1_fold_2" +tbx11k-v1-f3 = "ptbench.config.data.tbx11k.v1_fold_3" +tbx11k-v1-f4 = "ptbench.config.data.tbx11k.v1_fold_4" +tbx11k-v1-f5 = "ptbench.config.data.tbx11k.v1_fold_5" +tbx11k-v1-f6 = "ptbench.config.data.tbx11k.v1_fold_6" +tbx11k-v1-f7 = "ptbench.config.data.tbx11k.v1_fold_7" +tbx11k-v1-f8 = "ptbench.config.data.tbx11k.v1_fold_8" +tbx11k-v1-f9 = "ptbench.config.data.tbx11k.v1_fold_9" # TBX11K dataset split 2: others vs active tb, and cross-validation folds -tbx11k-v2-others-vs-atb = "ptbench.data.tbx11k.v2_others_vs_atb" -tbx11k-v2-f0 = "ptbench.data.tbx11k.v2_fold_0" -tbx11k-v2-f1 = "ptbench.data.tbx11k.v2_fold_1" -tbx11k-v2-f2 = "ptbench.data.tbx11k.v2_fold_2" -tbx11k-v2-f3 = "ptbench.data.tbx11k.v2_fold_3" -tbx11k-v2-f4 = "ptbench.data.tbx11k.v2_fold_4" -tbx11k-v2-f5 = "ptbench.data.tbx11k.v2_fold_5" -tbx11k-v2-f6 = "ptbench.data.tbx11k.v2_fold_6" -tbx11k-v2-f7 = "ptbench.data.tbx11k.v2_fold_7" -tbx11k-v2-f8 = "ptbench.data.tbx11k.v2_fold_8" -tbx11k-v2-f9 = "ptbench.data.tbx11k.v2_fold_9" +tbx11k-v2-others-vs-atb = "ptbench.config.data.tbx11k.v2_others_vs_atb" +tbx11k-v2-f0 = "ptbench.config.data.tbx11k.v2_fold_0" +tbx11k-v2-f1 = "ptbench.config.data.tbx11k.v2_fold_1" +tbx11k-v2-f2 = "ptbench.config.data.tbx11k.v2_fold_2" +tbx11k-v2-f3 = "ptbench.config.data.tbx11k.v2_fold_3" +tbx11k-v2-f4 = "ptbench.config.data.tbx11k.v2_fold_4" +tbx11k-v2-f5 = "ptbench.config.data.tbx11k.v2_fold_5" +tbx11k-v2-f6 = "ptbench.config.data.tbx11k.v2_fold_6" +tbx11k-v2-f7 = "ptbench.config.data.tbx11k.v2_fold_7" +tbx11k-v2-f8 = "ptbench.config.data.tbx11k.v2_fold_8" +tbx11k-v2-f9 = "ptbench.config.data.tbx11k.v2_fold_9" # montgomery-shenzhen aggregated dataset -montgomery-shenzhen = "ptbench.data.montgomery_shenzhen.default" -montgomery-shenzhen-f0 = "ptbench.data.montgomery_shenzhen.fold_0" -montgomery-shenzhen-f1 = "ptbench.data.montgomery_shenzhen.fold_1" -montgomery-shenzhen-f2 = "ptbench.data.montgomery_shenzhen.fold_2" -montgomery-shenzhen-f3 = "ptbench.data.montgomery_shenzhen.fold_3" -montgomery-shenzhen-f4 = "ptbench.data.montgomery_shenzhen.fold_4" -montgomery-shenzhen-f5 = "ptbench.data.montgomery_shenzhen.fold_5" -montgomery-shenzhen-f6 = "ptbench.data.montgomery_shenzhen.fold_6" -montgomery-shenzhen-f7 = "ptbench.data.montgomery_shenzhen.fold_7" -montgomery-shenzhen-f8 = "ptbench.data.montgomery_shenzhen.fold_8" -montgomery-shenzhen-f9 = "ptbench.data.montgomery_shenzhen.fold_9" +montgomery-shenzhen = "ptbench.config.data.montgomery_shenzhen.default" +montgomery-shenzhen-f0 = "ptbench.config.data.montgomery_shenzhen.fold_0" +montgomery-shenzhen-f1 = "ptbench.config.data.montgomery_shenzhen.fold_1" +montgomery-shenzhen-f2 = "ptbench.config.data.montgomery_shenzhen.fold_2" +montgomery-shenzhen-f3 = "ptbench.config.data.montgomery_shenzhen.fold_3" +montgomery-shenzhen-f4 = "ptbench.config.data.montgomery_shenzhen.fold_4" +montgomery-shenzhen-f5 = "ptbench.config.data.montgomery_shenzhen.fold_5" +montgomery-shenzhen-f6 = "ptbench.config.data.montgomery_shenzhen.fold_6" +montgomery-shenzhen-f7 = "ptbench.config.data.montgomery_shenzhen.fold_7" +montgomery-shenzhen-f8 = "ptbench.config.data.montgomery_shenzhen.fold_8" +montgomery-shenzhen-f9 = "ptbench.config.data.montgomery_shenzhen.fold_9" # montgomery-shenzhen-indian aggregated dataset -montgomery-shenzhen-indian = "ptbench.data.montgomery_shenzhen_indian.default" -montgomery-shenzhen-indian-f0 = "ptbench.data.montgomery_shenzhen_indian.fold_0" -montgomery-shenzhen-indian-f1 = "ptbench.data.montgomery_shenzhen_indian.fold_1" -montgomery-shenzhen-indian-f2 = "ptbench.data.montgomery_shenzhen_indian.fold_2" -montgomery-shenzhen-indian-f3 = "ptbench.data.montgomery_shenzhen_indian.fold_3" -montgomery-shenzhen-indian-f4 = "ptbench.data.montgomery_shenzhen_indian.fold_4" -montgomery-shenzhen-indian-f5 = "ptbench.data.montgomery_shenzhen_indian.fold_5" -montgomery-shenzhen-indian-f6 = "ptbench.data.montgomery_shenzhen_indian.fold_6" -montgomery-shenzhen-indian-f7 = "ptbench.data.montgomery_shenzhen_indian.fold_7" -montgomery-shenzhen-indian-f8 = "ptbench.data.montgomery_shenzhen_indian.fold_8" -montgomery-shenzhen-indian-f9 = "ptbench.data.montgomery_shenzhen_indian.fold_9" +montgomery-shenzhen-indian = "ptbench.config.data.montgomery_shenzhen_indian.default" +montgomery-shenzhen-indian-f0 = "ptbench.config.data.montgomery_shenzhen_indian.fold_0" +montgomery-shenzhen-indian-f1 = "ptbench.config.data.montgomery_shenzhen_indian.fold_1" +montgomery-shenzhen-indian-f2 = "ptbench.config.data.montgomery_shenzhen_indian.fold_2" +montgomery-shenzhen-indian-f3 = "ptbench.config.data.montgomery_shenzhen_indian.fold_3" +montgomery-shenzhen-indian-f4 = "ptbench.config.data.montgomery_shenzhen_indian.fold_4" +montgomery-shenzhen-indian-f5 = "ptbench.config.data.montgomery_shenzhen_indian.fold_5" +montgomery-shenzhen-indian-f6 = "ptbench.config.data.montgomery_shenzhen_indian.fold_6" +montgomery-shenzhen-indian-f7 = "ptbench.config.data.montgomery_shenzhen_indian.fold_7" +montgomery-shenzhen-indian-f8 = "ptbench.config.data.montgomery_shenzhen_indian.fold_8" +montgomery-shenzhen-indian-f9 = "ptbench.config.data.montgomery_shenzhen_indian.fold_9" # montgomery-shenzhen-indian-tbx11k aggregated dataset -montgomery-shenzhen-indian-tbx11k-v1 = "ptbench.data.montgomery_shenzhen_indian_tbx11k.v1_healthy_vs_atb" -montgomery-shenzhen-indian-tbx11k-v1-f0 = "ptbench.data.montgomery_shenzhen_indian_tbx11k.v1_fold_0" -montgomery-shenzhen-indian-tbx11k-v1-f1 = "ptbench.data.montgomery_shenzhen_indian_tbx11k.v1_fold_1" -montgomery-shenzhen-indian-tbx11k-v1-f2 = "ptbench.data.montgomery_shenzhen_indian_tbx11k.v1_fold_2" -montgomery-shenzhen-indian-tbx11k-v1-f3 = "ptbench.data.montgomery_shenzhen_indian_tbx11k.v1_fold_3" -montgomery-shenzhen-indian-tbx11k-v1-f4 = "ptbench.data.montgomery_shenzhen_indian_tbx11k.v1_fold_4" -montgomery-shenzhen-indian-tbx11k-v1-f5 = "ptbench.data.montgomery_shenzhen_indian_tbx11k.v1_fold_5" -montgomery-shenzhen-indian-tbx11k-v1-f6 = "ptbench.data.montgomery_shenzhen_indian_tbx11k.v1_fold_6" -montgomery-shenzhen-indian-tbx11k-v1-f7 = "ptbench.data.montgomery_shenzhen_indian_tbx11k.v1_fold_7" -montgomery-shenzhen-indian-tbx11k-v1-f8 = "ptbench.data.montgomery_shenzhen_indian_tbx11k.v1_fold_8" -montgomery-shenzhen-indian-tbx11k-v1-f9 = "ptbench.data.montgomery_shenzhen_indian_tbx11k.v1_fold_9" -montgomery-shenzhen-indian-tbx11k-v2 = "ptbench.data.montgomery_shenzhen_indian_tbx11k.v2_others_vs_atb" -montgomery-shenzhen-indian-tbx11k-v2-f0 = "ptbench.data.montgomery_shenzhen_indian_tbx11k.v2_fold_0" -montgomery-shenzhen-indian-tbx11k-v2-f1 = "ptbench.data.montgomery_shenzhen_indian_tbx11k.v2_fold_1" -montgomery-shenzhen-indian-tbx11k-v2-f2 = "ptbench.data.montgomery_shenzhen_indian_tbx11k.v2_fold_2" -montgomery-shenzhen-indian-tbx11k-v2-f3 = "ptbench.data.montgomery_shenzhen_indian_tbx11k.v2_fold_3" -montgomery-shenzhen-indian-tbx11k-v2-f4 = "ptbench.data.montgomery_shenzhen_indian_tbx11k.v2_fold_4" -montgomery-shenzhen-indian-tbx11k-v2-f5 = "ptbench.data.montgomery_shenzhen_indian_tbx11k.v2_fold_5" -montgomery-shenzhen-indian-tbx11k-v2-f6 = "ptbench.data.montgomery_shenzhen_indian_tbx11k.v2_fold_6" -montgomery-shenzhen-indian-tbx11k-v2-f7 = "ptbench.data.montgomery_shenzhen_indian_tbx11k.v2_fold_7" -montgomery-shenzhen-indian-tbx11k-v2-f8 = "ptbench.data.montgomery_shenzhen_indian_tbx11k.v2_fold_8" -montgomery-shenzhen-indian-tbx11k-v2-f9 = "ptbench.data.montgomery_shenzhen_indian_tbx11k.v2_fold_9" +montgomery-shenzhen-indian-tbx11k-v1 = "ptbench.config.data.montgomery_shenzhen_indian_tbx11k.v1_healthy_vs_atb" +montgomery-shenzhen-indian-tbx11k-v1-f0 = "ptbench.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_0" +montgomery-shenzhen-indian-tbx11k-v1-f1 = "ptbench.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_1" +montgomery-shenzhen-indian-tbx11k-v1-f2 = "ptbench.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_2" +montgomery-shenzhen-indian-tbx11k-v1-f3 = "ptbench.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_3" +montgomery-shenzhen-indian-tbx11k-v1-f4 = "ptbench.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_4" +montgomery-shenzhen-indian-tbx11k-v1-f5 = "ptbench.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_5" +montgomery-shenzhen-indian-tbx11k-v1-f6 = "ptbench.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_6" +montgomery-shenzhen-indian-tbx11k-v1-f7 = "ptbench.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_7" +montgomery-shenzhen-indian-tbx11k-v1-f8 = "ptbench.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_8" +montgomery-shenzhen-indian-tbx11k-v1-f9 = "ptbench.config.data.montgomery_shenzhen_indian_tbx11k.v1_fold_9" +montgomery-shenzhen-indian-tbx11k-v2 = "ptbench.config.data.montgomery_shenzhen_indian_tbx11k.v2_others_vs_atb" +montgomery-shenzhen-indian-tbx11k-v2-f0 = "ptbench.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_0" +montgomery-shenzhen-indian-tbx11k-v2-f1 = "ptbench.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_1" +montgomery-shenzhen-indian-tbx11k-v2-f2 = "ptbench.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_2" +montgomery-shenzhen-indian-tbx11k-v2-f3 = "ptbench.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_3" +montgomery-shenzhen-indian-tbx11k-v2-f4 = "ptbench.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_4" +montgomery-shenzhen-indian-tbx11k-v2-f5 = "ptbench.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_5" +montgomery-shenzhen-indian-tbx11k-v2-f6 = "ptbench.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_6" +montgomery-shenzhen-indian-tbx11k-v2-f7 = "ptbench.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_7" +montgomery-shenzhen-indian-tbx11k-v2-f8 = "ptbench.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_8" +montgomery-shenzhen-indian-tbx11k-v2-f9 = "ptbench.config.data.montgomery_shenzhen_indian_tbx11k.v2_fold_9" # tbpoc dataset (only cross-validation folds) -tbpoc-f0 = "ptbench.data.tbpoc.fold_0" -tbpoc-f1 = "ptbench.data.tbpoc.fold_1" -tbpoc-f2 = "ptbench.data.tbpoc.fold_2" -tbpoc-f3 = "ptbench.data.tbpoc.fold_3" -tbpoc-f4 = "ptbench.data.tbpoc.fold_4" -tbpoc-f5 = "ptbench.data.tbpoc.fold_5" -tbpoc-f6 = "ptbench.data.tbpoc.fold_6" -tbpoc-f7 = "ptbench.data.tbpoc.fold_7" -tbpoc-f8 = "ptbench.data.tbpoc.fold_8" -tbpoc-f9 = "ptbench.data.tbpoc.fold_9" +tbpoc-f0 = "ptbench.config.data.tbpoc.fold_0" +tbpoc-f1 = "ptbench.config.data.tbpoc.fold_1" +tbpoc-f2 = "ptbench.config.data.tbpoc.fold_2" +tbpoc-f3 = "ptbench.config.data.tbpoc.fold_3" +tbpoc-f4 = "ptbench.config.data.tbpoc.fold_4" +tbpoc-f5 = "ptbench.config.data.tbpoc.fold_5" +tbpoc-f6 = "ptbench.config.data.tbpoc.fold_6" +tbpoc-f7 = "ptbench.config.data.tbpoc.fold_7" +tbpoc-f8 = "ptbench.config.data.tbpoc.fold_8" +tbpoc-f9 = "ptbench.config.data.tbpoc.fold_9" # hivtb dataset (only cross-validation folds) -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 = "ptbench.config.data.hivtb.fold_0" +hivtb-f1 = "ptbench.config.data.hivtb.fold_1" +hivtb-f2 = "ptbench.config.data.hivtb.fold_2" +hivtb-f3 = "ptbench.config.data.hivtb.fold_3" +hivtb-f4 = "ptbench.config.data.hivtb.fold_4" +hivtb-f5 = "ptbench.config.data.hivtb.fold_5" +hivtb-f6 = "ptbench.config.data.hivtb.fold_6" +hivtb-f7 = "ptbench.config.data.hivtb.fold_7" +hivtb-f8 = "ptbench.config.data.hivtb.fold_8" +hivtb-f9 = "ptbench.config.data.hivtb.fold_9" # NIH CXR14 (relabeled), multi-class (14 labels) -nih-cxr14 = "ptbench.data.nih_cxr14.default" -nih-cxr14-cardiomegaly = "ptbench.data.nih_cxr14.cardiomegaly" +nih-cxr14 = "ptbench.config.data.nih_cxr14.default" +nih-cxr14-cardiomegaly = "ptbench.config.data.nih_cxr14.cardiomegaly" # PadChest, multi-class (varied number of labels) -padchest-idiap = "ptbench.data.padchest.idiap" -padchest-tb-idiap = "ptbench.data.padchest.tb_idiap" -padchest-no-tb-idiap = "ptbench.data.padchest.no_tb_idiap" -padchest-cardiomegaly-idiap = "ptbench.data.padchest.cardiomegaly_idiap" +padchest-idiap = "ptbench.config.data.padchest.idiap" +padchest-tb-idiap = "ptbench.config.data.padchest.tb_idiap" +padchest-no-tb-idiap = "ptbench.config.data.padchest.no_tb_idiap" +padchest-cardiomegaly-idiap = "ptbench.config.data.padchest.cardiomegaly_idiap" # NIH CXR14 / PadChest aggregated dataset -nih-cxr14-padchest = "ptbench.data.nih_cxr14_padchest.idiap" +nih-cxr14-padchest = "ptbench.config.data.nih_cxr14_padchest.idiap" # montgomery-shenzhen-indian-padchest aggregated dataset -montgomery-shenzhen-indian-padchest = "ptbench.data.montgomery_shenzhen_indian_padchest.default" +montgomery-shenzhen-indian-padchest = "ptbench.config.data.montgomery_shenzhen_indian_padchest.default" [tool.setuptools] zip-safe = true diff --git a/src/ptbench/data/hivtb/__init__.py b/src/ptbench/config/__init__.py similarity index 100% rename from src/ptbench/data/hivtb/__init__.py rename to src/ptbench/config/__init__.py diff --git a/src/ptbench/data/indian/__init__.py b/src/ptbench/config/data/hivtb/__init__.py similarity index 100% rename from src/ptbench/data/indian/__init__.py rename to src/ptbench/config/data/hivtb/__init__.py diff --git a/src/ptbench/data/hivtb/datamodule.py b/src/ptbench/config/data/hivtb/datamodule.py similarity index 85% rename from src/ptbench/data/hivtb/datamodule.py rename to src/ptbench/config/data/hivtb/datamodule.py index 2c68c85d54ca9d0369d5a3472cb816bc1859bc87..653743a53d2ec8a9d942136be61e0818fff01aa0 100644 --- a/src/ptbench/data/hivtb/datamodule.py +++ b/src/ptbench/config/data/hivtb/datamodule.py @@ -14,13 +14,17 @@ import PIL.Image from torchvision.transforms.functional import center_crop, to_tensor -from ...utils.rc import load_rc -from ..datamodule import CachingDataModule -from ..image_utils import remove_black_borders -from ..split import JSONDatabaseSplit -from ..typing import DatabaseSplit -from ..typing import RawDataLoader as _BaseRawDataLoader -from ..typing import Sample +from ptbench.data.datamodule import CachingDataModule +from ptbench.data.image_utils import remove_black_borders +from ptbench.data.split import JSONDatabaseSplit +from ptbench.data.typing import DatabaseSplit +from ptbench.data.typing import RawDataLoader as _BaseRawDataLoader +from ptbench.data.typing import Sample +from ptbench.utils.rc import load_rc + +CONFIGURATION_KEY_DATADIR = "datadir." + (__name__.rsplit(".", 2)[-2]) +"""Key to search for in the configuration file for the root directory of this +database.""" class RawDataLoader(_BaseRawDataLoader): @@ -32,7 +36,7 @@ class RawDataLoader(_BaseRawDataLoader): def __init__(self): self.datadir = load_rc().get( - "datadir.hivtb", os.path.realpath(os.curdir) + CONFIGURATION_KEY_DATADIR, os.path.realpath(os.curdir) ) def sample(self, sample: tuple[str, int]) -> Sample: diff --git a/src/ptbench/data/hivtb/fold-0.json b/src/ptbench/config/data/hivtb/fold-0.json similarity index 100% rename from src/ptbench/data/hivtb/fold-0.json rename to src/ptbench/config/data/hivtb/fold-0.json diff --git a/src/ptbench/data/hivtb/fold-1.json b/src/ptbench/config/data/hivtb/fold-1.json similarity index 100% rename from src/ptbench/data/hivtb/fold-1.json rename to src/ptbench/config/data/hivtb/fold-1.json diff --git a/src/ptbench/data/hivtb/fold-2.json b/src/ptbench/config/data/hivtb/fold-2.json similarity index 100% rename from src/ptbench/data/hivtb/fold-2.json rename to src/ptbench/config/data/hivtb/fold-2.json diff --git a/src/ptbench/data/hivtb/fold-3.json b/src/ptbench/config/data/hivtb/fold-3.json similarity index 100% rename from src/ptbench/data/hivtb/fold-3.json rename to src/ptbench/config/data/hivtb/fold-3.json diff --git a/src/ptbench/data/hivtb/fold-4.json b/src/ptbench/config/data/hivtb/fold-4.json similarity index 100% rename from src/ptbench/data/hivtb/fold-4.json rename to src/ptbench/config/data/hivtb/fold-4.json diff --git a/src/ptbench/data/hivtb/fold-5.json b/src/ptbench/config/data/hivtb/fold-5.json similarity index 100% rename from src/ptbench/data/hivtb/fold-5.json rename to src/ptbench/config/data/hivtb/fold-5.json diff --git a/src/ptbench/data/hivtb/fold-6.json b/src/ptbench/config/data/hivtb/fold-6.json similarity index 100% rename from src/ptbench/data/hivtb/fold-6.json rename to src/ptbench/config/data/hivtb/fold-6.json diff --git a/src/ptbench/data/hivtb/fold-7.json b/src/ptbench/config/data/hivtb/fold-7.json similarity index 100% rename from src/ptbench/data/hivtb/fold-7.json rename to src/ptbench/config/data/hivtb/fold-7.json diff --git a/src/ptbench/data/hivtb/fold-8.json b/src/ptbench/config/data/hivtb/fold-8.json similarity index 100% rename from src/ptbench/data/hivtb/fold-8.json rename to src/ptbench/config/data/hivtb/fold-8.json diff --git a/src/ptbench/data/hivtb/fold-9.json b/src/ptbench/config/data/hivtb/fold-9.json similarity index 100% rename from src/ptbench/data/hivtb/fold-9.json rename to src/ptbench/config/data/hivtb/fold-9.json diff --git a/src/ptbench/data/hivtb/fold_0.py b/src/ptbench/config/data/hivtb/fold_0.py similarity index 65% rename from src/ptbench/data/hivtb/fold_0.py rename to src/ptbench/config/data/hivtb/fold_0.py index c8a11de17b265005b9bb209c8a7ca16e82f83064..4e00590f44f585e4a68f69b56fbc43b240e95a53 100644 --- a/src/ptbench/data/hivtb/fold_0.py +++ b/src/ptbench/config/data/hivtb/fold_0.py @@ -5,9 +5,9 @@ Database reference: [HIV-TB-2019]_ -See :py:class:`.hivtb.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.hivtb.datamodule.DataModule` for technical details. """ -from .datamodule import DataModule +from ptbench.config.data.hivtb.datamodule import DataModule datamodule = DataModule("fold-0.json") diff --git a/src/ptbench/data/hivtb/fold_1.py b/src/ptbench/config/data/hivtb/fold_1.py similarity index 65% rename from src/ptbench/data/hivtb/fold_1.py rename to src/ptbench/config/data/hivtb/fold_1.py index 3b2434e0762250518fd3bfd58fc13d14617a6d7e..55333dd007e5e275c051cb34a6fc74bf2fddfbb2 100644 --- a/src/ptbench/data/hivtb/fold_1.py +++ b/src/ptbench/config/data/hivtb/fold_1.py @@ -5,9 +5,9 @@ Database reference: [HIV-TB-2019]_ -See :py:class:`.hivtb.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.hivtb.datamodule.DataModule` for technical details. """ -from .datamodule import DataModule +from ptbench.config.data.hivtb.datamodule import DataModule datamodule = DataModule("fold-1.json") diff --git a/src/ptbench/data/hivtb/fold_2.py b/src/ptbench/config/data/hivtb/fold_2.py similarity index 65% rename from src/ptbench/data/hivtb/fold_2.py rename to src/ptbench/config/data/hivtb/fold_2.py index ac95eca19a012d315d0b4c91a8afd0e8dedf69bb..5c8fd9b7af6c7a64c4995fe7ba240426585b5319 100644 --- a/src/ptbench/data/hivtb/fold_2.py +++ b/src/ptbench/config/data/hivtb/fold_2.py @@ -5,9 +5,9 @@ Database reference: [HIV-TB-2019]_ -See :py:class:`.hivtb.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.hivtb.datamodule.DataModule` for technical details. """ -from .datamodule import DataModule +from ptbench.config.data.hivtb.datamodule import DataModule datamodule = DataModule("fold-2.json") diff --git a/src/ptbench/data/hivtb/fold_3.py b/src/ptbench/config/data/hivtb/fold_3.py similarity index 65% rename from src/ptbench/data/hivtb/fold_3.py rename to src/ptbench/config/data/hivtb/fold_3.py index 1d662e2773bcb9e511ae2478bf3525ef269d3ff4..5d1b308c8afa6b9bb32bbc96272bfaa1985f7c18 100644 --- a/src/ptbench/data/hivtb/fold_3.py +++ b/src/ptbench/config/data/hivtb/fold_3.py @@ -5,9 +5,9 @@ Database reference: [HIV-TB-2019]_ -See :py:class:`.hivtb.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.hivtb.datamodule.DataModule` for technical details. """ -from .datamodule import DataModule +from ptbench.config.data.hivtb.datamodule import DataModule datamodule = DataModule("fold-3.json") diff --git a/src/ptbench/data/hivtb/fold_4.py b/src/ptbench/config/data/hivtb/fold_4.py similarity index 65% rename from src/ptbench/data/hivtb/fold_4.py rename to src/ptbench/config/data/hivtb/fold_4.py index 1f59dcf53fae47a7d44d28beae581930df6f9201..77c2073a2b325e3c72bf9800415200739cb0e69e 100644 --- a/src/ptbench/data/hivtb/fold_4.py +++ b/src/ptbench/config/data/hivtb/fold_4.py @@ -5,9 +5,9 @@ Database reference: [HIV-TB-2019]_ -See :py:class:`.hivtb.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.hivtb.datamodule.DataModule` for technical details. """ -from .datamodule import DataModule +from ptbench.config.data.hivtb.datamodule import DataModule datamodule = DataModule("fold-4.json") diff --git a/src/ptbench/data/hivtb/fold_5.py b/src/ptbench/config/data/hivtb/fold_5.py similarity index 65% rename from src/ptbench/data/hivtb/fold_5.py rename to src/ptbench/config/data/hivtb/fold_5.py index 03170e280e35c77cffcb58919b5fadc1411f93c1..e06f9dd1fb3de22d4e7d32ac33c6aa66f5707205 100644 --- a/src/ptbench/data/hivtb/fold_5.py +++ b/src/ptbench/config/data/hivtb/fold_5.py @@ -5,9 +5,9 @@ Database reference: [HIV-TB-2019]_ -See :py:class:`.hivtb.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.hivtb.datamodule.DataModule` for technical details. """ -from .datamodule import DataModule +from ptbench.config.data.hivtb.datamodule import DataModule datamodule = DataModule("fold-5.json") diff --git a/src/ptbench/data/hivtb/fold_6.py b/src/ptbench/config/data/hivtb/fold_6.py similarity index 65% rename from src/ptbench/data/hivtb/fold_6.py rename to src/ptbench/config/data/hivtb/fold_6.py index 9950b0df32b299344d9df5e1df11c615b000dea9..4b7db6de8847059e92386c84f5a0d7fe7937edc8 100644 --- a/src/ptbench/data/hivtb/fold_6.py +++ b/src/ptbench/config/data/hivtb/fold_6.py @@ -5,9 +5,9 @@ Database reference: [HIV-TB-2019]_ -See :py:class:`.hivtb.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.hivtb.datamodule.DataModule` for technical details. """ -from .datamodule import DataModule +from ptbench.config.data.hivtb.datamodule import DataModule datamodule = DataModule("fold-6.json") diff --git a/src/ptbench/data/hivtb/fold_7.py b/src/ptbench/config/data/hivtb/fold_7.py similarity index 65% rename from src/ptbench/data/hivtb/fold_7.py rename to src/ptbench/config/data/hivtb/fold_7.py index 043ef9decfaf0ebac356bdd59fbeae3e361b5e3b..3670047caa59ea9bcf9b3b9c75a06553d288503c 100644 --- a/src/ptbench/data/hivtb/fold_7.py +++ b/src/ptbench/config/data/hivtb/fold_7.py @@ -5,9 +5,9 @@ Database reference: [HIV-TB-2019]_ -See :py:class:`.hivtb.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.hivtb.datamodule.DataModule` for technical details. """ -from .datamodule import DataModule +from ptbench.config.data.hivtb.datamodule import DataModule datamodule = DataModule("fold-7.json") diff --git a/src/ptbench/data/hivtb/fold_8.py b/src/ptbench/config/data/hivtb/fold_8.py similarity index 65% rename from src/ptbench/data/hivtb/fold_8.py rename to src/ptbench/config/data/hivtb/fold_8.py index 9aa80c5174725280e2a2fda667cc5010baae70ad..c0900d155b0bd59e9afa95cfa7eb08268fd53b3a 100644 --- a/src/ptbench/data/hivtb/fold_8.py +++ b/src/ptbench/config/data/hivtb/fold_8.py @@ -5,9 +5,9 @@ Database reference: [HIV-TB-2019]_ -See :py:class:`.hivtb.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.hivtb.datamodule.DataModule` for technical details. """ -from .datamodule import DataModule +from ptbench.config.data.hivtb.datamodule import DataModule datamodule = DataModule("fold-8.json") diff --git a/src/ptbench/data/hivtb/fold_9.py b/src/ptbench/config/data/hivtb/fold_9.py similarity index 65% rename from src/ptbench/data/hivtb/fold_9.py rename to src/ptbench/config/data/hivtb/fold_9.py index 94a38a15e01a05f9917f0d14a4fe1062b516ed6c..96ceb5963cf8d1d713ae3a758f34c54b4b5825f2 100644 --- a/src/ptbench/data/hivtb/fold_9.py +++ b/src/ptbench/config/data/hivtb/fold_9.py @@ -5,9 +5,9 @@ Database reference: [HIV-TB-2019]_ -See :py:class:`.hivtb.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.hivtb.datamodule.DataModule` for technical details. """ -from .datamodule import DataModule +from ptbench.config.data.hivtb.datamodule import DataModule datamodule = DataModule("fold-9.json") diff --git a/src/ptbench/data/montgomery/__init__.py b/src/ptbench/config/data/indian/__init__.py similarity index 100% rename from src/ptbench/data/montgomery/__init__.py rename to src/ptbench/config/data/indian/__init__.py diff --git a/src/ptbench/data/indian/datamodule.py b/src/ptbench/config/data/indian/datamodule.py similarity index 78% rename from src/ptbench/data/indian/datamodule.py rename to src/ptbench/config/data/indian/datamodule.py index a17a0befefad3dd84934acc8990575fc0befbb45..1c514f47c2e5c1f90df40de9c67ccac00fbbffc5 100644 --- a/src/ptbench/data/indian/datamodule.py +++ b/src/ptbench/config/data/indian/datamodule.py @@ -8,10 +8,14 @@ Database reference: [INDIAN-2013]_ import importlib.resources -from ..datamodule import CachingDataModule -from ..shenzhen.datamodule import RawDataLoader -from ..split import JSONDatabaseSplit -from ..typing import DatabaseSplit +from ptbench.config.data.shenzhen.datamodule import RawDataLoader +from ptbench.data.datamodule import CachingDataModule +from ptbench.data.split import JSONDatabaseSplit +from ptbench.data.typing import DatabaseSplit + +CONFIGURATION_KEY_DATADIR = "datadir." + (__name__.rsplit(".", 2)[-2]) +"""Key to search for in the configuration file for the root directory of this +database.""" def make_split(basename: str) -> DatabaseSplit: @@ -60,5 +64,7 @@ class DataModule(CachingDataModule): def __init__(self, split_filename: str): super().__init__( database_split=make_split(split_filename), - raw_data_loader=RawDataLoader(config_variable="datadir.indian"), + raw_data_loader=RawDataLoader( + config_variable=CONFIGURATION_KEY_DATADIR + ), ) diff --git a/src/ptbench/data/indian/default.json b/src/ptbench/config/data/indian/default.json similarity index 100% rename from src/ptbench/data/indian/default.json rename to src/ptbench/config/data/indian/default.json diff --git a/src/ptbench/data/indian/default.py b/src/ptbench/config/data/indian/default.py similarity index 65% rename from src/ptbench/data/indian/default.py rename to src/ptbench/config/data/indian/default.py index cd5c98bf6f4fe89a43a0e9a186230f48184edcef..33bcb48d4d38e9e6f72953fe221c303a030cc6a5 100644 --- a/src/ptbench/data/indian/default.py +++ b/src/ptbench/config/data/indian/default.py @@ -5,9 +5,9 @@ Database reference: [INDIAN-2013]_ -See :py:class:`.indian.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.indian.datamodule.DataModule` for technical details. """ -from .datamodule import DataModule +from ptbench.config.data.indian.datamodule import DataModule datamodule = DataModule("default.json") diff --git a/src/ptbench/data/indian/fold-0.json b/src/ptbench/config/data/indian/fold-0.json similarity index 100% rename from src/ptbench/data/indian/fold-0.json rename to src/ptbench/config/data/indian/fold-0.json diff --git a/src/ptbench/data/indian/fold-1.json b/src/ptbench/config/data/indian/fold-1.json similarity index 100% rename from src/ptbench/data/indian/fold-1.json rename to src/ptbench/config/data/indian/fold-1.json diff --git a/src/ptbench/data/indian/fold-2.json b/src/ptbench/config/data/indian/fold-2.json similarity index 100% rename from src/ptbench/data/indian/fold-2.json rename to src/ptbench/config/data/indian/fold-2.json diff --git a/src/ptbench/data/indian/fold-3.json b/src/ptbench/config/data/indian/fold-3.json similarity index 100% rename from src/ptbench/data/indian/fold-3.json rename to src/ptbench/config/data/indian/fold-3.json diff --git a/src/ptbench/data/indian/fold-4.json b/src/ptbench/config/data/indian/fold-4.json similarity index 100% rename from src/ptbench/data/indian/fold-4.json rename to src/ptbench/config/data/indian/fold-4.json diff --git a/src/ptbench/data/indian/fold-5.json b/src/ptbench/config/data/indian/fold-5.json similarity index 100% rename from src/ptbench/data/indian/fold-5.json rename to src/ptbench/config/data/indian/fold-5.json diff --git a/src/ptbench/data/indian/fold-6.json b/src/ptbench/config/data/indian/fold-6.json similarity index 100% rename from src/ptbench/data/indian/fold-6.json rename to src/ptbench/config/data/indian/fold-6.json diff --git a/src/ptbench/data/indian/fold-7.json b/src/ptbench/config/data/indian/fold-7.json similarity index 100% rename from src/ptbench/data/indian/fold-7.json rename to src/ptbench/config/data/indian/fold-7.json diff --git a/src/ptbench/data/indian/fold-8.json b/src/ptbench/config/data/indian/fold-8.json similarity index 100% rename from src/ptbench/data/indian/fold-8.json rename to src/ptbench/config/data/indian/fold-8.json diff --git a/src/ptbench/data/indian/fold-9.json b/src/ptbench/config/data/indian/fold-9.json similarity index 100% rename from src/ptbench/data/indian/fold-9.json rename to src/ptbench/config/data/indian/fold-9.json diff --git a/src/ptbench/data/indian/fold_0.py b/src/ptbench/config/data/indian/fold_0.py similarity index 66% rename from src/ptbench/data/indian/fold_0.py rename to src/ptbench/config/data/indian/fold_0.py index e316888dfe470098fe3f4404b101c6d256376cbf..6a8e6c5be3970aac334d2dd69511eba47e6ee884 100644 --- a/src/ptbench/data/indian/fold_0.py +++ b/src/ptbench/config/data/indian/fold_0.py @@ -6,9 +6,9 @@ fold 0). Database reference: [INDIAN-2013]_ -See :py:class:`.indian.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.indian.datamodule.DataModule` for technical details. """ -from .datamodule import DataModule +from ptbench.config.data.indian.datamodule import DataModule datamodule = DataModule("fold-0.json") diff --git a/src/ptbench/data/indian/fold_1.py b/src/ptbench/config/data/indian/fold_1.py similarity index 66% rename from src/ptbench/data/indian/fold_1.py rename to src/ptbench/config/data/indian/fold_1.py index 000a8410b9a18131a78ec08c5ab1c772ee6263ac..029b6df6bb339e51e52bc93b7c1b46ccaecbb58d 100644 --- a/src/ptbench/data/indian/fold_1.py +++ b/src/ptbench/config/data/indian/fold_1.py @@ -6,9 +6,9 @@ fold 1). Database reference: [INDIAN-2013]_ -See :py:class:`.indian.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.indian.datamodule.DataModule` for technical details. """ -from .datamodule import DataModule +from ptbench.config.data.indian.datamodule import DataModule datamodule = DataModule("fold-1.json") diff --git a/src/ptbench/data/indian/fold_2.py b/src/ptbench/config/data/indian/fold_2.py similarity index 66% rename from src/ptbench/data/indian/fold_2.py rename to src/ptbench/config/data/indian/fold_2.py index 9f9152b3ba40d54d6feb4ececed049cd12e08705..f54f35e5ad531eb1d7531ac28fb6ab5e8019e528 100644 --- a/src/ptbench/data/indian/fold_2.py +++ b/src/ptbench/config/data/indian/fold_2.py @@ -6,9 +6,9 @@ fold 2). Database reference: [INDIAN-2013]_ -See :py:class:`.indian.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.indian.datamodule.DataModule` for technical details. """ -from .datamodule import DataModule +from ptbench.config.data.indian.datamodule import DataModule datamodule = DataModule("fold-2.json") diff --git a/src/ptbench/data/indian/fold_3.py b/src/ptbench/config/data/indian/fold_3.py similarity index 66% rename from src/ptbench/data/indian/fold_3.py rename to src/ptbench/config/data/indian/fold_3.py index 16475b98d6c44947ae7ef12a239be10e3a726730..0c49359219da79a20531d933ad264d3c3383227f 100644 --- a/src/ptbench/data/indian/fold_3.py +++ b/src/ptbench/config/data/indian/fold_3.py @@ -6,9 +6,9 @@ fold 3). Database reference: [INDIAN-2013]_ -See :py:class:`.indian.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.indian.datamodule.DataModule` for technical details. """ -from .datamodule import DataModule +from ptbench.config.data.indian.datamodule import DataModule datamodule = DataModule("fold-3.json") diff --git a/src/ptbench/data/indian/fold_4.py b/src/ptbench/config/data/indian/fold_4.py similarity index 66% rename from src/ptbench/data/indian/fold_4.py rename to src/ptbench/config/data/indian/fold_4.py index e2844b97da1f8bf1d11c9e09fb6f9851000a4c50..52a7b792d1d091d81b5bad508d99fdef1f4c683f 100644 --- a/src/ptbench/data/indian/fold_4.py +++ b/src/ptbench/config/data/indian/fold_4.py @@ -6,9 +6,9 @@ fold 4). Database reference: [INDIAN-2013]_ -See :py:class:`.indian.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.indian.datamodule.DataModule` for technical details. """ -from .datamodule import DataModule +from ptbench.config.data.indian.datamodule import DataModule datamodule = DataModule("fold-4.json") diff --git a/src/ptbench/data/indian/fold_5.py b/src/ptbench/config/data/indian/fold_5.py similarity index 66% rename from src/ptbench/data/indian/fold_5.py rename to src/ptbench/config/data/indian/fold_5.py index ef5835281795dfada8d5c8159ca35b1608899531..843a1e8c8b847075c3256580268ed3331b948130 100644 --- a/src/ptbench/data/indian/fold_5.py +++ b/src/ptbench/config/data/indian/fold_5.py @@ -6,9 +6,9 @@ fold 5). Database reference: [INDIAN-2013]_ -See :py:class:`.indian.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.indian.datamodule.DataModule` for technical details. """ -from .datamodule import DataModule +from ptbench.config.data.indian.datamodule import DataModule datamodule = DataModule("fold-5.json") diff --git a/src/ptbench/data/indian/fold_6.py b/src/ptbench/config/data/indian/fold_6.py similarity index 66% rename from src/ptbench/data/indian/fold_6.py rename to src/ptbench/config/data/indian/fold_6.py index 59c168c5e4f9e2b32525707987f40744325077ec..9970d6f6422ae9aa7950c449af8535918ff486f7 100644 --- a/src/ptbench/data/indian/fold_6.py +++ b/src/ptbench/config/data/indian/fold_6.py @@ -6,9 +6,9 @@ fold 6). Database reference: [INDIAN-2013]_ -See :py:class:`.indian.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.indian.datamodule.DataModule` for technical details. """ -from .datamodule import DataModule +from ptbench.config.data.indian.datamodule import DataModule datamodule = DataModule("fold-6.json") diff --git a/src/ptbench/data/indian/fold_7.py b/src/ptbench/config/data/indian/fold_7.py similarity index 66% rename from src/ptbench/data/indian/fold_7.py rename to src/ptbench/config/data/indian/fold_7.py index 9eda09ad1a62330e169304a80ac356197ec2f42c..5bbef8dbba072a108caa80cc28455f28cd7fcd9d 100644 --- a/src/ptbench/data/indian/fold_7.py +++ b/src/ptbench/config/data/indian/fold_7.py @@ -6,9 +6,9 @@ fold 7). Database reference: [INDIAN-2013]_ -See :py:class:`.indian.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.indian.datamodule.DataModule` for technical details. """ -from .datamodule import DataModule +from ptbench.config.data.indian.datamodule import DataModule datamodule = DataModule("fold-7.json") diff --git a/src/ptbench/data/indian/fold_8.py b/src/ptbench/config/data/indian/fold_8.py similarity index 66% rename from src/ptbench/data/indian/fold_8.py rename to src/ptbench/config/data/indian/fold_8.py index abc54bac7c6957c0df626a6e1f339cf2144e9081..0416153fc061e81d02c189128b4d0b9775697bec 100644 --- a/src/ptbench/data/indian/fold_8.py +++ b/src/ptbench/config/data/indian/fold_8.py @@ -6,9 +6,9 @@ fold 8). Database reference: [INDIAN-2013]_ -See :py:class:`.indian.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.indian.datamodule.DataModule` for technical details. """ -from .datamodule import DataModule +from ptbench.config.data.indian.datamodule import DataModule datamodule = DataModule("fold-8.json") diff --git a/src/ptbench/data/indian/fold_9.py b/src/ptbench/config/data/indian/fold_9.py similarity index 66% rename from src/ptbench/data/indian/fold_9.py rename to src/ptbench/config/data/indian/fold_9.py index cb4aa6bea2754ad3ee4a94ec3d545a1885de534e..3d4df2a51a8b721d24f6be53eca1c038393ffe35 100644 --- a/src/ptbench/data/indian/fold_9.py +++ b/src/ptbench/config/data/indian/fold_9.py @@ -6,9 +6,9 @@ fold 9). Database reference: [INDIAN-2013]_ -See :py:class:`.indian.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.indian.datamodule.DataModule` for technical details. """ -from .datamodule import DataModule +from ptbench.config.data.indian.datamodule import DataModule datamodule = DataModule("fold-9.json") diff --git a/src/ptbench/data/montgomery_shenzhen/__init__.py b/src/ptbench/config/data/montgomery/__init__.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen/__init__.py rename to src/ptbench/config/data/montgomery/__init__.py diff --git a/src/ptbench/data/montgomery/datamodule.py b/src/ptbench/config/data/montgomery/datamodule.py similarity index 86% rename from src/ptbench/data/montgomery/datamodule.py rename to src/ptbench/config/data/montgomery/datamodule.py index b5ed48dd10f3949f40917eac341037c6e3153194..84cdbc77d3b024fa07f4fe6a9bd6a0b8c132e6e1 100644 --- a/src/ptbench/data/montgomery/datamodule.py +++ b/src/ptbench/config/data/montgomery/datamodule.py @@ -13,13 +13,17 @@ import PIL.Image from torchvision.transforms.functional import center_crop, to_tensor -from ...utils.rc import load_rc -from ..datamodule import CachingDataModule -from ..image_utils import remove_black_borders -from ..split import JSONDatabaseSplit -from ..typing import DatabaseSplit -from ..typing import RawDataLoader as _BaseRawDataLoader -from ..typing import Sample +from ptbench.data.datamodule import CachingDataModule +from ptbench.data.image_utils import remove_black_borders +from ptbench.data.split import JSONDatabaseSplit +from ptbench.data.typing import DatabaseSplit +from ptbench.data.typing import RawDataLoader as _BaseRawDataLoader +from ptbench.data.typing import Sample +from ptbench.utils.rc import load_rc + +CONFIGURATION_KEY_DATADIR = "datadir." + (__name__.rsplit(".", 2)[-2]) +"""Key to search for in the configuration file for the root directory of this +database.""" class RawDataLoader(_BaseRawDataLoader): @@ -31,7 +35,7 @@ class RawDataLoader(_BaseRawDataLoader): def __init__(self): self.datadir = load_rc().get( - "datadir.montgomery", os.path.realpath(os.curdir) + CONFIGURATION_KEY_DATADIR, os.path.realpath(os.curdir) ) def sample(self, sample: tuple[str, int]) -> Sample: diff --git a/src/ptbench/data/montgomery/default.json b/src/ptbench/config/data/montgomery/default.json similarity index 100% rename from src/ptbench/data/montgomery/default.json rename to src/ptbench/config/data/montgomery/default.json diff --git a/src/ptbench/data/montgomery/default.py b/src/ptbench/config/data/montgomery/default.py similarity index 63% rename from src/ptbench/data/montgomery/default.py rename to src/ptbench/config/data/montgomery/default.py index ad32e45b07345fab51f074d7811bf7e476ae4ad7..fa8902107f9e81e17f89a6ca72b13c260716db54 100644 --- a/src/ptbench/data/montgomery/default.py +++ b/src/ptbench/config/data/montgomery/default.py @@ -5,9 +5,10 @@ Database reference: [MONTGOMERY-SHENZHEN-2014]_ -See :py:class:`.montgomery.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.montgomery.datamodule.DataModule` for +technical details. """ -from .datamodule import DataModule +from ptbench.config.data.montgomery.datamodule import DataModule datamodule = DataModule("default.json") diff --git a/src/ptbench/data/montgomery/fold-0.json b/src/ptbench/config/data/montgomery/fold-0.json similarity index 100% rename from src/ptbench/data/montgomery/fold-0.json rename to src/ptbench/config/data/montgomery/fold-0.json diff --git a/src/ptbench/data/montgomery/fold-1.json b/src/ptbench/config/data/montgomery/fold-1.json similarity index 100% rename from src/ptbench/data/montgomery/fold-1.json rename to src/ptbench/config/data/montgomery/fold-1.json diff --git a/src/ptbench/data/montgomery/fold-2.json b/src/ptbench/config/data/montgomery/fold-2.json similarity index 100% rename from src/ptbench/data/montgomery/fold-2.json rename to src/ptbench/config/data/montgomery/fold-2.json diff --git a/src/ptbench/data/montgomery/fold-3.json b/src/ptbench/config/data/montgomery/fold-3.json similarity index 100% rename from src/ptbench/data/montgomery/fold-3.json rename to src/ptbench/config/data/montgomery/fold-3.json diff --git a/src/ptbench/data/montgomery/fold-4.json b/src/ptbench/config/data/montgomery/fold-4.json similarity index 100% rename from src/ptbench/data/montgomery/fold-4.json rename to src/ptbench/config/data/montgomery/fold-4.json diff --git a/src/ptbench/data/montgomery/fold-5.json b/src/ptbench/config/data/montgomery/fold-5.json similarity index 100% rename from src/ptbench/data/montgomery/fold-5.json rename to src/ptbench/config/data/montgomery/fold-5.json diff --git a/src/ptbench/data/montgomery/fold-6.json b/src/ptbench/config/data/montgomery/fold-6.json similarity index 100% rename from src/ptbench/data/montgomery/fold-6.json rename to src/ptbench/config/data/montgomery/fold-6.json diff --git a/src/ptbench/data/montgomery/fold-7.json b/src/ptbench/config/data/montgomery/fold-7.json similarity index 100% rename from src/ptbench/data/montgomery/fold-7.json rename to src/ptbench/config/data/montgomery/fold-7.json diff --git a/src/ptbench/data/montgomery/fold-8.json b/src/ptbench/config/data/montgomery/fold-8.json similarity index 100% rename from src/ptbench/data/montgomery/fold-8.json rename to src/ptbench/config/data/montgomery/fold-8.json diff --git a/src/ptbench/data/montgomery/fold-9.json b/src/ptbench/config/data/montgomery/fold-9.json similarity index 100% rename from src/ptbench/data/montgomery/fold-9.json rename to src/ptbench/config/data/montgomery/fold-9.json diff --git a/src/ptbench/data/montgomery/fold_0.py b/src/ptbench/config/data/montgomery/fold_0.py similarity index 65% rename from src/ptbench/data/montgomery/fold_0.py rename to src/ptbench/config/data/montgomery/fold_0.py index 7f842d598843781f66daa450f4100f7068dc6d41..2f72873e6bc8dfe374acd3c0abf0b4fa14f59346 100644 --- a/src/ptbench/data/montgomery/fold_0.py +++ b/src/ptbench/config/data/montgomery/fold_0.py @@ -5,9 +5,10 @@ Database reference: [MONTGOMERY-SHENZHEN-2014]_ -See :py:class:`.montgomery.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.montgomery.datamodule.DataModule` for +technical details. """ -from .datamodule import DataModule +from ptbench.config.data.montgomery.datamodule import DataModule datamodule = DataModule("fold-0.json") diff --git a/src/ptbench/data/montgomery/fold_1.py b/src/ptbench/config/data/montgomery/fold_1.py similarity index 65% rename from src/ptbench/data/montgomery/fold_1.py rename to src/ptbench/config/data/montgomery/fold_1.py index abdfbcf13f96f6ced741e73c27236cdd232bae9d..e4fd9fe8b27566a21e82118fc67b76cd9a5d9431 100644 --- a/src/ptbench/data/montgomery/fold_1.py +++ b/src/ptbench/config/data/montgomery/fold_1.py @@ -5,9 +5,10 @@ Database reference: [MONTGOMERY-SHENZHEN-2014]_ -See :py:class:`.montgomery.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.montgomery.datamodule.DataModule` for +technical details. """ -from .datamodule import DataModule +from ptbench.config.data.montgomery.datamodule import DataModule datamodule = DataModule("fold-1.json") diff --git a/src/ptbench/data/montgomery/fold_2.py b/src/ptbench/config/data/montgomery/fold_2.py similarity index 65% rename from src/ptbench/data/montgomery/fold_2.py rename to src/ptbench/config/data/montgomery/fold_2.py index 8614cc00664e2569b3b1f28bd1bf43dbed37e6c7..903154be5eda564ffc05d128d73f278d7b19b98f 100644 --- a/src/ptbench/data/montgomery/fold_2.py +++ b/src/ptbench/config/data/montgomery/fold_2.py @@ -5,9 +5,10 @@ Database reference: [MONTGOMERY-SHENZHEN-2014]_ -See :py:class:`.montgomery.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.montgomery.datamodule.DataModule` for +technical details. """ -from .datamodule import DataModule +from ptbench.config.data.montgomery.datamodule import DataModule datamodule = DataModule("fold-2.json") diff --git a/src/ptbench/data/montgomery/fold_3.py b/src/ptbench/config/data/montgomery/fold_3.py similarity index 65% rename from src/ptbench/data/montgomery/fold_3.py rename to src/ptbench/config/data/montgomery/fold_3.py index 50ac23f5dc739c16a30d3c3ffc4b31cb5547b8ba..27d9ebddf0f773c54e159dd8210251b962fc6baf 100644 --- a/src/ptbench/data/montgomery/fold_3.py +++ b/src/ptbench/config/data/montgomery/fold_3.py @@ -5,9 +5,10 @@ Database reference: [MONTGOMERY-SHENZHEN-2014]_ -See :py:class:`.montgomery.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.montgomery.datamodule.DataModule` for +technical details. """ -from .datamodule import DataModule +from ptbench.config.data.montgomery.datamodule import DataModule datamodule = DataModule("fold-3.json") diff --git a/src/ptbench/data/montgomery/fold_4.py b/src/ptbench/config/data/montgomery/fold_4.py similarity index 65% rename from src/ptbench/data/montgomery/fold_4.py rename to src/ptbench/config/data/montgomery/fold_4.py index c83e106087c9e2e429e70a3d21da37fbf05a9a0e..e5379102d27f515d7af6e691f52c498c053627bf 100644 --- a/src/ptbench/data/montgomery/fold_4.py +++ b/src/ptbench/config/data/montgomery/fold_4.py @@ -5,9 +5,10 @@ Database reference: [MONTGOMERY-SHENZHEN-2014]_ -See :py:class:`.montgomery.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.montgomery.datamodule.DataModule` for +technical details. """ -from .datamodule import DataModule +from ptbench.config.data.montgomery.datamodule import DataModule datamodule = DataModule("fold-4.json") diff --git a/src/ptbench/data/montgomery/fold_5.py b/src/ptbench/config/data/montgomery/fold_5.py similarity index 65% rename from src/ptbench/data/montgomery/fold_5.py rename to src/ptbench/config/data/montgomery/fold_5.py index 30b97b0352f228e99a3a5c3b3b6bfbcffad211b9..feb8ac45ac0d5214cf4f15aaa2feb3962e34e52e 100644 --- a/src/ptbench/data/montgomery/fold_5.py +++ b/src/ptbench/config/data/montgomery/fold_5.py @@ -5,9 +5,10 @@ Database reference: [MONTGOMERY-SHENZHEN-2014]_ -See :py:class:`.montgomery.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.montgomery.datamodule.DataModule` for +technical details. """ -from .datamodule import DataModule +from ptbench.config.data.montgomery.datamodule import DataModule datamodule = DataModule("fold-5.json") diff --git a/src/ptbench/data/montgomery/fold_6.py b/src/ptbench/config/data/montgomery/fold_6.py similarity index 65% rename from src/ptbench/data/montgomery/fold_6.py rename to src/ptbench/config/data/montgomery/fold_6.py index 86e35ca5d2787ab6585c339cb489fa09f4a43bc9..e868c72687e825c59d08acd2d1aa98f99d54be48 100644 --- a/src/ptbench/data/montgomery/fold_6.py +++ b/src/ptbench/config/data/montgomery/fold_6.py @@ -5,9 +5,10 @@ Database reference: [MONTGOMERY-SHENZHEN-2014]_ -See :py:class:`.montgomery.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.montgomery.datamodule.DataModule` for +technical details. """ -from .datamodule import DataModule +from ptbench.config.data.montgomery.datamodule import DataModule datamodule = DataModule("fold-6.json") diff --git a/src/ptbench/data/montgomery/fold_7.py b/src/ptbench/config/data/montgomery/fold_7.py similarity index 65% rename from src/ptbench/data/montgomery/fold_7.py rename to src/ptbench/config/data/montgomery/fold_7.py index 9f0bd3da0c0b6c2be05b23a7d8cde71540972339..0415dfba481bed7aa731c117a7f5ea4c6cba30d9 100644 --- a/src/ptbench/data/montgomery/fold_7.py +++ b/src/ptbench/config/data/montgomery/fold_7.py @@ -5,9 +5,10 @@ Database reference: [MONTGOMERY-SHENZHEN-2014]_ -See :py:class:`.montgomery.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.montgomery.datamodule.DataModule` for +technical details. """ -from .datamodule import DataModule +from ptbench.config.data.montgomery.datamodule import DataModule datamodule = DataModule("fold-7.json") diff --git a/src/ptbench/data/montgomery/fold_8.py b/src/ptbench/config/data/montgomery/fold_8.py similarity index 65% rename from src/ptbench/data/montgomery/fold_8.py rename to src/ptbench/config/data/montgomery/fold_8.py index 5ea2dfc903b552fa633e981f662d23c98d23ebb9..d00595b0d90358d8459cd93acfe93688a9e7d56f 100644 --- a/src/ptbench/data/montgomery/fold_8.py +++ b/src/ptbench/config/data/montgomery/fold_8.py @@ -5,9 +5,10 @@ Database reference: [MONTGOMERY-SHENZHEN-2014]_ -See :py:class:`.montgomery.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.montgomery.datamodule.DataModule` for +technical details. """ -from .datamodule import DataModule +from ptbench.config.data.montgomery.datamodule import DataModule datamodule = DataModule("fold-8.json") diff --git a/src/ptbench/data/montgomery/fold_9.py b/src/ptbench/config/data/montgomery/fold_9.py similarity index 65% rename from src/ptbench/data/montgomery/fold_9.py rename to src/ptbench/config/data/montgomery/fold_9.py index 41025b7327adc5cffdac4ad95e8592fae5c9d02b..c9158fd103a4038e28e98d62eabbcfd03a64b086 100644 --- a/src/ptbench/data/montgomery/fold_9.py +++ b/src/ptbench/config/data/montgomery/fold_9.py @@ -5,9 +5,10 @@ Database reference: [MONTGOMERY-SHENZHEN-2014]_ -See :py:class:`.montgomery.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.montgomery.datamodule.DataModule` for +technical details. """ -from .datamodule import DataModule +from ptbench.config.data.montgomery.datamodule import DataModule datamodule = DataModule("fold-9.json") diff --git a/src/ptbench/data/montgomery_shenzhen_indian/__init__.py b/src/ptbench/config/data/montgomery_shenzhen/__init__.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian/__init__.py rename to src/ptbench/config/data/montgomery_shenzhen/__init__.py diff --git a/src/ptbench/data/montgomery_shenzhen/datamodule.py b/src/ptbench/config/data/montgomery_shenzhen/datamodule.py similarity index 96% rename from src/ptbench/data/montgomery_shenzhen/datamodule.py rename to src/ptbench/config/data/montgomery_shenzhen/datamodule.py index e1173824eaf5f4a1f14712986abaeb304bcabf5b..0509dd5fedf79798693be0f358b6b5449d7cf753 100644 --- a/src/ptbench/data/montgomery_shenzhen/datamodule.py +++ b/src/ptbench/config/data/montgomery_shenzhen/datamodule.py @@ -2,7 +2,8 @@ # # SPDX-License-Identifier: GPL-3.0-or-later -from ..datamodule import ConcatDataModule +from ptbench.data.datamodule import ConcatDataModule + from ..montgomery.datamodule import RawDataLoader as MontgomeryLoader from ..montgomery.datamodule import make_split as make_montgomery_split from ..shenzhen.datamodule import RawDataLoader as ShenzhenLoader diff --git a/src/ptbench/data/montgomery_shenzhen/default.py b/src/ptbench/config/data/montgomery_shenzhen/default.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen/default.py rename to src/ptbench/config/data/montgomery_shenzhen/default.py diff --git a/src/ptbench/data/montgomery_shenzhen/fold_0.py b/src/ptbench/config/data/montgomery_shenzhen/fold_0.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen/fold_0.py rename to src/ptbench/config/data/montgomery_shenzhen/fold_0.py diff --git a/src/ptbench/data/montgomery_shenzhen/fold_1.py b/src/ptbench/config/data/montgomery_shenzhen/fold_1.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen/fold_1.py rename to src/ptbench/config/data/montgomery_shenzhen/fold_1.py diff --git a/src/ptbench/data/montgomery_shenzhen/fold_2.py b/src/ptbench/config/data/montgomery_shenzhen/fold_2.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen/fold_2.py rename to src/ptbench/config/data/montgomery_shenzhen/fold_2.py diff --git a/src/ptbench/data/montgomery_shenzhen/fold_3.py b/src/ptbench/config/data/montgomery_shenzhen/fold_3.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen/fold_3.py rename to src/ptbench/config/data/montgomery_shenzhen/fold_3.py diff --git a/src/ptbench/data/montgomery_shenzhen/fold_4.py b/src/ptbench/config/data/montgomery_shenzhen/fold_4.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen/fold_4.py rename to src/ptbench/config/data/montgomery_shenzhen/fold_4.py diff --git a/src/ptbench/data/montgomery_shenzhen/fold_5.py b/src/ptbench/config/data/montgomery_shenzhen/fold_5.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen/fold_5.py rename to src/ptbench/config/data/montgomery_shenzhen/fold_5.py diff --git a/src/ptbench/data/montgomery_shenzhen/fold_6.py b/src/ptbench/config/data/montgomery_shenzhen/fold_6.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen/fold_6.py rename to src/ptbench/config/data/montgomery_shenzhen/fold_6.py diff --git a/src/ptbench/data/montgomery_shenzhen/fold_7.py b/src/ptbench/config/data/montgomery_shenzhen/fold_7.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen/fold_7.py rename to src/ptbench/config/data/montgomery_shenzhen/fold_7.py diff --git a/src/ptbench/data/montgomery_shenzhen/fold_8.py b/src/ptbench/config/data/montgomery_shenzhen/fold_8.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen/fold_8.py rename to src/ptbench/config/data/montgomery_shenzhen/fold_8.py diff --git a/src/ptbench/data/montgomery_shenzhen/fold_9.py b/src/ptbench/config/data/montgomery_shenzhen/fold_9.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen/fold_9.py rename to src/ptbench/config/data/montgomery_shenzhen/fold_9.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian_padchest/__init__.py b/src/ptbench/config/data/montgomery_shenzhen_indian/__init__.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian_padchest/__init__.py rename to src/ptbench/config/data/montgomery_shenzhen_indian/__init__.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian/datamodule.py b/src/ptbench/config/data/montgomery_shenzhen_indian/datamodule.py similarity index 70% rename from src/ptbench/data/montgomery_shenzhen_indian/datamodule.py rename to src/ptbench/config/data/montgomery_shenzhen_indian/datamodule.py index 6df9a85033ac24cc8df42280cef986f770b8a0da..0bbb2c3d95cdbc2c586cfcdc5157d4bd7989ad72 100644 --- a/src/ptbench/data/montgomery_shenzhen_indian/datamodule.py +++ b/src/ptbench/config/data/montgomery_shenzhen_indian/datamodule.py @@ -4,13 +4,23 @@ """Aggregated datamodule composed of Montgomery, Shenzhen and Indian datasets.""" -from ..datamodule import ConcatDataModule -from ..indian.datamodule import RawDataLoader as IndianLoader -from ..indian.datamodule import make_split as make_indian_split -from ..montgomery.datamodule import RawDataLoader as MontgomeryLoader -from ..montgomery.datamodule import make_split as make_montgomery_split -from ..shenzhen.datamodule import RawDataLoader as ShenzhenLoader -from ..shenzhen.datamodule import make_split as make_shenzhen_split +from ptbench.config.data.indian.datamodule import RawDataLoader as IndianLoader +from ptbench.config.data.indian.datamodule import ( + make_split as make_indian_split, +) +from ptbench.config.data.montgomery.datamodule import ( + RawDataLoader as MontgomeryLoader, +) +from ptbench.config.data.montgomery.datamodule import ( + make_split as make_montgomery_split, +) +from ptbench.config.data.shenzhen.datamodule import ( + RawDataLoader as ShenzhenLoader, +) +from ptbench.config.data.shenzhen.datamodule import ( + make_split as make_shenzhen_split, +) +from ptbench.data.datamodule import ConcatDataModule class DataModule(ConcatDataModule): diff --git a/src/ptbench/data/montgomery_shenzhen_indian/default.py b/src/ptbench/config/data/montgomery_shenzhen_indian/default.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian/default.py rename to src/ptbench/config/data/montgomery_shenzhen_indian/default.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian/fold_0.py b/src/ptbench/config/data/montgomery_shenzhen_indian/fold_0.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian/fold_0.py rename to src/ptbench/config/data/montgomery_shenzhen_indian/fold_0.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian/fold_1.py b/src/ptbench/config/data/montgomery_shenzhen_indian/fold_1.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian/fold_1.py rename to src/ptbench/config/data/montgomery_shenzhen_indian/fold_1.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian/fold_2.py b/src/ptbench/config/data/montgomery_shenzhen_indian/fold_2.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian/fold_2.py rename to src/ptbench/config/data/montgomery_shenzhen_indian/fold_2.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian/fold_3.py b/src/ptbench/config/data/montgomery_shenzhen_indian/fold_3.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian/fold_3.py rename to src/ptbench/config/data/montgomery_shenzhen_indian/fold_3.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian/fold_4.py b/src/ptbench/config/data/montgomery_shenzhen_indian/fold_4.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian/fold_4.py rename to src/ptbench/config/data/montgomery_shenzhen_indian/fold_4.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian/fold_5.py b/src/ptbench/config/data/montgomery_shenzhen_indian/fold_5.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian/fold_5.py rename to src/ptbench/config/data/montgomery_shenzhen_indian/fold_5.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian/fold_6.py b/src/ptbench/config/data/montgomery_shenzhen_indian/fold_6.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian/fold_6.py rename to src/ptbench/config/data/montgomery_shenzhen_indian/fold_6.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian/fold_7.py b/src/ptbench/config/data/montgomery_shenzhen_indian/fold_7.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian/fold_7.py rename to src/ptbench/config/data/montgomery_shenzhen_indian/fold_7.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian/fold_8.py b/src/ptbench/config/data/montgomery_shenzhen_indian/fold_8.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian/fold_8.py rename to src/ptbench/config/data/montgomery_shenzhen_indian/fold_8.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian/fold_9.py b/src/ptbench/config/data/montgomery_shenzhen_indian/fold_9.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian/fold_9.py rename to src/ptbench/config/data/montgomery_shenzhen_indian/fold_9.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian_tbx11k/__init__.py b/src/ptbench/config/data/montgomery_shenzhen_indian_padchest/__init__.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian_tbx11k/__init__.py rename to src/ptbench/config/data/montgomery_shenzhen_indian_padchest/__init__.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian_padchest/datamodule.py b/src/ptbench/config/data/montgomery_shenzhen_indian_padchest/datamodule.py similarity index 70% rename from src/ptbench/data/montgomery_shenzhen_indian_padchest/datamodule.py rename to src/ptbench/config/data/montgomery_shenzhen_indian_padchest/datamodule.py index b4317ac447cfb8a688c1844984b163b42e7786cc..93d0193ff42f1f82a35dea1b7487e232cdad9964 100644 --- a/src/ptbench/data/montgomery_shenzhen_indian_padchest/datamodule.py +++ b/src/ptbench/config/data/montgomery_shenzhen_indian_padchest/datamodule.py @@ -4,15 +4,29 @@ """Aggregated datamodule composed of Montgomery, Shenzhen, Indian, and PadChest datasets.""" -from ..datamodule import ConcatDataModule -from ..indian.datamodule import RawDataLoader as IndianLoader -from ..indian.datamodule import make_split as make_indian_split -from ..montgomery.datamodule import RawDataLoader as MontgomeryLoader -from ..montgomery.datamodule import make_split as make_montgomery_split -from ..padchest.datamodule import RawDataLoader as PadchestLoader -from ..padchest.datamodule import make_split as make_padchest_split -from ..shenzhen.datamodule import RawDataLoader as ShenzhenLoader -from ..shenzhen.datamodule import make_split as make_shenzhen_split +from ptbench.config.data.indian.datamodule import RawDataLoader as IndianLoader +from ptbench.config.data.indian.datamodule import ( + make_split as make_indian_split, +) +from ptbench.config.data.montgomery.datamodule import ( + RawDataLoader as MontgomeryLoader, +) +from ptbench.config.data.montgomery.datamodule import ( + make_split as make_montgomery_split, +) +from ptbench.config.data.padchest.datamodule import ( + RawDataLoader as PadchestLoader, +) +from ptbench.config.data.padchest.datamodule import ( + make_split as make_padchest_split, +) +from ptbench.config.data.shenzhen.datamodule import ( + RawDataLoader as ShenzhenLoader, +) +from ptbench.config.data.shenzhen.datamodule import ( + make_split as make_shenzhen_split, +) +from ptbench.data.datamodule import ConcatDataModule class DataModule(ConcatDataModule): diff --git a/src/ptbench/data/montgomery_shenzhen_indian_padchest/default.py b/src/ptbench/config/data/montgomery_shenzhen_indian_padchest/default.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian_padchest/default.py rename to src/ptbench/config/data/montgomery_shenzhen_indian_padchest/default.py diff --git a/src/ptbench/data/nih_cxr14/__init__.py b/src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/__init__.py similarity index 100% rename from src/ptbench/data/nih_cxr14/__init__.py rename to src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/__init__.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian_tbx11k/datamodule.py b/src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/datamodule.py similarity index 69% rename from src/ptbench/data/montgomery_shenzhen_indian_tbx11k/datamodule.py rename to src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/datamodule.py index 6f7ee8bcec746e2ca9455fa0d3c09378e74252d3..976155748535df1b4ada98fb837dd3b37c428e47 100644 --- a/src/ptbench/data/montgomery_shenzhen_indian_tbx11k/datamodule.py +++ b/src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/datamodule.py @@ -4,15 +4,27 @@ """Aggregated datamodule composed of Montgomery, Shenzhen, Indian, and TBX11k datasets.""" -from ..datamodule import ConcatDataModule -from ..indian.datamodule import RawDataLoader as IndianLoader -from ..indian.datamodule import make_split as make_indian_split -from ..montgomery.datamodule import RawDataLoader as MontgomeryLoader -from ..montgomery.datamodule import make_split as make_montgomery_split -from ..shenzhen.datamodule import RawDataLoader as ShenzhenLoader -from ..shenzhen.datamodule import make_split as make_shenzhen_split -from ..tbx11k.datamodule import RawDataLoader as TBX11kLoader -from ..tbx11k.datamodule import make_split as make_tbx11k_split +from ptbench.config.data.indian.datamodule import RawDataLoader as IndianLoader +from ptbench.config.data.indian.datamodule import ( + make_split as make_indian_split, +) +from ptbench.config.data.montgomery.datamodule import ( + RawDataLoader as MontgomeryLoader, +) +from ptbench.config.data.montgomery.datamodule import ( + make_split as make_montgomery_split, +) +from ptbench.config.data.shenzhen.datamodule import ( + RawDataLoader as ShenzhenLoader, +) +from ptbench.config.data.shenzhen.datamodule import ( + make_split as make_shenzhen_split, +) +from ptbench.config.data.tbx11k.datamodule import RawDataLoader as TBX11kLoader +from ptbench.config.data.tbx11k.datamodule import ( + make_split as make_tbx11k_split, +) +from ptbench.data.datamodule import ConcatDataModule class DataModule(ConcatDataModule): diff --git a/src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v1_fold_0.py b/src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_0.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v1_fold_0.py rename to src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_0.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v1_fold_1.py b/src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_1.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v1_fold_1.py rename to src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_1.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v1_fold_2.py b/src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_2.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v1_fold_2.py rename to src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_2.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v1_fold_3.py b/src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_3.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v1_fold_3.py rename to src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_3.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v1_fold_4.py b/src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_4.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v1_fold_4.py rename to src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_4.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v1_fold_5.py b/src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_5.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v1_fold_5.py rename to src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_5.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v1_fold_6.py b/src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_6.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v1_fold_6.py rename to src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_6.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v1_fold_7.py b/src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_7.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v1_fold_7.py rename to src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_7.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v1_fold_8.py b/src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_8.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v1_fold_8.py rename to src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_8.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v1_fold_9.py b/src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_9.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v1_fold_9.py rename to src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v1_fold_9.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v1_healthy_vs_atb.py b/src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v1_healthy_vs_atb.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v1_healthy_vs_atb.py rename to src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v1_healthy_vs_atb.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v2_fold_0.py b/src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_0.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v2_fold_0.py rename to src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_0.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v2_fold_1.py b/src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_1.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v2_fold_1.py rename to src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_1.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v2_fold_2.py b/src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_2.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v2_fold_2.py rename to src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_2.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v2_fold_3.py b/src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_3.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v2_fold_3.py rename to src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_3.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v2_fold_4.py b/src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_4.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v2_fold_4.py rename to src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_4.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v2_fold_5.py b/src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_5.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v2_fold_5.py rename to src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_5.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v2_fold_6.py b/src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_6.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v2_fold_6.py rename to src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_6.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v2_fold_7.py b/src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_7.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v2_fold_7.py rename to src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_7.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v2_fold_8.py b/src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_8.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v2_fold_8.py rename to src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_8.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v2_fold_9.py b/src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_9.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v2_fold_9.py rename to src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v2_fold_9.py diff --git a/src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v2_others_vs_atb.py b/src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v2_others_vs_atb.py similarity index 100% rename from src/ptbench/data/montgomery_shenzhen_indian_tbx11k/v2_others_vs_atb.py rename to src/ptbench/config/data/montgomery_shenzhen_indian_tbx11k/v2_others_vs_atb.py diff --git a/src/ptbench/data/nih_cxr14_padchest/__init__.py b/src/ptbench/config/data/nih_cxr14/__init__.py similarity index 100% rename from src/ptbench/data/nih_cxr14_padchest/__init__.py rename to src/ptbench/config/data/nih_cxr14/__init__.py diff --git a/src/ptbench/data/nih_cxr14/cardiomegaly.json b/src/ptbench/config/data/nih_cxr14/cardiomegaly.json similarity index 100% rename from src/ptbench/data/nih_cxr14/cardiomegaly.json rename to src/ptbench/config/data/nih_cxr14/cardiomegaly.json diff --git a/src/ptbench/data/nih_cxr14/cardiomegaly.py b/src/ptbench/config/data/nih_cxr14/cardiomegaly.py similarity index 71% rename from src/ptbench/data/nih_cxr14/cardiomegaly.py rename to src/ptbench/config/data/nih_cxr14/cardiomegaly.py index 7b104faa36115e5ed1cc045c865f6d92cdaf8822..77248a472796b70ed7987a8d90aa610261f15ffc 100644 --- a/src/ptbench/data/nih_cxr14/cardiomegaly.py +++ b/src/ptbench/config/data/nih_cxr14/cardiomegaly.py @@ -8,9 +8,10 @@ Database reference: [NIH-CXR14-2017]_ This split contains cardiomegaly cases from the NIH CXR14 database. -See :py:class:`.nih_cxr14.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.nih_cxr14.datamodule.DataModule` for +technical details. """ -from .datamodule import DataModule +from ptbench.config.data.nih_cxr14.datamodule import DataModule datamodule = DataModule("cardiomegaly.json") diff --git a/src/ptbench/data/nih_cxr14/datamodule.py b/src/ptbench/config/data/nih_cxr14/datamodule.py similarity index 82% rename from src/ptbench/data/nih_cxr14/datamodule.py rename to src/ptbench/config/data/nih_cxr14/datamodule.py index 996c9feb7176a7a766940574a4b928a625a76447..9875985f106fa4db9b90e82c0e6021c516f3e388 100644 --- a/src/ptbench/data/nih_cxr14/datamodule.py +++ b/src/ptbench/config/data/nih_cxr14/datamodule.py @@ -13,12 +13,27 @@ import PIL.Image from torchvision.transforms.functional import to_tensor -from ...utils.rc import load_rc -from ..datamodule import CachingDataModule -from ..split import JSONDatabaseSplit -from ..typing import DatabaseSplit -from ..typing import RawDataLoader as _BaseRawDataLoader -from ..typing import Sample +from ptbench.data.datamodule import CachingDataModule +from ptbench.data.split import JSONDatabaseSplit +from ptbench.data.typing import DatabaseSplit +from ptbench.data.typing import RawDataLoader as _BaseRawDataLoader +from ptbench.data.typing import Sample +from ptbench.utils.rc import load_rc + +CONFIGURATION_KEY_DATADIR = "datadir." + (__name__.rsplit(".", 2)[-2]) +"""Key to search for in the configuration file for the root directory of this +database.""" + +CONFIGURATION_KEY_IDIAP_FILESTRUCTURE = ( + __name__.rsplit(".", 2)[-2] +) + ".idiap_folder_structure" +"""Key to search for in the configuration file indicating if the loader should +use standard or idiap-based file organisation structure. + +It causes the internal loader to search for files in a slightly +different folder structure, that was adapted to Idiap's requirements +(number of files per folder to be less than 10k). +""" class RawDataLoader(_BaseRawDataLoader): @@ -40,9 +55,11 @@ class RawDataLoader(_BaseRawDataLoader): def __init__(self): rc = load_rc() - self.datadir = rc.get("datadir.nih_cxr14", os.path.realpath(os.curdir)) + self.datadir = rc.get( + CONFIGURATION_KEY_DATADIR, os.path.realpath(os.curdir) + ) self.idiap_file_organisation = rc.get( - "nih_cxr14.idiap_folder_structure", False + CONFIGURATION_KEY_IDIAP_FILESTRUCTURE, False ) def sample(self, sample: tuple[str, list[int]]) -> Sample: diff --git a/src/ptbench/data/nih_cxr14/default.json.bz2 b/src/ptbench/config/data/nih_cxr14/default.json.bz2 similarity index 100% rename from src/ptbench/data/nih_cxr14/default.json.bz2 rename to src/ptbench/config/data/nih_cxr14/default.json.bz2 diff --git a/src/ptbench/data/nih_cxr14/default.py b/src/ptbench/config/data/nih_cxr14/default.py similarity index 67% rename from src/ptbench/data/nih_cxr14/default.py rename to src/ptbench/config/data/nih_cxr14/default.py index c7bc3e2e7d7c6b0ab2ec83b7375d812481233b06..00ac5afdc1afbf953eb528865db4e0a8dba1faee 100644 --- a/src/ptbench/data/nih_cxr14/default.py +++ b/src/ptbench/config/data/nih_cxr14/default.py @@ -7,9 +7,10 @@ * Validation samples: 6350 * Test samples: 4054 -See :py:class:`.nih_cxr14.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.nih_cxr14.datamodule.DataModule` for +technical details. """ -from .datamodule import DataModule +from ptbench.config.data.nih_cxr14.datamodule import DataModule datamodule = DataModule("default.json.bz2") diff --git a/src/ptbench/data/padchest/__init__.py b/src/ptbench/config/data/nih_cxr14_padchest/__init__.py similarity index 100% rename from src/ptbench/data/padchest/__init__.py rename to src/ptbench/config/data/nih_cxr14_padchest/__init__.py diff --git a/src/ptbench/data/nih_cxr14_padchest/datamodule.py b/src/ptbench/config/data/nih_cxr14_padchest/datamodule.py similarity index 73% rename from src/ptbench/data/nih_cxr14_padchest/datamodule.py rename to src/ptbench/config/data/nih_cxr14_padchest/datamodule.py index f1ce1f914a1469345821e5ec4e4f5426bd356207..cd2d8fb237541481c6fe8a6f65d33d5ff1b98836 100644 --- a/src/ptbench/data/nih_cxr14_padchest/datamodule.py +++ b/src/ptbench/config/data/nih_cxr14_padchest/datamodule.py @@ -2,11 +2,19 @@ # # SPDX-License-Identifier: GPL-3.0-or-later -from ..datamodule import ConcatDataModule -from ..nih_cxr14.datamodule import RawDataLoader as CXR14Loader -from ..nih_cxr14.datamodule import make_split as make_cxr14_split -from ..padchest.datamodule import RawDataLoader as PadchestLoader -from ..padchest.datamodule import make_split as make_padchest_split +from ptbench.config.data.nih_cxr14.datamodule import ( + RawDataLoader as CXR14Loader, +) +from ptbench.config.data.nih_cxr14.datamodule import ( + make_split as make_cxr14_split, +) +from ptbench.config.data.padchest.datamodule import ( + RawDataLoader as PadchestLoader, +) +from ptbench.config.data.padchest.datamodule import ( + make_split as make_padchest_split, +) +from ptbench.data.datamodule import ConcatDataModule class DataModule(ConcatDataModule): diff --git a/src/ptbench/data/nih_cxr14_padchest/idiap.py b/src/ptbench/config/data/nih_cxr14_padchest/idiap.py similarity index 100% rename from src/ptbench/data/nih_cxr14_padchest/idiap.py rename to src/ptbench/config/data/nih_cxr14_padchest/idiap.py diff --git a/src/ptbench/data/shenzhen/__init__.py b/src/ptbench/config/data/padchest/__init__.py similarity index 100% rename from src/ptbench/data/shenzhen/__init__.py rename to src/ptbench/config/data/padchest/__init__.py diff --git a/src/ptbench/data/padchest/cardiomegaly-idiap.json b/src/ptbench/config/data/padchest/cardiomegaly-idiap.json similarity index 100% rename from src/ptbench/data/padchest/cardiomegaly-idiap.json rename to src/ptbench/config/data/padchest/cardiomegaly-idiap.json diff --git a/src/ptbench/data/padchest/cardiomegaly_idiap.py b/src/ptbench/config/data/padchest/cardiomegaly_idiap.py similarity index 72% rename from src/ptbench/data/padchest/cardiomegaly_idiap.py rename to src/ptbench/config/data/padchest/cardiomegaly_idiap.py index bd832fdd7b4592cbeab67e617a5c110861d7794e..a22cdc08bbc6ea398c0606d1072d317c8e3e87a5 100644 --- a/src/ptbench/data/padchest/cardiomegaly_idiap.py +++ b/src/ptbench/config/data/padchest/cardiomegaly_idiap.py @@ -8,9 +8,11 @@ Database reference: [PADCHEST-2019]_ This split contains the first 40 images with cardiomegaly, with parameters: Label = "Normal", MethodLabel = "Physician", Projection = "PA" -Read documentation of :py:class:`DataModule` for technical details. +Read documentation of +:py:class:`ptbench.config.data.padchest.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.padchest.datamodule import DataModule datamodule = DataModule("cardiomegaly-idiap.json") diff --git a/src/ptbench/data/padchest/datamodule.py b/src/ptbench/config/data/padchest/datamodule.py similarity index 94% rename from src/ptbench/data/padchest/datamodule.py rename to src/ptbench/config/data/padchest/datamodule.py index 1fc49485ba368c3941ec7aa27a673b71871188b7..0122a429b33215312473228ba9db21b9fc235caf 100644 --- a/src/ptbench/data/padchest/datamodule.py +++ b/src/ptbench/config/data/padchest/datamodule.py @@ -14,13 +14,17 @@ import PIL.Image from torchvision.transforms.functional import center_crop, to_tensor -from ...utils.rc import load_rc -from ..datamodule import CachingDataModule -from ..image_utils import remove_black_borders -from ..split import JSONDatabaseSplit -from ..typing import DatabaseSplit -from ..typing import RawDataLoader as _BaseRawDataLoader -from ..typing import Sample +from ptbench.data.datamodule import CachingDataModule +from ptbench.data.image_utils import remove_black_borders +from ptbench.data.split import JSONDatabaseSplit +from ptbench.data.typing import DatabaseSplit +from ptbench.data.typing import RawDataLoader as _BaseRawDataLoader +from ptbench.data.typing import Sample +from ptbench.utils.rc import load_rc + +CONFIGURATION_KEY_DATADIR = "datadir." + (__name__.rsplit(".", 2)[-2]) +"""Key to search for in the configuration file for the root directory of this +database.""" class RawDataLoader(_BaseRawDataLoader): @@ -32,7 +36,9 @@ class RawDataLoader(_BaseRawDataLoader): def __init__(self): rc = load_rc() - self.datadir = rc.get("datadir.padchest", os.path.realpath(os.curdir)) + self.datadir = rc.get( + CONFIGURATION_KEY_DATADIR, os.path.realpath(os.curdir) + ) def sample(self, sample: tuple[str, int | list[int]]) -> Sample: """Loads a single image sample from the disk. diff --git a/src/ptbench/data/padchest/idiap.json.bz2 b/src/ptbench/config/data/padchest/idiap.json.bz2 similarity index 100% rename from src/ptbench/data/padchest/idiap.json.bz2 rename to src/ptbench/config/data/padchest/idiap.json.bz2 diff --git a/src/ptbench/data/padchest/idiap.py b/src/ptbench/config/data/padchest/idiap.py similarity index 67% rename from src/ptbench/data/padchest/idiap.py rename to src/ptbench/config/data/padchest/idiap.py index bf1f935641faff87898b9e486cdd39b5248fe699..be0f9b2f9b5b2947f60cbc4a4b5e31da75e26d15 100644 --- a/src/ptbench/data/padchest/idiap.py +++ b/src/ptbench/config/data/padchest/idiap.py @@ -6,14 +6,15 @@ Database reference: [PADCHEST-2019]_ This split contains all images in the database. Read documentation of -:py:class:`.padchest.datamodule.DataModule` for technical details. +:py:class:`ptbench.config.data.padchest.datamodule.DataModule` for technical +details. * Split reference: ours * Training samples: 96'269 - * Validation samples: ? - * Test samples: ? + * Validation samples: 0 + * Test samples: 0 """ -from .datamodule import DataModule +from ptbench.config.data.padchest.datamodule import DataModule datamodule = DataModule("idiap.json.bz2") diff --git a/src/ptbench/data/padchest/no-tb-idiap.json.bz2 b/src/ptbench/config/data/padchest/no-tb-idiap.json.bz2 similarity index 100% rename from src/ptbench/data/padchest/no-tb-idiap.json.bz2 rename to src/ptbench/config/data/padchest/no-tb-idiap.json.bz2 diff --git a/src/ptbench/data/padchest/no_tb_idiap.py b/src/ptbench/config/data/padchest/no_tb_idiap.py similarity index 81% rename from src/ptbench/data/padchest/no_tb_idiap.py rename to src/ptbench/config/data/padchest/no_tb_idiap.py index ca787520874bd9380fff6c8caa1f34943f269305..8c2c5fc7a48502b140ee3a0c870c6cb832b72273 100644 --- a/src/ptbench/data/padchest/no_tb_idiap.py +++ b/src/ptbench/config/data/padchest/no_tb_idiap.py @@ -28,10 +28,11 @@ Database reference: [PADCHEST-2019]_ * fibrosis * edema and consolidation -Read documentation of :py:class:`.padchest.datamodule.DataModule` for technical +Read documentation of +:py:class:`ptbench.config.data.padchest.datamodule.DataModule` for technical details. """ -from .datamodule import DataModule +from ptbench.config.data.padchest.datamodule import DataModule datamodule = DataModule("no-tb-idiap.json.bz2") diff --git a/src/ptbench/data/padchest/tb-idiap.json b/src/ptbench/config/data/padchest/tb-idiap.json similarity index 100% rename from src/ptbench/data/padchest/tb-idiap.json rename to src/ptbench/config/data/padchest/tb-idiap.json diff --git a/src/ptbench/data/padchest/tb_idiap.py b/src/ptbench/config/data/padchest/tb_idiap.py similarity index 77% rename from src/ptbench/data/padchest/tb_idiap.py rename to src/ptbench/config/data/padchest/tb_idiap.py index d77e5afd0e2a92b0b516af8e69713b6ecaba599a..c6c4da93caadc0720279bddf74f4e44df3722e51 100644 --- a/src/ptbench/data/padchest/tb_idiap.py +++ b/src/ptbench/config/data/padchest/tb_idiap.py @@ -10,10 +10,11 @@ the following parameters: Label = "Normal", MethodLabel = "Physician", Projection = "PA" and TB cases. Labelling matches those for active TB (binary) classification datasets. -Read documentation of :py:class:`.padchest.datamodule.DataModule` for technical +Read documentation of +:py:class:`ptbench.config.data.padchest.datamodule.DataModule` for technical details. """ -from .datamodule import DataModule +from ptbench.config.data.padchest.datamodule import DataModule datamodule = DataModule("tb-idiap.json") diff --git a/src/ptbench/data/tbpoc/__init__.py b/src/ptbench/config/data/shenzhen/__init__.py similarity index 100% rename from src/ptbench/data/tbpoc/__init__.py rename to src/ptbench/config/data/shenzhen/__init__.py diff --git a/src/ptbench/data/shenzhen/datamodule.py b/src/ptbench/config/data/shenzhen/datamodule.py similarity index 84% rename from src/ptbench/data/shenzhen/datamodule.py rename to src/ptbench/config/data/shenzhen/datamodule.py index af5a40745f9dce870701712c397624a4df823521..70c63893fd5e5133e01fc608b708c36822426332 100644 --- a/src/ptbench/data/shenzhen/datamodule.py +++ b/src/ptbench/config/data/shenzhen/datamodule.py @@ -13,13 +13,17 @@ import PIL.Image from torchvision.transforms.functional import center_crop, to_tensor -from ...utils.rc import load_rc -from ..datamodule import CachingDataModule -from ..image_utils import remove_black_borders -from ..split import JSONDatabaseSplit -from ..typing import DatabaseSplit -from ..typing import RawDataLoader as _BaseRawDataLoader -from ..typing import Sample +from ptbench.data.datamodule import CachingDataModule +from ptbench.data.image_utils import remove_black_borders +from ptbench.data.split import JSONDatabaseSplit +from ptbench.data.typing import DatabaseSplit +from ptbench.data.typing import RawDataLoader as _BaseRawDataLoader +from ptbench.data.typing import Sample +from ptbench.utils.rc import load_rc + +CONFIGURATION_KEY_DATADIR = "datadir." + (__name__.rsplit(".", 2)[-2]) +"""Key to search for in the configuration file for the root directory of this +database.""" class RawDataLoader(_BaseRawDataLoader): @@ -29,7 +33,9 @@ class RawDataLoader(_BaseRawDataLoader): """This variable contains the base directory where the database raw data is stored.""" - def __init__(self, config_variable: str = "datadir.shenzhen"): + # config_variable: required so this loader can be used for the Indian + # database as well. + def __init__(self, config_variable: str = CONFIGURATION_KEY_DATADIR): self.datadir = load_rc().get( config_variable, os.path.realpath(os.curdir) ) diff --git a/src/ptbench/data/shenzhen/default.json b/src/ptbench/config/data/shenzhen/default.json similarity index 100% rename from src/ptbench/data/shenzhen/default.json rename to src/ptbench/config/data/shenzhen/default.json diff --git a/src/ptbench/data/shenzhen/default.py b/src/ptbench/config/data/shenzhen/default.py similarity index 75% rename from src/ptbench/data/shenzhen/default.py rename to src/ptbench/config/data/shenzhen/default.py index b8cf71724bac9b67656bc8d266011ecfceb8eb32..fd0dbaf1dc04074fc9c091564c15078181614fc9 100644 --- a/src/ptbench/data/shenzhen/default.py +++ b/src/ptbench/config/data/shenzhen/default.py @@ -9,9 +9,10 @@ Database reference: [MONTGOMERY-SHENZHEN-2014]_ * Validation samples: 16% of TB and healthy CXR (including labels) * Test samples: 20% of TB and healthy CXR (including labels) -See :py:class:`.shenzhen.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.shenzhen.datamodule.DataModule` for +technical details. """ -from .datamodule import DataModule +from ptbench.config.data.shenzhen.datamodule import DataModule datamodule = DataModule("default.json") diff --git a/src/ptbench/data/shenzhen/fold-0.json b/src/ptbench/config/data/shenzhen/fold-0.json similarity index 100% rename from src/ptbench/data/shenzhen/fold-0.json rename to src/ptbench/config/data/shenzhen/fold-0.json diff --git a/src/ptbench/data/shenzhen/fold-1.json b/src/ptbench/config/data/shenzhen/fold-1.json similarity index 100% rename from src/ptbench/data/shenzhen/fold-1.json rename to src/ptbench/config/data/shenzhen/fold-1.json diff --git a/src/ptbench/data/shenzhen/fold-2.json b/src/ptbench/config/data/shenzhen/fold-2.json similarity index 100% rename from src/ptbench/data/shenzhen/fold-2.json rename to src/ptbench/config/data/shenzhen/fold-2.json diff --git a/src/ptbench/data/shenzhen/fold-3.json b/src/ptbench/config/data/shenzhen/fold-3.json similarity index 100% rename from src/ptbench/data/shenzhen/fold-3.json rename to src/ptbench/config/data/shenzhen/fold-3.json diff --git a/src/ptbench/data/shenzhen/fold-4.json b/src/ptbench/config/data/shenzhen/fold-4.json similarity index 100% rename from src/ptbench/data/shenzhen/fold-4.json rename to src/ptbench/config/data/shenzhen/fold-4.json diff --git a/src/ptbench/data/shenzhen/fold-5.json b/src/ptbench/config/data/shenzhen/fold-5.json similarity index 100% rename from src/ptbench/data/shenzhen/fold-5.json rename to src/ptbench/config/data/shenzhen/fold-5.json diff --git a/src/ptbench/data/shenzhen/fold-6.json b/src/ptbench/config/data/shenzhen/fold-6.json similarity index 100% rename from src/ptbench/data/shenzhen/fold-6.json rename to src/ptbench/config/data/shenzhen/fold-6.json diff --git a/src/ptbench/data/shenzhen/fold-7.json b/src/ptbench/config/data/shenzhen/fold-7.json similarity index 100% rename from src/ptbench/data/shenzhen/fold-7.json rename to src/ptbench/config/data/shenzhen/fold-7.json diff --git a/src/ptbench/data/shenzhen/fold-8.json b/src/ptbench/config/data/shenzhen/fold-8.json similarity index 100% rename from src/ptbench/data/shenzhen/fold-8.json rename to src/ptbench/config/data/shenzhen/fold-8.json diff --git a/src/ptbench/data/shenzhen/fold-9.json b/src/ptbench/config/data/shenzhen/fold-9.json similarity index 100% rename from src/ptbench/data/shenzhen/fold-9.json rename to src/ptbench/config/data/shenzhen/fold-9.json diff --git a/src/ptbench/data/shenzhen/fold_0.py b/src/ptbench/config/data/shenzhen/fold_0.py similarity index 66% rename from src/ptbench/data/shenzhen/fold_0.py rename to src/ptbench/config/data/shenzhen/fold_0.py index df1359ae33f1331e6bbae4c48069ef232f34d824..890250dba8e7c9780fb9873a0203e5fd65f11de0 100644 --- a/src/ptbench/data/shenzhen/fold_0.py +++ b/src/ptbench/config/data/shenzhen/fold_0.py @@ -5,9 +5,10 @@ Database reference: [MONTGOMERY-SHENZHEN-2014]_ -See :py:class:`.shenzhen.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.shenzhen.datamodule.DataModule` for +technical details. """ -from .datamodule import DataModule +from ptbench.config.data.shenzhen.datamodule import DataModule datamodule = DataModule("fold-0.json") diff --git a/src/ptbench/data/shenzhen/fold_1.py b/src/ptbench/config/data/shenzhen/fold_1.py similarity index 66% rename from src/ptbench/data/shenzhen/fold_1.py rename to src/ptbench/config/data/shenzhen/fold_1.py index 03be3fa6555ef9b8844d2814dab8e4ac4d293e23..ff95e0d052b7beab85e1c6196b79d9e86dba5e16 100644 --- a/src/ptbench/data/shenzhen/fold_1.py +++ b/src/ptbench/config/data/shenzhen/fold_1.py @@ -5,9 +5,10 @@ Database reference: [MONTGOMERY-SHENZHEN-2014]_ -See :py:class:`.shenzhen.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.shenzhen.datamodule.DataModule` for +technical details. """ -from .datamodule import DataModule +from ptbench.config.data.shenzhen.datamodule import DataModule datamodule = DataModule("fold-1.json") diff --git a/src/ptbench/data/shenzhen/fold_2.py b/src/ptbench/config/data/shenzhen/fold_2.py similarity index 66% rename from src/ptbench/data/shenzhen/fold_2.py rename to src/ptbench/config/data/shenzhen/fold_2.py index f4bd72d89bc66ca4cca47ec851f8f202bcd25278..db16495c2b3b205ffabf4c920d3a198967d2fb34 100644 --- a/src/ptbench/data/shenzhen/fold_2.py +++ b/src/ptbench/config/data/shenzhen/fold_2.py @@ -5,9 +5,10 @@ Database reference: [MONTGOMERY-SHENZHEN-2014]_ -See :py:class:`.shenzhen.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.shenzhen.datamodule.DataModule` for +technical details. """ -from .datamodule import DataModule +from ptbench.config.data.shenzhen.datamodule import DataModule datamodule = DataModule("fold-2.json") diff --git a/src/ptbench/data/shenzhen/fold_3.py b/src/ptbench/config/data/shenzhen/fold_3.py similarity index 66% rename from src/ptbench/data/shenzhen/fold_3.py rename to src/ptbench/config/data/shenzhen/fold_3.py index b41c78861b56d5d010a3400c2d281c96135b81c3..d0321c8696c168ad83d5910641699233ce7425a9 100644 --- a/src/ptbench/data/shenzhen/fold_3.py +++ b/src/ptbench/config/data/shenzhen/fold_3.py @@ -5,9 +5,10 @@ Database reference: [MONTGOMERY-SHENZHEN-2014]_ -See :py:class:`.shenzhen.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.shenzhen.datamodule.DataModule` for +technical details. """ -from .datamodule import DataModule +from ptbench.config.data.shenzhen.datamodule import DataModule datamodule = DataModule("fold-3.json") diff --git a/src/ptbench/data/shenzhen/fold_4.py b/src/ptbench/config/data/shenzhen/fold_4.py similarity index 66% rename from src/ptbench/data/shenzhen/fold_4.py rename to src/ptbench/config/data/shenzhen/fold_4.py index f9105989f0b812a19fbaf8db9d9283053081938e..f6760358546c2daa9712bc2c618c9dd1b118b557 100644 --- a/src/ptbench/data/shenzhen/fold_4.py +++ b/src/ptbench/config/data/shenzhen/fold_4.py @@ -5,9 +5,10 @@ Database reference: [MONTGOMERY-SHENZHEN-2014]_ -See :py:class:`.shenzhen.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.shenzhen.datamodule.DataModule` for +technical details. """ -from .datamodule import DataModule +from ptbench.config.data.shenzhen.datamodule import DataModule datamodule = DataModule("fold-4.json") diff --git a/src/ptbench/data/shenzhen/fold_5.py b/src/ptbench/config/data/shenzhen/fold_5.py similarity index 66% rename from src/ptbench/data/shenzhen/fold_5.py rename to src/ptbench/config/data/shenzhen/fold_5.py index 7882e8990bd4512967128374a82b8763c8701a40..6d77a8409a5813d6451f4346b7217c120bbee992 100644 --- a/src/ptbench/data/shenzhen/fold_5.py +++ b/src/ptbench/config/data/shenzhen/fold_5.py @@ -5,9 +5,10 @@ Database reference: [MONTGOMERY-SHENZHEN-2014]_ -See :py:class:`.shenzhen.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.shenzhen.datamodule.DataModule` for +technical details. """ -from .datamodule import DataModule +from ptbench.config.data.shenzhen.datamodule import DataModule datamodule = DataModule("fold-5.json") diff --git a/src/ptbench/data/shenzhen/fold_6.py b/src/ptbench/config/data/shenzhen/fold_6.py similarity index 66% rename from src/ptbench/data/shenzhen/fold_6.py rename to src/ptbench/config/data/shenzhen/fold_6.py index 4d11aca0a0c46753d4acc4c6e252309a6af24ab8..3ecd646ebb15ed34a2863a924497fa391e2dd881 100644 --- a/src/ptbench/data/shenzhen/fold_6.py +++ b/src/ptbench/config/data/shenzhen/fold_6.py @@ -5,9 +5,10 @@ Database reference: [MONTGOMERY-SHENZHEN-2014]_ -See :py:class:`.shenzhen.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.shenzhen.datamodule.DataModule` for +technical details. """ -from .datamodule import DataModule +from ptbench.config.data.shenzhen.datamodule import DataModule datamodule = DataModule("fold-6.json") diff --git a/src/ptbench/data/shenzhen/fold_7.py b/src/ptbench/config/data/shenzhen/fold_7.py similarity index 66% rename from src/ptbench/data/shenzhen/fold_7.py rename to src/ptbench/config/data/shenzhen/fold_7.py index 8a7943459ea9b3a103bd25f031cd44e8ae66fb78..61ba5d27a1062f3f971282b659e9801712b139c4 100644 --- a/src/ptbench/data/shenzhen/fold_7.py +++ b/src/ptbench/config/data/shenzhen/fold_7.py @@ -5,9 +5,10 @@ Database reference: [MONTGOMERY-SHENZHEN-2014]_ -See :py:class:`.shenzhen.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.shenzhen.datamodule.DataModule` for +technical details. """ -from .datamodule import DataModule +from ptbench.config.data.shenzhen.datamodule import DataModule datamodule = DataModule("fold-7.json") diff --git a/src/ptbench/data/shenzhen/fold_8.py b/src/ptbench/config/data/shenzhen/fold_8.py similarity index 66% rename from src/ptbench/data/shenzhen/fold_8.py rename to src/ptbench/config/data/shenzhen/fold_8.py index 9abe5fa47349ce40dfe9fb8bfac85ca022ab8c60..a03121d5653ebcdf719eccb7d89ddd3a8d54b4f9 100644 --- a/src/ptbench/data/shenzhen/fold_8.py +++ b/src/ptbench/config/data/shenzhen/fold_8.py @@ -5,9 +5,10 @@ Database reference: [MONTGOMERY-SHENZHEN-2014]_ -See :py:class:`.shenzhen.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.shenzhen.datamodule.DataModule` for +technical details. """ -from .datamodule import DataModule +from ptbench.config.data.shenzhen.datamodule import DataModule datamodule = DataModule("fold-8.json") diff --git a/src/ptbench/data/shenzhen/fold_9.py b/src/ptbench/config/data/shenzhen/fold_9.py similarity index 66% rename from src/ptbench/data/shenzhen/fold_9.py rename to src/ptbench/config/data/shenzhen/fold_9.py index 06fab9743af4037b1a9415c35ef648dd60951cd4..168031c80166bfc76de482231851248846009388 100644 --- a/src/ptbench/data/shenzhen/fold_9.py +++ b/src/ptbench/config/data/shenzhen/fold_9.py @@ -5,9 +5,10 @@ Database reference: [MONTGOMERY-SHENZHEN-2014]_ -See :py:class:`.shenzhen.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.shenzhen.datamodule.DataModule` for +technical details. """ -from .datamodule import DataModule +from ptbench.config.data.shenzhen.datamodule import DataModule datamodule = DataModule("fold-9.json") diff --git a/src/ptbench/data/tbx11k/__init__.py b/src/ptbench/config/data/tbpoc/__init__.py similarity index 100% rename from src/ptbench/data/tbx11k/__init__.py rename to src/ptbench/config/data/tbpoc/__init__.py diff --git a/src/ptbench/data/tbpoc/datamodule.py b/src/ptbench/config/data/tbpoc/datamodule.py similarity index 84% rename from src/ptbench/data/tbpoc/datamodule.py rename to src/ptbench/config/data/tbpoc/datamodule.py index f564e2326cf4d0ae50eaa0d2e673384dff076584..42a3a10f31db87e8f37f7721c06de4751ae17d61 100644 --- a/src/ptbench/data/tbpoc/datamodule.py +++ b/src/ptbench/config/data/tbpoc/datamodule.py @@ -9,13 +9,17 @@ import PIL.Image from torchvision.transforms.functional import center_crop, to_tensor -from ...utils.rc import load_rc -from ..datamodule import CachingDataModule -from ..image_utils import remove_black_borders -from ..split import JSONDatabaseSplit -from ..typing import DatabaseSplit -from ..typing import RawDataLoader as _BaseRawDataLoader -from ..typing import Sample +from ptbench.data.datamodule import CachingDataModule +from ptbench.data.image_utils import remove_black_borders +from ptbench.data.split import JSONDatabaseSplit +from ptbench.data.typing import DatabaseSplit +from ptbench.data.typing import RawDataLoader as _BaseRawDataLoader +from ptbench.data.typing import Sample +from ptbench.utils.rc import load_rc + +CONFIGURATION_KEY_DATADIR = "datadir." + (__name__.rsplit(".", 2)[-2]) +"""Key to search for in the configuration file for the root directory of this +database.""" class RawDataLoader(_BaseRawDataLoader): @@ -25,9 +29,9 @@ class RawDataLoader(_BaseRawDataLoader): """This variable contains the base directory where the database raw data is stored.""" - def __init__(self, config_variable: str = "datadir.tbpoc"): + def __init__(self): self.datadir = load_rc().get( - config_variable, os.path.realpath(os.curdir) + CONFIGURATION_KEY_DATADIR, os.path.realpath(os.curdir) ) def sample(self, sample: tuple[str, int]) -> Sample: diff --git a/src/ptbench/data/tbpoc/fold-0.json b/src/ptbench/config/data/tbpoc/fold-0.json similarity index 100% rename from src/ptbench/data/tbpoc/fold-0.json rename to src/ptbench/config/data/tbpoc/fold-0.json diff --git a/src/ptbench/data/tbpoc/fold-1.json b/src/ptbench/config/data/tbpoc/fold-1.json similarity index 100% rename from src/ptbench/data/tbpoc/fold-1.json rename to src/ptbench/config/data/tbpoc/fold-1.json diff --git a/src/ptbench/data/tbpoc/fold-2.json b/src/ptbench/config/data/tbpoc/fold-2.json similarity index 100% rename from src/ptbench/data/tbpoc/fold-2.json rename to src/ptbench/config/data/tbpoc/fold-2.json diff --git a/src/ptbench/data/tbpoc/fold-3.json b/src/ptbench/config/data/tbpoc/fold-3.json similarity index 100% rename from src/ptbench/data/tbpoc/fold-3.json rename to src/ptbench/config/data/tbpoc/fold-3.json diff --git a/src/ptbench/data/tbpoc/fold-4.json b/src/ptbench/config/data/tbpoc/fold-4.json similarity index 100% rename from src/ptbench/data/tbpoc/fold-4.json rename to src/ptbench/config/data/tbpoc/fold-4.json diff --git a/src/ptbench/data/tbpoc/fold-5.json b/src/ptbench/config/data/tbpoc/fold-5.json similarity index 100% rename from src/ptbench/data/tbpoc/fold-5.json rename to src/ptbench/config/data/tbpoc/fold-5.json diff --git a/src/ptbench/data/tbpoc/fold-6.json b/src/ptbench/config/data/tbpoc/fold-6.json similarity index 100% rename from src/ptbench/data/tbpoc/fold-6.json rename to src/ptbench/config/data/tbpoc/fold-6.json diff --git a/src/ptbench/data/tbpoc/fold-7.json b/src/ptbench/config/data/tbpoc/fold-7.json similarity index 100% rename from src/ptbench/data/tbpoc/fold-7.json rename to src/ptbench/config/data/tbpoc/fold-7.json diff --git a/src/ptbench/data/tbpoc/fold-8.json b/src/ptbench/config/data/tbpoc/fold-8.json similarity index 100% rename from src/ptbench/data/tbpoc/fold-8.json rename to src/ptbench/config/data/tbpoc/fold-8.json diff --git a/src/ptbench/data/tbpoc/fold-9.json b/src/ptbench/config/data/tbpoc/fold-9.json similarity index 100% rename from src/ptbench/data/tbpoc/fold-9.json rename to src/ptbench/config/data/tbpoc/fold-9.json diff --git a/src/ptbench/data/tbpoc/fold_0.py b/src/ptbench/config/data/tbpoc/fold_0.py similarity index 65% rename from src/ptbench/data/tbpoc/fold_0.py rename to src/ptbench/config/data/tbpoc/fold_0.py index 5c4525047d486bf8891aa85f0fe68591067d1f79..e3a0d24221d1ba3b95d3d2015adf1e0dca53d194 100644 --- a/src/ptbench/data/tbpoc/fold_0.py +++ b/src/ptbench/config/data/tbpoc/fold_0.py @@ -5,9 +5,10 @@ Database reference: [TB-POC-2018]_ -See :py:class:`.tbpoc.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbpoc.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbpoc.datamodule import DataModule datamodule = DataModule("fold-0.json") diff --git a/src/ptbench/data/tbpoc/fold_1.py b/src/ptbench/config/data/tbpoc/fold_1.py similarity index 65% rename from src/ptbench/data/tbpoc/fold_1.py rename to src/ptbench/config/data/tbpoc/fold_1.py index a2fe60830287470a2d3c39ec716fb0119aded6ad..b6a04095a2f5e76d6ff37a5622f1b1bdad37500a 100644 --- a/src/ptbench/data/tbpoc/fold_1.py +++ b/src/ptbench/config/data/tbpoc/fold_1.py @@ -5,9 +5,10 @@ Database reference: [TB-POC-2018]_ -See :py:class:`.tbpoc.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbpoc.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbpoc.datamodule import DataModule datamodule = DataModule("fold-1.json") diff --git a/src/ptbench/data/tbpoc/fold_2.py b/src/ptbench/config/data/tbpoc/fold_2.py similarity index 65% rename from src/ptbench/data/tbpoc/fold_2.py rename to src/ptbench/config/data/tbpoc/fold_2.py index f0aa508cd2d75f06fe82e99a2476559d5595828b..c821f0cc0eb1d4a4085cf1b93c36cd8b751262e9 100644 --- a/src/ptbench/data/tbpoc/fold_2.py +++ b/src/ptbench/config/data/tbpoc/fold_2.py @@ -5,9 +5,10 @@ Database reference: [TB-POC-2018]_ -See :py:class:`.tbpoc.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbpoc.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbpoc.datamodule import DataModule datamodule = DataModule("fold-2.json") diff --git a/src/ptbench/data/tbpoc/fold_3.py b/src/ptbench/config/data/tbpoc/fold_3.py similarity index 65% rename from src/ptbench/data/tbpoc/fold_3.py rename to src/ptbench/config/data/tbpoc/fold_3.py index b13213c74d5244dd73e4aa618764ac36fc33ed1a..c5c9fa7daf28e5a2e84ab85a62be5fc7dd380af2 100644 --- a/src/ptbench/data/tbpoc/fold_3.py +++ b/src/ptbench/config/data/tbpoc/fold_3.py @@ -5,9 +5,10 @@ Database reference: [TB-POC-2018]_ -See :py:class:`.tbpoc.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbpoc.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbpoc.datamodule import DataModule datamodule = DataModule("fold-3.json") diff --git a/src/ptbench/data/tbpoc/fold_4.py b/src/ptbench/config/data/tbpoc/fold_4.py similarity index 65% rename from src/ptbench/data/tbpoc/fold_4.py rename to src/ptbench/config/data/tbpoc/fold_4.py index fe153fc697bda231c73bd533f710d63a84cc15af..9b3b74d9c41f307286cb5ad017f6ec1677906b1f 100644 --- a/src/ptbench/data/tbpoc/fold_4.py +++ b/src/ptbench/config/data/tbpoc/fold_4.py @@ -5,9 +5,10 @@ Database reference: [TB-POC-2018]_ -See :py:class:`.tbpoc.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbpoc.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbpoc.datamodule import DataModule datamodule = DataModule("fold-4.json") diff --git a/src/ptbench/data/tbpoc/fold_5.py b/src/ptbench/config/data/tbpoc/fold_5.py similarity index 65% rename from src/ptbench/data/tbpoc/fold_5.py rename to src/ptbench/config/data/tbpoc/fold_5.py index 7759ccc7b8cad4e1f2d54d7e11987700d985df34..7a9947dcd432cba2c1c29dcc2e611b2f173afe94 100644 --- a/src/ptbench/data/tbpoc/fold_5.py +++ b/src/ptbench/config/data/tbpoc/fold_5.py @@ -5,9 +5,10 @@ Database reference: [TB-POC-2018]_ -See :py:class:`.tbpoc.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbpoc.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbpoc.datamodule import DataModule datamodule = DataModule("fold-5.json") diff --git a/src/ptbench/data/tbpoc/fold_6.py b/src/ptbench/config/data/tbpoc/fold_6.py similarity index 65% rename from src/ptbench/data/tbpoc/fold_6.py rename to src/ptbench/config/data/tbpoc/fold_6.py index 35be05a4e2d0f0eaa86dc789f2da1cfb18a5c2e8..0e6a7349494077d834e18099bccf65dce83dffd2 100644 --- a/src/ptbench/data/tbpoc/fold_6.py +++ b/src/ptbench/config/data/tbpoc/fold_6.py @@ -5,9 +5,10 @@ Database reference: [TB-POC-2018]_ -See :py:class:`.tbpoc.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbpoc.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbpoc.datamodule import DataModule datamodule = DataModule("fold-6.json") diff --git a/src/ptbench/data/tbpoc/fold_7.py b/src/ptbench/config/data/tbpoc/fold_7.py similarity index 65% rename from src/ptbench/data/tbpoc/fold_7.py rename to src/ptbench/config/data/tbpoc/fold_7.py index da5bec1e26bc911a964d06c196e35462ab6b5962..bb257c8efaa7a4f65ea59766716546434291a48f 100644 --- a/src/ptbench/data/tbpoc/fold_7.py +++ b/src/ptbench/config/data/tbpoc/fold_7.py @@ -5,9 +5,10 @@ Database reference: [TB-POC-2018]_ -See :py:class:`.tbpoc.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbpoc.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbpoc.datamodule import DataModule datamodule = DataModule("fold-7.json") diff --git a/src/ptbench/data/tbpoc/fold_8.py b/src/ptbench/config/data/tbpoc/fold_8.py similarity index 65% rename from src/ptbench/data/tbpoc/fold_8.py rename to src/ptbench/config/data/tbpoc/fold_8.py index 65339cc04b4cfe7616c88f0a3c15189b781d1ac7..790f13c954d7f27d9616c9e07db87a0ae9065f20 100644 --- a/src/ptbench/data/tbpoc/fold_8.py +++ b/src/ptbench/config/data/tbpoc/fold_8.py @@ -5,9 +5,10 @@ Database reference: [TB-POC-2018]_ -See :py:class:`.tbpoc.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbpoc.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbpoc.datamodule import DataModule datamodule = DataModule("fold-8.json") diff --git a/src/ptbench/data/tbpoc/fold_9.py b/src/ptbench/config/data/tbpoc/fold_9.py similarity index 65% rename from src/ptbench/data/tbpoc/fold_9.py rename to src/ptbench/config/data/tbpoc/fold_9.py index dd42e068947eeaafea5ff9600598d85b91a899cc..a53852a6aeb7a593f6b04a95c031dc6f66525988 100644 --- a/src/ptbench/data/tbpoc/fold_9.py +++ b/src/ptbench/config/data/tbpoc/fold_9.py @@ -5,9 +5,10 @@ Database reference: [TB-POC-2018]_ -See :py:class:`.tbpoc.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbpoc.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbpoc.datamodule import DataModule datamodule = DataModule("fold-9.json") diff --git a/src/ptbench/models/config/__init__.py b/src/ptbench/config/data/tbx11k/__init__.py similarity index 100% rename from src/ptbench/models/config/__init__.py rename to src/ptbench/config/data/tbx11k/__init__.py diff --git a/src/ptbench/data/tbx11k/datamodule.py b/src/ptbench/config/data/tbx11k/datamodule.py similarity index 93% rename from src/ptbench/data/tbx11k/datamodule.py rename to src/ptbench/config/data/tbx11k/datamodule.py index 45cab752ea18a132b59b3f93cc03e1b46a1f1021..a5959e820b18b9a04d53f15b88e6001b8fdaa7b3 100644 --- a/src/ptbench/data/tbx11k/datamodule.py +++ b/src/ptbench/config/data/tbx11k/datamodule.py @@ -10,12 +10,17 @@ import PIL.Image from torchvision.transforms.functional import to_tensor -from ...utils.rc import load_rc -from ..datamodule import CachingDataModule -from ..split import JSONDatabaseSplit -from ..typing import DatabaseSplit -from ..typing import RawDataLoader as _BaseRawDataLoader -from ..typing import Sample +from ptbench.data.datamodule import CachingDataModule +from ptbench.data.split import JSONDatabaseSplit +from ptbench.data.typing import DatabaseSplit +from ptbench.data.typing import RawDataLoader as _BaseRawDataLoader +from ptbench.data.typing import Sample +from ptbench.utils.rc import load_rc + +CONFIGURATION_KEY_DATADIR = "datadir." + (__name__.rsplit(".", 2)[-2]) +"""Key to search for in the configuration file for the root directory of this +database.""" + BoundingBoxAnnotation: typing.TypeAlias = tuple[int, int, int, int, int] """Location of TB radiological findings (latent or active) @@ -55,7 +60,7 @@ class RawDataLoader(_BaseRawDataLoader): def __init__(self): self.datadir = load_rc().get( - "datadir.tbx11k", os.path.realpath(os.curdir) + CONFIGURATION_KEY_DATADIR, os.path.realpath(os.curdir) ) def sample(self, sample: DatabaseSample) -> Sample: diff --git a/src/ptbench/data/tbx11k/make_splits_from_database.py b/src/ptbench/config/data/tbx11k/make_splits_from_database.py similarity index 100% rename from src/ptbench/data/tbx11k/make_splits_from_database.py rename to src/ptbench/config/data/tbx11k/make_splits_from_database.py diff --git a/src/ptbench/data/tbx11k/v1-fold-0.json b/src/ptbench/config/data/tbx11k/v1-fold-0.json similarity index 100% rename from src/ptbench/data/tbx11k/v1-fold-0.json rename to src/ptbench/config/data/tbx11k/v1-fold-0.json diff --git a/src/ptbench/data/tbx11k/v1-fold-1.json b/src/ptbench/config/data/tbx11k/v1-fold-1.json similarity index 100% rename from src/ptbench/data/tbx11k/v1-fold-1.json rename to src/ptbench/config/data/tbx11k/v1-fold-1.json diff --git a/src/ptbench/data/tbx11k/v1-fold-2.json b/src/ptbench/config/data/tbx11k/v1-fold-2.json similarity index 100% rename from src/ptbench/data/tbx11k/v1-fold-2.json rename to src/ptbench/config/data/tbx11k/v1-fold-2.json diff --git a/src/ptbench/data/tbx11k/v1-fold-3.json b/src/ptbench/config/data/tbx11k/v1-fold-3.json similarity index 100% rename from src/ptbench/data/tbx11k/v1-fold-3.json rename to src/ptbench/config/data/tbx11k/v1-fold-3.json diff --git a/src/ptbench/data/tbx11k/v1-fold-4.json b/src/ptbench/config/data/tbx11k/v1-fold-4.json similarity index 100% rename from src/ptbench/data/tbx11k/v1-fold-4.json rename to src/ptbench/config/data/tbx11k/v1-fold-4.json diff --git a/src/ptbench/data/tbx11k/v1-fold-5.json b/src/ptbench/config/data/tbx11k/v1-fold-5.json similarity index 100% rename from src/ptbench/data/tbx11k/v1-fold-5.json rename to src/ptbench/config/data/tbx11k/v1-fold-5.json diff --git a/src/ptbench/data/tbx11k/v1-fold-6.json b/src/ptbench/config/data/tbx11k/v1-fold-6.json similarity index 100% rename from src/ptbench/data/tbx11k/v1-fold-6.json rename to src/ptbench/config/data/tbx11k/v1-fold-6.json diff --git a/src/ptbench/data/tbx11k/v1-fold-7.json b/src/ptbench/config/data/tbx11k/v1-fold-7.json similarity index 100% rename from src/ptbench/data/tbx11k/v1-fold-7.json rename to src/ptbench/config/data/tbx11k/v1-fold-7.json diff --git a/src/ptbench/data/tbx11k/v1-fold-8.json b/src/ptbench/config/data/tbx11k/v1-fold-8.json similarity index 100% rename from src/ptbench/data/tbx11k/v1-fold-8.json rename to src/ptbench/config/data/tbx11k/v1-fold-8.json diff --git a/src/ptbench/data/tbx11k/v1-fold-9.json b/src/ptbench/config/data/tbx11k/v1-fold-9.json similarity index 100% rename from src/ptbench/data/tbx11k/v1-fold-9.json rename to src/ptbench/config/data/tbx11k/v1-fold-9.json diff --git a/src/ptbench/data/tbx11k/v1-healthy-vs-atb.json b/src/ptbench/config/data/tbx11k/v1-healthy-vs-atb.json similarity index 100% rename from src/ptbench/data/tbx11k/v1-healthy-vs-atb.json rename to src/ptbench/config/data/tbx11k/v1-healthy-vs-atb.json diff --git a/src/ptbench/data/tbx11k/v1_fold_0.py b/src/ptbench/config/data/tbx11k/v1_fold_0.py similarity index 67% rename from src/ptbench/data/tbx11k/v1_fold_0.py rename to src/ptbench/config/data/tbx11k/v1_fold_0.py index ecf1e295ac32e61a0db1e127a75799649eab7661..9ba42d5231c0ce47de84d360e0bf753d3a0b3fde 100644 --- a/src/ptbench/data/tbx11k/v1_fold_0.py +++ b/src/ptbench/config/data/tbx11k/v1_fold_0.py @@ -6,9 +6,10 @@ cases). Database reference: [TBX11K-2020]_ -See :py:class:`.tbx11k.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbx11k.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbx11k.datamodule import DataModule datamodule = DataModule("v1-fold-0.json") diff --git a/src/ptbench/data/tbx11k/v1_fold_1.py b/src/ptbench/config/data/tbx11k/v1_fold_1.py similarity index 67% rename from src/ptbench/data/tbx11k/v1_fold_1.py rename to src/ptbench/config/data/tbx11k/v1_fold_1.py index b74f9ac95589605d597384a71587a63ed236cd49..ca3fe10400d20e2a384d1e0f505a962df3ec9ed4 100644 --- a/src/ptbench/data/tbx11k/v1_fold_1.py +++ b/src/ptbench/config/data/tbx11k/v1_fold_1.py @@ -6,9 +6,10 @@ cases). Database reference: [TBX11K-2020]_ -See :py:class:`.tbx11k.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbx11k.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbx11k.datamodule import DataModule datamodule = DataModule("v1-fold-1.json") diff --git a/src/ptbench/data/tbx11k/v1_fold_2.py b/src/ptbench/config/data/tbx11k/v1_fold_2.py similarity index 67% rename from src/ptbench/data/tbx11k/v1_fold_2.py rename to src/ptbench/config/data/tbx11k/v1_fold_2.py index c52f415ab991e363dc63fe8e038d4c0bb6fa125a..c3ec4fe440a6a191427696bae6ef573bfb223619 100644 --- a/src/ptbench/data/tbx11k/v1_fold_2.py +++ b/src/ptbench/config/data/tbx11k/v1_fold_2.py @@ -6,9 +6,10 @@ cases). Database reference: [TBX11K-2020]_ -See :py:class:`.tbx11k.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbx11k.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbx11k.datamodule import DataModule datamodule = DataModule("v1-fold-2.json") diff --git a/src/ptbench/data/tbx11k/v1_fold_3.py b/src/ptbench/config/data/tbx11k/v1_fold_3.py similarity index 67% rename from src/ptbench/data/tbx11k/v1_fold_3.py rename to src/ptbench/config/data/tbx11k/v1_fold_3.py index 327948485e668138f2adf30b4c3972f421028fec..09fb16b27f600517e82c3dfee197d324b23b0080 100644 --- a/src/ptbench/data/tbx11k/v1_fold_3.py +++ b/src/ptbench/config/data/tbx11k/v1_fold_3.py @@ -6,9 +6,10 @@ cases). Database reference: [TBX11K-2020]_ -See :py:class:`.tbx11k.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbx11k.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbx11k.datamodule import DataModule datamodule = DataModule("v1-fold-3.json") diff --git a/src/ptbench/data/tbx11k/v1_fold_4.py b/src/ptbench/config/data/tbx11k/v1_fold_4.py similarity index 67% rename from src/ptbench/data/tbx11k/v1_fold_4.py rename to src/ptbench/config/data/tbx11k/v1_fold_4.py index 1c1492322485c0d12481398f78e3f58863a26d25..8f96d1e540a4de75922f5c891979bbd3407b8374 100644 --- a/src/ptbench/data/tbx11k/v1_fold_4.py +++ b/src/ptbench/config/data/tbx11k/v1_fold_4.py @@ -6,9 +6,10 @@ cases). Database reference: [TBX11K-2020]_ -See :py:class:`.tbx11k.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbx11k.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbx11k.datamodule import DataModule datamodule = DataModule("v1-fold-4.json") diff --git a/src/ptbench/data/tbx11k/v1_fold_5.py b/src/ptbench/config/data/tbx11k/v1_fold_5.py similarity index 67% rename from src/ptbench/data/tbx11k/v1_fold_5.py rename to src/ptbench/config/data/tbx11k/v1_fold_5.py index 2a74b2194a87e0570f8d1ad0bff55c29fec77c35..8ced06d43f229d85f5decb9d05b030dfc1f63a1e 100644 --- a/src/ptbench/data/tbx11k/v1_fold_5.py +++ b/src/ptbench/config/data/tbx11k/v1_fold_5.py @@ -6,9 +6,10 @@ cases). Database reference: [TBX11K-2020]_ -See :py:class:`.tbx11k.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbx11k.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbx11k.datamodule import DataModule datamodule = DataModule("v1-fold-5.json") diff --git a/src/ptbench/data/tbx11k/v1_fold_6.py b/src/ptbench/config/data/tbx11k/v1_fold_6.py similarity index 67% rename from src/ptbench/data/tbx11k/v1_fold_6.py rename to src/ptbench/config/data/tbx11k/v1_fold_6.py index 67562a35bd299b21ebe688db205057d12a669bec..28e9f16a7523b45285d9d57f4c90bf61c5a98b96 100644 --- a/src/ptbench/data/tbx11k/v1_fold_6.py +++ b/src/ptbench/config/data/tbx11k/v1_fold_6.py @@ -6,9 +6,10 @@ cases). Database reference: [TBX11K-2020]_ -See :py:class:`.tbx11k.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbx11k.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbx11k.datamodule import DataModule datamodule = DataModule("v1-fold-6.json") diff --git a/src/ptbench/data/tbx11k/v1_fold_7.py b/src/ptbench/config/data/tbx11k/v1_fold_7.py similarity index 67% rename from src/ptbench/data/tbx11k/v1_fold_7.py rename to src/ptbench/config/data/tbx11k/v1_fold_7.py index 3d80b71e3819efc253c14a6b74e3e78e6c4c510d..09886b940800e5f6eb7a33e442f068b08c834822 100644 --- a/src/ptbench/data/tbx11k/v1_fold_7.py +++ b/src/ptbench/config/data/tbx11k/v1_fold_7.py @@ -6,9 +6,10 @@ cases). Database reference: [TBX11K-2020]_ -See :py:class:`.tbx11k.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbx11k.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbx11k.datamodule import DataModule datamodule = DataModule("v1-fold-7.json") diff --git a/src/ptbench/data/tbx11k/v1_fold_8.py b/src/ptbench/config/data/tbx11k/v1_fold_8.py similarity index 67% rename from src/ptbench/data/tbx11k/v1_fold_8.py rename to src/ptbench/config/data/tbx11k/v1_fold_8.py index f8e45fe19f82da0c162ab717bfa343cb2860b1ce..5fd2dd23acbc6c3c30e397c650a7da262c1317da 100644 --- a/src/ptbench/data/tbx11k/v1_fold_8.py +++ b/src/ptbench/config/data/tbx11k/v1_fold_8.py @@ -6,9 +6,10 @@ cases). Database reference: [TBX11K-2020]_ -See :py:class:`.tbx11k.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbx11k.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbx11k.datamodule import DataModule datamodule = DataModule("v1-fold-8.json") diff --git a/src/ptbench/data/tbx11k/v1_fold_9.py b/src/ptbench/config/data/tbx11k/v1_fold_9.py similarity index 67% rename from src/ptbench/data/tbx11k/v1_fold_9.py rename to src/ptbench/config/data/tbx11k/v1_fold_9.py index 0d3943548e8088c3e92aa5d16acf5774e786bce3..440f724f694569cd76dbfa2b2ecba9c51723c322 100644 --- a/src/ptbench/data/tbx11k/v1_fold_9.py +++ b/src/ptbench/config/data/tbx11k/v1_fold_9.py @@ -6,9 +6,10 @@ cases). Database reference: [TBX11K-2020]_ -See :py:class:`.tbx11k.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbx11k.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbx11k.datamodule import DataModule datamodule = DataModule("v1-fold-9.json") diff --git a/src/ptbench/data/tbx11k/v1_healthy_vs_atb.py b/src/ptbench/config/data/tbx11k/v1_healthy_vs_atb.py similarity index 81% rename from src/ptbench/data/tbx11k/v1_healthy_vs_atb.py rename to src/ptbench/config/data/tbx11k/v1_healthy_vs_atb.py index 0845f03b6213f4d2b01f79744c4e15a28ca78b09..785b6bfbcfe63089a2492658a632f16791c1c40f 100644 --- a/src/ptbench/data/tbx11k/v1_healthy_vs_atb.py +++ b/src/ptbench/config/data/tbx11k/v1_healthy_vs_atb.py @@ -27,9 +27,10 @@ Split v1 contains healthy subjects against active TB cases (total samples = - Active TB only: 157 - Total: 957 -See :py:class:`.tbx11k.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbx11k.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbx11k.datamodule import DataModule datamodule = DataModule("v1-healthy-vs-atb.json") diff --git a/src/ptbench/data/tbx11k/v2-fold-0.json b/src/ptbench/config/data/tbx11k/v2-fold-0.json similarity index 100% rename from src/ptbench/data/tbx11k/v2-fold-0.json rename to src/ptbench/config/data/tbx11k/v2-fold-0.json diff --git a/src/ptbench/data/tbx11k/v2-fold-1.json b/src/ptbench/config/data/tbx11k/v2-fold-1.json similarity index 100% rename from src/ptbench/data/tbx11k/v2-fold-1.json rename to src/ptbench/config/data/tbx11k/v2-fold-1.json diff --git a/src/ptbench/data/tbx11k/v2-fold-2.json b/src/ptbench/config/data/tbx11k/v2-fold-2.json similarity index 100% rename from src/ptbench/data/tbx11k/v2-fold-2.json rename to src/ptbench/config/data/tbx11k/v2-fold-2.json diff --git a/src/ptbench/data/tbx11k/v2-fold-3.json b/src/ptbench/config/data/tbx11k/v2-fold-3.json similarity index 100% rename from src/ptbench/data/tbx11k/v2-fold-3.json rename to src/ptbench/config/data/tbx11k/v2-fold-3.json diff --git a/src/ptbench/data/tbx11k/v2-fold-4.json b/src/ptbench/config/data/tbx11k/v2-fold-4.json similarity index 100% rename from src/ptbench/data/tbx11k/v2-fold-4.json rename to src/ptbench/config/data/tbx11k/v2-fold-4.json diff --git a/src/ptbench/data/tbx11k/v2-fold-5.json b/src/ptbench/config/data/tbx11k/v2-fold-5.json similarity index 100% rename from src/ptbench/data/tbx11k/v2-fold-5.json rename to src/ptbench/config/data/tbx11k/v2-fold-5.json diff --git a/src/ptbench/data/tbx11k/v2-fold-6.json b/src/ptbench/config/data/tbx11k/v2-fold-6.json similarity index 100% rename from src/ptbench/data/tbx11k/v2-fold-6.json rename to src/ptbench/config/data/tbx11k/v2-fold-6.json diff --git a/src/ptbench/data/tbx11k/v2-fold-7.json b/src/ptbench/config/data/tbx11k/v2-fold-7.json similarity index 100% rename from src/ptbench/data/tbx11k/v2-fold-7.json rename to src/ptbench/config/data/tbx11k/v2-fold-7.json diff --git a/src/ptbench/data/tbx11k/v2-fold-8.json b/src/ptbench/config/data/tbx11k/v2-fold-8.json similarity index 100% rename from src/ptbench/data/tbx11k/v2-fold-8.json rename to src/ptbench/config/data/tbx11k/v2-fold-8.json diff --git a/src/ptbench/data/tbx11k/v2-fold-9.json b/src/ptbench/config/data/tbx11k/v2-fold-9.json similarity index 100% rename from src/ptbench/data/tbx11k/v2-fold-9.json rename to src/ptbench/config/data/tbx11k/v2-fold-9.json diff --git a/src/ptbench/data/tbx11k/v2-others-vs-atb.json b/src/ptbench/config/data/tbx11k/v2-others-vs-atb.json similarity index 100% rename from src/ptbench/data/tbx11k/v2-others-vs-atb.json rename to src/ptbench/config/data/tbx11k/v2-others-vs-atb.json diff --git a/src/ptbench/data/tbx11k/v2_fold_0.py b/src/ptbench/config/data/tbx11k/v2_fold_0.py similarity index 68% rename from src/ptbench/data/tbx11k/v2_fold_0.py rename to src/ptbench/config/data/tbx11k/v2_fold_0.py index 8ccb73edb8863ccf973a9bb4d2e7a06c8802d694..c713c4799c01dbb92e388d0e3eb49fcf635d0bdc 100644 --- a/src/ptbench/data/tbx11k/v2_fold_0.py +++ b/src/ptbench/config/data/tbx11k/v2_fold_0.py @@ -6,9 +6,10 @@ TB vs. active TB cases). Database reference: [TBX11K-2020]_ -See :py:class:`.tbx11k.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbx11k.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbx11k.datamodule import DataModule datamodule = DataModule("v2-fold-0.json") diff --git a/src/ptbench/data/tbx11k/v2_fold_1.py b/src/ptbench/config/data/tbx11k/v2_fold_1.py similarity index 68% rename from src/ptbench/data/tbx11k/v2_fold_1.py rename to src/ptbench/config/data/tbx11k/v2_fold_1.py index 9e1c3acaa7fff7f9a6c79ae9d376b23e1ad0a72d..10b3b183366f572f1445eaa54bd213f4317189f6 100644 --- a/src/ptbench/data/tbx11k/v2_fold_1.py +++ b/src/ptbench/config/data/tbx11k/v2_fold_1.py @@ -6,9 +6,10 @@ TB vs. active TB cases). Database reference: [TBX11K-2020]_ -See :py:class:`.tbx11k.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbx11k.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbx11k.datamodule import DataModule datamodule = DataModule("v2-fold-1.json") diff --git a/src/ptbench/data/tbx11k/v2_fold_2.py b/src/ptbench/config/data/tbx11k/v2_fold_2.py similarity index 68% rename from src/ptbench/data/tbx11k/v2_fold_2.py rename to src/ptbench/config/data/tbx11k/v2_fold_2.py index 24a00ece5a48e3a4b4cc0d782f2d634a3fbc9892..f7fd10a680dd849dccd9bc5d9c76475d57190eff 100644 --- a/src/ptbench/data/tbx11k/v2_fold_2.py +++ b/src/ptbench/config/data/tbx11k/v2_fold_2.py @@ -6,9 +6,10 @@ TB vs. active TB cases). Database reference: [TBX11K-2020]_ -See :py:class:`.tbx11k.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbx11k.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbx11k.datamodule import DataModule datamodule = DataModule("v2-fold-2.json") diff --git a/src/ptbench/data/tbx11k/v2_fold_3.py b/src/ptbench/config/data/tbx11k/v2_fold_3.py similarity index 68% rename from src/ptbench/data/tbx11k/v2_fold_3.py rename to src/ptbench/config/data/tbx11k/v2_fold_3.py index 9da2630d877af73283060965808bf78ae5e49114..b744251d208e72b1dd60e0b14faf9eecdcf9c7de 100644 --- a/src/ptbench/data/tbx11k/v2_fold_3.py +++ b/src/ptbench/config/data/tbx11k/v2_fold_3.py @@ -6,9 +6,10 @@ TB vs. active TB cases). Database reference: [TBX11K-2020]_ -See :py:class:`.tbx11k.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbx11k.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbx11k.datamodule import DataModule datamodule = DataModule("v2-fold-3.json") diff --git a/src/ptbench/data/tbx11k/v2_fold_4.py b/src/ptbench/config/data/tbx11k/v2_fold_4.py similarity index 68% rename from src/ptbench/data/tbx11k/v2_fold_4.py rename to src/ptbench/config/data/tbx11k/v2_fold_4.py index 0555b567c6590aa9e8f492a627eaaab3ecf3b88f..17215495e6f94c2fe9013e7d9363bb1f807f51d8 100644 --- a/src/ptbench/data/tbx11k/v2_fold_4.py +++ b/src/ptbench/config/data/tbx11k/v2_fold_4.py @@ -6,9 +6,10 @@ TB vs. active TB cases). Database reference: [TBX11K-2020]_ -See :py:class:`.tbx11k.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbx11k.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbx11k.datamodule import DataModule datamodule = DataModule("v2-fold-4.json") diff --git a/src/ptbench/data/tbx11k/v2_fold_5.py b/src/ptbench/config/data/tbx11k/v2_fold_5.py similarity index 68% rename from src/ptbench/data/tbx11k/v2_fold_5.py rename to src/ptbench/config/data/tbx11k/v2_fold_5.py index 1fddcc2fe1299e73f6abc15156a3acca03b8ad71..41a5ba43aeadc4e38dc5fb77aa837f4d5874fabc 100644 --- a/src/ptbench/data/tbx11k/v2_fold_5.py +++ b/src/ptbench/config/data/tbx11k/v2_fold_5.py @@ -6,9 +6,10 @@ TB vs. active TB cases). Database reference: [TBX11K-2020]_ -See :py:class:`.tbx11k.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbx11k.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbx11k.datamodule import DataModule datamodule = DataModule("v2-fold-5.json") diff --git a/src/ptbench/data/tbx11k/v2_fold_6.py b/src/ptbench/config/data/tbx11k/v2_fold_6.py similarity index 68% rename from src/ptbench/data/tbx11k/v2_fold_6.py rename to src/ptbench/config/data/tbx11k/v2_fold_6.py index d9085af141544d1027c58b48384f5cdff55a525b..0f82163ddba31cc4bf756891ffbe7339cefb77f7 100644 --- a/src/ptbench/data/tbx11k/v2_fold_6.py +++ b/src/ptbench/config/data/tbx11k/v2_fold_6.py @@ -6,9 +6,10 @@ TB vs. active TB cases). Database reference: [TBX11K-2020]_ -See :py:class:`.tbx11k.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbx11k.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbx11k.datamodule import DataModule datamodule = DataModule("v2-fold-6.json") diff --git a/src/ptbench/data/tbx11k/v2_fold_7.py b/src/ptbench/config/data/tbx11k/v2_fold_7.py similarity index 68% rename from src/ptbench/data/tbx11k/v2_fold_7.py rename to src/ptbench/config/data/tbx11k/v2_fold_7.py index b324e129e500e0881709e1f60490289b8372c04c..6f3d958bdf32435e7ca7ec21b2b7652eb0c3c5e3 100644 --- a/src/ptbench/data/tbx11k/v2_fold_7.py +++ b/src/ptbench/config/data/tbx11k/v2_fold_7.py @@ -6,9 +6,10 @@ TB vs. active TB cases). Database reference: [TBX11K-2020]_ -See :py:class:`.tbx11k.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbx11k.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbx11k.datamodule import DataModule datamodule = DataModule("v2-fold-7.json") diff --git a/src/ptbench/data/tbx11k/v2_fold_8.py b/src/ptbench/config/data/tbx11k/v2_fold_8.py similarity index 68% rename from src/ptbench/data/tbx11k/v2_fold_8.py rename to src/ptbench/config/data/tbx11k/v2_fold_8.py index 31ed229a195bcbbb759354f5a8c4bbbb2f23b0df..3b10a65298d41e83aa0c0228ab88e50e563daf07 100644 --- a/src/ptbench/data/tbx11k/v2_fold_8.py +++ b/src/ptbench/config/data/tbx11k/v2_fold_8.py @@ -6,9 +6,10 @@ TB vs. active TB cases). Database reference: [TBX11K-2020]_ -See :py:class:`.tbx11k.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbx11k.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbx11k.datamodule import DataModule datamodule = DataModule("v2-fold-8.json") diff --git a/src/ptbench/data/tbx11k/v2_fold_9.py b/src/ptbench/config/data/tbx11k/v2_fold_9.py similarity index 68% rename from src/ptbench/data/tbx11k/v2_fold_9.py rename to src/ptbench/config/data/tbx11k/v2_fold_9.py index 74db9a28df0db04c72bd59b745309d757dc6163d..8692230521407db7e0deb204d274d023221503b0 100644 --- a/src/ptbench/data/tbx11k/v2_fold_9.py +++ b/src/ptbench/config/data/tbx11k/v2_fold_9.py @@ -6,9 +6,10 @@ TB vs. active TB cases). Database reference: [TBX11K-2020]_ -See :py:class:`.tbx11k.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbx11k.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbx11k.datamodule import DataModule datamodule = DataModule("v2-fold-9.json") diff --git a/src/ptbench/data/tbx11k/v2_others_vs_atb.py b/src/ptbench/config/data/tbx11k/v2_others_vs_atb.py similarity index 83% rename from src/ptbench/data/tbx11k/v2_others_vs_atb.py rename to src/ptbench/config/data/tbx11k/v2_others_vs_atb.py index b5f78019c2e97346af95eaf38eed745a6ac3d583..a5e8c480995360bbb04b3da486047cb852b4dd37 100644 --- a/src/ptbench/data/tbx11k/v2_others_vs_atb.py +++ b/src/ptbench/config/data/tbx11k/v2_others_vs_atb.py @@ -27,9 +27,10 @@ active TB cases (total samples = 8369): - Active TB only: 157 - Total: 1793 -See :py:class:`.tbx11k.datamodule.DataModule` for technical details. +See :py:class:`ptbench.config.data.tbx11k.datamodule.DataModule` for technical +details. """ -from .datamodule import DataModule +from ptbench.config.data.tbx11k.datamodule import DataModule datamodule = DataModule("v2-others-vs-atb.json") diff --git a/src/ptbench/config/models/__init__.py b/src/ptbench/config/models/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/ptbench/models/config/alexnet.py b/src/ptbench/config/models/alexnet.py similarity index 90% rename from src/ptbench/models/config/alexnet.py rename to src/ptbench/config/models/alexnet.py index 9adcfec8dfb437ec2fc7b211da1e477ddc3b4fd1..fce6ba645f002038705c83e7674f5faebfad133f 100644 --- a/src/ptbench/models/config/alexnet.py +++ b/src/ptbench/config/models/alexnet.py @@ -4,7 +4,7 @@ """AlexNet_, to be trained from scratch. This configuration contains a version of AlexNet_ (c.f. `TorchVision's -page <alexnet_pytorch_>`), modified for a variable number of outputs +page <alexnet-pytorch_>`_), modified for a variable number of outputs (defaults to 1). """ diff --git a/src/ptbench/models/config/alexnet_pretrained.py b/src/ptbench/config/models/alexnet_pretrained.py similarity index 100% rename from src/ptbench/models/config/alexnet_pretrained.py rename to src/ptbench/config/models/alexnet_pretrained.py diff --git a/src/ptbench/models/config/densenet.py b/src/ptbench/config/models/densenet.py similarity index 100% rename from src/ptbench/models/config/densenet.py rename to src/ptbench/config/models/densenet.py diff --git a/src/ptbench/models/config/densenet_pretrained.py b/src/ptbench/config/models/densenet_pretrained.py similarity index 100% rename from src/ptbench/models/config/densenet_pretrained.py rename to src/ptbench/config/models/densenet_pretrained.py diff --git a/src/ptbench/models/config/densenet_rs.py b/src/ptbench/config/models/densenet_rs.py similarity index 100% rename from src/ptbench/models/config/densenet_rs.py rename to src/ptbench/config/models/densenet_rs.py diff --git a/src/ptbench/models/config/logistic_regression.py b/src/ptbench/config/models/logistic_regression.py similarity index 100% rename from src/ptbench/models/config/logistic_regression.py rename to src/ptbench/config/models/logistic_regression.py diff --git a/src/ptbench/models/config/mlp.py b/src/ptbench/config/models/mlp.py similarity index 100% rename from src/ptbench/models/config/mlp.py rename to src/ptbench/config/models/mlp.py diff --git a/src/ptbench/models/config/pasa.py b/src/ptbench/config/models/pasa.py similarity index 100% rename from src/ptbench/models/config/pasa.py rename to src/ptbench/config/models/pasa.py diff --git a/tests/test_cli.py b/tests/test_cli.py index 888794b4d1fe5cae20f01f524de726d090224e41..04fa19e41dc8119cb8db75930fe4ade72bc2abd2 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -62,8 +62,8 @@ def test_config_list(): runner = CliRunner() result = runner.invoke(list) _assert_exit_0(result) - assert "module: ptbench.data" in result.output - assert "module: ptbench.models.config" in result.output + assert "module: ptbench.config.data" in result.output + assert "module: ptbench.config.models" in result.output @pytest.mark.skip(reason="Test need to be updated") @@ -72,8 +72,8 @@ def test_config_list_v(): result = CliRunner().invoke(list, ["--verbose"]) _assert_exit_0(result) - assert "module: ptbench.data" in result.output - assert "module: ptbench.models.config" in result.output + assert "module: ptbench.config.data" in result.output + assert "module: ptbench.config.models" in result.output def test_config_describe_help(): diff --git a/tests/test_hivtb.py b/tests/test_hivtb.py index eb6513f0046d70a7846e310a7e47a837c7222d8e..1311981205cb44aa11d157f4f3b0fde1a4f3629a 100644 --- a/tests/test_hivtb.py +++ b/tests/test_hivtb.py @@ -33,7 +33,7 @@ def id_function(val): def test_protocol_consistency( database_checkers, split: str, lenghts: dict[str, int] ): - from ptbench.data.hivtb.datamodule import make_split + from ptbench.config.data.hivtb.datamodule import make_split database_checkers.check_split( make_split(f"{split}.json"), @@ -69,7 +69,7 @@ def test_protocol_consistency( ) def test_loading(database_checkers, name: str, dataset: str): datamodule = importlib.import_module( - f".{name}", "ptbench.data.hivtb" + f".{name}", "ptbench.config.data.hivtb" ).datamodule datamodule.model_transforms = [] # should be done before setup() diff --git a/tests/test_indian.py b/tests/test_indian.py index de428b161aa775b8dc69678b65fcb87c7da2d50f..e86b56f6e3b847cc4751435e8947264ae571e868 100644 --- a/tests/test_indian.py +++ b/tests/test_indian.py @@ -37,7 +37,7 @@ def id_function(val): def test_protocol_consistency( database_checkers, split: str, lenghts: dict[str, int] ): - from ptbench.data.indian.datamodule import make_split + from ptbench.config.data.indian.datamodule import make_split database_checkers.check_split( make_split(f"{split}.json"), @@ -74,7 +74,7 @@ def test_protocol_consistency( ) def test_loading(database_checkers, name: str, dataset: str): datamodule = importlib.import_module( - f".{name}", "ptbench.data.indian" + f".{name}", "ptbench.config.data.indian" ).datamodule datamodule.model_transforms = [] # should be done before setup() diff --git a/tests/test_montgomery.py b/tests/test_montgomery.py index 973350aa1d8f166f4fbd943d81cffe4de7a25fe9..1e8227d33e68f8f112e910af9a9a5ec7fbb273bd 100644 --- a/tests/test_montgomery.py +++ b/tests/test_montgomery.py @@ -34,7 +34,7 @@ def id_function(val): def test_protocol_consistency( database_checkers, split: str, lenghts: dict[str, int] ): - from ptbench.data.montgomery.datamodule import make_split + from ptbench.config.data.montgomery.datamodule import make_split database_checkers.check_split( make_split(f"{split}.json"), @@ -71,7 +71,7 @@ def test_protocol_consistency( ) def test_loading(database_checkers, name: str, dataset: str): datamodule = importlib.import_module( - f".{name}", "ptbench.data.montgomery" + f".{name}", "ptbench.config.data.montgomery" ).datamodule datamodule.model_transforms = [] # should be done before setup() diff --git a/tests/test_montgomery_shenzhen.py b/tests/test_montgomery_shenzhen.py index 4618e25f420b7bc812fc17ceed97197e1420696f..9af425a57873314e85861e62195dc7c13b4b94a1 100644 --- a/tests/test_montgomery_shenzhen.py +++ b/tests/test_montgomery_shenzhen.py @@ -26,23 +26,23 @@ import pytest ) def test_split_consistency(name: str): montgomery = importlib.import_module( - f".{name}", "ptbench.data.montgomery" + f".{name}", "ptbench.config.data.montgomery" ).datamodule shenzhen = importlib.import_module( - f".{name}", "ptbench.data.shenzhen" + f".{name}", "ptbench.config.data.shenzhen" ).datamodule combined = importlib.import_module( - f".{name}", "ptbench.data.montgomery_shenzhen" + f".{name}", "ptbench.config.data.montgomery_shenzhen" ).datamodule MontgomeryLoader = importlib.import_module( - ".datamodule", "ptbench.data.montgomery" + ".datamodule", "ptbench.config.data.montgomery" ).RawDataLoader ShenzhenLoader = importlib.import_module( - ".datamodule", "ptbench.data.shenzhen" + ".datamodule", "ptbench.config.data.shenzhen" ).RawDataLoader for split in ("train", "validation", "test"): diff --git a/tests/test_montgomery_shenzhen_indian.py b/tests/test_montgomery_shenzhen_indian.py index 7ff4985bd816fea4c29fd65405788493a50db367..b3c7f5f511ad82e2c279d4dbd5a0cb585f6fa4d8 100644 --- a/tests/test_montgomery_shenzhen_indian.py +++ b/tests/test_montgomery_shenzhen_indian.py @@ -26,31 +26,31 @@ import pytest ) def test_split_consistency(name: str): montgomery = importlib.import_module( - f".{name}", "ptbench.data.montgomery" + f".{name}", "ptbench.config.data.montgomery" ).datamodule shenzhen = importlib.import_module( - f".{name}", "ptbench.data.shenzhen" + f".{name}", "ptbench.config.data.shenzhen" ).datamodule indian = importlib.import_module( - f".{name}", "ptbench.data.indian" + f".{name}", "ptbench.config.data.indian" ).datamodule combined = importlib.import_module( - f".{name}", "ptbench.data.montgomery_shenzhen_indian" + f".{name}", "ptbench.config.data.montgomery_shenzhen_indian" ).datamodule MontgomeryLoader = importlib.import_module( - ".datamodule", "ptbench.data.montgomery" + ".datamodule", "ptbench.config.data.montgomery" ).RawDataLoader ShenzhenLoader = importlib.import_module( - ".datamodule", "ptbench.data.shenzhen" + ".datamodule", "ptbench.config.data.shenzhen" ).RawDataLoader IndianLoader = importlib.import_module( - ".datamodule", "ptbench.data.indian" + ".datamodule", "ptbench.config.data.indian" ).RawDataLoader for split in ("train", "validation", "test"): diff --git a/tests/test_montgomery_shenzhen_indian_padchest.py b/tests/test_montgomery_shenzhen_indian_padchest.py index bb1f7be4bfc0cc2779eccca0f16a72c338691043..95b59bf14344502ae57240af195a3a898df7a5ec 100644 --- a/tests/test_montgomery_shenzhen_indian_padchest.py +++ b/tests/test_montgomery_shenzhen_indian_padchest.py @@ -16,39 +16,39 @@ import pytest ) def test_split_consistency(name: str, padchest_name: str): montgomery = importlib.import_module( - f".{name}", "ptbench.data.montgomery" + f".{name}", "ptbench.config.data.montgomery" ).datamodule shenzhen = importlib.import_module( - f".{name}", "ptbench.data.shenzhen" + f".{name}", "ptbench.config.data.shenzhen" ).datamodule indian = importlib.import_module( - f".{name}", "ptbench.data.indian" + f".{name}", "ptbench.config.data.indian" ).datamodule padchest = importlib.import_module( - f".{padchest_name}", "ptbench.data.padchest" + f".{padchest_name}", "ptbench.config.data.padchest" ).datamodule combined = importlib.import_module( - f".{name}", "ptbench.data.montgomery_shenzhen_indian_padchest" + f".{name}", "ptbench.config.data.montgomery_shenzhen_indian_padchest" ).datamodule MontgomeryLoader = importlib.import_module( - ".datamodule", "ptbench.data.montgomery" + ".datamodule", "ptbench.config.data.montgomery" ).RawDataLoader ShenzhenLoader = importlib.import_module( - ".datamodule", "ptbench.data.shenzhen" + ".datamodule", "ptbench.config.data.shenzhen" ).RawDataLoader IndianLoader = importlib.import_module( - ".datamodule", "ptbench.data.indian" + ".datamodule", "ptbench.config.data.indian" ).RawDataLoader PadChestLoader = importlib.import_module( - ".datamodule", "ptbench.data.padchest" + ".datamodule", "ptbench.config.data.padchest" ).RawDataLoader for split in ("train", "validation", "test"): diff --git a/tests/test_montgomery_shenzhen_indian_tbx11k.py b/tests/test_montgomery_shenzhen_indian_tbx11k.py index 6abde7b91e5936bdcb3b38d060792b153b325812..71956b49d95808112de052e68bea8859c33742a1 100644 --- a/tests/test_montgomery_shenzhen_indian_tbx11k.py +++ b/tests/test_montgomery_shenzhen_indian_tbx11k.py @@ -37,39 +37,40 @@ import pytest ) def test_split_consistency(name: str, tbx11k_name: str): montgomery = importlib.import_module( - f".{name}", "ptbench.data.montgomery" + f".{name}", "ptbench.config.data.montgomery" ).datamodule shenzhen = importlib.import_module( - f".{name}", "ptbench.data.shenzhen" + f".{name}", "ptbench.config.data.shenzhen" ).datamodule indian = importlib.import_module( - f".{name}", "ptbench.data.indian" + f".{name}", "ptbench.config.data.indian" ).datamodule tbx11k = importlib.import_module( - f".{tbx11k_name}", "ptbench.data.tbx11k" + f".{tbx11k_name}", "ptbench.config.data.tbx11k" ).datamodule combined = importlib.import_module( - f".{tbx11k_name}", "ptbench.data.montgomery_shenzhen_indian_tbx11k" + f".{tbx11k_name}", + "ptbench.config.data.montgomery_shenzhen_indian_tbx11k", ).datamodule MontgomeryLoader = importlib.import_module( - ".datamodule", "ptbench.data.montgomery" + ".datamodule", "ptbench.config.data.montgomery" ).RawDataLoader ShenzhenLoader = importlib.import_module( - ".datamodule", "ptbench.data.shenzhen" + ".datamodule", "ptbench.config.data.shenzhen" ).RawDataLoader IndianLoader = importlib.import_module( - ".datamodule", "ptbench.data.indian" + ".datamodule", "ptbench.config.data.indian" ).RawDataLoader TBX11kLoader = importlib.import_module( - ".datamodule", "ptbench.data.tbx11k" + ".datamodule", "ptbench.config.data.tbx11k" ).RawDataLoader for split in ("train", "validation", "test"): diff --git a/tests/test_nih_cxr14.py b/tests/test_nih_cxr14.py index 0870c99abf98a361d5dfa5048a166c2773563e91..83f4521284cfae963f1f2f5a5e286015d1f15d63 100644 --- a/tests/test_nih_cxr14.py +++ b/tests/test_nih_cxr14.py @@ -25,7 +25,7 @@ def id_function(val): def test_protocol_consistency( database_checkers, split: str, lenghts: dict[str, int] ): - from ptbench.data.nih_cxr14.datamodule import make_split + from ptbench.config.data.nih_cxr14.datamodule import make_split database_checkers.check_split( make_split(split), @@ -52,7 +52,7 @@ def test_protocol_consistency( ) def test_loading(database_checkers, name: str, dataset: str): datamodule = importlib.import_module( - f".{name}", "ptbench.data.nih_cxr14" + f".{name}", "ptbench.config.data.nih_cxr14" ).datamodule datamodule.model_transforms = [] # should be done before setup() diff --git a/tests/test_nih_cxr14_padchest.py b/tests/test_nih_cxr14_padchest.py index 4a9379e3b0ebb75d092f821b670baa9dfa9caa38..5c5bb5efccec30de0369cd24822d86de44e37978 100644 --- a/tests/test_nih_cxr14_padchest.py +++ b/tests/test_nih_cxr14_padchest.py @@ -16,23 +16,23 @@ import pytest ) def test_split_consistency(name: str, padchest_name: str, combined_name: str): nih_cxr14 = importlib.import_module( - f".{name}", "ptbench.data.nih_cxr14" + f".{name}", "ptbench.config.data.nih_cxr14" ).datamodule padchest = importlib.import_module( - f".{padchest_name}", "ptbench.data.padchest" + f".{padchest_name}", "ptbench.config.data.padchest" ).datamodule combined = importlib.import_module( - f".{combined_name}", "ptbench.data.nih_cxr14_padchest" + f".{combined_name}", "ptbench.config.data.nih_cxr14_padchest" ).datamodule CXR14Loader = importlib.import_module( - ".datamodule", "ptbench.data.nih_cxr14" + ".datamodule", "ptbench.config.data.nih_cxr14" ).RawDataLoader PadChestLoader = importlib.import_module( - ".datamodule", "ptbench.data.padchest" + ".datamodule", "ptbench.config.data.padchest" ).RawDataLoader for split in ("train", "validation", "test"): diff --git a/tests/test_padchest.py b/tests/test_padchest.py index 4dd91623b9b9b557ec22b598ea2ae5f49af162c2..54b42b6d3ac29bf582929d0180de84a56f6bd962 100644 --- a/tests/test_padchest.py +++ b/tests/test_padchest.py @@ -30,7 +30,7 @@ def id_function(val): def test_protocol_consistency( database_checkers, split: str, lenghts: dict[str, int] ): - from ptbench.data.padchest.datamodule import make_split + from ptbench.config.data.padchest.datamodule import make_split database_checkers.check_split( make_split(split), @@ -56,7 +56,7 @@ def test_protocol_consistency( ) def test_loading(database_checkers, name: str, dataset: str): datamodule = importlib.import_module( - f".{name}", "ptbench.data.padchest" + f".{name}", "ptbench.config.data.padchest" ).datamodule datamodule.model_transforms = [] # should be done before setup() diff --git a/tests/test_shenzhen.py b/tests/test_shenzhen.py index 12532cdee7e799cbe9cf39173e86bc02952f7f0b..b45ce0dbbdd26f7d55ec77d90e6c6a489dfa32c2 100644 --- a/tests/test_shenzhen.py +++ b/tests/test_shenzhen.py @@ -34,7 +34,7 @@ def id_function(val): def test_protocol_consistency( database_checkers, split: str, lenghts: dict[str, int] ): - from ptbench.data.shenzhen.datamodule import make_split + from ptbench.config.data.shenzhen.datamodule import make_split database_checkers.check_split( make_split(f"{split}.json"), @@ -71,7 +71,7 @@ def test_protocol_consistency( ) def test_loading(database_checkers, name: str, dataset: str): datamodule = importlib.import_module( - f".{name}", "ptbench.data.shenzhen" + f".{name}", "ptbench.config.data.shenzhen" ).datamodule datamodule.model_transforms = [] # should be done before setup() diff --git a/tests/test_summary.py b/tests/test_summary.py index de8c55c586ddd9c8fef224833a62c8df3aafd85d..0f3a76899833185642387c2fc0aded238441b1b3 100644 --- a/tests/test_summary.py +++ b/tests/test_summary.py @@ -4,7 +4,7 @@ import unittest -import ptbench.models.config.pasa as pasa_config +import ptbench.config.models.pasa as pasa_config from ptbench.utils.summary import summary diff --git a/tests/test_tbpoc.py b/tests/test_tbpoc.py index 7125efb195a058f36c785268c110c765f0890d65..cf3327d4afbea2aeb5b73deca4d5c27cd9305967 100644 --- a/tests/test_tbpoc.py +++ b/tests/test_tbpoc.py @@ -33,7 +33,7 @@ def id_function(val): def test_protocol_consistency( database_checkers, split: str, lenghts: dict[str, int] ): - from ptbench.data.tbpoc.datamodule import make_split + from ptbench.config.data.tbpoc.datamodule import make_split database_checkers.check_split( make_split(f"{split}.json"), @@ -72,7 +72,7 @@ def test_protocol_consistency( ) def test_loading(database_checkers, name: str, dataset: str): datamodule = importlib.import_module( - f".{name}", "ptbench.data.tbpoc" + f".{name}", "ptbench.config.data.tbpoc" ).datamodule datamodule.model_transforms = [] # should be done before setup() diff --git a/tests/test_tbx11k.py b/tests/test_tbx11k.py index 39c54174b6b8a21ca95cfd24adae217c569be78a..0c44a85a3e31d36f5764cd46acb6e0a987b9854f 100644 --- a/tests/test_tbx11k.py +++ b/tests/test_tbx11k.py @@ -137,7 +137,7 @@ def test_protocol_consistency( lenghts: dict[str, int], prefixes: typing.Sequence[str], ): - from ptbench.data.tbx11k.datamodule import make_split + from ptbench.config.data.tbx11k.datamodule import make_split database_checkers.check_split( make_split(f"{split}.json"), @@ -187,7 +187,7 @@ def test_loading( database_checkers, name: str, dataset: str, prefixes: typing.Sequence[str] ): datamodule = importlib.import_module( - f".{name}", "ptbench.data.tbx11k" + f".{name}", "ptbench.config.data.tbx11k" ).datamodule datamodule.model_transforms = [] # should be done before setup()