BraTS 0.0.0.dev0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. brats/__init__.py +16 -0
  2. brats/constants.py +268 -0
  3. brats/core/__init__.py +0 -0
  4. brats/core/brats_algorithm.py +264 -0
  5. brats/core/docker.py +474 -0
  6. brats/core/inpainting_algorithms.py +155 -0
  7. brats/core/missing_mri_algorithms.py +185 -0
  8. brats/core/segmentation_algorithms.py +491 -0
  9. brats/core/singularity.py +268 -0
  10. brats/data/meta/adult_glioma_pre_and_post_treatment.yml +123 -0
  11. brats/data/meta/adult_glioma_pre_treatment.yml +64 -0
  12. brats/data/meta/africa.yml +185 -0
  13. brats/data/meta/goat.yml +84 -0
  14. brats/data/meta/inpainting.yml +163 -0
  15. brats/data/meta/meningioma.yml +96 -0
  16. brats/data/meta/meningioma_rt.yml +113 -0
  17. brats/data/meta/metastases.yml +94 -0
  18. brats/data/meta/missing_mri.yml +125 -0
  19. brats/data/meta/pediatric.yml +168 -0
  20. brats/data/parameters/brats23_africa_sparkunn.yml +63 -0
  21. brats/data/parameters/brats23_inpainting_domaso.yml +44 -0
  22. brats/data/parameters/brats23_missing_mri_onembyte.yml +5 -0
  23. brats/data/parameters/brats24_adult_glioma_mist.yml +6 -0
  24. brats/data/parameters/brats24_inpainting_smint.yml +37 -0
  25. brats/data/parameters/brats24_missing_mri_cgv.yml +72 -0
  26. brats/data/parameters/dummy.yml +0 -0
  27. brats/preprocessing.py +435 -0
  28. brats/utils/__init__.py +0 -0
  29. brats/utils/algorithm_config.py +102 -0
  30. brats/utils/data_handling.py +116 -0
  31. brats/utils/exceptions.py +25 -0
  32. brats/utils/logging.py +73 -0
  33. brats/utils/zenodo.py +217 -0
  34. brats-0.0.0.dev0.dist-info/METADATA +581 -0
  35. brats-0.0.0.dev0.dist-info/RECORD +37 -0
  36. brats-0.0.0.dev0.dist-info/WHEEL +4 -0
  37. brats-0.0.0.dev0.dist-info/licenses/LICENSE +201 -0
@@ -0,0 +1,268 @@
1
+ from brats.utils.algorithm_config import AlgorithmData
2
+ from pathlib import Path
3
+
4
+ import subprocess
5
+ from typing import Dict, List, Optional, Union
6
+ from brats.core.docker import (
7
+ _log_algorithm_info,
8
+ _sanity_check_output,
9
+ _get_additional_files_path,
10
+ _get_volume_mappings_mlcube,
11
+ _get_parameters_arg,
12
+ _handle_device_requests,
13
+ _get_volume_mappings_docker_only,
14
+ _ensure_image as _ensure_docker_image,
15
+ )
16
+ from brats.constants import PARAMETERS_DIR
17
+ from loguru import logger
18
+ import time
19
+ from spython.main import Client
20
+ import docker
21
+ import tempfile
22
+ import os
23
+
24
+ try:
25
+ docker_client = docker.from_env()
26
+ except docker.errors.DockerException as e:
27
+ logger.debug(
28
+ "Could not connect to the Docker daemon. Docker functionality is disabled, so the Singularity container's working directory may not be set correctly."
29
+ )
30
+ docker_client = None
31
+
32
+
33
+ def _build_command_args(
34
+ algorithm: AlgorithmData,
35
+ ) -> List[str]:
36
+ """Build the command arguments for the singularity container.
37
+
38
+ Args:
39
+ algorithm (AlgorithmData): The algorithm data
40
+
41
+ Returns:
42
+ List[str]: The command arguments
43
+ """
44
+
45
+ command_args = ["--data_path=/mlcube_io0", "--output_path=/mlcube_io2"]
46
+ if algorithm.additional_files is not None:
47
+ for i, param in enumerate(algorithm.additional_files.param_name):
48
+ additional_files_arg = f"--{param}=/mlcube_io1"
49
+ if algorithm.additional_files.param_path:
50
+ additional_files_arg += f"/{algorithm.additional_files.param_path[i]}"
51
+ command_args.append(additional_files_arg)
52
+
53
+ # Add parameters file arg if required
54
+ params_arg = _get_parameters_arg(algorithm=algorithm)
55
+ if params_arg:
56
+ command_args.append(params_arg.strip())
57
+
58
+ return command_args
59
+
60
+
61
+ def _ensure_image(image: str) -> str:
62
+ """
63
+ Ensure the Singularity image is present on the system. If not, pull it as a Sandbox.
64
+ This function checks if the specified Singularity image exists locally in the temporary directory.
65
+ If the image is not found, it pulls the image from Docker Hub, creates a Singularity Sandbox at the target location.
66
+
67
+ Args:
68
+ image (str): The Docker image to pull and convert into a Singularity Sandbox.
69
+
70
+ Returns:
71
+ str: The path to the Singularity image Sandbox.
72
+ """
73
+ persistent_dir = os.path.join(tempfile.gettempdir(), "brats_singularity_images")
74
+ os.makedirs(persistent_dir, exist_ok=True)
75
+ logger.debug(f"Persistent folder: {persistent_dir}")
76
+ temp_folder = Path(persistent_dir)
77
+ image_path = temp_folder.joinpath(image.replace(":", "_"))
78
+ if not image_path.exists():
79
+ image_path.parent.mkdir(parents=True, exist_ok=True)
80
+ logger.debug(
81
+ f"Pulling Singularity image {image} and creating a Sandbox at {image_path}"
82
+ )
83
+ subprocess.run(
84
+ [
85
+ "singularity",
86
+ "build",
87
+ "--sandbox",
88
+ "--fakeroot",
89
+ str(image_path),
90
+ f"docker://{image}",
91
+ ],
92
+ check=True,
93
+ )
94
+
95
+ return str(image_path)
96
+
97
+
98
+ def _convert_volume_mappings_to_singularity_format(
99
+ volume_mappings: Dict[Union[Path, str], Dict[str, str]],
100
+ ) -> List[str]:
101
+ """Convert volume mappings from Docker format to Singularity format.
102
+
103
+ Args:
104
+ volume_mappings (Dict[Path | str, Dict[str, str]]): The volume mappings in Docker format
105
+
106
+ Returns:
107
+ List[str]: The volume mappings in Singularity format
108
+ """
109
+ singularity_bindings = []
110
+ for host_path, val in volume_mappings.items():
111
+ container_path = val["bind"]
112
+ singularity_bindings.append(f"{str(host_path)}:{container_path}")
113
+ return singularity_bindings
114
+
115
+
116
+ def _get_docker_working_dir(image: str) -> Optional[Path]:
117
+ """
118
+ Retrieve the working directory configured in the Docker image.
119
+
120
+ This is required to properly initialize the working directory for the Singularity container,
121
+ ensuring that the container starts in the correct location as defined by the Docker image.
122
+
123
+ Args:
124
+ image (str): The Docker image name or ID.
125
+
126
+ Returns:
127
+ Path | None: The working directory specified in the Docker image configuration. None if docker client is not available.
128
+ """
129
+ if docker_client is None:
130
+ return None
131
+ try:
132
+ logger.debug(f"Inspecting image {image}")
133
+ image_obj = docker_client.images.get(image)
134
+ except docker.errors.ImageNotFound:
135
+ logger.debug(f"Image {image} not found locally.")
136
+ _ensure_docker_image(image)
137
+ image_obj = docker_client.images.get(image)
138
+ workdir = image_obj.attrs["Config"].get("WorkingDir", None)
139
+ logger.debug(f"Working directory: {workdir}")
140
+ if workdir is None:
141
+ return None
142
+ else:
143
+ return Path(workdir)
144
+
145
+
146
+ def run_container(
147
+ algorithm: AlgorithmData,
148
+ data_path: Path,
149
+ output_path: Path,
150
+ cuda_devices: str,
151
+ force_cpu: bool,
152
+ internal_external_name_map: Optional[Dict[str, str]] = None,
153
+ overlay_size: int = 1024,
154
+ ):
155
+ """Run a Singularity container for the provided algorithm.
156
+
157
+ Args:
158
+ algorithm (AlgorithmData): The data of the algorithm to run
159
+ data_path (Path | str): The path to the input data
160
+ output_path (Path | str): The path to save the output
161
+ cuda_devices (str): The CUDA devices to use
162
+ force_cpu (bool): Whether to force CPU execution
163
+ internal_external_name_map (Dict[str, str]): Dictionary mapping internal name (in standardized format) to external subject name provided by user (only used for batch inference)
164
+ overlay_size (int): The size of the overlay image in MB. Defaults to 1024.
165
+ """
166
+ if overlay_size <= 0:
167
+ raise ValueError("Overlay size must be greater than 0.")
168
+ _log_algorithm_info(algorithm=algorithm)
169
+ # ensure image is present, if not pull it
170
+ image = _ensure_image(image=algorithm.run_args.docker_image)
171
+
172
+ additional_files_path = _get_additional_files_path(algorithm)
173
+ logger.debug(f"Additional files path: {additional_files_path}")
174
+ # ensure output folder exists
175
+ output_path.mkdir(parents=True, exist_ok=True)
176
+
177
+ command_args = _build_command_args(algorithm=algorithm)
178
+ command_args_str = " ".join(command_args)
179
+ logger.debug(f"Command args: {command_args_str}")
180
+ if algorithm.meta.year <= 2024:
181
+ volume_mappings = _get_volume_mappings_mlcube(
182
+ data_path=data_path,
183
+ additional_files_path=additional_files_path,
184
+ output_path=output_path,
185
+ parameters_path=PARAMETERS_DIR,
186
+ )
187
+ args = ["infer", *command_args]
188
+ else:
189
+ volume_mappings = _get_volume_mappings_docker_only(
190
+ data_path=data_path,
191
+ output_path=output_path,
192
+ )
193
+ args = None
194
+
195
+ logger.debug(f"Volume mappings: {volume_mappings}")
196
+
197
+ # device setup
198
+ device_requests = _handle_device_requests(
199
+ algorithm=algorithm, cuda_devices=cuda_devices, force_cpu=force_cpu
200
+ )
201
+ logger.debug(f"GPU Device requests: {device_requests}")
202
+
203
+ # Run the container
204
+ logger.info("Starting inference")
205
+ start_time = time.time()
206
+
207
+ singularity_bindings = _convert_volume_mappings_to_singularity_format(
208
+ volume_mappings
209
+ )
210
+
211
+ options = []
212
+
213
+ if len(device_requests) > 0 and not force_cpu:
214
+ logger.info(f"Using CUDA devices: {cuda_devices}")
215
+ options.append("--nv") # Singularity uses --nv to enable GPU support
216
+
217
+ # TODO: The --fakeroot option may be required for certain algorithms that need root privileges inside the Singularity container.
218
+ docker_working_dir = _get_docker_working_dir(algorithm.run_args.docker_image)
219
+ if docker_working_dir is not None:
220
+ options.append("--cwd")
221
+ options.append(str(docker_working_dir))
222
+ else:
223
+ logger.warning(
224
+ "Docker working directory not found. Using default working directory."
225
+ )
226
+ overlay_path = Path(image).parent / (Path(image).name + "_overlay.img")
227
+ options.append("--overlay")
228
+ options.append(str(overlay_path))
229
+
230
+ overlay_created = False
231
+ if not overlay_path.exists():
232
+ subprocess.run(
233
+ [
234
+ "singularity",
235
+ "overlay",
236
+ "create",
237
+ "--size",
238
+ str(overlay_size),
239
+ str(overlay_path),
240
+ ],
241
+ check=True,
242
+ )
243
+ overlay_created = True
244
+ try:
245
+ executor = Client.run(
246
+ image,
247
+ options=options,
248
+ args=args,
249
+ stream=True,
250
+ bind=singularity_bindings,
251
+ )
252
+ container_output = []
253
+ for line in executor:
254
+ container_output.append(line)
255
+
256
+ _sanity_check_output(
257
+ data_path=data_path,
258
+ output_path=output_path,
259
+ container_output="\n".join(container_output),
260
+ internal_external_name_map=internal_external_name_map,
261
+ )
262
+ finally:
263
+ try:
264
+ if overlay_created:
265
+ overlay_path.unlink()
266
+ except FileNotFoundError:
267
+ pass
268
+ logger.info(f"Finished inference in {time.time() - start_time:.2f} seconds")
@@ -0,0 +1,123 @@
1
+ constants:
2
+ input_name_schema: &input_name_schema "BraTS-GLI-{id:05d}-000"
3
+ challenge: &challenge "Adult Glioma Segmentation (Pre & Post Treatment)"
4
+ challenge_manuscript:
5
+ 2025: &challenge_manuscript_2025 "https://arxiv.org/abs/2405.18368" # same as 2024
6
+ 2024: &challenge_manuscript_2024 "https://arxiv.org/abs/2405.18368"
7
+ years:
8
+ 2025: &year_2025 2025
9
+ 2024: &year_2024 2024
10
+ ranks:
11
+ 1st: &rank_1 1st
12
+ 2nd: &rank_2 2nd
13
+ 3rd: &rank_3 3rd
14
+
15
+
16
+ algorithms:
17
+
18
+ ##### 2025 #####
19
+ BraTS25_1:
20
+ meta:
21
+ authors: Ishika Jain, et al.
22
+ paper: N/A
23
+ challenge: *challenge
24
+ challenge_manuscript: *challenge_manuscript_2025
25
+ rank: *rank_1
26
+ year: *year_2025
27
+ run_args:
28
+ docker_image: brainles/brats25_gli_aia-bots:latest
29
+ input_name_schema: *input_name_schema
30
+ requires_root: true
31
+
32
+ BraTS25_2:
33
+ meta:
34
+ authors: Qu Lin, et al.
35
+ paper: N/A
36
+ challenge: *challenge
37
+ challenge_manuscript: *challenge_manuscript_2025
38
+ rank: *rank_2
39
+ year: *year_2025
40
+ run_args:
41
+ docker_image: brainles/brats25_gli_ecnu:latest
42
+ input_name_schema: *input_name_schema
43
+ cpu_compatible: true # ~ 7 min/ subject
44
+ requires_root: true
45
+
46
+ BraTS25_3A:
47
+ meta:
48
+ authors: Liwei Jin, et al.
49
+ paper: N/A
50
+ challenge: *challenge
51
+ challenge_manuscript: *challenge_manuscript_2025
52
+ rank: *rank_3
53
+ year: *year_2025
54
+ run_args:
55
+ docker_image: brainles/brats25_gli_jinlw:latest
56
+ input_name_schema: *input_name_schema
57
+ cpu_compatible: true # ~150min / subject
58
+
59
+ BraTS25_3B:
60
+ meta:
61
+ authors: Adrian Celaya, et al.
62
+ paper: N/A
63
+ challenge: *challenge
64
+ challenge_manuscript: *challenge_manuscript_2025
65
+ rank: *rank_3
66
+ year: *year_2025
67
+ run_args:
68
+ docker_image: brainles/brats25_gli_mist:latest
69
+ input_name_schema: *input_name_schema
70
+
71
+ ##### 2024 #####
72
+ BraTS24_1:
73
+ meta:
74
+ authors: André Ferreira, et al.
75
+ paper: N/A
76
+ challenge: *challenge
77
+ challenge_manuscript: *challenge_manuscript_2024
78
+ rank: *rank_1
79
+ year: *year_2024
80
+ run_args:
81
+ docker_image: brainles/brats24_adult_glioma_faking_it:latest
82
+ input_name_schema: *input_name_schema
83
+ requires_root: false
84
+ parameters_file: false
85
+ shm_size: "4gb"
86
+
87
+ BraTS24_2:
88
+ meta:
89
+ authors: Heejong Kim, et al.
90
+ paper: https://arxiv.org/abs/2409.08143
91
+ challenge: *challenge
92
+ challenge_manuscript: *challenge_manuscript_2024
93
+ rank: *rank_2
94
+ year: *year_2024
95
+ run_args:
96
+ docker_image: brainles/brats24_adult_glioma_kimbab:latest
97
+ input_name_schema: *input_name_schema
98
+ requires_root: false
99
+ parameters_file: false
100
+ shm_size: "2gb"
101
+ additional_files:
102
+ record_id: "14413387"
103
+ param_name: ["nnunet_env_path"]
104
+
105
+ BraTS24_3:
106
+ meta:
107
+ authors: Adrian Celaya
108
+ paper: N/A
109
+ challenge: *challenge
110
+ challenge_manuscript: *challenge_manuscript_2024
111
+ rank: *rank_3
112
+ year: *year_2024
113
+ run_args:
114
+ docker_image: brainles/brats24_adult_glioma_mist:latest
115
+ input_name_schema: *input_name_schema
116
+ requires_root: false
117
+ parameters_file: true
118
+ shm_size: "2gb"
119
+ cpu_compatible: true
120
+ additional_files:
121
+ record_id: "14411467"
122
+ param_name: ["mist_models", "mist_config", "mist_dataset"]
123
+ param_path: ["models", "config.json", "dataset.json"]
@@ -0,0 +1,64 @@
1
+ constants:
2
+ input_name_schema: &input_name_schema "BraTS-GLI-{id:05d}-000"
3
+ challenge: &challenge "Adult Glioma Segmentation (Pre Treatment)"
4
+ challenge_manuscript:
5
+ 2023: &challenge_manuscript_2023 "https://arxiv.org/abs/2107.02314"
6
+ years:
7
+ 2023: &year_2023 2023
8
+ ranks:
9
+ 1st: &rank_1 1st
10
+ 2nd: &rank_2 2nd
11
+ 3rd: &rank_3 3rd
12
+
13
+
14
+ algorithms:
15
+
16
+ ##### 2023 #####
17
+
18
+ BraTS23_1:
19
+ meta:
20
+ authors: André Ferreira, et al.
21
+ paper: https://doi.org/10.1007/978-3-031-76163-8_8
22
+ challenge: *challenge
23
+ challenge_manuscript: *challenge_manuscript_2023
24
+ rank: *rank_1
25
+ year: *year_2023
26
+ run_args:
27
+ docker_image: brainles/brats23_faking_it:latest
28
+ input_name_schema: *input_name_schema
29
+ requires_root: true
30
+ parameters_file: false
31
+ shm_size: "2gb"
32
+
33
+ BraTS23_2:
34
+ meta:
35
+ authors: Andriy Myronenko, et al.
36
+ paper: N/A
37
+ challenge: *challenge
38
+ challenge_manuscript: *challenge_manuscript_2023
39
+ rank: *rank_2
40
+ year: *year_2023
41
+ run_args:
42
+ docker_image: brainles/brats23_nvauto:latest
43
+ input_name_schema: *input_name_schema
44
+ requires_root: true
45
+ parameters_file: true
46
+ shm_size: "32gb"
47
+
48
+ BraTS23_3:
49
+ meta:
50
+ authors: Fadillah Adamsyah Maani, et al.
51
+ paper: https://doi.org/10.1007/978-3-031-76163-8_24
52
+ challenge: *challenge
53
+ challenge_manuscript: *challenge_manuscript_2023
54
+ rank: *rank_3
55
+ year: *year_2023
56
+ run_args:
57
+ docker_image: brainles/brats23_biomedmbz:latest
58
+ input_name_schema: *input_name_schema
59
+ requires_root: false
60
+ parameters_file: true
61
+ shm_size: "2gb"
62
+ additional_files:
63
+ record_id: "11573315"
64
+ param_name: ["checkpoint_dir"]
@@ -0,0 +1,185 @@
1
+ constants:
2
+ input_name_schema: &input_name_schema "BraTS-SSA-{id:05d}-000"
3
+ challenge: &challenge "BraTS-Africa Segmentation"
4
+ dataset_manuscript: &dataset_manuscript "https://pubs.rsna.org/doi/full/10.1148/ryai.240528"
5
+ challenge_manuscript:
6
+ 2025: &challenge_manuscript_2025 "https://arxiv.org/abs/2305.19369" # remained the same as 2023 & 2024
7
+ 2024: &challenge_manuscript_2024 "https://arxiv.org/abs/2305.19369" # remained the same as 2023
8
+ 2023: &challenge_manuscript_2023 "https://arxiv.org/abs/2305.19369"
9
+ years:
10
+ 2025: &year_2025 2025
11
+ 2024: &year_2024 2024
12
+ 2023: &year_2023 2023
13
+ ranks:
14
+ 1st: &rank_1 1st
15
+ 2nd: &rank_2 2nd
16
+ 3rd: &rank_3 3rd
17
+
18
+
19
+ algorithms:
20
+
21
+ ##### 2025 #####
22
+
23
+ BraTS25_1:
24
+ meta:
25
+ authors: Claudia Takyi Ankomah, et al.
26
+ paper: N/A
27
+ challenge: *challenge
28
+ challenge_manuscript: *challenge_manuscript_2025
29
+ rank: *rank_1
30
+ year: *year_2025
31
+ dataset_manuscript: *dataset_manuscript
32
+ run_args:
33
+ docker_image: brainles/brats25_ssa_spark_neuro:latest
34
+ input_name_schema: *input_name_schema
35
+ requires_root: true
36
+ cpu_compatible: true # ~2 hours on CPU
37
+
38
+ BraTS25_2A:
39
+ meta:
40
+ authors: William Boonzaier, et al.
41
+ paper: N/A
42
+ challenge: *challenge
43
+ challenge_manuscript: *challenge_manuscript_2025
44
+ rank: *rank_2
45
+ year: *year_2025
46
+ dataset_manuscript: *dataset_manuscript
47
+ run_args:
48
+ docker_image: brainles/brats25_ssa_spark2025_team_sparkans:latest
49
+ input_name_schema: *input_name_schema
50
+ requires_root: true
51
+
52
+ BraTS25_2B:
53
+ meta:
54
+ authors: Mohtady Barakat, et al.
55
+ paper: N/A
56
+ challenge: *challenge
57
+ challenge_manuscript: *challenge_manuscript_2025
58
+ rank: *rank_2
59
+ year: *year_2025
60
+ dataset_manuscript: *dataset_manuscript
61
+ run_args:
62
+ docker_image: brainles/brats25_ssa_spark2025_team_wakanda:latest
63
+ input_name_schema: *input_name_schema
64
+ requires_root: true
65
+
66
+ BraTS25_3:
67
+ meta:
68
+ authors: Ahmed Jaheen, et al.
69
+ paper: N/A
70
+ challenge: *challenge
71
+ challenge_manuscript: *challenge_manuscript_2025
72
+ rank: *rank_3
73
+ year: *year_2025
74
+ dataset_manuscript: *dataset_manuscript
75
+ run_args:
76
+ docker_image: brainles/brats25_ssa_biomedia_mbzuai:latest
77
+ input_name_schema: *input_name_schema
78
+ requires_root: true
79
+
80
+ ##### 2024 #####
81
+
82
+ BraTS24_1:
83
+ meta:
84
+ authors: Abhijeet Parida, et al.
85
+ paper: https://arxiv.org/abs/2412.04111
86
+ challenge: *challenge
87
+ challenge_manuscript: *challenge_manuscript_2024
88
+ rank: *rank_1
89
+ year: *year_2024
90
+ dataset_manuscript: *dataset_manuscript
91
+ run_args:
92
+ docker_image: brainles/brats24_africa_cnmc_pmi:latest
93
+ input_name_schema: *input_name_schema
94
+ requires_root: false
95
+ parameters_file: false
96
+ shm_size: "2gb"
97
+
98
+ BraTS24_2:
99
+ meta:
100
+ authors: Yanguang Zhao, et al.
101
+ paper: https://arxiv.org/abs/2410.18698
102
+ challenge: *challenge
103
+ challenge_manuscript: *challenge_manuscript_2024
104
+ rank: *rank_2
105
+ year: *year_2024
106
+ dataset_manuscript: *dataset_manuscript
107
+ run_args:
108
+ docker_image: brainles/brats24_africa_cuhk_rpai
109
+ input_name_schema: *input_name_schema
110
+ requires_root: false
111
+ parameters_file: true
112
+ shm_size: "2gb"
113
+ cpu_compatible: true
114
+
115
+ BraTS24_3:
116
+ meta:
117
+ authors: Sarim Hashmi, et al.
118
+ paper: https://arxiv.org/abs/2411.15872
119
+ challenge: *challenge
120
+ challenge_manuscript: *challenge_manuscript_2024
121
+ rank: *rank_3
122
+ year: *year_2024
123
+ dataset_manuscript: *dataset_manuscript
124
+ run_args:
125
+ docker_image: brainles/brats24_africa_biomedia-mbzu
126
+ input_name_schema: *input_name_schema
127
+ requires_root: false
128
+ parameters_file: true
129
+ shm_size: "2gb"
130
+ additional_files:
131
+ record_id: "14414932"
132
+ param_name: ["checkpoint_dir"]
133
+
134
+ ##### 2023 #####
135
+
136
+ BraTS23_1:
137
+ meta:
138
+ authors: Andriy Myronenko, et al.
139
+ paper: N/A
140
+ challenge: *challenge
141
+ challenge_manuscript: *challenge_manuscript_2023
142
+ dataset_manuscript: *dataset_manuscript
143
+ rank: *rank_1
144
+ year: *year_2023
145
+ run_args:
146
+ docker_image: brainles/brats23_africa_nvauto:latest
147
+ input_name_schema: *input_name_schema
148
+ requires_root: true
149
+ parameters_file: true
150
+ shm_size: "32gb"
151
+
152
+ BraTS23_2:
153
+ meta:
154
+ authors: Alyssa R Amod, et al.
155
+ paper: https://doi.org/10.1007/978-3-031-76163-8_22
156
+ challenge: *challenge
157
+ challenge_manuscript: *challenge_manuscript_2023
158
+ dataset_manuscript: *dataset_manuscript
159
+ rank: *rank_2
160
+ year: *year_2023
161
+ run_args:
162
+ docker_image: brainles/brats23_africa_sparkunn:latest
163
+ input_name_schema: *input_name_schema
164
+ requires_root: false
165
+ parameters_file: true
166
+ additional_files:
167
+ record_id: "13373752"
168
+ param_name: ["ckpts_path"]
169
+
170
+ BraTS23_3:
171
+ meta:
172
+ authors: Ziyan Huang, et al.
173
+ paper: https://doi.org/10.1007/978-3-031-76163-8_13
174
+ challenge: *challenge
175
+ challenge_manuscript: *challenge_manuscript_2023
176
+ dataset_manuscript: *dataset_manuscript
177
+ rank: *rank_3
178
+ year: *year_2023
179
+ run_args:
180
+ docker_image: brainles/brats23_africa_blackbean:latest
181
+ input_name_schema: *input_name_schema
182
+ requires_root: true
183
+ parameters_file: true
184
+ cpu_compatible: true
185
+