User Tools

Site Tools


neuroimagen:md_nph

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
neuroimagen:md_nph [2021/10/19 07:23]
osotolongo [Implementación]
neuroimagen:md_nph [2021/10/19 09:04]
osotolongo [Uso]
Line 70: Line 70:
 </code> </code>
  
 +{{ :neuroimagen:wm_mask.png?400 |}}
 Pero ojo, que esa mascara esta en espacio nativo T1, asi que tendria que hacer algo como, Pero ojo, que esa mascara esta en espacio nativo T1, asi que tendria que hacer algo como,
  
 <code bash> <code bash>
-antsApplyTransforms -d 3 -i ${tmp_dir}/wm_mask.nii.gz -r ${tmp_dir}/hifi_b0.nii.gz -t ${tmp_dir}/$subject_epi_reg_ANTS.mat -o ${tmp_dir}/wm_tmp.nii.gz+antsApplyTransforms -d 3 -i ${tmp_dir}/wm_mask.nii.gz -r ${tmp_dir}/hifi_b0.nii.gz -t ${tmp_dir}/$subject_epi_reg_ANTS.mat -n GenericLabel -o ${tmp_dir}/wm_tmp.nii.gz
 </code> </code>
  
-y ahora a esto hay que hacerle un //treshold//, 
  
-<code bash> +La mascara resultante hay que aplicarla a la imagen MD,
-fslmaths ${tmp_dir}/wm_tmp.nii.gz -thr 0.5 ${tmp_dir}/wm_mask.nii.gz +
-</code>+
  
-La mascara resultante hay que aplicarla a la imagen MD y a esta ultima imagen es a la que hay que sacarle el histograma.+{{ :neuroimagen:wm_mask_indti.png?400 |}}
  
-:WIP:+y a esta ultima imagen,
  
-Primero leo la DB del proyecto y por cada unos de las imagenes MD que he llegado a procesar ejecuto el procedimiento anterior,+{{ :neuroimagen:dti_md_masked.png?400 |}} 
 + 
 +es a la que hay que sacarle el histograma.
  
 <code perl> <code perl>
-foreach my $subject (@dtis){ + 
-        my $dti_md = $w_dir.'/'.$subject.'_dti_MD.nii.gz'; +                my $order = $ENV{'FSLDIR'}.'/bin/fslstats '.$dti_md_masked.' -l 0 -u '.$up_threshold.' -h '.$nbins;
-        if($subject and -e $dti_md){ +
-                my $order = $ENV{'FSLDIR'}.'/bin/fslstats '.$dti_md.' -l 0 -u '.$up_threshold.' -h '.$nbins;+
                 my @shist = qx/$order/;                 my @shist = qx/$order/;
-                chomp @shist; 
-                push @allsums, sum(@shist); 
-                $nph{$subject} = max(@shist); 
-        } 
-} 
 </code> </code>
  
-ahora, el valor para normalizar es el medio de todas las areas,+ahora, el valor para normalizar es el numero de voxels de la mascara de WM
  
 <code perl> <code perl>
-my $norm sum(@allsums)/scalar(@allsums);+                $order = $ENV{'FSLDIR'}.'/bin/fslstats '.$dti_md_masked.' -V'; 
 +                my $oout  qx/$order/; 
 +                my @gout = split ' ', $oout; 
 +                my $norm = $gout[0]; 
 </code> </code>
  
-saco todo por //STDOUT//,+y todo esto se guarda,
  
 <code perl> <code perl>
-print "Subject,NPH\n";+                $nph{$subject}{'sum'} = sum(@shist); 
 +                $nph{$subject}{'norm'} = $norm; 
 +                $nph{$subject}{'max'} = max(@shist); 
 +</code> 
 + 
 +para escribirlo luego, 
 + 
 +<code perl> 
 +open ODF, ">$ofile"; 
 +print ODF "Subject,NPH\n";
 foreach my $subject (sort keys %nph){ foreach my $subject (sort keys %nph){
-        my $nphv = $nph{$subject}/$norm; +        my $nphv = $nph{$subject}{'max'}/$nph{$subject}{'norm'}
-        print "$subject,$nphv\n";+        print ODF "$subject,$nphv\n";
 } }
 +close ODF;
 </code> </code>
  
Line 124: Line 131:
  
 <code bash> <code bash>
-[osotolongo@brick03 nph]$ ./nph.pl bioface nph.csv+[osotolongo@brick03 nph]$ ./nph.pl bioface  
 +[osotolongo@brick03 nph]$ head ../bioface_normalised_peak_height.csv 
 +Subject,NPH 
 +0002,0.142459141831309 
 +0003,0.101291664281762 
 +0004,0.128800261523374 
 +0005,0.131614509246088 
 +0006,0.116625745352508 
 +0007,0.142582104338399 
 +0008,0.140059946569362 
 +0009,0.129072904095975 
 +0010,0.12497310864109
 [osotolongo@brick03 nph]$ sed 's/;/,/;1iSubject,Subject_ID' ../bioface_mri.csv > bioface_codes.csv [osotolongo@brick03 nph]$ sed 's/;/,/;1iSubject,Subject_ID' ../bioface_mri.csv > bioface_codes.csv
-[osotolongo@brick03 nph]$ join -t, -j 1 bioface_codes.csv nph.csv | awk -F"," '{print $2","$3}' | csvsort -c 1 > normalised_peak_height.csv +[osotolongo@brick03 nph]$ join -t, -j 1 bioface_codes.csv ../bioface_normalised_peak_height.csv | awk -F"," '{print $2","$3}' | csvsort -c 1 > nph_sorted.csv 
-[osotolongo@brick03 nph]$ head normalised_peak_height.csv+[osotolongo@brick03 nph]$ head nph_sorted.csv
 Subject_ID,NPH Subject_ID,NPH
-B002,0.0731249323687369 +B002,0.142459141831309 
-B003,0.0732767676009448 +B003,0.101291664281762 
-B004,0.0745456763272544 +B004,0.128800261523374 
-B005,0.0746812434988687 +B005,0.131614509246088 
-B006,0.0697899799470258 +B006,0.116625745352508 
-B007,0.0788675577583173 +B007,0.142582104338399 
-B008,0.0932810594443464 +B008,0.140059946569362 
-B009,0.0787428359604322 +B009,0.129072904095975 
-B010,0.0681414831401963+B010,0.12497310864109 
 </code> </code>
  
 **Nota:** Para simplificar he usado //csvsort// de [[https://csvkit.readthedocs.io/en/latest/ | csvkit ]] pero tambien se puede dar una vuelta y usar //gnu sort//. **Nota:** Para simplificar he usado //csvsort// de [[https://csvkit.readthedocs.io/en/latest/ | csvkit ]] pero tambien se puede dar una vuelta y usar //gnu sort//.
neuroimagen/md_nph.txt · Last modified: 2021/10/19 09:04 by osotolongo