19
CAPITOLO 2
MATERIALI E METODI
2.1 ORGANIZZAZIONE DEL LAVORO
Considerando la crescente attenzione che il tempo di rilassamento T1 sta conquistando in ambito clinico, in questo studio si è scelto di effettuare un lavoro incentrato sull’analisi e la quantificazione dell’intensità di tale segnale di rilassamento magnetico longitudinale, sia per il miocardio che per il ventricolo sinistro, sia prima che dopo l’infusione dell’agente di contrasto. La scelta relativa al ventricolo sinistro è giustificabile dal fatto che la fibrosi può localizzarsi in qualsiasi zona delle pareti muscolari cardiache, ma sembra esserci un prevalente coinvolgimento dello strato epicardico proprio del ventricolo sinistro1.
Numerose sono le applicazioni che possono beneficiare di misurazioni accurate dei valori di T1 del miocardio e del sangue, poiché tale rilassamento viene considerato un prezioso contributo per la valutazione quantitativa della miocardite.
Nella prima fase di questo studio, il lavoro è stato incentrato sulla realizzazione di un simulatore di immagini di RM che restituisse in uscita, per ogni pixel, delle curve di decadimento T1 con una certa evoluzione temporale; poi sono state create delle mappe parametriche che permettessero di visualizzare sia le proprietà del T1 in modo quantitativo (per far corrispondere all’intensità del segnale di ciascun pixel, il tempo di rilassamento calcolato in millisecondi), sia gli errori percentuali commessi nella procedura di fitting. In un secondo momento sono state pensate ed elaborate diverse modalità di ottimizzazione del codice originale, per velocizzare la procedura ed aumentare l’accuratezza del risultato finale. Infine, il codice con l’ottimizzazione ritenuta migliore è stato adattato alle immagini di risonanza vere, in modo da ottenere un risultato più realistico.
2.2 DATI DI RISONANZA MAGNETICA
Le immagini di risonanza magnetica utilizzate sono state fornite dalla “Fondazione G. Monasterio CNR Regione Toscana”.
Sono relative a tre pazienti di sesso maschile, con età media di 38±20 anni, che hanno dato il loro consenso scritto per autorizzare il trattamento dei dati.
Tutte le acquisizioni sono state effettuate con uno scanner a 1.5 T (SIGNA Excite, GE Healthcare, Waukesha, WI) usando una bobina di trasmissione birdcage standard ed una bobina di ricezione in phased-array ad 8 canali.
La sequenza di acquisizione con la quale sono state ottenute le immagini è MCINE-IR, che consente un’acquisizione estesa a più cicli cardiaci e, dunque, un più completo recupero della magnetizzazione longitudinale; inoltre, permette di superare le difficoltà legate alla stima dei valori T1 pre-contrasto (valori relativamente lunghi rispetto al ciclo cardiaco). Infatti, la caratteristica principale della sequenza MCINE-IR è quella di consentire il completo rilassamento della magnetizzazione longitudinale tra due impulsi di inversione consecutivi.
L’acquisizione è avvenuta in un singolo breath-hold e con i seguenti parametri: FOV (field of view)=38x38 / 48x38 cm2 in relazione alle dimensioni del paziente; matrice 224x160; FA (flip angle)=8°; TE/TR=2.4-2.6 / 5-6 msec; NEX (number of averages)=0.5 con 16 overscans; VPS (views per segment) variabile da 24 a 12 tra le acquisizioni pre e post contrasto.10 Le immagini RM post-contrasto utilizzate in questo lavoro sono quelle acquisite 15 minuti dopo l’infusione del gadolinio come agente di contrasto (Gadodiamide-OMNISCAN, 0.2 mmol/Kg).
2.3 METODI DI ANALISI
Gli esperimenti fatti consistono nell’andare a costruire e a campionare la curva di rilassamento con cui la magnetizzazione longitudinale ritorna al suo livello originale; si procede poi fittando la curva campionata ed estraendo il valore del T1 del miocardio e del ventricolo sinistro.
È stato usato un modello non lineare a tre parametri, basato sull’algoritmo di minimizzazione dei quadrati di Levenberg-Marquardt (LM):
𝑆 𝑡 = 𝑆
!1 − 1 + 𝑓 𝑒
!! !! [1]21 stato stazionario (per t =∞), f rappresenta il recupero massimo del segnale durante il tempo di ripetizione (se f =1 vuol dire che si ha il recupero completo del segnale prima dell’impulso di inversione), t è il tempo di campionamento e permette di ottenere S(t) assegnando la corretta polarità al segnale misurato Sm(t):
𝑆 𝑡 =
−𝑆
!𝑡 𝑠𝑒 𝑡 < 𝑇
!𝑆
!𝑡 𝑠𝑒 𝑡 ≥ 𝑇
! [2]A causa della natura composita di un segnale di RM, si sa che non è possibile acquisire delle immagini con un perfetto T1 in modo diretto.
Sono state effettuate diverse prove. Più in dettaglio, i file sono stati organizzati in quattro cartelle di lavoro, una per ogni diverso valore di rumore gaussiano utilizzato:
− σ = 1: rumore gaussiano molto piccolo − σ = 3: rumore gaussiano piccolo − σ = 5: rumore gaussiano grande
− σ = 10: rumore gaussiano molto grande
(normalmente, in un contesto del genere, σ varia fra 3 e 7).
Per ogni valore sigma, sono stati scritti vari codici usando diversi valori dei parametri iniziali, corrispondenti alle condizioni pre e post-contrasto riportati in letteratura. (Si ricorda che il valore T1 post contrasto è relazionato alla concentrazione del marker scelto ed è inversamente proporzionale ad essa).
Inoltre, ciascuna esecuzione è stata ripetuta sia mantenendo fissi i parametri di partenza, sia facendoli variare in maniera random entro un certo range, per conferire maggior senso realistico ai risultati finali.
Dunque, tutti i file sono accomunati dalla presenza dei seguenti dati iniziali:
− S0_myo ed S0_lv: valori medi riportati in letteratura delle intensità dei segnali
stazionari, rispettivamente del miocardio e del ventricolo sinistro;
− T1_myo e T1_lv: valori medi riportati in letteratura dei tempi di rilassamento
longitudinali, rispettivamente del miocardio e del ventricolo sinistro;
− f : parametro rappresentante il recupero del segnale prima dell’impulso di inversione;
− t : tempo di campionamento ricavato dal numero di intervalli RR considerati e dal tempo di ripetizione TR, quindi è strettamente dipendente dalla frequenza cardiaca.
Vengono specificati, inoltre: il numero di intervalli RR, il numero di frames totali stimati, la durata del rate cardiaco, il valore del tempo di ripetizione TR ed il valore sigma considerato.
Un intervallo RR, per convenzione, contiene 30 frames, ovvero 30 campioni e rappresenta la durata dell’intero ciclo cardiaco. In questo studio, in pre-contrasto sono stati considerati 6 intervalli RR, nel caso post-contrasto 2.
Fig. 2.1: L’intervallo RR è definito come la distanza compresa tra due picchi consecutivi del segnale ECG. Ogni intervallo RR corrisponde quindi al tempo che intercorre tra due battiti successivi25
(tratta da “Fisiologia”, D.U. Silverthorn, casa Editrice Ambrosiana 2000)
2.3.1 GENERAZIONE DEL FANTOCCIO
L’idea è stata quella di generare, tramite il calcolatore, un fantoccio che simulasse i tessuti anatomici di interesse e capace di disegnare la curva di decadimento teorico del T1 sull’asse verticale, in funzione dell’intensità del segnale, e il tempo di inversione invece sull’asse orizzontale (Fig. 2.2).
In questo studio, in particolare, per simulare il processo di risonanza, è stata realizzata una matrice 3D di dimensioni 256x256x(numero di frames considerati) in cui, per ciascun pixel, è stata generata la curva di rilassamento teorico implementando l’equazione [1]. All’interno della matrice vi sono due cerchi concentrici che simulano i tessuti anatomici di miocardio (corona circolare) e ventricolo sinistro (cerchio interno); ogni pixel contenuto nel fondo contiene un diverso valore di rumore, generato in maniera random e creato in modo da emulare il rumore Riciano tipico delle immagini di RMN.
23 Fig. 2.2: Curve di decadimento teorico del rilassamento T1 del miocardio (in nero) e del ventricolo sinistro (in rosso)
Il rumore Riciano è stato ottenuto sommando al volume di partenza, altri due volumi di pari dimensioni, aventi due processi di rumore gaussiano tra loro indipendenti (rumore1 e rumore2) e a media nulla. La procedura di risonanza viene riprodotta facendo il modulo quadro tra:
𝐼𝑚_𝑓𝑖𝑛𝑎𝑙 = (𝑣𝑜𝑙𝑢𝑚𝑒 𝑑𝑖 𝑝𝑎𝑟𝑡𝑒𝑛𝑧𝑎 + 𝑟𝑢𝑚𝑜𝑟𝑒1)! + (𝑟𝑢𝑚𝑜𝑟𝑒2)! [3]
dove Im_final rappresenta la nuova matrice 3D ottenuta, contenente le curve di decadimento con una certa evoluzione temporale, rumorose e raddrizzate; il volume di partenza invece include i decadimenti teorici dei due tessuti anatomici ottenuti con l’equazione [1].
Il rumore viene sommato alla fine perché, nella realtà, esso si accumula nella parte di ricezione dell’immagine.
Il risultato di tale matrice è stato poi convertito in un numero intero perché le immagini RM reali vengono codificate in interi sul DICOM.
Per testare se si è proceduto in maniera corretta, è stata accertata l’assenza di segnali negativi (non presenti in risonanza); inoltre è stata verificata la similarità fra il valore della deviazione standard tabellare e quella dell’immagine.
Fig. 2.3: L’immagine a sinistra mostra il decadimento teorico nel tempo del segnale relativo al pixel [110,130]; il grafico a destra mostra il decadimento rumoroso e raddrizzato del segnale del medesimo pixel.
La figura fa riferimento al fantoccio in post-contrast, con σ=1; T1, f ed S0 variabili
Nello studio sul fantoccio, inoltre, è stata realizzata una maschera con tre diverse regioni (background, miocardio e ventricolo), ciascuna con i tre corrispettivi valori di tempo T1 per ogni pixel. In questo modo è stata ottenuta la T1 Phantom Map, ovvero la mappa con i
valori T1 effettivi per ciascun tessuto. Tecnicamente, si tratta di una matrice 2D di dimensioni 256x256 in cui nel fondo i pixel valgono zero mentre, nelle due regioni anatomiche, i corrispettivi valori T1 variano a seconda che il file si riferisca ad un’analisi in pre o post-contrasto. I pixel della mappa non contengono rumore ed essa viene usata come riferimento per valutare a quanto ammonta l’errore percentuale commesso sul T1 dalle altre prove svolte in questo studio.
Fig. 2.4: T1 Phantom Map in scala di grigi, con relativa colorbar riferita ai valori di T1 di ogni pixel. Il nero rappresenta il
fondo, la corona circolare simula il miocardio ed il cerchio interno rappresenta il ventricolo sinistro. La figura fa riferimento al fantoccio in post-contrast, con σ=5; T1, f ed S0 variabili
Theoric decay: pixel [110,130,*]
0 500 1000 1500 2000 t -40 -20 0 20 40 60 80 S(t)
Noisy decay: pixel [110,130,*]
0 500 1000 1500 2000 t 0 20 40 60 80 S(t) T1-Map_Phantom 0 100 200 300 400 500
25 2.3.2 PROCEDURA DI FITTING E CREAZIONE DELLE MAPPE
Su ciascuna curva di decadimento rumorosa e raddrizzata è stata applicata una procedura di fitting non lineare, effettuata con un apposito software dedicato.
A livello pratico, la funzione con il modello di fitting usato è stata scritta in un file a parte e richiamata poi nel programma principale, dove il fitting viene ripetuto due volte: in un primo momento è stato tenuto conto degli stessi parametri S0, f e T1 usati per la
realizzazione del fantoccio, in seguito la procedura è stata fatta sui parametri S0, f e T1
corrispondenti alla curva che fitta meglio, cioè quella che vanta il minimo errore di fitting. Tutti i campioni di ciascuna curva sono stati pesati allo stesso modo.
Il primo processo iterativo ha lo scopo di ricavare i valori migliori per i tre parametri dell’equazione [1] e il secondo si preoccupa di andare a calcolare l’effettivo errore di fitting commesso.
Questo consente di creare la Fitting Error Map contenente, per ciascun pixel, il seguente errore quadratico medio percentuale:
𝐹𝑖𝑡𝑡𝑖𝑛𝑔 𝐸𝑟𝑟𝑜𝑟 = 100 ∗ 𝑚𝑒𝑎𝑛
!"#$|!!! ! [4] dove yfit e y rappresentano, rispettivamente, la curva migliore risultante dopo il fitting e la curva di decadimento non raddrizzata. Per conoscere l’errore percentuale di tutta la Fitting Error Map, è stato calcolato il valore medio laddove la mappa non vale zero.Tale mappa è stata realizzata con l’intento di rivelare la correttezza del fitting commesso nelle varie zone della stessa in modo più veloce, senza dover effettuare tale verifica per ogni singola curva di decadimento.
Un problema a cui si è andati incontro è stato quello di riuscire a ricavare il corretto valore T0, ossia il punto di inversione della curva raddrizzata. In questa prima fase del lavoro ci si
è basati sulla proposta di Nekolla et al. che prevede di provare tutti i tempi di inversione tra quelli di campionamento, finché non si trova quello giusto26. Proprio per questo, è stato pensato di conteggiare anche il numero di iterazioni compiute prima di riuscire ad ottenere il punto di inversione migliore nella curva raddrizzata.
È stata creata anche la T1 Map che, in ogni pixel, contiene il valore del T1 misurato dopo il
mettendo in relazione la T1 Map appena ottenuta con la mappa di riferimento
appositamente realizzata prima, T1 Phantom Map:
𝑇
!𝐸𝑟𝑟𝑜𝑟 = 100 ∗
|!! !"#!!!!!!"#$% !"#|!!!!!"#$% !"# [5]
Fig. 2.5: L’immagine a sinistra mostra un esempio di Fit-Error Map, con relativa colorbar riferita all’errore quadratico % di fitting di ogni pixel. La figura a destra illustra un esempio di T1 Map in scala di grigi, con relativa colorbar riferita ai
valori T1 di ogni pixel. Le figure si riferiscono al fantoccio in post-contrast, con σ=5; T1, f ed S0 variabili.
2.3.3 OTTIMIZZAZIONI INTRODOTTE
Note le T1 Phantom Map, T1 Map e Fitting Error Map per ogni valore sigma e nelle
diverse condizioni sia di pre che di post-contrasto, in seguito è stato perseguito l’obiettivo di ridurre il tempo di calcolo impiegato per la loro realizzazione, ideando delle procedure di ottimizzazione che mantenessero, entro range ragionevoli, gli errori percentuali calcolati in precedenza.
Per apprezzare un graduale miglioramento, le ottimizzazioni sono state numerate in ordine crescente, in relazione al numero di modifiche apportate al codice originale.
• OTTIMIZZAZIONE 1:
Lavorando con S0, f e T1 variabili (parametri imputati nella procedura di fitting), la FitError_Map
5 10 15
T1map
27 prima modifica riguarda l’eliminazione del background, in quanto privo di segnale utile. Questo ha comportato una netta riduzione del tempo di calcolo impiegato perché, di fatto, il fitting è stato applicato solo su quei pixel appartenenti alla matrice Im_final (vedi eq. [3]) aventi una deviazione standard SD superiore ad una soglia th imposta. Poiché nella realtà non si conosce il valore effettivo, e nel fantoccio iniziale stesso si ha un rumore variabile, è stata selezionata un’area del fantoccio di partenza e ne è stata stimata la deviazione standard; quest’ultima è stata poi moltiplicata per un parametro moltiplicativo α=2, così da impostare il valore della soglia di rumore:
𝑡ℎ = 𝛼 ∗ 𝑆𝐷
[6]Il controllo di tale soglia è stato fatto su tutti i frames: se la media del segnale risulta minore di th, allora si evita di applicare la procedura di fitting per quel campione. Th deve avere un valore maggiore perché il rumore oscilla nell’intorno di tale soglia secondo una certa distribuzione di probabilità. La cosa importante è di riuscire ad eliminare il fondo senza mai sottrarre segnale utile.
• OTTIMIZZAZIONE 2:
Anche in questo caso si lavora con S0, f e T1 variabili e si effettua l’eliminazione del
background come descritto sopra. La modifica aggiuntiva riguarda i valori di S0 e
T1 adoperati nella procedura di fitting. In particolare, viene maturata la
considerazione che i valori dell’intensità del segnale allo stato stazionario e del tempo di rilassamento longitudinale, appartenenti a pixel tra loro adiacenti in uno stesso tessuto, sono molto simili tra loro. L’intento è sempre quello di andare a ridurre il tempo di calcolo impiegato per la realizzazione delle mappe, perciò in questo caso si sfrutta l’idea di usare, nella procedura di fitting, i valori S0 e T1
dell’iterazione precedente, che vengono ogni volta memorizzati ed aggiornati. Si tratta, come intuibile, di valori con una forte analogia tra loro, tranne in corrispondenza della zona di confine tra un tessuto e l’altro.
• OTTIMIZZAZIONE 3:
In tale contesto è stata sviluppata un’idea aggiuntiva: oltre all’eliminazione del background e al fitting con i valori S0 e T1 dei pixel adiacenti visti prima, è stato
Tale finestra non è altro che un intervallo all’interno del quale viene ricercato il miglior valore di T0, ovvero il tempo di inversione della curva di decadimento
raddrizzata. Per miglior T0 è stato inteso il valore minimo di tale curva.
Sono stati valutati gli errori di fitting ottenuti usando diverse dimensioni del range Δt, consapevoli che ad un certo punto l’entità dell’errore percentuale diviene indipendente dalle dimensioni della finestra, perché evolve verso un plateau.
L’interesse è quello di individuare il minor Δt in corrispondenza dell’errore percentuale che si assesta sul plateau.
Fig. 2.6: il grafico illustra l’andamento dell’errore percentuale in relazione alle dimensioni della finestra Δt
Bisogna prestare attenzione alle dimensioni della finestra Δt, per evitare che queste non rispettino i limiti riguardanti il numero di frames effettivo, altrimenti la riuscita del calcolo può risultare discutibile.
• OTTIMIZZAZIONE 4:
In questa ottimizzazione sono state sommate tutte le modifiche apportate al codice originale descritte finora e ne è stata introdotta anche un’altra riguardante i pesi w dei campioni. Nello specifico, invece di dare uno stesso peso a tutti i campioni (w=1), è stato pensato di sottocampionare la curva di decadimento lavorando nell’intorno del punto di minimo, pesando solo i campioni compresi nella finestra Δt sottoposta poi alla procedura di fitting. A tutti gli altri è stato assegnato un peso pari a zero.
29 al punto di minimo, perché sono quelli imputati alla determinazione del punto di inversione della curva di decadimento. Tale compito è molto difficile, perché è davvero problematico riuscire a ricavare il corretto valore di T0.
Nelle ottimizzazioni illustrate finora è stata applicata la teoria di Nekolla, che prevede di provare tutti i tempi di inversione tra quelli di campionamento, finchè non viene trovato quello giusto. Ecco perché si procede al calcolo in modo iterativo.
• OTTIMIZZAZIONE 5:
Questa procedura varia un po’ dalle precedenti perché, pur mantenendo l’eliminazione del background e l’applicazione della finestra Δt, fa una diversa valutazione dei parametri imputati nella procedura di fitting. Infatti, viene adottato il modello di Flett et al.17, che prevede di ricavare il tempo di rilassamento T1 in
funzione del tempo T0:
𝑇
!=
!!!" ! [7]
Il valore dell’intensità del segnale stazionario S0 viene considerato essere il valore
massimo di ogni curva di decadimento.
Dunque, è stato ricavato innanzi tutto il T0 come punto di minimo della curva
raddrizzata, da cui è stato possibile ottenere il tempo T1.
Per ciascun valore S0, T0 e T1 sono state ricreate delle mappe (matrici 2D 256x256),
il cui valor medio è stato utilizzato come parametro iniziale di fitting.
Tutto questo è stato fatto considerando f =1 nella realizzazione del fantoccio di partenza.
• OTTIMIZZAZIONE 6:
Anche in questo caso è stata mantenuta valida l’ipotesi relativa al valore f =1, però questa volta la condizione non ha riguardato solo la realizzazione del fantoccio iniziale, ma è stato fissato a 1 il valore del recupero f anche nell’operazione di fitting. Questo ha implicato l’inizializzazione della procedura di fitting con due soli parametri, per cui il risparmio in termini di tempi di calcolo è facilmente intuibile. Gli altri tentativi di miglioramento aggiunti sono stati, come nell’ottimizzazione precedente: il filtraggio del fondo, il calcolo del tempo T0 come punto di minimo
del segnale di decadimento compreso all’interno della finestra Δt, l’ottenimento del T1 col metodo di Flett, l’uso del valore di S0 ricavato dal massimo della curva di
rilassamento e la realizzazione delle tre mappe relative ai valori di S0, T0 e T1, così
da ricavarne i corrispettivi valori medi usati poi come parametri di fitting.
• OTTIMIZZAZIONE 7:
In questo file, invece di escogitare un ulteriore modo per inizializzare la procedura di fitting non lineare, è stato realizzato il tentativo di approcciarsi al problema con una stima lineare, tendenzialmente preferibile a quella esponenziale. L’idea è stata quella di sperimentare una prova capace di ricondursi ad un problema di ricerca su un’unica dimensione, per diminuire la complessità computazionale iniziale.
A livello pratico, partendo dalla considerazione dell’eq. [1] e applicando una procedura di fitting lineare, è stato ricavato il valore del tempo di rilassamento T1
come:
𝑇
!=
!!!" !!!! !→! !∗!!
[8] dove per S0 è stato inteso il valore massimo della curva raddrizzata.
Sono state anche realizzate una T1 Map ed una T0 Map usando, rispettivamente, i
valori di T1 e T0 corrispondenti al minimo errore risultante, per ogni pixel, dalla
procedura di fitting lineare.
Come in precedenza, è stata applicata l’eliminazione del fondo mediante la soglia th di rumore ed è stato fissato a 1 il valore del recupero f del segnale, ma non sono state create né la Fitting Error Map, né la finestra di campioni Δt; non è risultato necessario neanche conteggiare il numero di iterazioni effettuate per la ricerca del corretto punto di inversione. Come intuibile, il tempo di calcolo per l’output delle informazioni è nettamente inferiore ai casi precedenti.
• OTTIMIZZAZIONE 8:
Anche in questo caso si lavora con S0 e T1 variabili, ma si tratta di una realizzazione
differente dalle precedenti perché valuta i parametri imputati nella procedura di fitting non lineare in modo diverso. Come nell’ottimizzazione 5, anche qui è stato applicato il modello di Flett et al. per ricavare il valore del rilassamento T1 in
funzione del tempo T0; ma a differenza del caso antecedente, qui il T0 è già noto in
31 evita di ricorrere al processo iterativo per ottenere il valore del tempo T0 descritto
da Nekolla. Di conseguenza, si trascurano le informazioni relative alla finestra di campioni Δt e al numero di iterazioni necessarie per ottenere il corretto punto di inversione, mentre viene mantenuta l’applicazione di miglioramenti quali: il filtraggio del background; il valore del recupero f fissato a 1 sia nel fantoccio che nell’operazione di fitting; il valore di S0 ottenuto come valore massimo della curva
di rilassamento. Dunque, essendo ben noti i valori S0, f e T1, è stato possibile
procedere con l’attuazione della funzione di fitting non lineare senza imporre limiti ulteriori a tali parametri.
2.4 OTTIMIZZAZIONI ADATTATE ALLE IMMAGINI MRI VERE
Poiché nella realtà il valore del T1 non si conosce a priori e non può essere calcolato esplicitamente, si è consapevoli che le prove effettuate sul fantoccio sono servite unicamente a convalidare la metodologia di stima dell’errore commesso sul rilassamento T1.
Successivamente, le ottimizzazioni sopra presentate sono state riprodotte adattandole al caso delle immagini reali, in modo da avere anche un effettivo riscontro clinico. Ovviamente tale adattamento ha comportato l’eliminazione delle considerazioni necessarie alla realizzazione del fantoccio di partenza ed anche delle valutazioni relative al confronto dell’errore commesso sul T1, proprio per l’impossibilità di calcolare tale errore nelle
immagini reali.
A differenza del phantom, non sono state affrontate un diverso numero di prove in relazione ad un diverso valore del rumore gaussiano σ, di conseguenza non è stato necessario neanche verificare l’esito del noise test (usato in precedenza per testare la similarità fra il valore della deviazione standard tabellare e quella del fantoccio), proprio perché non è noto a priori il rumore di una immagine di risonanza.
Inoltre, mentre prima si procedeva accertandosi dell’assenza di segnali negativi, nel caso della risonanza questa è una informazione certa.
La stima della soglia di rumore impostata nel caso del fantoccio è stata qui effettuata in maniera differente: poiché nella realtà non esiste un valore effettivo fisso di tale parametro, è stata selezionata una ROI (Region of Interest) nel fondo di alcune delle immagini RM in asse corto messe a disposizione per questo studio (tenendo conto che le immagini di
risonanza sono solitamente sottoposte alla tecnica di Zero Padding per migliorare la loro risoluzione) e ne sono state calcolate media e deviazione standard, così da ottenere il nuovo valore soglia th opportuno per questa validazione finale.
Dunque, sono state applicate tutte le ottimizzazioni proposte sia in pre- che in post-contrasto ai casi di risonanza reale dei tre pazienti e, alla fine, è stato possibile ottenere l’ulteriore conferma sulla procedura di ottimizzazione considerata più vantaggiosa in termini di risultati ottenuti.
2.5 IMPLEMENTAZIONE PRATICA DELL’ALGORITMO
Tutte le immagini reali, le mappe riprodotte e le prove effettuate sul fantoccio sono state processate con dei programmi sviluppati tramite l’uso online di IDL (licenza fornita dal Consiglio Nazionale delle Ricerche, versione 8.2.2 installata su un computer Mac OS X 10.8.5). Interactive Data Language è un linguaggio di programmazione interpretato, specializzato nel calcolo numerico e orientato all’analisi e alla visualizzazione di dati scientifici; è commercializzato dalla ITT Visual Information Solution27. L’ambiente di sviluppo di IDL è mostrato in Fig.2.7, è costituito da: una serie di menù di comandi con sottomenù a tendina, delle toolbars, un editor di programmi, una finestra di output, una riga per l’immissione di comandi (prompt dei comandi) e una barra di stato.
33 Per la procedura di fitting è stato fatto uso di un software implementato nel pacchetto di IDL: MPFIT. Si tratta di un sistema di fitting eccellente e robusto, basato sulla tecnica di Levenbeg-Marquardt per risolvere il problema dei minimi quadrati. Nonostante contenga un codice molto generico, la procedura di Craig Markwardt è la più usata e conosciuta e, per funzionare, devono essere forniti i seguenti elementi essenziali:
− X: array di variabili indipendenti,
− Y: array di variabili dipendenti misurate,
− MYFUNCT: nome della funzione che calcola Y dato X.
MPFIT viene chiamata tramite MPFITFUN che va a mappare i valori di X in Y, dati i parametri del modello. Il comportamento di MPFIT può essere modificato in base a ciascun parametro da fittare: le proprietà del parametro sono regolate dalla struttura PARINFO28.
Per quanto riguarda il tentativo di linearizzazione, ci si è affidati a LINFIT, anch’essa già implementata nel pacchetto di IDL: si tratta di una funzione che fitta una coppia di dati verso un modello lineare, 𝑦 = 𝐴 + 𝐵𝑥, minimizzando l’errore statistico del Chi-quadro. La procedura richiede come argomenti in ingresso due vettori (X e Y) e restituisce come risultato un vettore a due elementi, contenente i parametri del modello (A e B)29.
Per la gestione delle immagini radiologiche è stato utilizzato il software open source OSIRIX, pienamente compatibile con lo standard DICOM (Digital Imaging and Communication in Medicine, standard ISO 12052 per la manipolazione, l’archiviazione, la
stampa e la trasmissione di immagini mediche; fornisce sia le specifiche del file che i protocolli di comunicazione per il loro interscambio)30.
Fig. 2.8: Ambiente di lavoro di OsiriX. Il limite di questa piattaforma è quello di essere progettata per sviluppare applicazioni solo su sistemi MAC OS
Per calcolare le statistiche sui valori dei pixel appartenenti a delle regioni (ROI) opportunamente selezionate sulle immagini RM reali, è stato sfruttato un plugin incorporato in IMAGEJ, un software open source programmato in Java. Si tratta di un programma informatico sviluppato dal National Institutes of Health (USA), che consente di visualizzare, editare ed analizzare diversi formati di immagine, emulando le funzionalità dei più comuni software commerciali per l’image processing31.
Fig. 2.9: ImageJ dà la possibilità di tracciare la ROI nel punto di interesse e di leggere le informazioni statistiche di quell’area
Per lavorare con le immagini RM reali all’interno del codice, sono state utilizzate funzioni come READ_DICOM. Si tratta di una routine scritta in linguaggio IDL (codice reperibile nel file read_dicom.pro presente nell’apposita libreria IDL), capace di leggere una immagine in formato DICOM.
DIALOG_PICKFILE invece è stata utile perché è una funzione che consente di selezionare, in modo interattivo, uno o più file di interesse con un’apposita finestra di selezione.