diff --git a/README.md b/README.md index 7041b141..6bbad419 100644 --- a/README.md +++ b/README.md @@ -97,15 +97,21 @@ results = trainer.fit() ## 📚 Documentation -| Resource | Description | -|----------|-------------| -| [🚀 Getting Started](https://sonanceai.github.io/datamint-python-api/getting_started.html) | Step-by-step setup and basic usage | -| [📖 API Reference](https://sonanceai.github.io/datamint-python-api/client_api.html) | Complete API documentation | -| [🔥 PyTorch Integration](https://sonanceai.github.io/datamint-python-api/pytorch_integration.html) | ML workflow integration | -| [🧠 Trainer Guide](https://sonanceai.github.io/datamint-python-api/trainer_api.html) | Built-in trainers, trainer lifecycle, and custom model integration | -| [🛠️ Command Line Tools](https://sonanceai.github.io/datamint-python-api/command_line_tools.html) | Full reference for `datamint upload`, `datamint init`, and `datamint config` | -| [🔒 SSL Troubleshooting](https://sonanceai.github.io/datamint-python-api/ssl_troubleshooting.html) | Fixing `SSLCertVerificationError` | -| [📓 Notebooks](notebooks/) | Numbered, runnable tutorials. Start at `01_getting_started` and work through annotations, datasets, experiment tracking, deployment, and a full end-to-end example | +**Difficulty levels:** + +- ![Beginner](https://img.shields.io/badge/level-beginner-brightgreen) no ML knowledge needed +- ![Intermediate](https://img.shields.io/badge/level-intermediate-yellow)assumes SDK familiarity, introduces ML/dataset concepts +- ![Advanced](https://img.shields.io/badge/level-advanced-red) full training pipelines, custom models, 3D data, multi-step workflows. + +| Resource | Level | Description | +|----------|-------|-------------| +| [🚀 Getting Started](https://sonanceai.github.io/datamint-python-api/getting_started.html) | ![Beginner](https://img.shields.io/badge/level-beginner-brightgreen) | Step-by-step setup and basic usage | +| [📖 API Reference](https://sonanceai.github.io/datamint-python-api/client_api.html) | ![Intermediate](https://img.shields.io/badge/level-intermediate-yellow) | Complete API documentation | +| [🔥 PyTorch Integration](https://sonanceai.github.io/datamint-python-api/pytorch_integration.html) | ![Intermediate](https://img.shields.io/badge/level-intermediate-yellow) | ML workflow integration | +| [🧠 Trainer Guide](https://sonanceai.github.io/datamint-python-api/trainer_api.html) | ![Intermediate](https://img.shields.io/badge/level-intermediate-yellow) | Built-in trainers, trainer lifecycle, and custom model integration | +| [🛠️ Command Line Tools](https://sonanceai.github.io/datamint-python-api/command_line_tools.html) | ![Beginner](https://img.shields.io/badge/level-beginner-brightgreen) | Full reference for `datamint upload`, `datamint init`, and `datamint config` | +| [🔒 SSL Troubleshooting](https://sonanceai.github.io/datamint-python-api/ssl_troubleshooting.html) | — | Fixing `SSLCertVerificationError` | +| [📓 Notebooks](notebooks/) | ![Beginner](https://img.shields.io/badge/level-beginner-brightgreen) ![Intermediate](https://img.shields.io/badge/level-intermediate-yellow) ![Advanced](https://img.shields.io/badge/level-advanced-red) | Numbered, runnable tutorials. Start at `01_getting_started` and work through annotations, datasets, experiment tracking, deployment, and a full end-to-end example | ## 🆘 Support diff --git a/docs/source/client_api.rst b/docs/source/client_api.rst index 5e39eefd..203369fa 100644 --- a/docs/source/client_api.rst +++ b/docs/source/client_api.rst @@ -2,6 +2,9 @@ Client Python API ================= + +:bdg-warning:`Intermediate` + This chapter describes how to use the |ApiClass| class in Python, to interact with the Datamint API. Before continuing, you may want to check the :ref:`setup-api-key` section to easily set up your API key, if you haven't done so yet. diff --git a/docs/source/command_line_tools.rst b/docs/source/command_line_tools.rst index bd6e1e5f..7fe53d92 100644 --- a/docs/source/command_line_tools.rst +++ b/docs/source/command_line_tools.rst @@ -3,6 +3,8 @@ Command-line tools ================== +:bdg-success:`Beginner` + All Datamint command-line tools are invoked through a single ``datamint`` command, followed by a subcommand and its arguments — the same ``tool ARGS`` pattern used by tools like ``docker``, ``git``, and ``pip``: diff --git a/docs/source/datamint_vs_raw_pytorch.rst b/docs/source/datamint_vs_raw_pytorch.rst index f4df0363..a0d26347 100644 --- a/docs/source/datamint_vs_raw_pytorch.rst +++ b/docs/source/datamint_vs_raw_pytorch.rst @@ -1,6 +1,8 @@ Datamint vs Raw PyTorch ======================= +:bdg-danger:`Advanced` + This page shows how Datamint removes boilerplate from common medical-imaging training workflows by comparing side-by-side a raw PyTorch / Lightning setup with the equivalent Datamint code. All examples target **2-D semantic diff --git a/docs/source/getting_started.rst b/docs/source/getting_started.rst index f721aa72..eb866b28 100644 --- a/docs/source/getting_started.rst +++ b/docs/source/getting_started.rst @@ -1,6 +1,8 @@ Quick Start ========================================= +:bdg-success:`Beginner` + This guide will help you set up and start using the Datamint Python API for your medical imaging projects. Installation diff --git a/docs/source/index.rst b/docs/source/index.rst index 7149e5e6..a25b6781 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -21,9 +21,82 @@ Datamint - `Datamint Platform `_ - `GitHub `_ +**Difficulty levels:** + +- :bdg-success:`Beginner` no ML knowledge needed +- :bdg-warning:`Intermediate` assumes SDK familiarity, introduces ML/dataset concepts +- :bdg-danger:`Advanced` full training pipelines, custom models, 3D data, multi-step workflows + +User Guide +---------- + +.. grid:: 1 2 3 3 + :gutter: 2 + + .. grid-item-card:: Quick Start + :link: getting_started + :link-type: doc + + :bdg-success:`Beginner` + + Install the package, configure your API key, and make your first calls. + + .. grid-item-card:: Command-line tools + :link: command_line_tools + :link-type: doc + + :bdg-success:`Beginner` + + Run the unified ``datamint `` CLI for uploads, config, training, and inference. + + .. grid-item-card:: Client Python API + :link: client_api + :link-type: doc + + :bdg-warning:`Intermediate` + + Use the ``Api`` class directly for full control over resources, projects, and annotations. + + .. grid-item-card:: PyTorch & Lightning Integration + :link: pytorch_integration + :link-type: doc + + :bdg-warning:`Intermediate` + + Plug Datamint datasets into PyTorch and Lightning training loops. + + .. grid-item-card:: Training your Model + :link: trainer_api + :link-type: doc + + :bdg-warning:`Intermediate` + + Train models with built-in one-line trainers -- no training loop to write. + + .. grid-item-card:: Tutorials + :link: tutorials + :link-type: doc + + Browse runnable example notebooks, from getting started through full end-to-end pipelines. + + .. grid-item-card:: Datamint vs Raw PyTorch + :link: datamint_vs_raw_pytorch + :link-type: doc + + :bdg-danger:`Advanced` + + Side-by-side comparison of raw PyTorch/Lightning code vs the Datamint equivalent. + + .. grid-item-card:: SSL Troubleshooting + :link: ssl_troubleshooting + :link-type: doc + + Fix ``SSLCertVerificationError`` issues when connecting to the API. + .. toctree:: :maxdepth: 2 :caption: User Guide + :hidden: getting_started command_line_tools @@ -34,49 +107,23 @@ Datamint datamint_vs_raw_pytorch ssl_troubleshooting -.. toctree:: - :maxdepth: 1 - :caption: Python Modules Reference - - datamint.apihandler - datamint.api.base_classes - datamint.dataset - datamint.entities - datamint.lightning_api - datamint.mlflow_api - datamint.exceptions - Quick Start ----------- -Install the package: - .. code-block:: bash pip install datamint - -Configure your API access: - -.. code-block:: bash - datamint config -Start using the API: - .. code-block:: python from datamint import Api - # Initialize API handler api = Api() all_projects = api.projects.get_all() - # Upload a resource - api.resources.upload_resource("/path/to/image.dcm") - - # Load a dataset for training - from datamint.dataset import ImageDataset - dataset = ImageDataset(project="my-project") +See the full :doc:`Quick Start guide ` for installing in a virtual +environment, configuring your API key, and scaffolding a project with ``datamint init``. Architecture Overview --------------------- @@ -246,6 +293,18 @@ Community & Support `GitHub Issues `_ +.. toctree:: + :maxdepth: 1 + :caption: Python Modules Reference + + datamint.apihandler + datamint.api.base_classes + datamint.dataset + datamint.entities + datamint.lightning_api + datamint.mlflow_api + datamint.exceptions + Indices and Tables ------------------ diff --git a/docs/source/pytorch_integration.rst b/docs/source/pytorch_integration.rst index 24b7c2f2..ed26e814 100644 --- a/docs/source/pytorch_integration.rst +++ b/docs/source/pytorch_integration.rst @@ -4,6 +4,8 @@ PyTorch & Lightning Integration =============================== +:bdg-warning:`Intermediate` + The Datamint Python API provides seamless integration with PyTorch and PyTorch Lightning, enabling efficient machine learning workflows for medical imaging tasks. Overview diff --git a/docs/source/trainer_api.rst b/docs/source/trainer_api.rst index 5171e5d2..adf565ae 100644 --- a/docs/source/trainer_api.rst +++ b/docs/source/trainer_api.rst @@ -4,6 +4,8 @@ Training your Model ==================== +:bdg-warning:`Intermediate` + The trainer layer in ``datamint.lightning`` packages the usual Lightning workflow into a small number of task-focused entry points. A trainer can: diff --git a/notebooks/01_getting_started/README.md b/notebooks/01_getting_started/README.md index 6a5639fc..fbec5ac8 100644 --- a/notebooks/01_getting_started/README.md +++ b/notebooks/01_getting_started/README.md @@ -2,7 +2,7 @@ Start here. These notebooks cover the basics of connecting to Datamint and working with your first project. -| Notebook | Description | -|---|---| -| [01_upload_data](01_upload_data.ipynb) | Upload images, DICOM series, and NIfTI volumes to a project | -| [02_explore_data](02_explore_data.ipynb) | List resources, inspect metadata, and browse annotations | +| Notebook | Level | Description | +|---|---|---| +| [01_upload_data](01_upload_data.ipynb) | ![Beginner](https://img.shields.io/badge/level-beginner-brightgreen) | Upload images, DICOM series, and NIfTI volumes to a project | +| [02_explore_data](02_explore_data.ipynb) | ![Beginner](https://img.shields.io/badge/level-beginner-brightgreen) | List resources, inspect metadata, and browse annotations | diff --git a/notebooks/02_annotations/README.md b/notebooks/02_annotations/README.md index 4f743ae8..6836371f 100644 --- a/notebooks/02_annotations/README.md +++ b/notebooks/02_annotations/README.md @@ -2,7 +2,7 @@ How to create, upload, and work with annotations programmatically. -| Notebook | Description | -|---|---| -| [01_upload_annotations](01_upload_annotations.ipynb) | Upload segmentation masks and image-level labels via the API | -| [02_geometry_annotations](02_geometry_annotations.ipynb) | Create and read bounding boxes, points, lines, and polygons | +| Notebook | Level | Description | +|---|---|---| +| [01_upload_annotations](01_upload_annotations.ipynb) | ![Beginner](https://img.shields.io/badge/level-beginner-brightgreen) | Upload segmentation masks and image-level labels via the API | +| [02_geometry_annotations](02_geometry_annotations.ipynb) | ![Beginner](https://img.shields.io/badge/level-beginner-brightgreen) | Create and read bounding boxes, points, lines, and polygons | diff --git a/notebooks/03_datasets/README.md b/notebooks/03_datasets/README.md index a410d7f0..eecc1ce6 100644 --- a/notebooks/03_datasets/README.md +++ b/notebooks/03_datasets/README.md @@ -2,9 +2,9 @@ PyTorch dataset classes, data splits, and volume loading. -| Notebook | Description | -|---|---| -| [01_project_scoped_splits](01_project_scoped_splits.ipynb) | Create reproducible train/val/test splits and persist them to the server | -| [02_patient_wise_splits](02_patient_wise_splits.ipynb) | Patient-level splitting to prevent data leakage in multi-scan datasets | -| [03_build_dataset](03_build_dataset.ipynb) | Use `build_dataset` to auto-detect project type and get the right dataset class | -| [04_volume_dataset](04_volume_dataset.ipynb) | Load 3D volumes, slice along anatomical axes, and apply albumentations transforms | +| Notebook | Level | Description | +|---|---|---| +| [01_project_scoped_splits](01_project_scoped_splits.ipynb) | ![Intermediate](https://img.shields.io/badge/level-intermediate-yellow) | Create reproducible train/val/test splits and persist them to the server | +| [02_patient_wise_splits](02_patient_wise_splits.ipynb) | ![Intermediate](https://img.shields.io/badge/level-intermediate-yellow) | Patient-level splitting to prevent data leakage in multi-scan datasets | +| [03_build_dataset](03_build_dataset.ipynb) | ![Intermediate](https://img.shields.io/badge/level-intermediate-yellow) | Use `build_dataset` to auto-detect project type and get the right dataset class | +| [04_volume_dataset](04_volume_dataset.ipynb) | ![Advanced](https://img.shields.io/badge/level-advanced-red) | Load 3D volumes, slice along anatomical axes, and apply albumentations transforms | diff --git a/notebooks/04_experiment_tracking/README.md b/notebooks/04_experiment_tracking/README.md index ff980110..25e52cab 100644 --- a/notebooks/04_experiment_tracking/README.md +++ b/notebooks/04_experiment_tracking/README.md @@ -2,6 +2,6 @@ Logging experiments with MLflow through the Datamint backend. -| Notebook | Description | -|---|---| -| [01_mlflow_manual_logging](01_mlflow_manual_logging.ipynb) | Log metrics, parameters, and model artifacts manually using `mlflow.set_tracking_uri("datamint://...")` | +| Notebook | Level | Description | +|---|---|---| +| [01_mlflow_manual_logging](01_mlflow_manual_logging.ipynb) | ![Intermediate](https://img.shields.io/badge/level-intermediate-yellow) | Log metrics, parameters, and model artifacts manually using `mlflow.set_tracking_uri("datamint://...")` | diff --git a/notebooks/05_deployment/README.md b/notebooks/05_deployment/README.md index bbc27579..1d3034bc 100644 --- a/notebooks/05_deployment/README.md +++ b/notebooks/05_deployment/README.md @@ -2,9 +2,9 @@ Deploying models as Docker images for remote inference. -| Notebook | Description | -|---|---| -| [01_deploy_registered_model](01_deploy_registered_model.ipynb) | Start, monitor, and cancel deployment jobs for a model already registered in Datamint | -| [02_deploy_external_model](02_deploy_external_model.ipynb) | Wrap a model trained outside Datamint in a `DatamintModel` adapter and deploy it | -| [03_validate_model](03_validate_model.ipynb) | Validate a model before promoting it to production | -| [04_predict_images_volumes_and_videos](04_predict_images_volumes_and_videos.ipynb) | Run a 2D model on images, 3D volumes, and video frames using automatic prediction bridges | +| Notebook | Level | Description | +|---|---|---| +| [01_deploy_registered_model](01_deploy_registered_model.ipynb) | ![Intermediate](https://img.shields.io/badge/level-intermediate-yellow) | Start, monitor, and cancel deployment jobs for a model already registered in Datamint | +| [02_deploy_external_model](02_deploy_external_model.ipynb) | ![Advanced](https://img.shields.io/badge/level-advanced-red) | Wrap a model trained outside Datamint in a `DatamintModel` adapter and deploy it | +| [03_validate_model](03_validate_model.ipynb) | ![Intermediate](https://img.shields.io/badge/level-intermediate-yellow) | Validate a model before promoting it to production | +| [04_predict_images_volumes_and_videos](04_predict_images_volumes_and_videos.ipynb) | ![Advanced](https://img.shields.io/badge/level-advanced-red) | Run a 2D model on images, 3D volumes, and video frames using automatic prediction bridges | diff --git a/notebooks/06_end_to_end/README.md b/notebooks/06_end_to_end/README.md index cf2acedf..f6e9130e 100644 --- a/notebooks/06_end_to_end/README.md +++ b/notebooks/06_end_to_end/README.md @@ -6,17 +6,17 @@ Complete pipelines from raw data to a deployed model. Each notebook covers data Models that operate on individual 2D images or 2D slices extracted from volumes. -| Notebook | Task | Dataset | Architecture | -|---|---|---|---| -| [01_fracatlas_classification](slice_based/01_fracatlas_classification.ipynb) | Binary classification | FracAtlas (X-rays) | ResNet | -| [02_busi_segmentation](slice_based/02_busi_segmentation.ipynb) | Semantic segmentation | BUSI (ultrasound) | TransUNet | -| [03_bccd_detection](slice_based/03_bccd_detection.ipynb) | Object detection | BCCD (blood cells) | YOLOX | +| Notebook | Level | Task | Dataset | Architecture | +|---|---|---|---|---| +| [01_fracatlas_classification](slice_based/01_fracatlas_classification.ipynb) | ![Advanced](https://img.shields.io/badge/level-advanced-red) | Binary classification | FracAtlas (X-rays) | ResNet | +| [02_busi_segmentation](slice_based/02_busi_segmentation.ipynb) | ![Advanced](https://img.shields.io/badge/level-advanced-red) | Semantic segmentation | BUSI (ultrasound) | TransUNet | +| [03_bccd_detection](slice_based/03_bccd_detection.ipynb) | ![Advanced](https://img.shields.io/badge/level-advanced-red) | Object detection | BCCD (blood cells) | YOLOX | ## Full 3D Models that consume entire volumetric inputs without slicing. -| Notebook | Task | Dataset | Architecture | -|---|---|---|---| -| [01_synapse_unetrpp](full_3d/01_synapse_unetrpp.ipynb) | Multi-organ segmentation | Synapse CT | UNETR++ | -| [02_synapse_nnunet](full_3d/02_synapse_nnunet.ipynb) | Multi-organ segmentation | Synapse CT | nnU-Net | +| Notebook | Level | Task | Dataset | Architecture | +|---|---|---|---|---| +| [01_synapse_unetrpp](full_3d/01_synapse_unetrpp.ipynb) | ![Advanced](https://img.shields.io/badge/level-advanced-red) | Multi-organ segmentation | Synapse CT | UNETR++ | +| [02_synapse_nnunet](full_3d/02_synapse_nnunet.ipynb) | ![Advanced](https://img.shields.io/badge/level-advanced-red) | Multi-organ segmentation | Synapse CT | nnU-Net | diff --git a/notebooks/06_end_to_end/full_3d/README.md b/notebooks/06_end_to_end/full_3d/README.md index 15cbf3a2..16c272e3 100644 --- a/notebooks/06_end_to_end/full_3d/README.md +++ b/notebooks/06_end_to_end/full_3d/README.md @@ -2,7 +2,7 @@ End-to-end pipelines for models that process entire volumetric inputs. -| Notebook | Task | Dataset | -|---|---|---| -| [01_synapse_unetrpp](01_synapse_unetrpp.ipynb) | Multi-organ segmentation | Synapse CT | -| [02_synapse_nnunet](02_synapse_nnunet.ipynb) | Multi-organ segmentation | Synapse CT | +| Notebook | Level | Task | Dataset | +|---|---|---|---| +| [01_synapse_unetrpp](01_synapse_unetrpp.ipynb) | ![Advanced](https://img.shields.io/badge/level-advanced-red) | Multi-organ segmentation | Synapse CT | +| [02_synapse_nnunet](02_synapse_nnunet.ipynb) | ![Advanced](https://img.shields.io/badge/level-advanced-red) | Multi-organ segmentation | Synapse CT | diff --git a/notebooks/06_end_to_end/slice_based/README.md b/notebooks/06_end_to_end/slice_based/README.md index a78456ab..706a0f4c 100644 --- a/notebooks/06_end_to_end/slice_based/README.md +++ b/notebooks/06_end_to_end/slice_based/README.md @@ -2,8 +2,8 @@ End-to-end pipelines for 2D models — classification, segmentation, and detection. -| Notebook | Task | Dataset | -|---|---|---| -| [01_fracatlas_classification](01_fracatlas_classification.ipynb) | Fracture classification | FracAtlas | -| [02_busi_segmentation](02_busi_segmentation.ipynb) | Breast lesion segmentation | BUSI | -| [03_bccd_detection](03_bccd_detection.ipynb) | Blood cell detection | BCCD | +| Notebook | Level | Task | Dataset | +|---|---|---|---| +| [01_fracatlas_classification](01_fracatlas_classification.ipynb) | ![Advanced](https://img.shields.io/badge/level-advanced-red) | Fracture classification | FracAtlas | +| [02_busi_segmentation](02_busi_segmentation.ipynb) | ![Advanced](https://img.shields.io/badge/level-advanced-red) | Breast lesion segmentation | BUSI | +| [03_bccd_detection](03_bccd_detection.ipynb) | ![Advanced](https://img.shields.io/badge/level-advanced-red) | Blood cell detection | BCCD | diff --git a/notebooks/README.md b/notebooks/README.md index b554c430..5ad9d56b 100644 --- a/notebooks/README.md +++ b/notebooks/README.md @@ -3,49 +3,55 @@ Tutorials and end-to-end examples for the Datamint. Folders are numbered in the recommended learning order. +**Difficulty levels:** + +- ![Beginner](https://img.shields.io/badge/level-beginner-brightgreen) no ML knowledge needed +- ![Intermediate](https://img.shields.io/badge/level-intermediate-yellow) assumes SDK familiarity, introduces ML/dataset concepts +- ![Advanced](https://img.shields.io/badge/level-advanced-red) full training pipelines, custom models, 3D data, multi-step workflows + ## Structure -| Folder | What you'll learn | -|---|---| -| [01_getting_started](01_getting_started/) | Upload data and explore a project | -| [02_annotations](02_annotations/) | Upload and work with annotations | -| [03_datasets](03_datasets/) | Build PyTorch datasets, splits, and volume loading | -| [04_experiment_tracking](04_experiment_tracking/) | Log metrics and artifacts with MLflow | -| [05_deployment](05_deployment/) | Deploy registered and external models | -| [06_end_to_end](06_end_to_end/) | Full pipelines from data to deployed model | +| Folder | Level | What you'll learn | +|---|---|---| +| [01_getting_started](01_getting_started/) | ![Beginner](https://img.shields.io/badge/level-beginner-brightgreen) | Upload data and explore a project | +| [02_annotations](02_annotations/) | ![Beginner](https://img.shields.io/badge/level-beginner-brightgreen) | Upload and work with annotations | +| [03_datasets](03_datasets/) | ![Intermediate](https://img.shields.io/badge/level-intermediate-yellow) | Build PyTorch datasets, splits, and volume loading | +| [04_experiment_tracking](04_experiment_tracking/) | ![Intermediate](https://img.shields.io/badge/level-intermediate-yellow) | Log metrics and artifacts with MLflow | +| [05_deployment](05_deployment/) | ![Intermediate](https://img.shields.io/badge/level-intermediate-yellow) | Deploy registered and external models | +| [06_end_to_end](06_end_to_end/) | ![Advanced](https://img.shields.io/badge/level-advanced-red) | Full pipelines from data to deployed model | ## Notebooks ### 01 — Getting Started -1. [`01_upload_data`](01_getting_started/01_upload_data.ipynb) — Upload images and volumes to a project -2. [`02_explore_data`](01_getting_started/02_explore_data.ipynb) — Browse resources, metadata, and annotations +1. [`01_upload_data`](01_getting_started/01_upload_data.ipynb) ![Beginner](https://img.shields.io/badge/level-beginner-brightgreen) — Upload images and volumes to a project +2. [`02_explore_data`](01_getting_started/02_explore_data.ipynb) ![Beginner](https://img.shields.io/badge/level-beginner-brightgreen) — Browse resources, metadata, and annotations ### 02 — Annotations -1. [`01_upload_annotations`](02_annotations/01_upload_annotations.ipynb) — Upload segmentation masks and labels -2. [`02_geometry_annotations`](02_annotations/02_geometry_annotations.ipynb) — Work with boxes, points, lines, and polygon annotations +1. [`01_upload_annotations`](02_annotations/01_upload_annotations.ipynb) ![Beginner](https://img.shields.io/badge/level-beginner-brightgreen) — Upload segmentation masks and labels +2. [`02_geometry_annotations`](02_annotations/02_geometry_annotations.ipynb) ![Beginner](https://img.shields.io/badge/level-beginner-brightgreen) — Work with boxes, points, lines, and polygon annotations ### 03 — Datasets -1. [`01_project_scoped_splits`](03_datasets/01_project_scoped_splits.ipynb) — Create and persist train/val/test splits on the server -2. [`02_patient_wise_splits`](03_datasets/02_patient_wise_splits.ipynb) — Avoid data leakage with patient-level splitting -3. [`03_build_dataset`](03_datasets/03_build_dataset.ipynb) — Auto-detect dataset type with `build_dataset` -4. [`04_volume_dataset`](03_datasets/04_volume_dataset.ipynb) — Load 3D volumes, slice into 2D, apply albumentations +1. [`01_project_scoped_splits`](03_datasets/01_project_scoped_splits.ipynb) ![Intermediate](https://img.shields.io/badge/level-intermediate-yellow) — Create and persist train/val/test splits on the server +2. [`02_patient_wise_splits`](03_datasets/02_patient_wise_splits.ipynb) ![Intermediate](https://img.shields.io/badge/level-intermediate-yellow) — Avoid data leakage with patient-level splitting +3. [`03_build_dataset`](03_datasets/03_build_dataset.ipynb) ![Intermediate](https://img.shields.io/badge/level-intermediate-yellow) — Auto-detect dataset type with `build_dataset` +4. [`04_volume_dataset`](03_datasets/04_volume_dataset.ipynb) ![Advanced](https://img.shields.io/badge/level-advanced-red) — Load 3D volumes, slice into 2D, apply albumentations ### 04 — Experiment Tracking -1. [`01_mlflow_manual_logging`](04_experiment_tracking/01_mlflow_manual_logging.ipynb) — Log metrics, parameters, and models manually with MLflow +1. [`01_mlflow_manual_logging`](04_experiment_tracking/01_mlflow_manual_logging.ipynb) ![Intermediate](https://img.shields.io/badge/level-intermediate-yellow) — Log metrics, parameters, and models manually with MLflow ### 05 — Deployment -1. [`01_deploy_registered_model`](05_deployment/01_deploy_registered_model.ipynb) — Deploy a model already registered in Datamint -2. [`02_deploy_external_model`](05_deployment/02_deploy_external_model.ipynb) — Wrap and deploy a model trained outside Datamint -3. [`03_validate_model`](05_deployment/03_validate_model.ipynb) — Validate a model before promoting it to production -4. [`04_predict_images_volumes_and_videos`](05_deployment/04_predict_images_volumes_and_videos.ipynb) — Run a 2D model on images, 3D volumes, and video frames using automatic prediction bridges +1. [`01_deploy_registered_model`](05_deployment/01_deploy_registered_model.ipynb) ![Intermediate](https://img.shields.io/badge/level-intermediate-yellow) — Deploy a model already registered in Datamint +2. [`02_deploy_external_model`](05_deployment/02_deploy_external_model.ipynb) ![Advanced](https://img.shields.io/badge/level-advanced-red) — Wrap and deploy a model trained outside Datamint +3. [`03_validate_model`](05_deployment/03_validate_model.ipynb) ![Intermediate](https://img.shields.io/badge/level-intermediate-yellow) — Validate a model before promoting it to production +4. [`04_predict_images_volumes_and_videos`](05_deployment/04_predict_images_volumes_and_videos.ipynb) ![Advanced](https://img.shields.io/badge/level-advanced-red) — Run a 2D model on images, 3D volumes, and video frames using automatic prediction bridges ### 06 — End-to-End Use Cases #### Slice-based (2D) -1. [`01_fracatlas_classification`](06_end_to_end/slice_based/01_fracatlas_classification.ipynb) — Binary fracture classification on X-rays (FracAtlas) -2. [`02_busi_segmentation`](06_end_to_end/slice_based/02_busi_segmentation.ipynb) — 2D breast ultrasound segmentation (BUSI) -3. [`03_bccd_detection`](06_end_to_end/slice_based/03_bccd_detection.ipynb) — Object detection on blood cell images (BCCD) with YOLOX +1. [`01_fracatlas_classification`](06_end_to_end/slice_based/01_fracatlas_classification.ipynb) ![Advanced](https://img.shields.io/badge/level-advanced-red) — Binary fracture classification on X-rays (FracAtlas) +2. [`02_busi_segmentation`](06_end_to_end/slice_based/02_busi_segmentation.ipynb) ![Advanced](https://img.shields.io/badge/level-advanced-red) — 2D breast ultrasound segmentation (BUSI) +3. [`03_bccd_detection`](06_end_to_end/slice_based/03_bccd_detection.ipynb) ![Advanced](https://img.shields.io/badge/level-advanced-red) — Object detection on blood cell images (BCCD) with YOLOX #### Full 3D -1. [`01_synapse_unetrpp`](06_end_to_end/full_3d/01_synapse_unetrpp.ipynb) — 3D multi-organ segmentation with UNETR++ (Synapse) -2. [`02_synapse_nnunet`](06_end_to_end/full_3d/02_synapse_nnunet.ipynb) — 3D multi-organ segmentation with nnU-Net (Synapse) +1. [`01_synapse_unetrpp`](06_end_to_end/full_3d/01_synapse_unetrpp.ipynb) ![Advanced](https://img.shields.io/badge/level-advanced-red) — 3D multi-organ segmentation with UNETR++ (Synapse) +2. [`02_synapse_nnunet`](06_end_to_end/full_3d/02_synapse_nnunet.ipynb) ![Advanced](https://img.shields.io/badge/level-advanced-red) — 3D multi-organ segmentation with nnU-Net (Synapse)