Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Analyzing Numerical Stability in Linear Registration #80

Open
1 of 2 tasks
yohanchatelain opened this issue Dec 7, 2023 · 1 comment
Open
1 of 2 tasks

Analyzing Numerical Stability in Linear Registration #80

yohanchatelain opened this issue Dec 7, 2023 · 1 comment

Comments

@yohanchatelain
Copy link

yohanchatelain commented Dec 7, 2023

Title

Analyzing Numerical Stability in Linear Registration

Leaders

Yohan Chatelain, Tristan Glatard, Mina Alizadeh, Ines Gonzalez Pepe

Collaborators

No response

Brainhack Global 2023 Event

Brainhack Montreal

Project Description

This project explores the numerical reliability of the FSL FLIRT linear registration tool.
We aim to investigate how computational errors can affect the accuracy of this alignment tool.

In computers, real numbers are stored with limited precision, leading to tiny inaccuracies known as rounding errors. While often negligible, these errors can accumulate and potentially affect the outcomes in delicate processes like linear registration in neuroimaging.
This project aims to understand and mitigate these errors to improve the reliability of medical imaging analysis.

To evaluate numerical stability, we will employ Monte Carlo Arithmetic (MCA). This technique, a form of stochastic arithmetic, is designed to simulate rounding errors stemming from the finite precision of numbers in computing by using random variables. Tools like Verificarlo, Verrou, and Fuzzy support MCA and are useful in adapting C, C++, FORTRAN, and Python codes for this purpose. Specifically, we'll use Fuzzy-libm, a modified version of libm, which introduces random noise into basic mathematical operations such as exp, log, cos, sin, etc.

Project 1: Testing Numerical Stability in FSL FLIRT

We aim to test FSL FLIRT's stability under varying conditions, including images, degrees of freedom, and optimization parameters. The goal is to understand how these variables impact FSL FLIRT's performance. To do so, we use the Fuzzy-libm tool on FLIRT, experimenting with a range of input parameters.

Project 2: Development Assistance for Simplified Algorithm

Developing and testing a basic version of a registration algorithm.
This task is open to those interested in algorithm development and application, especially using SciPy.

Project 3: Examining Numerical Rounding Impacts

Delving into how numerical rounding affects accuracy in neuroimaging. The objective is to analyze the computational steps of linear registration to gain a deeper understanding of the numerical behaviour.

This project is suitable for participants interested in medical imaging, computational neuroscience, and software development, and is especially relevant for those looking to understand the practical implications of computational inaccuracies in scientific research.

Link to project repository/sources

GitHub repositories:

Docker images:

Goals for Brainhack Global

  1. Analyze FSL FLIRT numerical stability.
  2. Develop a simplified registration algorithm.
  3. Address and propose solutions for rounding issues.

Good first issues

  1. Provide a dataset to run FSL FLIRT on.
  2. Provide FSL FLIRT parameters to play with.
  3. Set up and run initial tests with FSL FLIRT.
  4. Help in the development of the simplified algorithm (SciPy implementation?).
  5. Provide metrics to measure numerical stability on perturbed registered images.

Communication channels

https://mattermost.brainhack.org/brainhack/channels/numerical-stability-linear-registration

Skills

  • Python: Intermediate to Advanced
  • Familiarity with FSL or similar tools: Basic
  • Familiarity with stochastic arithmetic: Basic

Onboarding documentation

No response

What will participants learn?

  • linear registration in neuroimaging
  • stochastic arithmetic
  • numerical instability metrics
  • algorithm development
  • collaborative open-source project work.

Data to use

No response

Number of collaborators

4

Credit to collaborators

Project contributors are listed on the project README using all-contributors github bot.

Image

Leave this text if you don't have an image yet.

Type

other

Development status

0_concept_no_content

Topic

reproducible_scientific_methods

Tools

FSL

Programming language

Python

Modalities

MRI

Git skills

0_no_git_skills

Anything else?

No response

Things to do after the project is submitted and ready to review.

  • Add a comment below the main post of your issue saying: Hi @brainhackorg/project-monitors my project is ready!
  • Twitter-sized summary of your project pitch.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment