User Tools

Site Tools


neuroimagen:dando_formato_a_las_resultados

This is an old revision of the document!


Formato de entrega de los resultados de analisis

MRI

El primer paso es sacar las fechas de los DICOM.

Ejemplo con FACEHBI,

[osotolongo@detritus facehbi]$ for x in /nas/corachan/facehbi/*;do n=$(echo ${x} | awk -F"/" {'print $5'}); f=$(find ${x} -type f |grep -v "DTI"| head -1); d=$(dckey -k "AcquisitionDate" ${f} 2>&1); echo ${n},${d}; done > dates_mri.csv
[osotolongo@detritus facehbi]$ sed -i '1iPSubject,Date' dates_mri.csv
[osotolongo@detritus facehbi]$ head dates_mri.csv
PSubject,Date
F001,20141205
F002,20141205
F003,20141211
F004,20141212
F005,20150107
F006,20141223
F007,20141219
F008,20141220
F009,20150110

Ademas necesitamos un archivo con el numero de historia clinica interno, pues es necesario para el procesamiento de otras variables (no aqui!). Esto se recibirá en cualquier formato pero es necesario convertirlo en algo asi,

[osotolongo@detritus facehbi]$ head internos.csv
PSubject,Interno
F001,20090806
F002,20131084
F003,20130456
F004,20080130
F005,20141272
F006,20141107
F007,20080716
F008,20131483
F009,20141277

Vamos a unirlos ahora,

[osotolongo@detritus facehbi]$ join -t, internos.csv dates_mri.csv > info_mri.csv
[osotolongo@detritus facehbi]$ head info_mri.csv
PSubject,Interno,Date
F001,20090806,20141205
F002,20131084,20141205
F003,20130456,20141211
F004,20080130,20141212
F005,20141272,20150107
F006,20141107,20141223
F007,20080716,20141219
F008,20131483,20141220
F009,20141277,20150110

Ahora la fecha hay que ponerla en el formato correcto. digamos, DD/MM/YYYY. Yo prefiero eloriginal YYYYMMDD pero lo que piden es esto. Voy a hacer un script perl sencillo para esto,

format_date.pl
#!/usr/bin/perl
# Formatear las fechas
# Copyright O.Sotolongo (asqwerty@gmail.com) 2020
use strict;
use warnings;
my $num_args = $#ARGV + 1;
die "Should supply input filename\n" unless $num_args;
my $ifile=$ARGV[0];
my $ofile;
if ($num_args == 2){
        $ofile=$ARGV[1];
}else{
        ($ofile = $ifile) =~ s/\.\w{2,4}$/_proper/;
        $ofile =$ofile.'.csv';
}
open IDF, "<$ifile";
open ODF, ">$ofile";
while (<IDF>) {
        if(/^.*,.*,\d{8}$/) {
                my ($shit, $date) = /^(.*),(\d{8})$/;
                (my $cdate = $date) =~ s/(\d{4})(\d{2})(\d{2})/$3.$2.$1/;
                print ODF "$shit,$cdate\n";
        }else{
                print ODF;
        }
}
close ODF;
close IDF;

y vamos a probar,

[osotolongo@detritus facehbi]$ ./format_date.pl info_mri.csv
[osotolongo@detritus facehbi]$ head info_mri_proper.csv
PSubject,Interno,Date
F001,20090806,05.12.2014
F002,20131084,05.12.2014
F003,20130456,11.12.2014
F004,20080130,12.12.2014
F005,20141272,07.01.2015
F006,20141107,23.12.2014
F007,20080716,19.12.2014
F008,20131483,20.12.2014
F009,20141277,10.01.2015

Ahora empieza lo bueno.Tenemos que ligar este archivo con los sujetos de neuroimagen. Para esto usamos el archivo guia que debe existir en cada proyecto, en este caso, facehbi_mri.csv.

neuroimagen/dando_formato_a_las_resultados.1578235418.txt.gz · Last modified: 2020/08/04 10:47 (external edit)