Aller au contenu

Utilisateur:GuillaumeTh/Brouillon

Une page de Wikipédia, l'encyclopédie libre.

Dipy
Image illustrative de l’article GuillaumeTh/Brouillon

Dernière version 0.11.0
Système d'exploitation Multiplateforme
Site web http://nipy.org/dipy/index.html

Dipy[1][2] (Diffusion Imaging In Python) est une extension Python gratuite et open source. Elle est principalement utilisée dans le domaine médical et plus précisément dans le domaine de l'imagerie par résonance magnétique de diffusion du cerveau.

Plus précisément, elle implémente des algorithmes destinés à une meilleure analyse des données d'imagerie par résonance magnétique de diffusion grâce au débruitage, recalage, et d'autres techniques (toutes les fonctionnalités seront détaillées dans Types d'algorithmes).

Le développement de Dipy se passe principalement sur Github ou chaque personne à la possibilité de pouvoir contribuer a l'évolution de Dipy.

Description[modifier | modifier le code]

Dipy est essentiellement programmé en Python. Elle a été programmée par 9 principaux développeurs et des dizaines d'autres personnes contribuent à l'évolution de Dipy chaque jour. Elle contient certains algorithmes en Cython destinées à accélérer certains calculs. Pour fonctionner correctement, Dipy requiert 4 autres extensions: NumPy (1.7.1 ou supérieur), Scipy (0.9 ou supérieur), Cython (0.18 ou supérieur) et Nibabel (2.1 ou supérieur). Dipy est multiplateforme et peut donc fonctionner sur Windows, Linux et Mac OS X. Cette extension étant utilisée dans un but de faciliter la recherche dans le domaine de l'imagerie par résonance magnétique de diffusion, elle ne peut pas être utilisée comme aide a l'expertise dans le domaine clinique. Les algorithmes sont utilisés pour analyser des données d'imagerie par résonance magnétique de diffusion du cerveau afin de pouvoir faire la reconstruction des connexions de la matière blanche.

Types d'algorithmes[modifier | modifier le code]

Les algorithmes dans Dipy sont utilisés pour effectuer des tâches telles que la reconstruction, la tractographie, la visualisation, mais également pour faire des opérations sur les fibres générées ou encore simplifier un tractogramme. Tous ces algorithmes utilisent 3 types de fichiers: les fichiers de tractographie comme tck, les fichiers d'image sous le format Nifiti (avec Nibabel) et les fichiers comme des matrices par exemple en format npy (avec NumPy).

Carte débutée avec l'algorithme nlmeans

Prétraitement[modifier | modifier le code]

Le prétraitement se décompose en plusieurs types d'algorithmes. Ci-dessous les algorithmes principalement utilisés lors du prétraitement:

L'algorithme d'extraction du cerveau sert à isoler les cerveaux sans avoir le crâne ou autre organe indésirable pour le traitement des données.

L'algorithme de débruitage utilisé par Dipy est le Non-Local means filter. Celui-ci peut être appliqué sur des données 3D ou 4D afin d'améliorer la qualité des images par résonance magnétique.

Carte de tenseurs colorés à l'aide des valeurs de FA

Reconstruction[modifier | modifier le code]

La reconstruction est une partie intégrante de Dipy: les algorithmes de reconstructions sont utilisés pour créer des cartes de connectivité de la matière blanche du cerveau. Voici les algorithmes les plus fréquemment utilisés dans le cas de la reconstruction:

L'algorithme de reconstruction avec la déconvolution sphérique (Constrained Spherical Deconvolution (CSD)) sert à avoir nos directions de gradient pour chaque voxel de matière blanche à partir d'une imagerie par résonance magnétique de diffusion. Grâce à la CSD, nous obtenons une Orientational Distribution Function (ODF) qui sera utilisée lors de la tractographie.

L'algorithme de reconstruction par diffusion de tenseur (Diffusion Tensor Imaging (DTI)) a été un algorithme très influent dans le domaine de l'imagerie par résonance magnétique de diffusion. Cet algorithme nous sert a avoir la direction principale des microstructures de la matière blanche. Cet algorithme nous donne également une ODF qui sera utilisée lors de la tractographie. Le défaut de cette méthode est que nous pouvons représenter uniquement une seule direction par voxel.

L'algorithme Q-Ball est lui aussi fortement utilisé dans le domaine de l'imagerie par résonance magnétique de diffusion et est une autre représentation qui nous permet, comme les deux premiers algorithmes, d'avoir une ODF qui sera utilisée lors de la tractographie.

Il existe d'autres algorithmes de reconstructions tels que le Diffusion Spectrum Imaging (DSI) ou encore le Q-Sampling Imaging (QSI), mais ces algorithmes sont moins souvent utilisés.

Tractographie[modifier | modifier le code]

Tractogramme d'un Corpus Callosum

La tractographie est effectuée par l'algorithme dit de tracking. Le but de cette étape est de reconstruire les connexions de la matière blanche à l'aide des ODF générées durant l'étape de reconstruction. L'algorithme de tracking prend comme paramètre: l'ODF qui va permettre de suivre une direction principale et ainsi former une streamline(fibre), une carte de seeding qui permet de savoir ou sont les points de départ des streamlines, et un pas qui permet de savoir de combien de millimètres l'algorithme doit avancé sur la streamline. Cependant, la tractographie possède certaines limites: elle dépend fortement de la qualité de l'imagerie par résonance magnétique de diffusion et des techniques de prétraitement et de reconstruction. Il est également complexe de faire une tractographie avec cet algorithme si le patient est atteint d'une pathologie ou s'il est âgé, car les résultats peuvent être faussés.[3]

Plus précisément, il existe 2 types de tracking: le tracking déterministique et probabilistique. L'utilisation d'un tracking déterministique est utile lorsque le chercheur veut le plus grand nombre de fibres possible et un temps de calcul allégé. Le tracking probabilistique est utilisé dans le contexte des matrices de connectivité et nous permet d'avoir de meilleur faisceau, mais possède un temps de calcul plus important que le tracking déterministique.

Après la génération du tractogramme, les fibres sont sauvegardées dans le format tck afin d'être lues dans des logiciels de visualisation tiers tels que MI-Brain[4] ou fibernavigator[5] par exemple. D'autres outils de visualisation existent dans Dipy et seront décrits dans la section Outils de Visualisation.

Segmentation[modifier | modifier le code]

Fornix ayant été traité avec l'algorithme QuickBundles

Les algorithmes de segmentations servent principalement à de l'analyse post-traitement et sont utiles aux biologistes qui veulent analyser certaines fibres. L'algorithme de segmentation le plus important est QuickBundles[6]. Le principe de QuickBundles est de pouvoir effectuer une segmentation des fibres issues de la tractographie. L'algorithme fonctionne de telle manière qu'il effectue un regroupement de fibres en faisceau suivant un seuil que le chercheur détermine: si la distance entre 2 fibres est inférieure au seuil, on forme un faisceau entre ces 2 fibres et on recommence.

À partir de cette segmentation, nous pouvons également extraire un certain nombre de données tels que le nombre de fibres par faisceau ou le nombre de faisceaux par exemple.

L'algorithme QuickBundles sera bientôt utilisé afin de faire une reconnaissance automatique de certains faisceaux importants du cerveau.

Outils de Visualisation[modifier | modifier le code]

Dipy possède des outils de visualisation permettant:

  • de visualiser une carte quelconque de manière interactive grâce à la possibilité de modifier la coupe,
  • de visualiser une tractographie avec une carte quelconque,
  • de visualiser des faisceaux extraits grâce à QuickBundles et modifier la couleur des fibres suivant l'intensité de la fractional anisotropie (FA).

Concurrents[modifier | modifier le code]

Les concurrents principaux de Dipy sont d'autres bibliothèques de code qui elles aussi sont développés par des chercheurs. Un des plus gros concurrents est Mrtrix qui comme lui est capable de faire du tracking ou encore de la visualisation. Cependant, Mrtrix n'est pas une extension Python et ne peut être uniquement utilisé dans des commandes Bash.

Avec l'essor des algorithmes d'intelligence artificielle, les vieux algorithmes d'extraction de cerveau par exemple deviennent beaucoup moins efficace par rapport aux algorithmes d'intelligence artificielle. Cependant les algorithmes que possèdent Dipy non pas besoins d'entrainement quelconque sur des centaines de données afin de fonctionner ce qui est obligatoire dans le cas d'intelligence artificielle.

Notes et références[modifier | modifier le code]

  1. (en) « Dipy »
  2. (en) Garyfallidis E, Brett M, Amirbekian B, Rokem A, van der Walt S, Descoteaux M, Nimmo-Smith I and Dipy Contributors (2014), « Dipy, a library for the analysis of diffusion MRI data. », Frontiers in Neuroinformatics, vol.8, no.8.,‎ (lire en ligne)
  3. (en) Theaud G, Dilharreguy B, Catheline G, Descoteaux M, « Impact of white-matter hyperintensities on tractography », ISMRM,‎
  4. (en) « MI-Brain »
  5. (en) « Fibernavigator »
  6. (en) Garyfallidis E, Brett M, Correia M.M, Williams G.B, Nimmo-Smith I., « QuickBundles, a method for tractography simplification », Frontiers in Neuroscience, 6,‎