User Tools

Site Tools


neuroimagen:fslvbm_real

Table of Contents

FSL VBM

Data

[osotolongo@detritus vbmlang]$ head model_vbm.csv
Subject;PSubject;group;edat_v0;Anyos_Escolaridad_FAC_v0;Sex_1H_0M_v0;FE_anflu_NP_v0;FE_Pflu_NP_v0;Fluidesa_Verbal_Accio_NP_v0;Action_Namimg_Libre_FAC_v0;Boston_Libre_FAC_v0;Piramides_Y_Palmeras_Palab_FAC_v0;Piramides_Y_Plameras_Imag_FAC_v0;Kissing_Dancing_Imagenes_FAC_v0;Kissing_Dancing_Palabras_FAC_v0
1;F001;1;71;8;0;17;22;13;52;53;NA;NA;NA;NA
2;F002;1;70;12;1;25;23;22;53;55;NA;NA;NA;NA
3;F003;1;70;8;0;17;14;11;47;48;NA;NA;NA;NA
4;F004;1;76;16;0;15;18;20;54;50;NA;NA;NA;NA
5;F005;1;68;20;1;26;22;28;53;65;NA;NA;NA;NA
6;F006;1;64;14;0;20;24;30;55;51;NA;NA;NA;NA
7;F007;1;59;19;1;24;24;25;48;62;NA;NA;NA;NA
8;F008;1;55;16;0;17;15;10;58;53;NA;NA;NA;NA
9;F009;1;67;16;0;28;20;19;55;58;NA;NA;NA;NA

Lista de sujetos,

[osotolongo@detritus vbmlang]$ awk -F";" '{printf "%04i\n", $1}'  model_vbm.csv | tail -n +2 > subjects.list
[osotolongo@detritus vbmlang]$ head subjects.list
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010

Data para matriz,

[osotolongo@detritus vbmlang]$ awk -F";" '{print $3" "$4" "$5" "$6" "$7}'  model_vbm.csv | tail -n +2 > vbm_data.dat
[osotolongo@detritus vbmlang]$ head vbm_data.dat
1 71 8 0 17
1 70 12 1 25
1 70 8 0 17
1 76 16 0 15
1 68 20 1 26
1 64 14 0 20
1 59 19 1 24
1 55 16 0 17
1 67 16 0 28
1 68 20 1 26

design.mat

[osotolongo@detritus vbmlang]$ Text2Vest vbm_data.dat design.mat
[osotolongo@detritus vbmlang]$ head design.mat
/NumWaves 5
/NumPoints 198
/Matrix
1 71 8 0 17
1 70 12 1 25
1 70 8 0 17
1 76 16 0 15
1 68 20 1 26
1 64 14 0 20
1 59 19 1 24

design.con

[osotolongo@detritus vbmlang]$ cat contras_model.txt
0 0 0 0 1
0 0 0 0 -1
[osotolongo@detritus vbmlang]$ Text2Vest contras_model.txt design.con
[osotolongo@detritus vbmlang]$ cat design.con
/NumWaves 5
/NumPoints 2
/Matrix
0 0 0 0 1
0 0 0 0 -1

BET

[osotolongo@detritus vbmlang]$ mkdir struc
[osotolongo@detritus vbmlang]$ for x in `cat subjects.list`; do get_fsbrain.sh facehbi ${x} struc; done
mri_convert.bin --in_type mgz --out_type nii /nas/data/subjects/facehbi_0001/mri/nu.mgz struc/0001_tmp.nii.gz
$Id: mri_convert.c,v 1.226 2016/02/26 16:15:24 mreuter Exp $
reading from /nas/data/subjects/facehbi_0001/mri/nu.mgz...
TR=2200.00, TE=0.00, TI=0.00, flip angle=0.00
i_ras = (-1, 2.79397e-09, 0)
j_ras = (0, 0, -1)
k_ras = (1.86265e-09, 1, 0)
writing to struc/0001_tmp.nii.gz...
......
......
......

Comprobando,

[osotolongo@detritus vbmlang]$ cd struc/
[osotolongo@detritus struc]$ for x in `cat ../subjects.list`; do a="$a ${x}_struc ${x}_struc_brain"; done
[osotolongo@detritus struc]$ slicesdir -o $a
0001_struc
0002_struc
0003_struc
...
...
...
0204_struc
0205_struc
0206_struc
 
Finished. To view, point your web browser at
file:/nas/data/facehbi/vbmlang/struc/slicesdir/index.html

Aqui se revisa, se excluyen los erroneos de subjects.list, design.mat y las imagenes de struc/ .

Aqui he visto que los sujetos 0097, 0144 necesitan ser removidos del experimento.

Template

[osotolongo@detritus vbmlang]$ fslvbm_2_template -n
0001_struc
0002_struc
0003_struc
0004_struc
0005_struc
0006_struc
...
...
...
0205_struc
0206_struc
Running segmentation: ID=26666
Running initial registration: ID=27593
Creating first-pass template: ID=16311
Running registration to first-pass template: ID=20708
Creating second-pass template: ID=23713
Study-specific template will be created, when complete, check results with:
fslview struc/template_4D_GM
and turn on the movie loop to check all subjects, then run:
fslview  /usr/local/fsl/data/standard/tissuepriors/avg152T1_gray  struc/template_GM
to check general alignment of mean GM template vs. original standard space template.

Mirando struc/template_4D_GM veo que el volumen 101 se ha procesado mal, asi que debo borrarlo de la lista. Las imagenes van del 0 al 195.

A ver la lista esa,

[osotolongo@detritus vbmlang]$ ls struc/*_struc.nii.gz > templist.txt

El 101 es la linea 102 de esta lista, que corresponde al sujeto 0107. Ademas, corresponde a la linea 105 de design.mat, que debe eliminarse.

[osotolongo@detritus vbmlang]$ rm struc/0107_struc*
[osotolongo@detritus vbmlang]$ sed -e 105d design.mat > design.mat

Nota: Se ha de cambiar tambien la linea /Numpoints XXX y poner el numero correcto.

OK. y ahora rerun.

[osotolongo@detritus vbmlang]$ fslvbm_2_template -n
0001_struc
0002_struc
0003_struc
...
...
...

Ahora todo ha quedado correcto,

[osotolongo@detritus vbmlang]$ fslview_deprecated struc/template_4D_GM

[osotolongo@detritus vbmlang]$ fslview_deprecated /usr/local/fsl/data/standard/tissuepriors/avg152T1_gray  struc/template_GM

PreProc

[osotolongo@detritus vbmlang]$ fslvbm_3_proc
Now running the preprocessing steps and the pre-analyses
0001_struc
0002_struc
0003_struc
0004_struc
...
...
...

y esto produce el subdirectorio stats , donde debe revisarse que la imagen, GM_mod_merg contenga todos los sujetos alineados.

Analisis

Siguiendo el manual ahora se ha de ejecutar randomise para visualizar los resultados. Esta herramienta utliza el metodo de montecarlo para determinar las regiones que son afectadas por elmodelo que hemos construido. Esto quiere decir que mientras mas permutaciones se usen mejor sera el resultado pero tambien muchisimo mas largo el calculo ya que el tiempo crece como progresion geometrica (no aritmetica) en cuanto al numero de permutaciones.

Primeramente se ha de decidir que tipo de analisis se quiere. Si los cluster se han de buscar con threshold o sin el (TFCE). Cuanto suavizado se ha de usar, etc

cluster-based thresholding

Aqui un ejemplo corto (1000 permutaciones), con un smooth de 3.0mm y un umbral de 2.3 para la correccion de los clusters.

[osotolongo@detritus vbmlang]$ randomise -i stats/GM_mod_merg_s3 -m stats/GM_mask -o fslvmblang -d design.mat -t design.con -c 2.3 -n 1000
randomise options: -i stats/GM_mod_merg_s3 -m stats/GM_mask -o fslvmblang -d design.mat -t design.con -c 2.3 -n 1000
Loading Data:
Data loaded
5.54365e+221 permutations required for exhaustive test of t-test 1
Doing 1000 random permutations
Starting permutation 1 (Unpermuted data)
Starting permutation 2
Starting permutation 3
Starting permutation 4
Starting permutation 5
Starting permutation 6
Starting permutation 7
...
...
...
Starting permutation 998
Starting permutation 999
Starting permutation 1000
Critical Value for: fslvmblang_clustere_tstat1 is: 1371
5.54365e+221 permutations required for exhaustive test of t-test 2
Doing 1000 random permutations
Starting permutation 1 (Unpermuted data)
Starting permutation 2
Starting permutation 3
Starting permutation 4
...
...
...
Starting permutation 998
Starting permutation 999
Starting permutation 1000
Critical Value for: fslvmblang_clustere_tstat2 is: 1664
Finished, exiting.

Esto produce una imagen de los clusters con cierta densidad de probabilidad,

Aqui podemos hacer elthreshold deseado, ejemplo 95%,

[osotolongo@detritus vbmlang]$ fslmaths fslvmblang_clustere_corrp_tstat1 -thr 0.95 -bin mask_pcorrected
[osotolongo@detritus vbmlang]$ fslmaths fslvmblang_tstat1 -mas mask_pcorrected  fslvmblang_tstat1_corrected

Aqui hemos hechos unamascara con los clusters que estan por encima del 95% y la hemos aplicado a la imagen de p-values. Veamos lo que queda,

atlasquery

[osotolongo@brick03 vbmlang]$ atlasquery -a "Harvard-Oxford Subcortical Structural Atlas" -m mask_pcorrected
Left Cerebral White Matter:27.5929
Left Cerebral Cortex:63.1373
[osotolongo@brick03 vbmlang]$ atlasquery -a "Harvard-Oxford Cortical Structural Atlas" -m mask_pcorrected
Insular Cortex:0.1878
Temporal Pole:4.4353
Superior Temporal Gyrus, anterior division:0.3435
Superior Temporal Gyrus, posterior division:1.7789
Middle Temporal Gyrus, anterior division:2.9409
Middle Temporal Gyrus, posterior division:13.8637
Inferior Temporal Gyrus, anterior division:9.6836
Inferior Temporal Gyrus, posterior division:15.6154
Inferior Temporal Gyrus, temporooccipital part:0.0007
Parahippocampal Gyrus, anterior division:0.1551
Temporal Fusiform Cortex, anterior division:6.3129
Temporal Fusiform Cortex, posterior division:1.8651
Planum Polare:0.7024
Heschl's Gyrus (includes H1 and H2):0.0501
Planum Temporale:0.0111

TFCE

Ahora, sin presuponer ningun umbral para la construccion de clusters

[osotolongo@detritus vbmlang]$ randomise -i stats/GM_mod_merg_s3 -m stats/GM_mask -o fslvmblang_tfce -d design.mat -t design.con -T -n 1000
randomise options: -i stats/GM_mod_merg_s3 -m stats/GM_mask -o fslvmblang_tfce -d design.mat -t design.con -T -n 1000
Loading Data:
Data loaded
5.54365e+221 permutations required for exhaustive test of t-test 1
Doing 1000 random permutations
Starting permutation 1 (Unpermuted data)
Starting permutation 2
Starting permutation 3
Starting permutation 4
Starting permutation 5
Starting permutation 6
Starting permutation 7
Starting permutation 8
...
...
...

Aqui los resultados no estan tan claros,

 
[osotolongo@brick03 vbmlang]$ fslview_deprecated $FSLDIR/data/standard/MNI152_T1_2mm fslvmblang_tfce_tfce_corrp_tstat1 -l Red-Yellow -b 0.9,1

[osotolongo@brick03 vbmlang]$ fslmaths fslvmblang_tfce_tfce_corrp_tstat1 -thr 0.9 -bin mask_tfce
[osotolongo@brick03 vbmlang]$ atlasquery -a "Harvard-Oxford Subcortical Structural Atlas" -m mask_tfce
Left Cerebral White Matter:65.2038
Left Cerebral Cortex:34.7684

Nota: Observese que he bajado de p=0.05 a p=0.1 para poder observar algo.

smooth 4mm

Con smooth de 4mm y usando directamente GM_mod_merg,

Sin modular no se obtienen resultados

[osotolongo@detritus vbmlang]$ randomise -i stats/GM_mod_merg_s4 -m stats/GM_mask -o fslvmblang -d design.mat -t design.con -T -n 1000
randomise options: -i stats/GM_mod_merg_s4 -m stats/GM_mask -o fslvmblang -d design.mat -t design.con -T -n 1000
Loading Data:
Data loaded
Starting permutation 1 (Unpermuted data)
Starting permutation 2
Starting permutation 3
Starting permutation 4
Starting permutation 5
Starting permutation 6
Starting permutation 7
Starting permutation 8
...
...
...

Tengo la misma region que con smooth 3mm (un puntito :-P ) pero ahora con p=0.05.Voy a subir n.

[osotolongo@detritus vbmlang]$ randomise -i stats/GM_mod_merg_s4 -m stats/GM_mask -o fslvmblang -d design.mat -t design.con -T -n 5000
neuroimagen/fslvbm_real.txt · Last modified: 2020/08/04 10:58 by 127.0.0.1