This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
neuroimagen:md_nph [2021/10/15 10:23] osotolongo created |
neuroimagen:md_nph [2021/10/19 09:04] osotolongo [Uso] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== MD-NPH analisis ====== | ====== MD-NPH analisis ====== | ||
- | //Esto es una idea de Ester Esteban, asi que todo es culpa suya. // | + | //Esto es una idea de Ester Esteban, asi que toda la culpa es suya. // |
Line 45: | Line 45: | ||
asi que todo deberia ser sencillo. | asi que todo deberia ser sencillo. | ||
- | Primero leo la DB del proyecto y por cada unos de las imagenes MD que he llegado | + | Ok. Pero no taaaan sencillo. :-P |
+ | |||
+ | Antes que nada, no voy a sacar el valor medio de toda la imagen MD sino de la porcion correspondiente a la WM. Es decir, que tengo que empezar | ||
+ | |||
+ | <code bash get_wm_mask.sh> | ||
+ | #!/bin/sh | ||
+ | subject=$1 | ||
+ | shift | ||
+ | |||
+ | tmp_dir=$1 | ||
+ | shift | ||
+ | |||
+ | if [ ! -f ${tmp_dir}/ | ||
+ | if [ ! -d ${tmp_dir} ]; then mkdir -p ${tmp_dir}; fi; | ||
+ | tkregister2 --mov $SUBJECTS_DIR/ | ||
+ | fi | ||
+ | if [ ! -f ${tmp_dir}/ | ||
+ | mri_label2vol --seg $SUBJECTS_DIR/ | ||
+ | fi | ||
+ | ${FSLDIR}/ | ||
+ | ${FSLDIR}/ | ||
+ | ${FSLDIR}/ | ||
+ | ~ | ||
+ | </ | ||
+ | |||
+ | {{ : | ||
+ | Pero ojo, que esa mascara esta en espacio nativo T1, asi que tendria que hacer algo como, | ||
+ | |||
+ | <code bash> | ||
+ | antsApplyTransforms -d 3 -i ${tmp_dir}/ | ||
+ | </ | ||
+ | |||
+ | |||
+ | La mascara resultante hay que aplicarla | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | y a esta ultima imagen, | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | es a la que hay que sacarle el histograma. | ||
<code perl> | <code perl> | ||
- | foreach my $subject (@dtis){ | + | |
- | my $dti_md = $w_dir.'/' | + | my $order = $ENV{' |
- | if($subject and -e $dti_md){ | + | |
- | my $order = $ENV{' | + | |
my @shist = qx/$order/; | my @shist = qx/$order/; | ||
- | chomp @shist; | ||
- | push @allsums, sum(@shist); | ||
- | $nph{$subject} = max(@shist); | ||
- | } | ||
- | } | ||
</ | </ | ||
- | ahora, el valor para normalizar es el medio de todas las areas, | + | ahora, el valor para normalizar es el numero |
<code perl> | <code perl> | ||
- | my $norm = sum(@allsums)/scalar(@allsums); | + | $order = $ENV{' |
+ | | ||
+ | my @gout = split ' ', $oout; | ||
+ | my $norm = $gout[0]; | ||
</ | </ | ||
- | y saco todo por //STDOUT//, | + | y todo esto se guarda, |
<code perl> | <code perl> | ||
- | print " | + | $nph{$subject}{' |
+ | $nph{$subject}{' | ||
+ | $nph{$subject}{' | ||
+ | </ | ||
+ | |||
+ | para escribirlo luego, | ||
+ | |||
+ | <code perl> | ||
+ | open ODF, "> | ||
+ | print ODF " | ||
foreach my $subject (sort keys %nph){ | foreach my $subject (sort keys %nph){ | ||
- | my $nphv = $nph{$subject}/ | + | my $nphv = $nph{$subject}{' |
- | print " | + | print ODF " |
} | } | ||
+ | close ODF; | ||
</ | </ | ||
y el codigo completo online en https:// | y el codigo completo online en https:// | ||
+ | ===== Uso ===== | ||
+ | |||
+ | Esto es bastante facil de usar, | ||
+ | |||
+ | <code bash> | ||
+ | [osotolongo@brick03 nph]$ ./nph.pl bioface | ||
+ | [osotolongo@brick03 nph]$ head ../ | ||
+ | Subject,NPH | ||
+ | 0002, | ||
+ | 0003, | ||
+ | 0004, | ||
+ | 0005, | ||
+ | 0006, | ||
+ | 0007, | ||
+ | 0008, | ||
+ | 0009, | ||
+ | 0010, | ||
+ | [osotolongo@brick03 nph]$ sed ' | ||
+ | [osotolongo@brick03 nph]$ join -t, -j 1 bioface_codes.csv ../ | ||
+ | [osotolongo@brick03 nph]$ head nph_sorted.csv | ||
+ | Subject_ID, | ||
+ | B002, | ||
+ | B003, | ||
+ | B004, | ||
+ | B005, | ||
+ | B006, | ||
+ | B007, | ||
+ | B008, | ||
+ | B009, | ||
+ | B010, | ||
+ | |||
+ | </ | ||
+ | **Nota:** Para simplificar he usado //csvsort// de [[https:// |