• Aucun résultat trouvé

2 Développement logiciel pour l’AVC

2.3 Pipeline de pré-traitements proposé

Dans cette section nous détaillons les méthodes et le paramétrage qui ont permis de préparer les données pour l’analyse.

La première étape du pipeline a été de normaliser le nom et l’arborescence des fichiers. À la suite de cette étape, les fichiers étaient triés par patient, puis par temps, puis par paramètre IRM. Pour assurer un import automatisé des données, les différents patients, temps et paramètres IRM étaient identifiés et une table répertoriant les données disponibles était créée.

La seconde étape a été l’import des fichiers images à l’aide de la fonction readMRI avec l’option format="nifti", les fichiers étant en format NIFTI. Pour chaque patient, une liste était créée afin de stocker les images relatives à chacun des paramètres IRM. Puis un objet MRIaggrétait construit en utilisant la fonctionconstMRIaggr. L’identifiant patient, le nom des paramètres et une liste contenant les images IRM étaient indiqués à la fonction. La résolution spatiale était automatiquement lue sur les métadonnées associées aux images par la fonction constMRIaggr.

Une première série de traitements était ensuite appliquée sur l’objet :

uniformisation des résolutions spatiales :quelques patients avaient une résolution de 256*256 pixels dans le plan. Leurs images étaient alors compressées à l’aide de la méthode constCompressMRIaggr afin d’avoir une résolution commune de 128*128 pixels dans le plan pour l’ensemble de la cohorte. La résolution verticale était aussi variable (entre 13 et 20 coupes) mais elle n’a pas été modifiée.

incorporation des données cliniques :à l’aide de la méthode affectClinic.

identification des groupes spatiaux de lésion : afin de voir si la lésion était fragmentée ou non. La méthode calcGroupsMask était utilisée en fixant la distance maximale de voisinage à 6 mm (argument W.range) et en prenant en compte l’anisotropie de la résolution spatiale (argumentW.spatial_res).

identification du cerveau : à l’aide de la fonction calcBrainMask. Le paramètre de contraste utilisé était le T2 en écho de gradient. Un algorithme de k-moyennes avec entre

2 et 4 groupes était utilisé pour identifier le cerveau. Le résultat était ensuite retraité par calcSmoothMask pour améliorer la cohérence spatiale de la segmentation.

distribution de la lésion par coupe :le nombre de voxels nécrosés sur chaque coupe était compté aux différents temps à l’aide de la méthode calcTableLesion. Cette méthode évalue le recouvrement de la lésion entre deux instants différents pour détecter d’éventuels problèmes de recalage (ou de détection de lésion). Elle permet aussi de s’assurer que le cerveau défini à l’étape précédente contient bien l’ensemble de la lésion.

restriction du domaine d’intérêt au cerveau : en utilisant la méthode constReduceMRIaggr pour définir un objet MRIaggrréduit.

Enfin une seconde série de traitements était appliquée sur l’objet réduit :

identification des différents types morphologiques : à l’aide de la méthode calcTissueType. Le paramètre T1 était utilisé ou, s’il n’était pas disponible, le T2 en écho de gradient.

identification des hémisphères :en utilisant la méthode calcHemisphere avec le T1 ou à défaut le T2 en écho de gradient. L’initialisation était effectuée avec une recherche sur grille en utilisant 11 angles (argumentangle_test) et 11 centres (argumenti_test).

Puis la position du plan sagittal médian retenue était optimisée avec un algorithme du simplex (arugment NelderMead).

normalisation vis-à-vis du voxel controlatéral :en utilisant le T1 où à défaut le T2 pour associer les voxels de chaque hémisphère. La méthodecalcContralateralétait donc utilisée avec l’argument type="1NN_penalised". La fenêtre de recherche était limitée à 3 voxels dans le plan avec un paramètre de pénalisation de 0,5 (argument lambda).

calcul de la matrice de voisinage :la méthode calcW était utilisée avec une distance maximale de 10 mm (argumentrange), en prenant en compte l’anisotropie de la résolution spatiale (argument spatial_res). Une matrice de voisinage étant symétrique, seule la partie triangulaire supérieure était calculée et stockée dans l’objet (argument upper).

filtrage des paramètres IRM : en utilisant la méthode calcFilter avec un filtre Gaussien (argumentfilter="3D_G3") et un filtre bilatéral (argumentfilter="w3D_G3").

normalisation intra-patient des paramètres IRM : relativement à l’hémisphère controlatéral en utilisant la méthodecalcNormalizationavec l’argumentrm.CSF=FALSE pour exclure le liquide cérébro-spinal.

définition de la distance à la lésion : avec la fonction calcDistMask en prenant en compte l’anisotropie de la résolution spatiale (argument spatial_res).

Les résultats obtenus étaient satisfaisants excepté :

– pour les patients dont la boite crânienne était proche du cerveau. Dans ce cas, la méthode d’identification du cerveau avait tendance à retenir des voxels de la boite crânienne (voir l’image du milieu de la figure III.17). Les données étaient fournies avec une proposition de masque cérébral obtenu avec une méthode imposant un a priori de forme. Celle-ci était robuste vis-à-vis de la boite crânienne mais donnait de mauvaises performances dans les coupes basses (voir l’image de droite de la figureIII.17). Notre méthode tendait à fournir un masque cérébral parfois plus large (maximum +33,4%, minimum 9,5%, médiane -0,6%) mais qui recouvrait mieux la lésion (figure III.18).

– en cas de mauvais contraste en T1 (n=3) ou T2 (n=6), l’identification des types de tissus était insatisfaisante (figureIII.19). Pour deux patients, de meilleurs résultats auraient pu être obtenus en utilisant une méthode de correction d’hétérogénéité du champ (Zhang et al., 2001).

L’application du pipeline prenait en médiane 10 minutes par patient, principalement à cause de l’étape de segmentation du cerveau (3 minutes), d’identification des types de tissu (3 min) et de repérage des hémisphères (3 minutes).

Figure III.17 – Exemple de masques cérébraux obtenus avec la librairie MRIaggr pour 3 patients (en rouge). À gauche, un masque cérébral satisfaisant. Au milieu, un masque cérébral incluant à tort des voxels de la boite crânienne. À droite, le masque cérébral MRIaggr recouvre mieux la lésion (en noir) que la méthode imposant un a priori de forme (en violet).

0 500 1000 1500 2000

009 013 029 043 044 045 046 048 062 074 084 086 103 105 108 109 110 136 140 153 170 171 187 189 190 191 193 194 195 198 199 206 208 236 248 249 254 257 259 260 262 265 300 312 315 321 322 323 324 325 327 328 331 332 333 334 335 336 339 341 342 345 357 identifiant patient

lésion hors masque (nb de voxels)

Méthode MRIaggr Externe

Figure III.18 – Nombre de voxels de la lésion finale hors du masque cérébral, défini soit en utilisant la librairie MRIaggr (en violet) soit avec une méthode imposant un a priori de forme (en bleu). L’idéal est la valeur 0 pour chaque patient puisque la lésion devrait être toute entière dans le masque cérébral.

Figure III.19 – Exemple de contraste insuffisant pour l’identification du type de tissu. À gauche : T1 avec un gradient de contraste vertical dû à un problème d’homogénéité du champ magnétique lors de l’acquisition. Au milieu (respectivement à droite), contraste T1 (respectivement T2 en écho de gradient) insuffisant pour différencier la substance blanche de la substance grise, probablement lié à un mouvement du patient.