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:40]
osotolongo [Implementación]
neuroimagen:md_nph [2021/10/19 09:04]
osotolongo [Uso]
Line 78: Line 78:
  
  
 +La mascara resultante hay que aplicarla a la imagen MD,
  
-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 121: 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