Skip to content

Commit 3e07a6b

Browse files
committed
stage
Signed-off-by: neuronflow <florian.kofler@tum.de>
1 parent b58a0ac commit 3e07a6b

File tree

1 file changed

+40
-25
lines changed

1 file changed

+40
-25
lines changed

preprocessing/preprocessing_tutorial.ipynb

Lines changed: 40 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -57,15 +57,14 @@
5757
},
5858
{
5959
"cell_type": "code",
60-
"execution_count": 5,
60+
"execution_count": 1,
6161
"metadata": {},
6262
"outputs": [
6363
{
6464
"name": "stdout",
6565
"output_type": "stream",
6666
"text": [
67-
"Requirement already satisfied: brainles_preprocessing in /home/florian/miniconda3/envs/aurora_tutorial/lib/python3.10/site-packages (0.0.23)\n",
68-
"Requirement already satisfied: brats_toolkit in /home/florian/.local/lib/python3.10/site-packages (1.0.11)\n",
67+
"Requirement already satisfied: brainles_preprocessing in /home/florian/miniconda3/envs/aurora_tutorial/lib/python3.10/site-packages (0.0.24)\n",
6968
"Requirement already satisfied: auxiliary in /home/florian/miniconda3/envs/aurora_tutorial/lib/python3.10/site-packages (0.0.40)\n",
7069
"Requirement already satisfied: BrainLes-HD-BET>=0.0.5 in /home/florian/miniconda3/envs/aurora_tutorial/lib/python3.10/site-packages (from brainles_preprocessing) (0.0.5)\n",
7170
"Requirement already satisfied: nibabel<4.0.0,>=3.2.1 in /home/florian/miniconda3/envs/aurora_tutorial/lib/python3.10/site-packages (from brainles_preprocessing) (3.2.2)\n",
@@ -75,21 +74,13 @@
7574
"Requirement already satisfied: rich<14.0.0,>=13.6.0 in /home/florian/.local/lib/python3.10/site-packages (from brainles_preprocessing) (13.7.0)\n",
7675
"Requirement already satisfied: tqdm<5.0.0,>=4.64.1 in /home/florian/miniconda3/envs/aurora_tutorial/lib/python3.10/site-packages (from brainles_preprocessing) (4.66.1)\n",
7776
"Requirement already satisfied: ttictoc<0.6.0,>=0.5.6 in /home/florian/miniconda3/envs/aurora_tutorial/lib/python3.10/site-packages (from brainles_preprocessing) (0.5.6)\n",
78-
"Requirement already satisfied: SimpleITK<3.0.0,>=2.3.1 in /home/florian/.local/lib/python3.10/site-packages (from brats_toolkit) (2.3.1)\n",
79-
"Requirement already satisfied: python-engineio<4.0.0,>=3.14.2 in /home/florian/.local/lib/python3.10/site-packages (from brats_toolkit) (3.14.2)\n",
80-
"Requirement already satisfied: python-socketio<5.0.0,>=4.6.1 in /home/florian/.local/lib/python3.10/site-packages (from brats_toolkit) (4.6.1)\n",
81-
"Requirement already satisfied: requests<3.0.0,>=2.24.0 in /home/florian/miniconda3/envs/aurora_tutorial/lib/python3.10/site-packages (from brats_toolkit) (2.31.0)\n",
8277
"Requirement already satisfied: pillow>=10.0.0 in /home/florian/miniconda3/envs/aurora_tutorial/lib/python3.10/site-packages (from auxiliary) (10.2.0)\n",
8378
"Requirement already satisfied: tifffile>=2023.8.25 in /home/florian/.local/lib/python3.10/site-packages (from auxiliary) (2023.12.9)\n",
8479
"Requirement already satisfied: torch>=0.4.1 in /home/florian/.local/lib/python3.10/site-packages (from BrainLes-HD-BET>=0.0.5->brainles_preprocessing) (2.1.2)\n",
8580
"Requirement already satisfied: scikit-image>=0.21.0 in /home/florian/.local/lib/python3.10/site-packages (from BrainLes-HD-BET>=0.0.5->brainles_preprocessing) (0.22.0)\n",
81+
"Requirement already satisfied: SimpleITK>=2.2.1 in /home/florian/.local/lib/python3.10/site-packages (from BrainLes-HD-BET>=0.0.5->brainles_preprocessing) (2.3.1)\n",
8682
"Requirement already satisfied: packaging>=14.3 in /home/florian/.local/lib/python3.10/site-packages (from nibabel<4.0.0,>=3.2.1->brainles_preprocessing) (23.2)\n",
8783
"Requirement already satisfied: setuptools in /home/florian/miniconda3/envs/aurora_tutorial/lib/python3.10/site-packages (from nibabel<4.0.0,>=3.2.1->brainles_preprocessing) (68.2.2)\n",
88-
"Requirement already satisfied: six>=1.9.0 in /home/florian/miniconda3/envs/aurora_tutorial/lib/python3.10/site-packages (from python-engineio<4.0.0,>=3.14.2->brats_toolkit) (1.16.0)\n",
89-
"Requirement already satisfied: charset-normalizer<4,>=2 in /home/florian/miniconda3/envs/aurora_tutorial/lib/python3.10/site-packages (from requests<3.0.0,>=2.24.0->brats_toolkit) (3.3.2)\n",
90-
"Requirement already satisfied: idna<4,>=2.5 in /home/florian/miniconda3/envs/aurora_tutorial/lib/python3.10/site-packages (from requests<3.0.0,>=2.24.0->brats_toolkit) (3.6)\n",
91-
"Requirement already satisfied: urllib3<3,>=1.21.1 in /home/florian/miniconda3/envs/aurora_tutorial/lib/python3.10/site-packages (from requests<3.0.0,>=2.24.0->brats_toolkit) (2.2.0)\n",
92-
"Requirement already satisfied: certifi>=2017.4.17 in /home/florian/miniconda3/envs/aurora_tutorial/lib/python3.10/site-packages (from requests<3.0.0,>=2.24.0->brats_toolkit) (2024.2.2)\n",
9384
"Requirement already satisfied: markdown-it-py>=2.2.0 in /home/florian/.local/lib/python3.10/site-packages (from rich<14.0.0,>=13.6.0->brainles_preprocessing) (3.0.0)\n",
9485
"Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /home/florian/.local/lib/python3.10/site-packages (from rich<14.0.0,>=13.6.0->brainles_preprocessing) (2.17.2)\n",
9586
"Requirement already satisfied: mdurl~=0.1 in /home/florian/.local/lib/python3.10/site-packages (from markdown-it-py>=2.2.0->rich<14.0.0,>=13.6.0->brainles_preprocessing) (0.1.2)\n",
@@ -127,9 +118,7 @@
127118
"Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.3 in /home/florian/miniconda3/envs/aurora_tutorial/lib/python3.10/site-packages (from matplotlib) (3.1.1)\n",
128119
"Requirement already satisfied: python-dateutil>=2.1 in /home/florian/miniconda3/envs/aurora_tutorial/lib/python3.10/site-packages (from matplotlib) (2.8.2)\n",
129120
"Requirement already satisfied: six>=1.5 in /home/florian/miniconda3/envs/aurora_tutorial/lib/python3.10/site-packages (from python-dateutil>=2.1->matplotlib) (1.16.0)\n",
130-
"Note: you may need to restart the kernel to use updated packages.\n",
131-
"The autoreload extension is already loaded. To reload it, use:\n",
132-
" %reload_ext autoreload\n"
121+
"Note: you may need to restart the kernel to use updated packages.\n"
133122
]
134123
}
135124
],
@@ -153,7 +142,7 @@
153142
},
154143
{
155144
"cell_type": "code",
156-
"execution_count": 6,
145+
"execution_count": 2,
157146
"metadata": {},
158147
"outputs": [],
159148
"source": [
@@ -164,7 +153,7 @@
164153
},
165154
{
166155
"cell_type": "code",
167-
"execution_count": 7,
156+
"execution_count": 3,
168157
"metadata": {},
169158
"outputs": [],
170159
"source": [
@@ -174,7 +163,7 @@
174163
},
175164
{
176165
"cell_type": "code",
177-
"execution_count": 8,
166+
"execution_count": 4,
178167
"metadata": {},
179168
"outputs": [],
180169
"source": [
@@ -228,7 +217,7 @@
228217
},
229218
{
230219
"cell_type": "code",
231-
"execution_count": 15,
220+
"execution_count": 5,
232221
"metadata": {},
233222
"outputs": [],
234223
"source": [
@@ -240,11 +229,36 @@
240229
"\n",
241230
"from brainles_preprocessing.brain_extraction import HDBetExtractor\n",
242231
"from brainles_preprocessing.modality import Modality\n",
243-
"from brainles_preprocessing.preprocessor import Preprocessor, PreprocessorGPU\n",
232+
"from brainles_preprocessing.preprocessor import Preprocessor\n",
244233
"from brainles_preprocessing.registration import NiftyRegRegistrator\n",
245234
"\n",
246235
"\n",
247-
"def preprocess(inputDir):\n",
236+
"def preprocess_exam_in_brats_style(inputDir: str) -> None:\n",
237+
" \"\"\"\n",
238+
" Perform BRATS (Brain Tumor Segmentation) style preprocessing on MRI exam data.\n",
239+
"\n",
240+
" Args:\n",
241+
" inputDir (str): Path to the directory containing raw MRI files for an exam.\n",
242+
"\n",
243+
" Raises:\n",
244+
" Exception: If any error occurs during the preprocessing.\n",
245+
"\n",
246+
" Example:\n",
247+
" brat_style_preprocess_exam(\"/path/to/exam_directory\")\n",
248+
"\n",
249+
" This function preprocesses MRI exam data following the BRATS style, which includes the following steps:\n",
250+
" 1. Normalization using a percentile normalizer.\n",
251+
" 2. Registration and correction using NiftyReg.\n",
252+
" 3. Brain extraction using HDBet.\n",
253+
"\n",
254+
" The processed data is saved in a structured directory within the input directory.\n",
255+
"\n",
256+
" Args:\n",
257+
" inputDir (str): Path to the directory containing raw MRI files for an exam.\n",
258+
"\n",
259+
" Returns:\n",
260+
" None\n",
261+
" \"\"\"\n",
248262
" inputDir = turbopath(inputDir)\n",
249263
" try:\n",
250264
" print(\"*** start ***\")\n",
@@ -350,8 +364,9 @@
350364
" moving_modalities=moving_modalities,\n",
351365
" registrator=NiftyRegRegistrator(),\n",
352366
" brain_extractor=HDBetExtractor(),\n",
353-
" # temp_folder=\"tempo\",\n",
354-
" limit_cuda_visible_devices=\"1\",\n",
367+
" # optional: we provide a temporary directory as a sandbox for the preprocessin\n",
368+
" temp_folder=\"temporary_directory\",\n",
369+
" limit_cuda_visible_devices=\"0\",\n",
355370
" )\n",
356371
"\n",
357372
" preprocessor.run(\n",
@@ -379,7 +394,7 @@
379394
},
380395
{
381396
"cell_type": "code",
382-
"execution_count": 16,
397+
"execution_count": 6,
383398
"metadata": {},
384399
"outputs": [
385400
{
@@ -452,7 +467,7 @@
452467
"\n",
453468
"for exam in tqdm(exams):\n",
454469
" print(\"processing:\", exam)\n",
455-
" brat_style_preprocess_exam(exam)"
470+
" preprocess_exam_in_brats_style(exam)"
456471
]
457472
}
458473
],

0 commit comments

Comments
 (0)