Servicenavigation


Sie sind hier:
 
 
Webseite der Vorlesung "Genetische Netzwerke"
im Wintersemester 2012/2013 (2V+1Ü)

 

Vorlesung: Mittwochs um 8:30-10 Uhr in Raum: M/E27

Übung: Mittwochs 10:15-11:00 Uhr in M/748

Kontakt: Marco Grzegorczyk - M/728 [here]

 

Vorlesungsfolien

- Vorlesung Nr. 01 - Folien 01 (10.10.2012) [print] [online] [print_new]

- Vorlesung Nr. 02 - Folien 02 (17.10.2012) [print] [online] [print_new]

- Vorlesung Nr. 03 - Folien 03 (24.10.2012) [print] [online] [print_new]

- Vorlesung Nr. 04 - Folien 03 (31.10.2012)    " "        " "           "   "

- Vorlesung Nr. 05 - Folien 04 (07.11.2012) [print] [online] [print_new]

keine Vorlesung/Übung am 14.11.2012 ---------------------------------

- Vorlesung Nr. 06 - Folien 04b (21.11.2012) [online] [print_new

- Vorlesung Nr. 06 - Folien 05 (21.11.2012) [online] [print_new]  [KORRIGIERT am 28.11.12]

- Vorlesung Nr. 07 - Folien 06 (28.11.2012) [print] [online] [print_new]

- Vorlesung Nr. 08 - Folien 07 (05.12.2012) [online] [print_new]

- Vorlesung Nr. 09 - Folien 08 (12.12.2012) [online] [print_new] [KORRIGIERT am 19.12.12]

- Vorlesung Nr. 10 - Folien 09 (19.12.2012) [online] [print_new] [KORRIGIERT am 09.01.13]

- Vorlesung Nr. 11 - Folien 09 (09.01.2013)      " "            "  "           [A31_Folie]

- Vorlesung Nr. 12 - Folien 10 (16.01.2013) [online] [print_new]

- Vorlesung Nr. 13 - Folien 11 (23.01.2013) [online] [print_new] [KORRIGIERT am 24.01.13]

- Vorlesung Nr. 14 - Folien 12 (30.1.2013) [online] [print_new] [A40]

 ENDE

 

 
Übungsblätter

- Übungsblatt 01 [here] - Abgabetermin: Montag (29.10.12) - dazugehörige Übung war am 31.10. 

- Übungsblatt 02 [here] - Abgabetermin: Montag (05.11.12) - dazugehörige Übung war am 7.11.  [HINWEIS ZU AUFGABE 7]

- Übungsblatt 03 [here] - Abgabetermin: Dienstag (20.11.12) - dazugehörige Übung war am 21.11. 

- Übungsblatt 04 [here] - Abgabetermin: Montag (26.11.12) - dazugehörige Übung war am 28.11. 

- Übungsblatt 05 [here] - Abgabetermin: Montag (03.12.12) - dazugehörige Übung war am 5.12. 

- Übungsblatt 06 [here] - Abgabetermin: Montag (10.12.12) - dazugehörige Übung war am 12.12.

 - Übungsblatt 07 [here] - Abgabetermin: Montag (17.12.12) - dazugehörige Übung war am 19.12.

 - Übungsblatt 08 [here] - Abgabetermin: Montag (07.01.13) - dazugehörige Übung war am 09.01. 

 - Übungsblatt 09 [here] - Abgabetermin: Montag (14.01.13) - dazugehörige Übung war am 16.01. 

- Übungsblatt 10 [here] - Abgabetermin: Montag (21.01.13) - dazugehörige Übung war am 23.01.

- Übungsblatt 11 [here] - Abgabetermin: Montag (28.01.13) [notfalls am Dienstag]

ENDE

 

Hinweis zu Blatt 9:

Blatt 9 enthält bereits die erste Aufgabe von Blatt 10. Aufgabe 37 muss noch nicht zum 14.1.13 bearbeitet werden.

NEUER HINWEIS: Bei den Aufgaben 35 und 36 gilt der Zusammenhang:

T(i,j) = Q(i,j)*A(i,j) nur für i ungleich j.

Für i=j ergeben sich die Diagonalelement T(i,i) der Übergangsmatrix T danach wie folgt: T(i,i) = 1 - (T(i,1) + ... + T(i,i-1) + T(i,i+1) + ... + T(i,k)), so dass alle Zeilensummen der Übergangsmatrix T gleich 1 sind.  

Vergleiche dazu auch die mittlerweile korrigierten Vorlesungsfolien Nr. 09.

 

Hinweis zu Blatt 8:

Das achte Blatt kann zum 7.1.13 noch nicht vollständig bearbeitet werden; zu bearbeiten sind nur die Aufgaben 29-31. Die Aufgabe 32 wird voraussichtlich auf das 9-te Blatt verschoben.

 

Hinweise zu Blatt 4:

1) Das vierte Blatt kann zum 26.11. noch nicht vollständig bearbeitet werden; zu bearbeiten sind deshalb nur die Aufgaben 15 und 16. 

2) Zu bearbeiten sind zusätzlich zu den Aufgaben 15 und 16 von Blatt 4 die beiden Zusatzaufgaben von den Folien 4b.

 

 
 
 
 
 
NEUE R Software (Textfiles)

[Download] der Funktionen strMCMC und cpdag_list; beide programmiert von Miriam Lohr

- structure MCMC R-Funktion zum Erzeugen einer Graphenstichprobe mit Hilfe von Metropolis-Hastings Markov Chain Monte Carlo (MCMC) Simulationen. Die Implementierung unterstellt das BGe Modell für die Daten (mit einer Gleichverteilung als Prior über die Graphen) und führt dann eine structure MCMC Simulation durch.

Syntax: strMCMC <- function(Data, incidence, iterations, step_Save,  fan.in, v, mu, a , T_0)

Input Argumente: 1) Data = nxm Datenmatrix, 2) incidence = Start DAG als nxn Matrix, 3) iterations = Anzahl durchzuführender MCMC Iterationsschritte, 4) step_save = Faktor für die Ausdünnung der Graphenstichprobe, 5) fan.in = die gewünschte fan-in Restriktion, die optional übergeben werden kann, und 6) v, mu, a und T_0 sind die Hyperparameter des BGe Modells, die ebenfalls optional übergeben werden können.

Output: Der Output ist eine Liste, in welcher die gesampelten Graphen (an der ersten Stelle [[1]]) und die dazugehörigen BGe-Scores (an der zweiten Stelle [[2]]) gespeichert werden.

 

- cpdag_list ist eine R-Funktion, die alle mit Hilfe von structure MCMC gesampelten DAGs in CPDAGs umwandelt und auch die marginalen Kantenwahrscheinlichkeiten berechnet.

Syntax: cpdag_list <- function(list.inc, E) 

Input: list.inc ist die Liste der Graphen und E gibt an, wann die Sampling-Phase beginnt. Graphen, die der Burn-In Phase zugerechnet werden, werden gar nicht berücksichtigt.

Output: An dritter Stelle des Outputs (symbolisch [[3]]) befinden sich die marginalen Kantenwahrscheinlichkeiten.

Beispiel-Code:

Out_dag <- strMCMC(Data, incidence, 1000, 10, 3)

Out_cpdag <- cpdag_list(Out_dag[[1]], 50)

Im dritten Listeneintrag (symbolisch Out_cpdag[[3]]) befinden sich die marginalen Kantenwahrscheinlichkeiten.

 

 

 

 

 

 

 

 

 

 

 

WEITERE NÜTZLICHE R-FUNKTIONEN (vgl. Vorlesungsfolien)

[DOWNLOAD] der folgenden fünf R-Funktionen:

- make_test_Data <- function(m_obs, var_noise)

- draw_ROC <- function(postP, trueEdges, eps=0.01)

- make_true_Net <- function()

- compute_AUROC <- function(postP, trueEdges, eps=0.01)

- extract_cpdag_of_dag <- function(true_incidence)

 

 

 

 

 

 

 

 

 

 

 

ÄLTERE R-FUNKTIONEN

- BGe score R-Funktion zur Berechnung der marginalen Likelihood P(data|graph) im BGe Modell [download here]  programmiert von Miriam Lohr [webpage]

Syntax:   BGe <- function(Data, incidence, v, a, mu, T_0)

Input Argumente: Data = nxm Datenmatrix, incidence = DAG als nxn Matrix,  und v, a, mu und T_0 sind Hyperparameter, die optional als Argument übergeben werden können.

 

- Topological Order R-Funktion zur Bestimmung der topologischen Ordnung eines DAGs [download here] programmiert von Miriam Lohr

Syntax: top_order <- function(incidence)

Input Argument: incidence = DAG als nxn Matrix

 

- Order Edges R-Funktion zur Bestimmung einer Ordnung der Kanten eines DAGS [download here] programmiert von Miriam Lohr

Syntax: order.edges <- function(incidence)

Input Argument: incidence = DAG als nxn Matrix

Bemerkung: Diese Funktion benötigt zwei Hilfsfunktionen child und parent und die Funktion top_order (siehe oben). Der Output ist eine kx4 Matrix wobei k die Anzahl der Kanten des Input DAG's ist. In der zweiten und dritten Spalte stehen der Start- und Zielknoten der Kante; z.B.: X2->X4 dann: zweite Spalte 2 und dritte Spalte 4. In der vierten Spalte steht die "Ordnungsnummer" der Kante. (Die erste Spalte gibt alternativ zur 2-3-ten Spalte den 1-dimensionalen "Matrix-Index" der Kante an.)

 

- cpdag R-Funktion zur Bestimmung des CPDAG's eines DAG's [download here] programmiert von Miriam Lohr

Syntax: cpdag <- function(incidence)

Input Argument: incidence = DAG als nxn Matrix

Bemerkung: Diese Funktion benötigt die Hilfsfunktionen top_order und order.edges (siehe oben). Der Output ist eine kx5 Matrix wobei k die Anzahl der Kanten des Input DAG's ist. Die ersten vier Spalten des Outputs sind so zu interpretieren wie bei beim Output von top_order. Alerdings ist der Output hier nun gemäß der vierten Spalte sortiert. Die neue fünfte Spalte gibt an, ob die dazugehörige Kante im CPDAG gerichtet bzw. compelled ist ('1') oder ungerichtet bzw. reversibel ist ('-1').

 

- Bestimmung der Ancestor Matrix eines DAG's [download here] programmiert von Miriam Lohr

Syntax: computeAncestor <- function(incidence)

Input Argument: incidence = DAG als nxn Matrix

Output: Die dazugehörige Ancestor Matrix.

 

- Update der Ancestor Matrix nach single-edge operation [download here] programmiert von Miriam Lohr

Syntax: UpdateAncestorMatrix <- function(incidence, ancestor, parent, child, operation)

Input Argumente:

incidence = DAG als nxn Matrix VOR der Operation

ancestor = die dazugehörige Ancestor Matrix VOR der Operation

parent und child sind Start- und Zielknoten der Kante, die addiert, entfernt oder umgekehrt wird

operation gibt an, ob ein Kanten-Umkehrung ('1'), eine Kanten-Entfernung ('2') oder eine Kanten-Addition ('3') durchgeführt werden soll.

Output: Die neue Ancestor Matrix nach der single-edge-operation.

Wichtige Hinweise:

1) Die Incidence Matrix 'incidence' wird durch diese Funktion NICHT aktualisiert und muss anschliessend noch 'von Hand' geändert werden.

2) Es muss vorher sichergestellt werden, dass die jeweilige single-edge-operation auch wirklich zulässig ist! Andernfalls ist mit Fehlermeldungen und/oder falschen Ergebnissen zu rechnen.

Beispiele:

ancestor_new <- UpdateAncestorMatrix(incidence,ancestor,3,4,1)

=> Operation==1: Kehre die Kante von 3 nach 4 um.

incidence_new = incidence

incidence_new[3,4] = 0

incidence_new[4,3] = 1

ancestor_new <- UpdateAncestorMatrix(incidence,ancestor,1,5,2)

=> Operation==2: Entferne die Kante von 1 nach 5.

incidence_new = incidence

incidence_new[1,5] = 0

ancestor_new <- UpdateAncestorMatrix(incidence,ancestor,4,2,3)

=> Operation==3: Addiere die Kante von 4 nach 2.

incidence_new = incidence

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Sonstige Informationen
  • Übungsaufgaben und Leistungsnachweise

- Abgaben für die Übungsblätter am besten kurz bei mir im Büro [M728] "reinreichen" oder notfalls unter der Tür hindurchschieben

Der späteste Abgabetermin des jeweils aktuellen Übungsblattes wird auf dieser Internetseite bekannt gegeben. I.A. wird gelten: Bis 15 Uhr am Vortag der Übung. In "Notfällen" ist auch eine Abgabe unmittelbar vor der Übungsstunde möglich, was aber nicht zur Gewohnheit werden darf.

- Ein (benoteter) Leistungsnachweis wird bei regelmäßiger Teilnahme mit Beteiligung (Vorrechnen) an der Übungsstunde ausgestellt, wenn mindestens 50% der Punkte der Übungsaufgaben erreicht werden. Bei "nur pflichtmäßiger" Beteiligung an der Übung entsprechen 50% der Übungspunkte der Note "4.0" und 90% der Übungspunkte entsprechen der Note "1.0". Bei aktiver Teilnahme an der Übung kann die Note aber darüber hinaus noch verbessert werden.

- Die Note eines benoteten Leistungsnachweises kann auch verbessert werden durch eine freiwillige ca. 5-minütige mündliche Prüfung am Ende der Vorlesung.

- Im Hinlick auf einen (benoteten) Leistungsnachweis sind bei den Übungsblättern Gruppenabgaben gelegentlich möglich, dürfen aber nicht zur Gewohnheit werden. Grundsätzlich muss im Falle einer Gruppenabgabe aber jeder Teilnehmer die entsprechenden Aufgaben vorrechnen können. Gruppenarbeiten von Leuten, die keinen Leistungsnachweis benötigen, sind hingegen ohne Probleme möglich und auch wünschenswert.   

- Ist die Teilnahme an der Übung nicht regelmäßig möglich, kann ein (benoteter) Leistungsnachweis auch durch eine ca. 10-minütige Prüfung und/oder durch einen Kurzvortrag (ca. 20 Minuten) im Rahmen der Vorlesung erreicht werden.