Bevor wir die Daten auswerten, wollen wir uns zunächst mit den Daten vertraut machen. Das heißt, wir schauen Sie uns an.

Warum sollten wir das tun? Ein Grund könnte sein, dass wir lernen wollen, was allen an Informationen in den Daten steckt. Ein anderer Grund, dass wir lernen wollen, wie wir als menschliche Beobachterinnen diese Informationen nutzen. Erst danach sollten wir versuchen, unser intuitives Vorgehen zu formalisieren, also mit den Daten zu rechnen.

Ein weiterer Grund ist unser ultimates Ziel. Unser Ziel ist es, den verblindeten dritten run zu dekodieren. Wir könnten natürlich sofort damit anfangen, aber wir könnten auch ersteinmal üben Vorhersagen zu treffen. Wie bei der Kalibrierung eines Polygraphen könnte es eine gute Idee sein, zunächst Fragen zu stellen auf die wir die Antworten bereits kennen. Wir wissen Alles über die Daten in den ersten beiden runs, daher bieten diese sich zu Übungszwecken an.

Das heißt, wir können zwei Dinge tun:

  1. die Daten unverblindet anschauen und versuchen Regelmäßigkeiten zu finden, welche die Blöcke auszeichnen
  2. die Daten verblindet anschauen und versuchen, Vorhersagen zu treffen

Was ist der Unterschied? Bei der ersten Variante könnte es sein, dass wir interessante Muster finden, aber wir wissen nicht, wie gut unsere Vorsagen wären, wenn wir diese Muster oder Merkmale benutzen. Dabei kann man schnell in eine Denkweise verfallen, bei der man jeglichem zufälligem Rauschen Bedeutsamkeit zuschreibt.

Bei der zweiten Variante (verblindet) haben wir auch ein Maß dafür, wie prädiktiv die Muster oder Merkmale sein könnten. Wir kriegen Feedback darüber, was funktioniert und was nicht. Das ist eine gute Vorbereitung für die tatsächliche Vorhersage von run 3. Kurz gesagt: Die beste Übung um Vorhersagen zu treffen, ist Vorhersagen zu treffen.

Blindes Training

Wir haben in dem Ordner "blindTraining" Hirnbilder von jedem Block, aber ohne die Namen. Die Namen stehen jeweils in der entsprechenden Textdatei. Ein mögliches Training wäre nun, sich ein Bild anzuschauen, eine Vorhersage zu treffen und dann die eigene Vorhersage mit Hilfe der hinterlegten Textdatei zu überprüfen.


In [1]:
# module um dateien zu lesen
import os
import fnmatch

In [2]:
# liste mit allen hirnbildern die im Ordner blindTraining liegen
imgList = ['../blindTraining/%s'%x for x in os.listdir('../blindTraining/') if fnmatch.fnmatch(x,'*.nii.gz')]
imgList.sort()

In [3]:
imgList


Out[3]:
['../blindTraining/img001_s000.nii.gz',
 '../blindTraining/img001_s008.nii.gz',
 '../blindTraining/img001_s016.nii.gz',
 '../blindTraining/img002_s000.nii.gz',
 '../blindTraining/img002_s008.nii.gz',
 '../blindTraining/img002_s016.nii.gz',
 '../blindTraining/img003_s000.nii.gz',
 '../blindTraining/img003_s008.nii.gz',
 '../blindTraining/img003_s016.nii.gz',
 '../blindTraining/img004_s000.nii.gz',
 '../blindTraining/img004_s008.nii.gz',
 '../blindTraining/img004_s016.nii.gz',
 '../blindTraining/img005_s000.nii.gz',
 '../blindTraining/img005_s008.nii.gz',
 '../blindTraining/img005_s016.nii.gz',
 '../blindTraining/img006_s000.nii.gz',
 '../blindTraining/img006_s008.nii.gz',
 '../blindTraining/img006_s016.nii.gz',
 '../blindTraining/img007_s000.nii.gz',
 '../blindTraining/img007_s008.nii.gz',
 '../blindTraining/img007_s016.nii.gz',
 '../blindTraining/img008_s000.nii.gz',
 '../blindTraining/img008_s008.nii.gz',
 '../blindTraining/img008_s016.nii.gz',
 '../blindTraining/img009_s000.nii.gz',
 '../blindTraining/img009_s008.nii.gz',
 '../blindTraining/img009_s016.nii.gz',
 '../blindTraining/img010_s000.nii.gz',
 '../blindTraining/img010_s008.nii.gz',
 '../blindTraining/img010_s016.nii.gz',
 '../blindTraining/img011_s000.nii.gz',
 '../blindTraining/img011_s008.nii.gz',
 '../blindTraining/img011_s016.nii.gz',
 '../blindTraining/img012_s000.nii.gz',
 '../blindTraining/img012_s008.nii.gz',
 '../blindTraining/img012_s016.nii.gz',
 '../blindTraining/img013_s000.nii.gz',
 '../blindTraining/img013_s008.nii.gz',
 '../blindTraining/img013_s016.nii.gz',
 '../blindTraining/img014_s000.nii.gz',
 '../blindTraining/img014_s008.nii.gz',
 '../blindTraining/img014_s016.nii.gz',
 '../blindTraining/img015_s000.nii.gz',
 '../blindTraining/img015_s008.nii.gz',
 '../blindTraining/img015_s016.nii.gz',
 '../blindTraining/img016_s000.nii.gz',
 '../blindTraining/img016_s008.nii.gz',
 '../blindTraining/img016_s016.nii.gz',
 '../blindTraining/img017_s000.nii.gz',
 '../blindTraining/img017_s008.nii.gz',
 '../blindTraining/img017_s016.nii.gz',
 '../blindTraining/img018_s000.nii.gz',
 '../blindTraining/img018_s008.nii.gz',
 '../blindTraining/img018_s016.nii.gz',
 '../blindTraining/img019_s000.nii.gz',
 '../blindTraining/img019_s008.nii.gz',
 '../blindTraining/img019_s016.nii.gz',
 '../blindTraining/img020_s000.nii.gz',
 '../blindTraining/img020_s008.nii.gz',
 '../blindTraining/img020_s016.nii.gz',
 '../blindTraining/img021_s000.nii.gz',
 '../blindTraining/img021_s008.nii.gz',
 '../blindTraining/img021_s016.nii.gz',
 '../blindTraining/img022_s000.nii.gz',
 '../blindTraining/img022_s008.nii.gz',
 '../blindTraining/img022_s016.nii.gz',
 '../blindTraining/img023_s000.nii.gz',
 '../blindTraining/img023_s008.nii.gz',
 '../blindTraining/img023_s016.nii.gz',
 '../blindTraining/img024_s000.nii.gz',
 '../blindTraining/img024_s008.nii.gz',
 '../blindTraining/img024_s016.nii.gz',
 '../blindTraining/img025_s000.nii.gz',
 '../blindTraining/img025_s008.nii.gz',
 '../blindTraining/img025_s016.nii.gz',
 '../blindTraining/img026_s000.nii.gz',
 '../blindTraining/img026_s008.nii.gz',
 '../blindTraining/img026_s016.nii.gz',
 '../blindTraining/img027_s000.nii.gz',
 '../blindTraining/img027_s008.nii.gz',
 '../blindTraining/img027_s016.nii.gz',
 '../blindTraining/img028_s000.nii.gz',
 '../blindTraining/img028_s008.nii.gz',
 '../blindTraining/img028_s016.nii.gz',
 '../blindTraining/img029_s000.nii.gz',
 '../blindTraining/img029_s008.nii.gz',
 '../blindTraining/img029_s016.nii.gz',
 '../blindTraining/img030_s000.nii.gz',
 '../blindTraining/img030_s008.nii.gz',
 '../blindTraining/img030_s016.nii.gz',
 '../blindTraining/img031_s000.nii.gz',
 '../blindTraining/img031_s008.nii.gz',
 '../blindTraining/img031_s016.nii.gz',
 '../blindTraining/img032_s000.nii.gz',
 '../blindTraining/img032_s008.nii.gz',
 '../blindTraining/img032_s016.nii.gz',
 '../blindTraining/img033_s000.nii.gz',
 '../blindTraining/img033_s008.nii.gz',
 '../blindTraining/img033_s016.nii.gz',
 '../blindTraining/img034_s000.nii.gz',
 '../blindTraining/img034_s008.nii.gz',
 '../blindTraining/img034_s016.nii.gz',
 '../blindTraining/img035_s000.nii.gz',
 '../blindTraining/img035_s008.nii.gz',
 '../blindTraining/img035_s016.nii.gz',
 '../blindTraining/img036_s000.nii.gz',
 '../blindTraining/img036_s008.nii.gz',
 '../blindTraining/img036_s016.nii.gz',
 '../blindTraining/img037_s000.nii.gz',
 '../blindTraining/img037_s008.nii.gz',
 '../blindTraining/img037_s016.nii.gz',
 '../blindTraining/img038_s000.nii.gz',
 '../blindTraining/img038_s008.nii.gz',
 '../blindTraining/img038_s016.nii.gz',
 '../blindTraining/img039_s000.nii.gz',
 '../blindTraining/img039_s008.nii.gz',
 '../blindTraining/img039_s016.nii.gz',
 '../blindTraining/img040_s000.nii.gz',
 '../blindTraining/img040_s008.nii.gz',
 '../blindTraining/img040_s016.nii.gz',
 '../blindTraining/img041_s000.nii.gz',
 '../blindTraining/img041_s008.nii.gz',
 '../blindTraining/img041_s016.nii.gz',
 '../blindTraining/img042_s000.nii.gz',
 '../blindTraining/img042_s008.nii.gz',
 '../blindTraining/img042_s016.nii.gz',
 '../blindTraining/img043_s000.nii.gz',
 '../blindTraining/img043_s008.nii.gz',
 '../blindTraining/img043_s016.nii.gz',
 '../blindTraining/img044_s000.nii.gz',
 '../blindTraining/img044_s008.nii.gz',
 '../blindTraining/img044_s016.nii.gz',
 '../blindTraining/img045_s000.nii.gz',
 '../blindTraining/img045_s008.nii.gz',
 '../blindTraining/img045_s016.nii.gz',
 '../blindTraining/img046_s000.nii.gz',
 '../blindTraining/img046_s008.nii.gz',
 '../blindTraining/img046_s016.nii.gz',
 '../blindTraining/img047_s000.nii.gz',
 '../blindTraining/img047_s008.nii.gz',
 '../blindTraining/img047_s016.nii.gz',
 '../blindTraining/img048_s000.nii.gz',
 '../blindTraining/img048_s008.nii.gz',
 '../blindTraining/img048_s016.nii.gz',
 '../blindTraining/img049_s000.nii.gz',
 '../blindTraining/img049_s008.nii.gz',
 '../blindTraining/img049_s016.nii.gz',
 '../blindTraining/img050_s000.nii.gz',
 '../blindTraining/img050_s008.nii.gz',
 '../blindTraining/img050_s016.nii.gz']

Liste mit allen Antworten


In [4]:
# liste mit allen hirnbildern die im Ordner blindTraining liegen
codeList = ['../blindTraining/%s'%x for x in os.listdir('../blindTraining/') if fnmatch.fnmatch(x,'*.txt')]
codeList.sort()

In [5]:
codeList


Out[5]:
['../blindTraining/ans001.txt',
 '../blindTraining/ans002.txt',
 '../blindTraining/ans003.txt',
 '../blindTraining/ans004.txt',
 '../blindTraining/ans005.txt',
 '../blindTraining/ans006.txt',
 '../blindTraining/ans007.txt',
 '../blindTraining/ans008.txt',
 '../blindTraining/ans009.txt',
 '../blindTraining/ans010.txt',
 '../blindTraining/ans011.txt',
 '../blindTraining/ans012.txt',
 '../blindTraining/ans013.txt',
 '../blindTraining/ans014.txt',
 '../blindTraining/ans015.txt',
 '../blindTraining/ans016.txt',
 '../blindTraining/ans017.txt',
 '../blindTraining/ans018.txt',
 '../blindTraining/ans019.txt',
 '../blindTraining/ans020.txt',
 '../blindTraining/ans021.txt',
 '../blindTraining/ans022.txt',
 '../blindTraining/ans023.txt',
 '../blindTraining/ans024.txt',
 '../blindTraining/ans025.txt',
 '../blindTraining/ans026.txt',
 '../blindTraining/ans027.txt',
 '../blindTraining/ans028.txt',
 '../blindTraining/ans029.txt',
 '../blindTraining/ans030.txt',
 '../blindTraining/ans031.txt',
 '../blindTraining/ans032.txt',
 '../blindTraining/ans033.txt',
 '../blindTraining/ans034.txt',
 '../blindTraining/ans035.txt',
 '../blindTraining/ans036.txt',
 '../blindTraining/ans037.txt',
 '../blindTraining/ans038.txt',
 '../blindTraining/ans039.txt',
 '../blindTraining/ans040.txt',
 '../blindTraining/ans041.txt',
 '../blindTraining/ans042.txt',
 '../blindTraining/ans043.txt',
 '../blindTraining/ans044.txt',
 '../blindTraining/ans045.txt',
 '../blindTraining/ans046.txt',
 '../blindTraining/ans047.txt',
 '../blindTraining/ans048.txt',
 '../blindTraining/ans049.txt',
 '../blindTraining/ans050.txt']

Beispiel:

Wir haben von jedem Block drei Bilder:

  • kein Smoothing (s000)
  • 8mm Smoothing (s008)
  • 16mm Smoothing (s016)

In [6]:
from nilearn import plotting
import matplotlib.pylab as plt
%matplotlib inline

In [7]:
for img in imgList[:3]:
    plotting.plot_stat_map(img,title=img)
    plt.show()


Diese Bilder können wir uns z.B. mit fslview oder mricroGL anschauen; entweder einzeln oder kombiniert (so könnten wir auch etwas über den Effekt der Glättung auf unterschiedliche Regionen lernen).


In [8]:
%%bash

fslview ../data/wbet_mpr_2mm.nii.gz ../blindTraining/img001_s000.nii.gz ../blindTraining/img001_s008.nii.gz ../blindTraining/img001_s016.nii.gz

Danach können wir uns die Auflösung anschauen


In [9]:
%%bash

gedit ../blindTraining/ans001.txt

In [10]:
with open('../blindTraining/ans001.txt','r') as f:
    print f.read()


Die richtige Antwort lautet:
homewalk_026_kriche!

Wie immer gilt: "anything goes". D.h. jede Art von Darstellung, Glättung und Schwellenwert sind erlaubt, ebenso Wikipedia, Neurosynth, Atlanten, Darstellung im Volumen oder auf der Hirnoberfläche etc. Eine weitere Hilfe könnten die gemittelten Hirnantworten pro Bedingung sein. D.h. es könnte Sinn machen zu schauen, wie eigentlich die 5-Minuten langen Mittlungen pro Bedingung aussehen. Zur Erinnerung: Diese liegen in

>> ../data/gemittelteHirnbilderSmoo.nii.gz

  • Volume 0: Gesichter
  • Volume 1: Homewalk
  • Volume 2: Motorik
  • Volume 3: Ruhe
  • Volume 4: Sprache

In [11]:
%%bash

fslview ../data/gemittelteHirnbilderSmoo.nii.gz  -l Red-Yellow -b 0.2,1.0 ../data/wbet_mpr_2mm.nii.gz -l Grey -b 200,1000

Außerdem sind sie auch online auf neurovault.org


In [12]:
from IPython.display import IFrame
IFrame('http://www.neurovault.org/collections/2282/', width=800, height=600)


Out[12]:

Viel Erfolg!