User Tools

Site Tools


neuroimagen:pipe05

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
Next revision Both sides next revision
neuroimagen:pipe05 [2022/01/11 03:18]
osotolongo [Hippocampal Subfields]
neuroimagen:pipe05 [2022/04/29 14:54]
osotolongo [Pipeline de Procesamiento de FACE v0.5]
Line 1: Line 1:
 ====== Pipeline de Procesamiento de FACE v0.5 ====== ====== Pipeline de Procesamiento de FACE v0.5 ======
  
-Nueva version en etapa de planificacion. 
  
 ===== Porque una nueva version? ===== ===== Porque una nueva version? =====
  
-  * // Introducir containers. Preparar el pipeline para utilizarlo en Microsoft Azure, AWS o similar. Todas las llamadas a FSL, Freesurfer o ANTs deben sustituirse por una llamada a containers. // **Nota: De momento no parece ser necesario y los containers de FSL o Fs pueden ser mas complicados de lo que parecen** DELETEME 
   * <del>Modularizacion de las llamadas a SLURM. Los script sbatch han de crearse y lanzarse a traves del modulo SLURM.pm. Deben reescribirse los scripts.</del> DONE ([[neuroimagen:neuro4.pm|Modulos del pipeline]])   * <del>Modularizacion de las llamadas a SLURM. Los script sbatch han de crearse y lanzarse a traves del modulo SLURM.pm. Deben reescribirse los scripts.</del> DONE ([[neuroimagen:neuro4.pm|Modulos del pipeline]])
   * Reparalelizar los procesos de registro, y extraccion de metricas PET en modulos mas pequeños :?:   * Reparalelizar los procesos de registro, y extraccion de metricas PET en modulos mas pequeños :?:
Line 13: Line 11:
   * <del>Usar Freesurfer 7.2 [[https://surfer.nmr.mgh.harvard.edu/fswiki/ReleaseNotes|Release Notes]]</del> DONE ([[neuroimagen:freesurfer7|Update Freesurfer 7.2]])   * <del>Usar Freesurfer 7.2 [[https://surfer.nmr.mgh.harvard.edu/fswiki/ReleaseNotes|Release Notes]]</del> DONE ([[neuroimagen:freesurfer7|Update Freesurfer 7.2]])
  
-===== TODO =====  
  
-  - acenip Containers? DELETEME 
- 
-{{ :neuroimagen:map_container_build.png?600 |}} 
  
 ===== Dependencias ===== ===== Dependencias =====
Line 502: Line 496:
 </code> </code>
  
-===== Bajar proyecto de XNAT =====+==== Freesurfer QC ==== 
 + 
 +[[neuroimagen:visualqc_freesurfer_xnat|Realizar el QC a la segmentacion de Freesurfer de los sujetos analizados en XNAT]] 
 + 
 +==== Bajar proyecto de XNAT ====
  
 Una a vez procesada la segmentación de Freesurfer, si queremos hacer algo mas complejo, hemos de bajar ordenadamente el directorio de procesamiento de cada sujeto. El primer paso sería crear el proyecto local, pero no es necesario (al menos en principio) identificar la posicion de las imagenes RAW. Es decir que practicamente se puede hacer a mano a partir del listado de XNAT. Una a vez procesada la segmentación de Freesurfer, si queremos hacer algo mas complejo, hemos de bajar ordenadamente el directorio de procesamiento de cada sujeto. El primer paso sería crear el proyecto local, pero no es necesario (al menos en principio) identificar la posicion de las imagenes RAW. Es decir que practicamente se puede hacer a mano a partir del listado de XNAT.
Line 588: Line 586:
  
 ===== Hippocampal Subfields ===== ===== Hippocampal Subfields =====
 +
 +(detalles en [[neuroimagen:hsf|Segmentacion del hipocampo]])
  
 A esta version se le ha añadido la capacidad de extraer la segmentacion del hipocampo y la amigdala. Primero debemos tener el proyecto creado y la segmentacion de FS en local. A esta version se le ha añadido la capacidad de extraer la segmentacion del hipocampo y la amigdala. Primero debemos tener el proyecto creado y la segmentacion de FS en local.
Line 640: Line 640:
 ===== Preprocesamiento SBM ===== ===== Preprocesamiento SBM =====
  
-<code> +El analisis SBM debe prepararse y hacerse independientemente del flujo de proyecto ya que requiere preparar una DB independiente con datos externos a neuroimagen. No obstante, pueden preprocesarse las MRI dentro de la estructura general del proyecto.  
-pqcache.pl+ 
 +Para esto basta con ejecutar un //recon_all -qcache -subjid project_subjectid//. Asi que es tan simple como recorrer la DB y ejecutar esto en paralelo con, 
 + 
 + 
 +<code bash
 +pqcache.pl proyecto
 </code> </code>
-==== Freesurfer QC ==== 
  
-[[neuroimagen:visualqc_freesurfer_xnat|Realizar el QC a la segmentacion de Freesurfer de los sujetos analizados en XNAT]]+y ahi quedan todas las medias preparadas para distintos valores de FWHM, 
 + 
 +<code bash> 
 +[osotolongo@brick03 ~]$ ls /old_nas/subjects/bioface_0001/surf/*fwhm* 
 +/old_nas/subjects/bioface_0001/surf/lh.area.fwhm0.fsaverage.mgh             /old_nas/subjects/bioface_0001/surf/lh.volume.fwhm25.fsaverage.mgh          /old_nas/subjects/bioface_0001/surf/rh.jacobian_white.fwhm15.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.area.fwhm10.fsaverage.mgh            /old_nas/subjects/bioface_0001/surf/lh.volume.fwhm5.fsaverage.mgh           /old_nas/subjects/bioface_0001/surf/rh.jacobian_white.fwhm20.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.area.fwhm15.fsaverage.mgh            /old_nas/subjects/bioface_0001/surf/lh.w-g.pct.mgh.fwhm0.fsaverage.mgh      /old_nas/subjects/bioface_0001/surf/rh.jacobian_white.fwhm25.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.area.fwhm20.fsaverage.mgh            /old_nas/subjects/bioface_0001/surf/lh.w-g.pct.mgh.fwhm10.fsaverage.mgh     /old_nas/subjects/bioface_0001/surf/rh.jacobian_white.fwhm5.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.area.fwhm25.fsaverage.mgh            /old_nas/subjects/bioface_0001/surf/lh.w-g.pct.mgh.fwhm15.fsaverage.mgh     /old_nas/subjects/bioface_0001/surf/rh.sulc.fwhm0.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.area.fwhm5.fsaverage.mgh             /old_nas/subjects/bioface_0001/surf/lh.w-g.pct.mgh.fwhm20.fsaverage.mgh     /old_nas/subjects/bioface_0001/surf/rh.sulc.fwhm10.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.area.pial.fwhm0.fsaverage.mgh        /old_nas/subjects/bioface_0001/surf/lh.w-g.pct.mgh.fwhm25.fsaverage.mgh     /old_nas/subjects/bioface_0001/surf/rh.sulc.fwhm15.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.area.pial.fwhm10.fsaverage.mgh       /old_nas/subjects/bioface_0001/surf/lh.w-g.pct.mgh.fwhm5.fsaverage.mgh      /old_nas/subjects/bioface_0001/surf/rh.sulc.fwhm20.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.area.pial.fwhm15.fsaverage.mgh       /old_nas/subjects/bioface_0001/surf/lh.white.H.fwhm0.fsaverage.mgh          /old_nas/subjects/bioface_0001/surf/rh.sulc.fwhm25.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.area.pial.fwhm20.fsaverage.mgh       /old_nas/subjects/bioface_0001/surf/lh.white.H.fwhm10.fsaverage.mgh         /old_nas/subjects/bioface_0001/surf/rh.sulc.fwhm5.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.area.pial.fwhm25.fsaverage.mgh       /old_nas/subjects/bioface_0001/surf/lh.white.H.fwhm15.fsaverage.mgh         /old_nas/subjects/bioface_0001/surf/rh.thickness.fwhm0.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.area.pial.fwhm5.fsaverage.mgh        /old_nas/subjects/bioface_0001/surf/lh.white.H.fwhm20.fsaverage.mgh         /old_nas/subjects/bioface_0001/surf/rh.thickness.fwhm10.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.curv.fwhm0.fsaverage.mgh             /old_nas/subjects/bioface_0001/surf/lh.white.H.fwhm25.fsaverage.mgh         /old_nas/subjects/bioface_0001/surf/rh.thickness.fwhm15.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.curv.fwhm10.fsaverage.mgh            /old_nas/subjects/bioface_0001/surf/lh.white.H.fwhm5.fsaverage.mgh          /old_nas/subjects/bioface_0001/surf/rh.thickness.fwhm20.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.curv.fwhm15.fsaverage.mgh            /old_nas/subjects/bioface_0001/surf/lh.white.K.fwhm0.fsaverage.mgh          /old_nas/subjects/bioface_0001/surf/rh.thickness.fwhm25.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.curv.fwhm20.fsaverage.mgh            /old_nas/subjects/bioface_0001/surf/lh.white.K.fwhm10.fsaverage.mgh         /old_nas/subjects/bioface_0001/surf/rh.thickness.fwhm5.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.curv.fwhm25.fsaverage.mgh            /old_nas/subjects/bioface_0001/surf/lh.white.K.fwhm15.fsaverage.mgh         /old_nas/subjects/bioface_0001/surf/rh.volume.fwhm0.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.curv.fwhm5.fsaverage.mgh             /old_nas/subjects/bioface_0001/surf/lh.white.K.fwhm20.fsaverage.mgh         /old_nas/subjects/bioface_0001/surf/rh.volume.fwhm10.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.jacobian_white.fwhm0.fsaverage.mgh   /old_nas/subjects/bioface_0001/surf/lh.white.K.fwhm25.fsaverage.mgh         /old_nas/subjects/bioface_0001/surf/rh.volume.fwhm15.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.jacobian_white.fwhm10.fsaverage.mgh  /old_nas/subjects/bioface_0001/surf/lh.white.K.fwhm5.fsaverage.mgh          /old_nas/subjects/bioface_0001/surf/rh.volume.fwhm20.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.jacobian_white.fwhm15.fsaverage.mgh  /old_nas/subjects/bioface_0001/surf/rh.area.fwhm0.fsaverage.mgh             /old_nas/subjects/bioface_0001/surf/rh.volume.fwhm25.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.jacobian_white.fwhm20.fsaverage.mgh  /old_nas/subjects/bioface_0001/surf/rh.area.fwhm10.fsaverage.mgh            /old_nas/subjects/bioface_0001/surf/rh.volume.fwhm5.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.jacobian_white.fwhm25.fsaverage.mgh  /old_nas/subjects/bioface_0001/surf/rh.area.fwhm15.fsaverage.mgh            /old_nas/subjects/bioface_0001/surf/rh.w-g.pct.mgh.fwhm0.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.jacobian_white.fwhm5.fsaverage.mgh   /old_nas/subjects/bioface_0001/surf/rh.area.fwhm20.fsaverage.mgh            /old_nas/subjects/bioface_0001/surf/rh.w-g.pct.mgh.fwhm10.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.sulc.fwhm0.fsaverage.mgh             /old_nas/subjects/bioface_0001/surf/rh.area.fwhm25.fsaverage.mgh            /old_nas/subjects/bioface_0001/surf/rh.w-g.pct.mgh.fwhm15.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.sulc.fwhm10.fsaverage.mgh            /old_nas/subjects/bioface_0001/surf/rh.area.fwhm5.fsaverage.mgh             /old_nas/subjects/bioface_0001/surf/rh.w-g.pct.mgh.fwhm20.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.sulc.fwhm15.fsaverage.mgh            /old_nas/subjects/bioface_0001/surf/rh.area.pial.fwhm0.fsaverage.mgh        /old_nas/subjects/bioface_0001/surf/rh.w-g.pct.mgh.fwhm25.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.sulc.fwhm20.fsaverage.mgh            /old_nas/subjects/bioface_0001/surf/rh.area.pial.fwhm10.fsaverage.mgh       /old_nas/subjects/bioface_0001/surf/rh.w-g.pct.mgh.fwhm5.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.sulc.fwhm25.fsaverage.mgh            /old_nas/subjects/bioface_0001/surf/rh.area.pial.fwhm15.fsaverage.mgh       /old_nas/subjects/bioface_0001/surf/rh.white.H.fwhm0.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.sulc.fwhm5.fsaverage.mgh             /old_nas/subjects/bioface_0001/surf/rh.area.pial.fwhm20.fsaverage.mgh       /old_nas/subjects/bioface_0001/surf/rh.white.H.fwhm10.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.thickness.fwhm0.fsaverage.mgh        /old_nas/subjects/bioface_0001/surf/rh.area.pial.fwhm25.fsaverage.mgh       /old_nas/subjects/bioface_0001/surf/rh.white.H.fwhm15.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.thickness.fwhm10.fsaverage.mgh       /old_nas/subjects/bioface_0001/surf/rh.area.pial.fwhm5.fsaverage.mgh        /old_nas/subjects/bioface_0001/surf/rh.white.H.fwhm20.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.thickness.fwhm15.fsaverage.mgh       /old_nas/subjects/bioface_0001/surf/rh.curv.fwhm0.fsaverage.mgh             /old_nas/subjects/bioface_0001/surf/rh.white.H.fwhm25.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.thickness.fwhm20.fsaverage.mgh       /old_nas/subjects/bioface_0001/surf/rh.curv.fwhm10.fsaverage.mgh            /old_nas/subjects/bioface_0001/surf/rh.white.H.fwhm5.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.thickness.fwhm25.fsaverage.mgh       /old_nas/subjects/bioface_0001/surf/rh.curv.fwhm15.fsaverage.mgh            /old_nas/subjects/bioface_0001/surf/rh.white.K.fwhm0.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.thickness.fwhm5.fsaverage.mgh        /old_nas/subjects/bioface_0001/surf/rh.curv.fwhm20.fsaverage.mgh            /old_nas/subjects/bioface_0001/surf/rh.white.K.fwhm10.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.volume.fwhm0.fsaverage.mgh           /old_nas/subjects/bioface_0001/surf/rh.curv.fwhm25.fsaverage.mgh            /old_nas/subjects/bioface_0001/surf/rh.white.K.fwhm15.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.volume.fwhm10.fsaverage.mgh          /old_nas/subjects/bioface_0001/surf/rh.curv.fwhm5.fsaverage.mgh             /old_nas/subjects/bioface_0001/surf/rh.white.K.fwhm20.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.volume.fwhm15.fsaverage.mgh          /old_nas/subjects/bioface_0001/surf/rh.jacobian_white.fwhm0.fsaverage.mgh   /old_nas/subjects/bioface_0001/surf/rh.white.K.fwhm25.fsaverage.mgh 
 +/old_nas/subjects/bioface_0001/surf/lh.volume.fwhm20.fsaverage.mgh          /old_nas/subjects/bioface_0001/surf/rh.jacobian_white.fwhm10.fsaverage.mgh  /old_nas/subjects/bioface_0001/surf/rh.white.K.fwhm5.fsaverage.mgh 
 +</code> 
 + 
 +Ver https://github.com/asqwerty666/acenip/blob/main/bin/pqcache.pl 
  
 ===== DTI preproc ===== ===== DTI preproc =====
Line 2035: Line 2086:
 [osotolongo@brick03 facehbi]$ for x in `cat xnat_pet_experiments.list`; do xnatapic run_pipeline --project_id facehbi --pipeline RegisterPETwithMRImatch --experiment_id ${x}; done [osotolongo@brick03 facehbi]$ for x in `cat xnat_pet_experiments.list`; do xnatapic run_pipeline --project_id facehbi --pipeline RegisterPETwithMRImatch --experiment_id ${x}; done
 </code> </code>
 +
 +==== Extraer resultados ====
 +
 +La idea fundamental aqui es obtener los valores de SUVR y centiloide calculados en XNAT. Estos pueden obtenerse con,
 +
 +<code bash>
 +$ xnatapic get_registration_report --project_id f5cehbi --output xnat_pet_results.csv
 +</code>
 +
 +y esto vamos a limpiarlo un poco,
 +
 +<code bash>
 +$ awk -F"," '{print $2","$6","$7}' xnat_pet_results.csv | sed 's/"//g' | tail -n +2 | sort -t, -k 1 > pet.results
 +</code>
 +
 +La lista de sujetos del proyecto se obtiene con,
 +
 +<code bash>
 +$  xnatapic list_subjects --project_id f5cehbi --label > xnat_subjects.list
 +</code>
 +
 +Esto se puede ordenar rapidamente haciendo,
 +
 +<code bash>
 +$ sort -t, -k 1 xnat_subjects.list > xnat_subjects_sorted.list
 +</code>
 +
 +Y entonces podemos integrar los ID de proyecto con los resultaos, a traves de los ID de XNAT, y seleccionar los datos que queremos guardar,
 +
 +<code bash>
 +$ join -t, xnat_subjects_sorted.list pet.results | sort -t, -k 2 | awk -F"," '{if ($3) print $2";"$3";"$4}' | sed '1iSubject;SUVR;Centiloid'"
 +</code>
 +
 +Todo esto se resume en el script [[https://github.com/asqwerty666/acenip/blob/main/bin/xnat_pullcl.pl | xnat_pullcl.pl]]. Los archivos intermedios se borran una vez que se obtienen los resultados. Las opciones son,
 +
 +  * -p : nombre del proyecto en XNAT, se ignora si existe //-x//. Solo existe por compatibilidad.
 +  * -x : nombre del proyecto en XNAT
 +  * -o : archivo de salida (default STDOUT)
 +
  
  
Line 2231: Line 2321:
 ---- ----
  
-==== Extraer resultados ==== 
- 
-La idea fundamental aqui es obtener los valores de SUVR y centiloide calculados en XNAT. Estos pueden obtenerse con, 
- 
-<code bash> 
-$ xnatapic get_registration_report --project_id f5cehbi --output xnat_pet_results.csv 
-</code> 
- 
-y esto vamos a limpiarlo un poco, 
- 
-<code bash> 
-$ awk -F"," '{print $2","$6","$7}' xnat_pet_results.csv | sed 's/"//g' | tail -n +2 | sort -t, -k 1 > pet.results 
-</code> 
- 
-La lista de sujetos del proyecto se obtiene con, 
- 
-<code bash> 
-$  xnatapic list_subjects --project_id f5cehbi --label > xnat_subjects.list 
-</code> 
- 
-Esto se puede ordenar rapidamente haciendo, 
- 
-<code bash> 
-$ sort -t, -k 1 xnat_subjects.list > xnat_subjects_sorted.list 
-</code> 
- 
-Y entonces podemos integrar los ID de proyecto con los resultaos, a traves de los ID de XNAT, y seleccionar los datos que queremos guardar, 
- 
-<code bash> 
-$ join -t, xnat_subjects_sorted.list pet.results | sort -t, -k 2 | awk -F"," '{if ($3) print $2";"$3";"$4}' | sed '1iSubject;SUVR;Centiloid'" 
-</code> 
- 
-Todo esto se resume en el script [[https://github.com/asqwerty666/acenip/blob/main/bin/xnat_pullcl.pl | xnat_pullcl.pl]]. Los archivos intermedios se borran una vez que se obtienen los resultados. Las opciones son, 
- 
-  * -p : nombre del proyecto en XNAT, se ignora si existe //-x//. Solo existe por compatibilidad. 
-  * -x : nombre del proyecto en XNAT 
-  * -o : archivo de salida (default STDOUT) 
  
 ===== PET-tau ===== ===== PET-tau =====
Line 2328: Line 2381:
 </code> </code>
  
-y para cada experiento gurdamos los resultados del analisis de FS en un directorio,+y para cada experiento guardamos los resultados del analisis de FS en un directorio,
  
 <code perl> <code perl>
Line 2344: Line 2397:
 my $fsout = $fsoutput.'/fsrecon'; my $fsout = $fsoutput.'/fsrecon';
 make_path $fsout; make_path $fsout;
-</code perl>+</code>
  
 podemos utilizar las sintaxis de la funcion //fs_file_metrics()// almacenadas en [[neuroimagen:neuro4.pm#fsmetricspm|FSMetrics.pm]]. //L ultima version actualizada, siempre [[https://github.com/asqwerty666/acenip/blob/main/lib/FSMetrics.pm|en github]]//. podemos utilizar las sintaxis de la funcion //fs_file_metrics()// almacenadas en [[neuroimagen:neuro4.pm#fsmetricspm|FSMetrics.pm]]. //L ultima version actualizada, siempre [[https://github.com/asqwerty666/acenip/blob/main/lib/FSMetrics.pm|en github]]//.
neuroimagen/pipe05.txt · Last modified: 2022/06/17 07:43 by osotolongo