Extrait la partie affine d'une transformation de normalisaiton SPM (*_sn.mat ou *_sn3d.mat) et la convertit en fichier de transformation Aims (*.trm)
Seule la partie affine des transformations SPM est extraite des fichiers matlab. En effet les parties élastiques ne sont pas gérées par Aims/Anatomist. Si vous voulez conserver les informations de normalisation non-linéraires, appliquez la normalisation dans SPM et réécrivez le volume après normalisation (n*.img sous SPM99 ou w*.img sous SPM >= 2).
Ce traitement n'utilise plus Matlab, et lit les fichiers .mat grâce au module scipy en Python, ce qui est un grand proprès pour ceux qui, comme moi, ne disposent pas de Matlab.
Remarque: les systèmes de coordonnées (référentiels) internnes utilisés par SPM et Aims sont complètement différents. Ainsi en plus de l'extraction proprement dite, des conversions de coordonnées sont effectuées. C'est pourquoi vous ne retrouvez pas dans le fichier .trm de sortie le contenu de la matrice affine de SPM. Pour plus d'informations sur les référentiels et transformations, voyez http://brainvisa.info/doc/html/aims/en/referentials.html.
La transformation en sortie a comme référentiel source le référentiel AIMS (x: droite vers gauche, y: avant vers arrière, z: haut vers bas, origine au centre du premier voxel à droite, en avant, en haut) du volume source, et comme référentiel destination, selon ce qui est précisé par le paramètre target:
Notez que le paramètre normalized_volume n'est utilisé que dans ce dernier cas target = normalized volume in AIMS orientation.
- target = MNI template: la destination est le template de normalisation, et on suppose qu'il s'agit du référentiel standard du MNI utilisé par SPM.
- target = unspecified template: pareil mais on ne marque pas le référentiel destination comme étant celui du MNI. Le calcul est le même mais l'identité du repère cible n'est pas précisée. C'est le cas lorsqu'on utilise un template de normalisation différent (ou fait maison).
- target = normalized volume in AIMS orientation: cette fois on combine à la transformation vers le template de normalisation une deuxième transformation pour aller vers le repère AIMS de l'image cible (normalized_volume). Cette seconde image doit avoir la transformation vers ce même template dans ses informations d'en-tête.
read: SPM normalization matrix ( entrée )Fichier de normalisation SPM (SPM99: *_sn3d.mat ou SPM2: *_sn.mat)
write: Transformation matrix ( sortie )Fichier de transformation Aims
target: Choice ( input )Précise vers quel repère cible la transformation convertie doit aller. Selon la valeur de ce paramètre, le paramètre normalized_volume sera utilisé ou non.
source_volume: Volume 4D ( optional, entrée )Le volume source qui a servi à établir la normalisation, mais sans être lui-même normalisé. Un autre volume ayant exactement le même champ de vue (nombre et tailles de voxels) peut s'y substituer.
normalized_volume: Volume 4D ( optional, entrée )Volume normalisé par SPM. Si ce fichier n'est utilisé que dans le cas target = normalized volume in AIMS orientation. S'il n'est pas utilisé, la matrice extraite sera celle passant du repère d'origine de l'image à celui du template de normalisation utilisé
removeSource: Booléen ( input )Si ce paramètre est mis à Vrai (True), le fichier matlab d'origine est effacé après conversion. Cette option est fortement déconseillée puisqu'elle peut faire perdre des données précieuses. Ne l'utilisez que si vous savez exactement ce que vous faites.
Toolbox : Outils
Niveau d'utilisateur : 0
Identifiant :
SPMsn3dToAims
Nom de fichier :
brainvisa/toolboxes/tools/processes/converters/SPMsn3dToAims.py
Supported file formats :
read :Matlab filewrite :Transformation matrixsource_volume :NIFTI-1 image, SPM imagenormalized_volume :NIFTI-1 image, SPM image