neuroimagen:mriface_reports
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
neuroimagen:mriface_reports [2022/08/31 14:51] – [Datos demograficos] osotolongo | neuroimagen:mriface_reports [2023/07/14 09:57] (current) – [Evaluando neurodegeneración] osotolongo | ||
---|---|---|---|
Line 2: | Line 2: | ||
====== Extrayendo los datos de los informes de MRI FACE ====== | ====== Extrayendo los datos de los informes de MRI FACE ====== | ||
- | ===== Obteniendo los PatientID | + | ===== Obteniendo los StudyID |
- | Lo primero es sacar los //Patient | + | Lo primero es sacar los //Study ID// de cada MRI. Primero saco los sujetos del proyecto y los asocio a los //IDs// almacenados como //label// del experimento. |
<code bash> | <code bash> | ||
Line 22: | Line 22: | ||
</ | </ | ||
+ | |||
+ | **Nota:** Revisar el codigo y cambiar los ID, que no son estos. | ||
+ | |||
+ | Estoy migrando de PatientID a StudyID, :BACKLOG: | ||
+ | |||
+ | <code bash> | ||
+ | [osotolongo@brick03 mri_face]$ for x in reports_archive/ | ||
+ | [osotolongo@brick03 mri_face]$ xnatapic get_jsession | ||
+ | 65F92C34AC318AB2A6A7D1BE3506A317 | ||
+ | [osotolongo@brick03 mri_face]$ while read -r line; do s=$(echo ${line} | awk -F',' | ||
+ | </ | ||
+ | |||
Line 27: | Line 39: | ||
- Entrar en https:// | - Entrar en https:// | ||
- | - Buscar por PatientID | + | - Buscar por AccesionID |
- Salvar el report como pdf con el numero interno | - Salvar el report como pdf con el numero interno | ||
Line 152: | Line 164: | ||
</ | </ | ||
++++ | ++++ | ||
+ | |||
+ | ++++ Procedimiento antiguo | | ||
y entonces, | y entonces, | ||
Line 172: | Line 186: | ||
20211611, | 20211611, | ||
</ | </ | ||
+ | |||
+ | ++++ DELETEME | ||
Y cuando casi eres feliz, **te cambian la estructura de los informes** LOL | Y cuando casi eres feliz, **te cambian la estructura de los informes** LOL | ||
Line 683: | Line 699: | ||
** Para construir el CSV con los datos demograficos de todo el proyecto basta hacer, ** | ** Para construir el CSV con los datos demograficos de todo el proyecto basta hacer, ** | ||
+ | |||
+ | ** Nota: ** procedimiento obsoleto ver preanon.sh y update_sbj.pl dentro de / | ||
<code bash> | <code bash> | ||
Line 964: | Line 982: | ||
</ | </ | ||
+ | |||
+ | ===== Haciendo Update de la DB ===== | ||
+ | |||
+ | Cuando he subido los sujetos nuevos, no me interesa subir todos los datos. Solo de los nuevos. Xnat permite bajarse un CSV con los datos fundamentales de los sujetos. Ejemplo, | ||
+ | |||
+ | <code bash> | ||
+ | [osotolongo@brick03 mri_face]$ head osotolongo_9_9_2022_14_20_45.csv | ||
+ | Subject, | ||
+ | 20040526, | ||
+ | 20050456, | ||
+ | 20050604, | ||
+ | 20071018, | ||
+ | 20081210, | ||
+ | 20090461, | ||
+ | 20090567, | ||
+ | 20100147, | ||
+ | 20100678, | ||
+ | </ | ||
+ | |||
+ | Lo primero es mirar aqui quienes no tienen Genero o Fecha de nacimiento, | ||
+ | |||
+ | <code bash> | ||
+ | [osotolongo@brick03 mri_face]$ awk -F"," | ||
+ | [osotolongo@brick03 mri_face]$ cat newones.list | ||
+ | 20050604 | ||
+ | 20181621 | ||
+ | 20191940 | ||
+ | 20220120 | ||
+ | 20220144 | ||
+ | 20220205 | ||
+ | 20221002 | ||
+ | 20221079 | ||
+ | 20221124 | ||
+ | 2021020051 | ||
+ | 2021020062 | ||
+ | 2021020098 | ||
+ | </ | ||
+ | |||
+ | Por supuesto que aqui habra tambien los errores previos (// ver las ultimas lineas//) pero no importa porque estos no se procesaran. Hago, | ||
+ | |||
+ | <code bash> | ||
+ | [osotolongo@brick03 mri_face]$ ./ | ||
+ | </ | ||
+ | |||
+ | y el archivo resultante, | ||
+ | |||
+ | <code bash> | ||
+ | [osotolongo@brick03 mri_face]$ cat unidad_dob_gender.csv | ||
+ | ID, | ||
+ | XNAT_S00611, | ||
+ | XNAT_S00612, | ||
+ | XNAT_S00613, | ||
+ | XNAT_S00614, | ||
+ | XNAT_S00615, | ||
+ | XNAT_S00616, | ||
+ | XNAT_S00617, | ||
+ | XNAT_S00618, | ||
+ | XNAT_S00619, | ||
+ | </ | ||
+ | |||
+ | se utiliza para hacer un update subiendo el spreadsheet directamente a XNAT. | ||
+ | |||
+ | ahora, quiero ver los reports que faltan, asi que hago, | ||
+ | |||
+ | <code bash> | ||
+ | [osotolongo@brick03 mri_face]$ xnat_get_rvr.pl -x mriface | ||
+ | [osotolongo@brick03 mri_face]$ head mriface_rvr_data.csv | ||
+ | Subject_ID, | ||
+ | 20151338, | ||
+ | 20211523, | ||
+ | 2021020098, | ||
+ | 20211401, | ||
+ | 20211281, | ||
+ | 20210716, | ||
+ | 20081210, | ||
+ | 20211524, | ||
+ | 20211482, | ||
+ | [osotolongo@brick03 mri_face]$ awk -F"," | ||
+ | [osotolongo@brick03 mri_face]$ awk -F"," | ||
+ | [osotolongo@brick03 mri_face]$ grep -v "`cat reports_done.list`" | ||
+ | [osotolongo@brick03 mri_face]$ while read -r line; do xpr=$(xnatapic list_experiments --project_id unidad --subject_id ${line} --modality MRI --label); echo " | ||
+ | [osotolongo@brick03 mri_face]$ head sbj_ids.csv | ||
+ | 20050604, | ||
+ | 20181621, | ||
+ | 20191940, | ||
+ | 20211269, | ||
+ | 20220053, | ||
+ | 20220120, | ||
+ | 20220144, | ||
+ | 20220205, | ||
+ | 20220460, | ||
+ | 20220581, | ||
+ | </ | ||
+ | |||
+ | y ahora regresamos a [[neuroimagen: | ||
===== Evaluando neurodegeneración ===== | ===== Evaluando neurodegeneración ===== | ||
Line 970: | Line 1083: | ||
Primero obtener los datos, | Primero obtener los datos, | ||
<code bash> | <code bash> | ||
- | [osotolongo@brick03 mri_face]$ xnat_pullfs.pl -s aseg -p unidad | + | [osotolongo@brick03 mri_face]$ xnat_pullfs.pl -s aseg -p mriface |
- | [osotolongo@brick03 mri_face]$ xnat_pullfs.pl -s aparc -p unidad | + | [osotolongo@brick03 mri_face]$ xnat_pullfs.pl -s aparc -p mriface |
- | [osotolongo@brick03 mri_face]$ | + | [osotolongo@brick03 mri_face]$ |
- | [osotolongo@brick03 mri_face]$ ./ | + | [osotolongo@brick03 mri_face]$ awk -F',' |
+ | [osotolongo@brick03 mri_face]$ | ||
+ | [osotolongo@brick03 mri_face]$ (head -n 1 base_full.csv && tail -n +2 base_full.csv | sort -t,) > base_full_sorted.csv | ||
+ | [osotolongo@brick03 mri_face]$ | ||
[osotolongo@brick03 mri_face]$ sort -t, -n unidad_age_data.csv > unidad_age_data_sorted.csv | [osotolongo@brick03 mri_face]$ sort -t, -n unidad_age_data.csv > unidad_age_data_sorted.csv | ||
- | [osotolongo@brick03 mri_face]$ join -t, base_full.csv unidad_age_data_sorted.csv > input_data.csv | + | [osotolongo@brick03 mri_face]$ awk -F',' |
+ | [osotolongo@brick03 mri_face]$ awk -F',' | ||
+ | [osotolongo@brick03 mri_face]$ join -t, tmp_age.csv tmp_base.csv | awk -F',' | ||
</ | </ | ||
Line 1003: | Line 1121: | ||
{{: | {{: | ||
+ | |||
+ | {{: | ||
y la densidad de probabilidades de presentar neurodegeneracion perteneciendo a este grupo sería algo como, | y la densidad de probabilidades de presentar neurodegeneracion perteneciendo a este grupo sería algo como, | ||
Line 1008: | Line 1128: | ||
{{: | {{: | ||
- | ===== Juntando todo en un mismo output ===== | ||
+ | ===== Comparando neurodegeneración con LCR ===== | ||
+ | |||
+ | Aqui hay dos puntos a tener en cuenta, | ||
+ | |||
+ | 1.- El algoritmo utilizado es correcto solamente para los pacientes preclínicos. Por construcción se supone que todos los sujetos diagnosticados con demencia tienen una probabilidad cierta (=1) de neurodegeneración. | ||
+ | |||
+ | 2.- | ||
+ | |||
+ | <code bash> | ||
+ | awk -F',' | ||
+ | awk -F',' | ||
+ | ./ | ||
+ | awk -F',' | ||
+ | (head -n 1 lcr_data.csv && tail -n +2 lcr_data.csv | sort -t,) > lcr_data_sorted.csv | ||
+ | </ | ||
+ | |||
+ | En este punto solo hay que unir los valores de LCR con los de Nplus. | ||
+ | |||
+ | <code bash> | ||
+ | join -t, classifier_output.csv lcr_data_sorted.csv > mriface_compare_data.csv | ||
+ | </ |
neuroimagen/mriface_reports.1661957462.txt.gz · Last modified: 2022/08/31 14:51 by osotolongo