Title: Microtorch – a software package for self-supervised microstructure model fitting
Project Leader: Snigdha Sen
Description:
Traditionally, diffusion MRI microstructural models are fit using a non-linear least squared based curve fitting approach, but this computationally expensive and prone to estimation errors. Machine learning has emerged as a powerful technique for model fitting, but the majority of approaches use supervised learning, where biases may arise due to the distribution of the training data. Self-supervised learning circumvents this issue by removing the need for training data – this technique has been used widely to fit the IVIM model and also for VERDICT. In this project, we aim to develop a software package called Microtorch, which has some pre-existing functionality for self-supervised model fitting. We would like to expand the range of models and neural network architectures included and adhere to software development best practices by adding features such as documentation and unit tests.
Participant Requirements:
Both knowledge of microstructure modelling and Python programming would be useful but not essential. The codebase utilises PyTorch.
Some First Issues:
Adapt the command line statement to require fewer manual inputs
Write a function to merge the compartments of common multi-compartment models e.g. VERDICT will automatically call BallSphereAstrosticks
Work out how to incorporate a spherical convolution for models such as the standard model for white matter
Trial some different functions e.g. sigmoid to replace torch.clamp for parameter range boundaries
Unit tests and validation
Compare with dmipy, camino, MD-dMRI, dipy
Create small test dataset with a wide range of parameters, maybe using DiffSimGen
Trial using GPT to convert models (e.g. from dmipy) to PyTorch differentiable format
Title: Microtorch – a software package for self-supervised microstructure model fitting
Project Leader: Snigdha Sen
Description: Traditionally, diffusion MRI microstructural models are fit using a non-linear least squared based curve fitting approach, but this computationally expensive and prone to estimation errors. Machine learning has emerged as a powerful technique for model fitting, but the majority of approaches use supervised learning, where biases may arise due to the distribution of the training data. Self-supervised learning circumvents this issue by removing the need for training data – this technique has been used widely to fit the IVIM model and also for VERDICT. In this project, we aim to develop a software package called Microtorch, which has some pre-existing functionality for self-supervised model fitting. We would like to expand the range of models and neural network architectures included and adhere to software development best practices by adding features such as documentation and unit tests.
Participant Requirements: Both knowledge of microstructure modelling and Python programming would be useful but not essential. The codebase utilises PyTorch.
Some First Issues:
torch.clamp
for parameter range boundariesUseful Links: