1
|
|
2
|
- Schwerpunkt: Anwendung
- Nicht: mathematische Grundlagen
- Links:
- Generell:
- SPM recht kompliziert & bedienungsunfreundlich
- Aber: sehr flexibel:
- eine Lösung für alle Daten & Probleme
- open source: neue Tools leicht zu schreiben
|
3
|
- SPM2 und SPM99 i.d.R. nicht kompatibel!
- SPM2 läuft inzwischen stabil
- SPM2 wesentlich langsamer als SPM99, insbesondere mit älterem Matlab
(5.x)
- SPM2 Ergebnisse nicht viel besser
- Scripting unter SPM2 einfacher
- Reviewer verlangen inzwischen SPM2
- Manche Tools arbeiten nur mit SPM99, nur wenige mit SPM2
|
4
|
- SPM download (free ware)
- http://www.fil.ion.ucl.ac.uk/spm/spm2.html
- Check for updates!!
- SPM docus:
- http://www.fil.ion.ucl.ac.uk/spm/dox.html
- SPM extensions:
- http://www.fil.ion.ucl.ac.uk/spm/ext/
- Email discussion list:
- http://www.fil.ion.ucl.ac.uk/spm/help/
|
5
|
- SPM braucht Matlab
- Matlab kostet Geld, SPM ist open source
- Matlab 6.5 schneller als 5.x
- Nicht die neueste Matlab-Version nehmen! Bugs
- I.d.R. keine weiteren Toolboxen nötig
- SPM/Matlab ist ressourcenintensiv
- Schneller Rechner mit viel Speicher
- Matlab-Tuning
- e.g. mit 'matlab –nojvm' starten
- Siehe email discussion list SPM
|
6
|
- SPM verlangt Analyze 3D Format
- Nützlich: MRIcro
- http://www.psychology.nottingham.ac.uk/staff/cr1/mricro.html
- Daten importieren
- Orientierung ändern
- Schädel entfernen
- Schnelle Bildchen
(blobs auf anat)
|
7
|
- Event-related - Design
- Zufällige Trialabfolge
- Mehrere Bedingungen
- Funktioneller Scan:
- alle 2s ein Bild mit 20 Schichten (TR=2s)
- Auflösung: 3 x 3 mm, 5 mm between planes
- Dauer: 700 Volumes
- Anatomischer Scan:
|
8
|
- Scanner-Daten umwandeln in Analyze
- 2 Dateien pro Zeitpunkt (.img & .hdr)
- 850 volumes: 1700 Dateien
- Die ersten func Bilder wegwerfen
- Magnetische Saturierung (T1 => T2*)
- =>
|
9
|
|
10
|
- Open image [analyze]
- Save as…
- z.B. Format Coronal-Up
- Flip Top/Bottom
- Rotate
- Check with Preview
- Check against SPM Template!
- Achtung: SPM2: L=L (SPM99 R=L)
- Wichtig: Check Rechts/Links!
|
11
|
- Wenn richtig,
sollte es so aussehen:
|
12
|
- Matlab starten
- edit (ruft Matlab-Editor auf)
- function paths();
- path('d:\matlab\spm2',path);
- path('d:\matlab\spm_updates', path);
- ..... (weitere Pfade zu Skripten, Tools etc.)
- save as: pfad.m
- ins Arbeitsverzeichnis: d:\matlab\work
- > pfad %lädt Pfade
- > spm fmri %startet SPM
|
13
|
|
14
|
|
15
|
- Prepro
- Statistik
- (Skript)
|
16
|
- Prepro
- Statistik
- Ergebnisse
- (Menü,Skript)
|
17
|
- Prepro
- Statistik
- Ergebnisse
- Utilities
- (Menü)
|
18
|
- Realignment (Bewegungskorrektur)
- Slice time correction
- Korrektur des Zeitunterschiedes beim Messen der Schichten
- Coregistration (evtl. optional)
- Registrierung beider Bilder (anat zu func)
- Normalization
- Angleichen der Bildes auf ein Template (im T&T Koordinatensystem)
- Smoothing (räumlicher Filter)
|
19
|
- =
Bewegungskorrektur
- Bezugspunkt:
- Angeben:
- VP Anzahl
- Zahl der Runs/Sesions pro VP
- Bilder auswählen: s*.img
- Auswählen:
- Coregister & Resclice
- Create: all images and mean image
|
20
|
|
21
|
- Output:
- r*.mat, wenn reslice: r*.img/.hdr
- rp_aV0001.txt
- mean_img/.hdr
- eine .ps Datei pro VP (Graphik)
- rp_aV0001.txt:
- 6 Spalten mit Zahlen pro Bild: 3 params Translation, 3 params Rotation
- kann man als Regressor in die Analyse stecken
|
22
|
- Neue Option: Unwarp
- korrigiert Bildverzerrung durch Bewegung
(ein Faktor von vielen)
- kostet doppelt soviel Rechenzeit
- Verzerrung hängt ab von
- Feldstärke (viel ist schlecht)
- Meßsequenz (EPI), Spulenform
- Kopfgröße (groß ist schlecht)
- Verzerrung auch ein Problem für Coreg!
|
23
|
- Prozedur:
- Suche die 6 Parameter (3 translation, 3 Rotation) die die
Helligkeitsunterschiede zwischen zwei Scans minimieren
- 6 Params = rigid body transformation
- 3D Prozedur (alle Schichten mit Dicke)
- Parameter beziehen sich immer auf den Bezugspunkt (das erste Bild)
einer Meßreihe
|
24
|
- Caveat 1:
- wenn Bezugspunkt <> 1. Bild muß auch Coreg angepaßt werden.
- Caveat 2:
- wenn nur coreg (ohne reslice)
- es kann kein mean image erstellt werden
- .mat Dateien werden von slice time ignoriert
- Aber: erspart Interpolationsfehler. (Abhilfe: 7th degree B-spline
statt 4th als Methode wählen)
|
25
|
- Ziel: Zeitdifferenz der Messung der einzelnen Schichten korrigieren
- Reihenfolge:
- eher als realignment, wenn interleaved
- ansonsten nach realignment
- Parameter:
- ascending (1st = bottom slice) oder descending
- interleaved (1,3,5,7....2,4,6,...)
- Reference slice: mittlere Schicht (Default)
|
26
|
- Number of subjects /sessions angeben:
- Bilder auswählen (alle *.img)
- Order of slices :
- Ascending: 1 2 3 4 ..24; 1:24
- Interleaved: 1 3 5 … 2 4 6
- TR angeben (Zeit zwischen 2 Scans)
- TA angeben
- = Messbeginn des letzten
slices. Bei kontinuierlicher Messung = (TR / # slices) * (# slices -
1) (Default-Vorschlag von SPM)
- Output: a*.img/.hdr/.mat
|
27
|
|
28
|
- Prozedur:
- berücksichtigt die gesamte Zeitreihe pro Voxel in einer Schicht
- transformiert Zeitreihe in Frequenzraum (Fourier Transformation)
- Phasenverschiebung um Zeit der Messung dieser Schicht
- Rücktransformation in Zeitreihe
|
29
|
- Caveat 1: Orientierung
- vorher Umorientieren kann problematisch sein
- Umorientieren in SPM erzeugt nur .mat, wird von slice time ignoriert
- Caveat 2: 1st = bottom slice:
- Wie weiß ich (Orientierung)
was der Algorithmus als 1st ansieht?
- + In "Display" template anzeigen lassen, die unterste axiale
Schicht = 1st
- + Mit eigenen Analyze-Rohdaten vergleichen
|
30
|
- Mit MRIcro problematisch
- SPM2 => Display
- Geht für beliebig viele Dateien
- Problem: Schreibt Bildchen nicht neu, sondern legt nur eine
Parameter-Datei (.mat-File) an.
- Bilder neuschreiben: es gibt Tools, z.B. Volumes toolbox
|
31
|
|
32
|
|
33
|
- Verschieben von Anat zu func
- nach realign sind func Bilder an Position des 1.
- nach coreg gilt das auch für das anat. Bild
- R=R/R=L (in den Defaults) beachten!
- hack in spm_defaults.m, nicht über Menü!
- Auswählen: Coreg only
- Bilder wählen
- Target (Erstes funktionelles Bild)
- Source (Anatomisches Bild)
- Other images: "Done" wählen
|
34
|
|
35
|
- Output:
- wenn nur coreg: anat_xx.mat
wenn mit reslice: auch anat_xx.img/.hdr
im Verzeichnis des anatomischen Bildes (wenn nicht, unschlau!)
- eine (wenig nützliche) Graphik (spm.ps)
besser: 'Check Reg'
|
36
|
- Prozeduren:
- (Problem: Kontrast sehr verschieden: T1 vs. T2*)
- berechne (6) parameter für rigid body transformation (keine
Verzerrungen!)
- wenn Verzerrung, andere Software benutzen!
- 2 Verfahren:
- SPM2: verschiedene Arten MI (mutual information)
- SPM99: Segmentation & MI
- Segmentieren von anat und func in white/grey matter
- Coreg beider Teile zueinander
- Beides gut, aber nicht immer erfolgreich
|
37
|
- Check!
- 'Display'
- 'Check Reg'
|
38
|
- Achten auf:
- Gehirngrenzen
- Gehirngröße
(Normalisierung)
- Ventrikellage
- rechts/links
|
39
|
- Caveat 1:
- für coreg und norm muß die Orientierung func und anat in etwa stimmen
(vgl. template)!
- Caveat 2:
- wenn an anat normalisiert wird muß Coreg anat zu func wirklich ok sein!
- so nicht: Coreg in SPM2 mehrfach ausführen
- Coreg auf andere Art ausführen (andere Option in SPM Defaults wählen)
- Coreg in SPM99 auführen (Segmentierung)
|
40
|
- 2 Methoden:
- am einfachsten:
- normalisiere func an func template (check!)
- anat & coreg werden gar nicht benötigt
- geht nur, wenn func ohne Artefakte!
- am sichersten:
- coreg anat zu func (check!)
- normalisiere anat an anat template (check!)
- wende norm params auf func an (check!)
|
41
|
|
42
|
- Interpolationsmöglichkeiten:
- optimal: 7th degree B-spline
- default realign: 4th degree B-spline
- default normalize: trilinear
- Flip (R/L):
- Hack in Zeile 28 von spm_defaults.m
- defaults.analyze.flip =
1; (1="yes")
|
43
|
- Func an Func Template
- schätze Parameter
- am besten: schätze Params an func mean image
- defaults: voxelgröße ändern (3 x 3 x 3)
- write normalized
- berücksichtigt .mat aus der moco (wenn ohne reslice)
- write mean (zum checken), wenn ok, alle anderen.
- Caveat:
- Problematisch, wenn func viele schwarze Löcher hat =>
Übernormalisierung (insbes. in SPM99)
|
44
|
|
45
|
- Output: w*.img/.hdr
- Ergebnis: vgl. mit Coreg:
|
46
|
- 2. Methode: normalisiere über anat
- coreg anat zu func (check!!!)
- normalisiere anat an anat template
- estimate parameters & write normalized
- jeweils defaults/write norm. ändern
- 1mm voxel füer anat, 3 mm voxel für func
- die Anat parameter auf func anwenden
- Parameter: anat_xx_sn.mat im anat Verzeichnis
- nur: write normalized
- erst auf func mean image anwenden (check!)
- dann auf alle (dauert lange! 1h / VP)
|
47
|
|
48
|
- Was tun, wenn es nicht klappt?
- Größe stimmt nicht (Skull ist Problem)
- Parameter in defaults - estimate params ändern
- wenig erfolgreiche Fummelei
- mit skulled Anat/Template versuchen
- skull entfernen mit MRIcro
- Template: SPM2 .mnc template format ist Problem für MRIcro.
Alternative SPM99 template. Aber: SPM99 template hat andere R/L
Orientierung! Vorher spiegeln
|
49
|
- Output: (prefix: w)
- war_xx.img/.hdr
- wenig nützliche Graphik
- Templates:
- Func: nur EPI.img (=Mittel aus 13 VPs)
- Anat: egal
- T1.img = Mittel aus 152 Hirnen
- single_subj_T1.mnc (canonical) = Mittel aus mehreren scans einer VP) à für BA-Prob.maps aus Jülich
|
50
|
- nur affin (linear).
- (Default: nichtlinear, 16 iterations)
- linear = 12 Parameter
- 6 rigid body transformation
- 3 shears, 3 zooms
- Defaults: parameter estimation
|
51
|
- Caveat 1 (func an func):
- Bei Signalausfällen Übergeneralisierung
- cutoff verkleinern
- nur affin normalisieren
- Caveat 2 (func an anat):
- coreg anat chechen
- norm. anat checken (skull => Gehirngröße!)
- Nachteil: kompliziertere Methode
- Vorteil: Check mit individueller Anat möglich
|
52
|
- Filtergröße angeben (in mm FWHM)
- 2 bis 3 fache func voxelgröße
- 3 fach ist ideal für Gültigkeit/Sensitivität der Statistik
- abhängig von anat. Hypothesen!
- klein: 3 bis 6 mm; groß: 10 bis 12 mm (3 mm voxel)
- klein für kleine Strukturen (e.g. Hippocampus)
- klein für Gebiete mit geringer anat. Variation
- e.g., primäre sensorische/motorische Areale
- groß für Gebiete mit hoher anat. Variation
- e.g. frontale / parietale Gebiete
- Scans auswählen
|
53
|
- isotrop: z.B. 6 (= 6 x 6 x 6mm)
- anisotrop: z.B. 6 6 10 (= 6 x 6 x10 mm)
- Output: s*.img/.hdr
|
54
|
- Caveat 1 (zu klein):
- Coreg/Norm muss exakt stimmen
- Motioncorrection sollte gut sein
- Statistik nicht sehr sensitiv
- Abgrenzung von Vogeldreck schwierig
- Caveat 2 (zu groß):
- Problem der Lokalisation / Abgrenzung
- Gut für erste grobe Analyse
|
55
|
- swar*.img/.hdr => in die Statistik
- Zahl der Datensätze
- bei 700 scans pro VP:
- Rohdaten: 2*700
- realign: 3*700, slice time: 3*700
- norm: 2*700, smooth: 2*700
- Total: 12*700 = 8400 Dateien!
- Bottleneck: Festplattenzugriffszeit!
- SPM2_neu: Analyze 4d oder .mnc ?
- Zeitaufwendig: realign & normalize
|
56
|
|