Navigation

A) Zufallszahlen und Verteilungen

Mit Hilfe von experimentellen Messungen versucht man, allgemeingueltige Aussagen zu treffen und Regeln fuer untersuchte Zusammenhaenge aufzustellen.  Man variiert einen Parameter (z.B. Menge an Duenger) und beobachtet den dadurch hervorgerufenen Effekt auf eine Messgroesse. Dies waere sehr einfach, wenn grundsaetzlich jede Beobachtung immer gleich ausfallen wuerde, wenn man sie mehrfach wiederholt. In der Realitaet ist dies allerdings nicht der Fall: Messdaten haengen grundsaetzlich zumindest in einem bestimmten Rahmen vom Zufall ab, denn in einem Experimente koennen niemals alle Zufallsfaktoren ausgeschlossen werden. (Z.B. koennte es bei einer Studie ueber die Wirksamkeit eines Medikaments  einen Einfluss haben, wieviel die Patienten geraucht haben oder ob sie gerade Stress hatten.) Selbst wenn man davon ausgeht, dass es eine eindeutige Abhaengigkeit zwischen dem variierten Parameter und der untersuchten Groesse gibt, werden die Messwerte unterschiedlich ausfallen, sie streuen um den erwarteten Wert.

Schaut man sich sehr viele Messwerte fuer ein in immer gleicher Weise wiederholtes Experiment an, ergibt sich eine Verteilung. Diese gibt an, wie wahrscheinlich es ist, dass ein bestimmter Messwert beobachtet wird. Die meisten biologischen Daten lassen sich durch eine Normalverteilung  (auch Gauß-Verteilung genannt)  beschreiben, bei der Messwerte umso haeufiger auftreten, je naeher sie am Mittelwert der Verteilung liegen. (Auf die  Eigenschaften von Normalverteilungen werden wir in Teil B naeher eingehen.) Eine andere wichtige Verteilung ist die Gleichverteilung, bei der alle Werte in einem bestimmten Bereich mit gleicher Wahrscheinlichkeit auftreten.

Bevor wir uns mit der Auswertung von echten Messdaten beschaeftigen, erzeugen wir zunaechst einmal selber "Messdaten" mit Matlab, naemlich Zufallszahlen. Diese werden beispielsweise gebraucht, wenn man Experimente plant, in denen bestimmte Reize in zufaelliger Reihenfolge praesentieren werden sollen. Eine weitere wichtige Anwendung sind Simulationen biologischer Prozesse.

T6A1) Zufallszahlen werden in Matlab mit zwei Funktionen erzeugt: rand und randn. Beide Funktionen bekommen als Eingaben die Dimensionen der Matrix mit Zufallszahlen, die sie erzeugen und zurueckliefern sollen. Erzeugen Sie sich einige Beispiele der Zufallszahlen:Was passiert, wenn man die Funktionen mehrfach hintereinander in gleicher Weise aufruft?
In welchen Bereich liegen die Werte fuer die beiden Funktionen?
Was koennte der Unterschied zwischen den beiden Funktionen sein?

T6A2)  Erzeugen Sie sich jeweils einen sehr langen Vektor (z.B. 10000 Punkte) mit jeder der beiden Funktionen rand und randn und schauen Sie sich die jeweilige Verteilung der Zufallszahlen mit dem Befehl hist an.
Was sind die unterschiede zwischen den beiden Verteilungen?
In seiner Standardversion teilt hist die Daten in 10 gleich grosse Bereiche ein, in denen jeweils die Anzahl der Datenpunkte gezaehlt werden. Beim Aufruf hist(v,n) teilt hist den Vektor v in n gleich grosse Bereiche ein. Sehen Sie sich die Verteilungen fuer verschiedene Werte von n an.

T6A3) Modifizieren Sie Ihre Zufallsvektoren, indem Sie sie
- mit verschiedenen Faktoren multiplizieren
- verschiedene Zahlen hinzuaddieren
Wie wirken sich diese Aenderungen auf die Verteilungen aus? 

T6A4) Die Funktion hist kann man auch auf Matrizen anwenden, dann  wird jede Spalte als Histogramm dargestellt. Erzeugen Sie sich eine Matrix mit zwei gegeneinander verschobenen Verteilungen und stellen diese grafisch dar.

*T6A5) Wie erzeugt man eine bimodale Verteilung (Eine Verteilung mit zwei Gipfeln)?

T6A6) Eine weitere Funktion, um Zufallszahlen zu erzeugen, ist die Funktion randperm. v=randperm(n) liefert einen Vektor der ganzen Zahlen von 1 bis n in zufaelliger Reihenfolge.

T6A7) Schreiben Sie eine Funktion wuerfel, die Ihnen eine ganze Zahl zwischen 1 und 6 zurueckgibt. Benutzen Sie diese Funktion in einer weiteren Funktion wuerfel_verteilung die als Eingabewert bekommt, wie oft gewuerfelt wird und als Ausgabe die Verteilung der erzielten Wuerfelergebnisse zurueckliefert.
*)Wie erzeugen Sie diese Verteilung mit den Ihnen bisher bekannten Methoden?
Eine bequeme Methode, um Verteilungen zu ermitteln, ist ebenfalls die Funktion hist. Wird diese mit einem Ausgabeargument aufgerufen, z.B. h=hist(v,n) stellt sie Ihr Ergebnis nicht grafisch dar, sondern gibt es als Vektor zurueck.


B) Mittelwert und Standardabweichung

Fuer eine normalverteilte Zufallsvariable x entspricht die Wahrscheinlichkeitsdichte folgender Formel:

Normalverteilung

wobei μ den Mittelwert und σ die Standardabweichung der Wahrscheinlichkeitsverteilung angibt. Da die Normalverteilung in der Biologie eine so wichtige Rolle spielt, beschaeftigen wir uns hier etwas ausfuehrlicher damit.

T6B1) Bei den oben betrachteten Verteilungen ist es relativ einfach den Mittelwert abzuschaetzen. Plotten Sie noch einmal Verteilungen vieler mit rand bzw randn erzeugter Zufallszahlen und versuchen Sie aus der Grafik abzuschaetzen:
Was ist der Mittelwert? Was ist die Standardabweichung?

 T6B2) Berechnen Sie Mittelwerte, Standardabweichungen, Varianzen, Minima und Maxima Ihrer beiden Vektoren mit mean, std, var, min und max.
Wie wirkt es sich auf diese Werte aus, wenn Sie eine feste Zahl zu den jeweiligen Vektoren addieren?
Wie wirkt sich eine Multiplikation mit einem Faktor aus?

T6B3) Laden Sie noch einmal den Vektor mit den Anzahlen Sonnenblummenkernen [sbkerne.mat]. Berechnen Sie Mittelwert, Varianz und Standardabweichung. Wie habe ich diesen Vektor erzeugt? (Nein, ich habe mich nicht in den Garten gesetzt und gezaehlt...)

*T6B4) Setzen Sie die oben angegebenen Formel fuer die Wahrscheinlichkeitsdichte einer Normalverteilung in Matlab um. Schreiben Sie eine Funktion, die fuer die Eingabeargumente x (ein Vektor, der den Definitionsbereich angibt, z.B. x=-4:0.01:4), Mittelwert und Standardabweichung die entsprechende Wahrscheinlichkeitsdichteverteilung als Vektor zurueckgibt und als Kurve grafisch darstellt (bitte mit Titel und beschrifteten Achsen).
Spielen Sie etwas mit den Parametern Mittelwert und Standardabweichung. Wie veraendern diese die Kurve?

C) Schwellwerte

Mit Schwellwerten kann man Bereiche eingrenzen, in denen man seine Daten betrachten moechte. Dies ist insbesondere sinnvoll, um "Ausreisser" herauszufiltern, die bei der gegebenen Verteilung der Messwerte ausgesprochen selten vorkommen.

Eine zweite wichtige Anwendung von Schwellwerten ist, aus zwei Verteilungen stammende Messwerte voneinander abzugrenzen. Beispielsweise ueberlappen sich die Verteilungen der Koerpergroessen von Maennern und Frauen (denn es gibt Frauen, die groesser sind als viele Maenner). Stellen Sie sich vor, Sie bekommen die Aufgabe, aus der Koerpergroesse auf das Geschlecht zurueckzuschliessen und kennen die Verteilungen der Koerpergroessen. Fuer solche Aufgaben wird oft das Prinzip "Maximum Likelihood" verwendet: Tippe auf die Verteilung mit der hoeheren Wahrscheinlichkeit fuer den gegebenen Wert. Mit dieser Idee laesst sich ein Schwellwert bestimmen, unterhalb dessen man auf die Verteilung mit dem kleineren Mittelwert tippen sollte. Dieser Schwellwert ist der Schnittwert der Verteilungen.

T6C1)  Ein Beispiel fuer die Notwendigkeit, "Ausreisser" zu finden, haben wir vor ein paar Tagen schon gesehen, bei der Messung des pHwertes im Aquarium: [phWerte.mat]

Schreiben Sie Programme, die folgende Aufgaben fuer beliebige phWert-Vektoren loesen:
- Bestimmen Sie Minimum, Maximum, Mittelwert und Standardabweichung.
- Finden Sie heraus, an welchen Stellen in der Datei die "Ausreisser" liegen.
- Loeschen Sie die Ausreisser aus dem Vektor. Was muss man dabei tun, wenn man trotzdem die Information beibehalten moechte, zu welchem Zeitpunkt der Messreihe die einzelnen Datenpunkte jeweils gewonnen wurden?

*T6C2) Erzeugen Sie sich zwei Zufallszahlen, die verschiedenen Normalverteilungen entstammen, die eine mit Mittelwert 5 und Standardabweichung 2, die andere mit Mittelwert 3 und Standardabweichung 1. Berechnen Sie mit der oben aufgefuehrten Formel fuer jede der beiden Zufallszahlen die Wahrscheinlichkeiten, dass sie der einen oder der anderen Verteilung entsammten.
Erweitern Sie dieses Programm fuer zwei Vektoren aus Zufallszahlen aus den oben genannten Verteilungen. Berechnen Sie den Anteil der Zufallszahlen, die nach dem Maximum Likelihood Prinzip der falschen Verteilung zugeordnet wuerden.
Schauen Sie sich die beiden Verteilungen grafisch an. Wo sollte man die Grenze ziehen?
Variieren Sie Mittelwerte und Standardabweichungen der beiden Verteilungen. Wann gibt es mehr und wann weniger Fehler?
**) Schreiben Sie eine Funktion, die fuer die Angabe von zwei Mittelwerten und zwei Standardabweichungen ausgibt, bei welchem Wert man die Grenze ziehen sollte.

D) Hausaufgaben

T6H1)Schreiben Sie eine Funktion lotto, die Ihnen einen Vektor mit 6 ganzen Zahlen zwischen 1 und 49 zurueckgibt.

T6H2) Im bereits benutzten Programm [vogelfang.m] werden drei verschiedene Arten von Zufallszahlen benutzt. Vollziehen Sie dieses Programm nach. Nehmen Sie schrittweise folgende Aenderungen vor:
a) Bei Amseln gibt es 60% Weibchen.
b) Bei Spatzen streut das Gewicht von Weibchen 3 mal mehr als das Gewicht von Maennchen.
c) Es kommen 25% Meisen und 25% Spatzen in der Gegend vor.

*T6H3) Nehmen wir an, sie haben ein paar besonders empfindliche Fische in ihrem Aquarium, in dem die Messreihe [phWerte.mat] vorgenommen wurde. Diese Fische vertragen den Bereich von pH 6.5 bis pH 7.5 gut, sind aber darueber und darunter gefaehrdet. Plotten Sie die phWerte so, dass sie die Messwerte im Toleranzbereich mit blauen, die ausserhalb des Toleranzbereiches mit roten und die Messfehler mit schwarzen Symbolen darstellen. 

Die folgenden Aufgaben koennen Sie entweder heute oder morgen angehen (fangen Sie ruhig heute schonmal damit an und machen morgen weiter):

T6H4) Im Rahmen eines Elektrophysiologie-Praktikums wird ein Strompuls in eine elektronische Modellzelle gegeben und deren Spannungsantwort aufgezeichnet. Die entsprechenden Dateien sind [stimulus.mat] und [antwort.mat] (bzw stimulus_v6.mat und antwort_v6.mat. Laden Sie die Dateien ein und plotten Sie sie
a) in zwei getrennte Abbildungen,
b) in zwei subplots einer Abbildung,
*c) in verschiedenen Farben in ein gemeinsames neues Grafikfenster. Skalieren Sie dabei die Spuren so, dass man beide Antworten vernuenftig sehen kann. (Hier reicht es nicht, die Achsen zu aendern, da sich diese immer auf beide plots beziehen - hier muss man die Daten selber manipulieren.)

T6H5) Die Daten wurden mit 1000 Punkten/Sekunde aufgenommen.
a) Passen Sie die Zeitachsen in den Plots so an, dass Millisekunden dargestellt werden. Beschriften Sie die Achsen mit xlabel('ms'), und ylabel('nA (Stimulus) und mV (Antwort) '). Schreiben Sie mit legend('Beschriftung 1','Beschriftung 2') eine Abbildungslegende.

b) zu welchem exakten Zeitpunkt beginnt die Reaktion relativ zum Reiz? Suchen Sie den Zeitpunkt "per Auge" in der Graphik, indem Sie den entsprechenden Bereich vergroessern. Es kann helfen, den Darstellungsmodus so umzustellen, dass die einzelnen Datenpunkte dargestellt werden.
c) Suchen Sie den Zeitpunkt mit einer Schwellwertfunktion. Was ist ein sinnvoller Schwellwert? Geben Sie den gefundenen Wert in ms an.
*d) Suchen Sie auch den Zeitpunkt, wenn die Reaktion wieder endet.

T6H6) Bestimmen Sie Mittelwert und Standardabweichung der Reaktion der Modellzelle vor, waehrend und nach der Injektion des Strompulses von T6H4. (Hier handelt es sich um eine Mittelung ueber die Zeit.) 

* T6H7) Etwas fuer Grafik-LiebhaberInnen: Da es eigentlich nicht schoen ist, willkuerlich skalierte Daten zusammen in eine Abbildung zu plotten, moechte man fuer die gemeinsame Darstellung von Reiz und Antwort einen plot mit zwei verschieden skalierten y-Achsen benutzen. Wie das geht, sieht man in der Demo [doppelachsenplot.m].
Ergaenzen Sie das Skript um eine Abbildungslegende und suche Sie sich Farben aus, die Ihnen gefallen. 

*) Natuerlich koennte man diesen Plot noch schoener machen, wie es z.B. in [doppelachsenplot_extra.m] gemacht wurde. Was sind die Unterschiede zwischen den beiden Skripten? Was bewirken diese Befehle?

*T6H8)  Wie wir gesehen haben, ist die Antwort einer Apparatur selbst ohne biologisches Praeparat nicht perfekt rauschfrei. Um das Geraeterauschen abzuschaetzen, wurden fuer die Apparatur mit der Modellzelle 100 Messungen (sogenannte "trials") mit dem gleichen Reiz [stimulus.mat] durchgefuehrt und die Antworten als Matrix unter [antworten1khz.mat] abgespeichert. 

Schauen Sie sich ein beliebiges "trial" zusammen mit dem Reiz an. Berechnen und plotten Sie den Zeitverlauf der ueber die trials gemittelten Antwort.
Berechnen und plotten Sie den Mittelwert und die Standardabweichung der jeweils letzten 300ms fuer jedes trial.  Gibt es eine Tendenz? Gibt es Ausreisser?
Sind Mittelwert und / oder Standardabweichung vor, waehrend und nach der Reizung unterschiedlich?

*T6H9) Folgende Daten wurden im Rahmen eines F-Praktikums gewonnen: [spikedaten_kurz.mat]. Es handelt sich dabei um intrazellulaere Messungen des Membranpotentials eines Blutegelneurons. Es wurden 10 Antworten dieser Zelle auf einen jeweils gleichen Reiz aufgezeichnet, einen Strompuls, dessen Zeitverlauf (in nA) im mitgespeicherten Vektor stimulus abgelegt ist. Das Neuron antwortet auf diesen Strompuls mit einer Depolarisation des Membranpotentials, die mit sogenannten "spikes" (Aktionspotentialen) ueberlagert ist. Die Daten wurden mit einer Frequenz von 10000 Datenpunkten pro Sekunde aufgenommen.
a) Schreiben Sie ein Skript, um sich alle Antwortspuren gemeinsam mit dem Zeitverlauf der Reizung anzusehen (das darf auch nacheinander sein).
b) Legen Sie "per Augenmass" eine Schwelle fest, mit der sich die Aktionspotentiale finden lassen. Achtung: jeweils am Ende des Strompulses gibt es in der Antwortspur ein Artefakt. Dieses wollen wir moeglichst nicht als Aktionspotential erkennen.

**T6H10) Schreiben Sie eine Funktion, die als Eingabeargumente die Matrix mit den Messdaten der letzten Aufgabe und einen Schwellwert bekommt und als Ausgabe einen Vektor liefert, wieviele Spikes in den einzelnen Durchlaeufen jeweils ausgeloest wurden.
Bestimmen Sie damit Mittelwert und Standardabweichung der Spikeanzahlen.


Zum 7. Kurstag

Webmptastl3eyzer: Juclqmtta Kreltztz6jberg (jutta.kreuftzberg@hjm3yuol.de) (Stand: 07.11.2019)