Skip to content

Feature Request: Change Base Head Model from Colin27 to FSAverage #74

@JulesPad

Description

@JulesPad

Feature Request: Change Base Head Model from Colin27 to FSAverage

Summary

I would like to propose replacing the default head model Colin27 with FSAverage in this repository for better accuracy and alignment with modern neuroimaging practices.

Background

A recent study highlighted significant improvements in accuracy when using subject-specific anatomy (SSA) compared to atlas-based head models, including Colin27. Among the atlas-based models tested, FSAverage provided results closest to SSA in terms of sensitivity profiles and localization of cortical activity. This suggests that using FSAverage as the default model could enhance the robustness and accuracy of the analyses.

Reference:

  • Bonilauri et al. (2023). "Impact of Anatomical Variability on Sensitivity Profile in fNIRS–MRI Integration." Sensors, 23(4), 2089. DOI: 10.3390/s23042089

Key findings from the paper:

  1. Improved Sensitivity Mapping: FSAverage exhibited sensitivity distributions closer to SSA, particularly in the gyri regions.
  2. Reduced Bias: Colin27 underestimates sensitivity in the first quartile (surface regions), leading to inaccuracies.
  3. Broader Adoption: FSAverage is widely used in the neuroimaging community, making it a better standard for compatibility and future integrations.

Proposal

Modify the repository to:

  1. Set FSAverage as the default base head model for fNIRS and DOT analyses.

  2. We could use the MNE library's fetch_fsaverage() function to fetch and manage the FSAverage model. This provides a simple and robust way to access FSAverage.

  3. Update all references to Colin27 in the codebase to dynamically support FSAverage.

Benefits

  1. Higher Accuracy: Improved sensitivity profiles and cortical localization compared to Colin27.
  2. Modern Standards: FSAverage aligns with the latest Freesurfer standards and is commonly used in neuroimaging workflows.
  3. Enhanced Flexibility: Allows easier integration with MNE and other neuroimaging libraries.

Implementation Details

  1. Replace cedalion.datasets.get_colin27_segmentation() with a wrapper to fetch FSAverage via MNE's fetch_fsaverage().
  2. Update any hardcoded assumptions about the head model dimensions or segmentation files.
  3. Add a backward compatibility option to use Colin27 if explicitly requested by users.

Additional Notes

I imagine that Colin27 has been chosen for good reasons, perhaps due to its legacy, simplicity, or certain advantages it brings to specific use cases. As someone relatively new to this space and to using this library, I’m genuinely curious to learn more about the thought process behind this choice.

I’d love for this issue to open a friendly discussion about the potential benefits of moving to FSAverage while understanding how Colin27 has served the community so far. If there are particular challenges, trade-offs, or reasons Colin27 is better suited for some use cases, I’d be very interested to hear about them and adjust my suggestion accordingly.

Ultimately, my hope is to contribute an idea that aligns with the project’s goals and benefits its users.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions