Skip to content

v2.0.0

Latest

Choose a tag to compare

@thibaultdvx thibaultdvx released this 10 Jun 20:56
· 14 commits to dev since this release
9122e6c

This release marks a major overhaul of ClinicaDL, refactoring the entire framework into a Python API.

ClinicaDL is no longer a command-line tool. The previous clinicadl ... CLI and all of its
sub-commands have been removed and replaced by a flexible Python API that lets users build and
customize deep learning pipelines from high-level building blocks. The goal is to make
the code more maintainable, scalable, and user-extensible, while preserving the core values of
ClinicaDL: reproducibility and data leakage prevention.

⚠️ Breaking change: Backward compatibility is broken with all 1.x versions. There is no automatic
migration path
. Existing CLI commands and scripts must be rewritten with the new Python API. See the
updated documentation and user guide to get started.

Highlights

  • Full rewrite of the core library, now object-oriented and modular.
  • CLI removed, replaced by Python API.
  • Native BIDS reading support.
  • Interoperability with popular deep learning tools for medical imaging: PyTorch, MONAI and TorchIO.
  • New MAPS architecture for managing model outputs and metadata.
  • Configuration-based design with dedicated pydantic config classes, serializable to/from JSON.
  • Extensive and updated documentation (API reference, user, installation and contribution guides).
  • Drops Python 3.9; supports Python 3.10–3.14.

Added

Core modules:

  • clinicadl.data: for building PyTorch objects able to manipulate neuroimaging data.
  • clinicadl.transforms: for transforming 3D neuroimaging data.
  • clinicadl.split: for splitting data into training, validation and test sets.
  • clinicadl.networks: for building neural networks.
  • clinicadl.losses: for creating a criterion to minimize during training.
  • clinicadl.optim: for configuring optimization during training.
  • clinicadl.models: for defining models, which encompass neural networks, loss functions, optimizers, and the training and evaluation logic.
  • clinicadl.train: for training and evaluating a model.
  • clinicadl.infer: for customizing the inference stage, such as performing post-processing or combining outputs from multiple neural networks.
  • clinicadl.metrics: for evaluating models.
  • clinicadl.callbacks: for monitoring and customizing the training and evaluation phases.
  • clinicadl.io: for manipulating the file directories produced and read by ClinicaDL.

Configuration classes:

  • Use of the serialisable pydantic dataclasses to save the configuration of
    an experiment.

Interoperability with other tools:

  • Compatible with TorchIO transforms.
  • Integration with MONAI metrics.
  • Compatible with native PyTorch neural networks, optimizers, LR schedulers
    and loss functions.

Documentation

  • Rewritten Sphinx documentation with a complete API reference and new user, installation, and contribution guides.

Testing

  • Unit-tests with a 99% test coverage.
  • Specific tests for GPU and multi-GPU setups.
  • Functional tests covering the API end to end.

Changed

  • Internal architecture redesigned around independent modules.
  • All training now goes through Trainer.

Removed

  • The entire command-line interface, including all clinicadl ... commands (e.g. clinicadl train, clinicadl random-search, clinicadl preprocessing run).
  • Synthetic data generation (will be restored in a future release).
  • Quality check for Clinica's pipelines (will probably be integrated to Clinica).
  • Random search.
  • Interpretation commands (will be restored in a future release).
  • Support for Python 3.9.

Breaking Changes

  • Backward compatibility is broken with all 1.x versions.