---
# System prepended metadata

title: Hausarbeit

---

## Vorlesung "Datenanalyse für Biologen" (WS 2022/23)

# Hausarbeit

## Vorbemerkungen

- Keine Sorge, die Angabe **sieht sehr viel länger aus** als sie ist. Sie enthält sehr viel mehr Hinweise und Erläuterungen als Aufgaben.
- Damit Sie die eigentlichen Aufgaben in dem vielen Text nicht übersehen, habe ich sie mit einem Hand-Symbol (☛) gekennzeichnet.
- Von der freiwilligen Hausarbeit wissen Sie schon, wie die Abgebe aussehen sollte: Erstellen Sie Ihre Hausarbeit, wie Sie einen Praktikumsbericht erstellen würden. Fügen Sie also genug Text ein, so dass auch ein Leser, der die Aufgabenstellung nicht kennt, versteht, um was es geht. Wenn Sie also Daten laden, erläutern Sie kurz, was die daten bedeuten. Erklären Sie  vor jeder Analyse, was Sie herausfinden möchten, und nach jedem Ergebnis, was es bedeutet. Die Qualität des Textes geht in die Bewertung ein. (Schreiben Sie aber bitte nicht zu viel, sonst muss ich so viel lesen.)
- Wenn Sie Analysen durchführen, geben Sie den R-Code hierzu an und erklären Sie ganz kurz, was die einzelnen Zeilen bewirken sollen, damit ich erkennen kann, dass Sie Ihren Code auch verstehen.
- Ich empfehle, die Arbeit als R-Notebook oder Quarto-Dokument mit R-Studio anzufertigen. Laden Sie die fertige Arbeit bitte als PDF- oder HTML-Datei auf Moodle hoch.
- Achten Sie bitte darauf, dass Ihre fertige Arbeit alle Plots und Ergebnis-Tabellen enthält (siehe dazu [hier](https://hackmd.io/kjQRqzTRQVi4yZ1Vd4OBaA)). Achten Sie bitte auch darauf, dass sich keine seitenlangen Tabellen mit (Zwischen-)Ergebnissen irgendwo in der Mitte einschleichen.
- **Abgabetermin ist der 23. April 2023**. Laden Sie Ihre Arbeit bitte [hier](https://moodle.uni-heidelberg.de/mod/assign/view.php?id=818385) auf Moodle hoch. 
- Wenn Sie den Abgabetermin aus triftigen Gründen (Krankheit, wichtige persönliche Gründe, größere studienbezogene Verpflichtungen, o.ä.) nicht einhalten können, wenden Sie sich bitte an mich.
- Die Angabe steht online seit dem 7. März 2023 in endgültiger Fassung online.
- Wenn Sie Schwierigkeiten mit den Aufgaben haben, können Sie gerne auf dem bekannten (und in Moodle verlinkten) **Slack-Kanal** Fragen stellen. Bitte stellen Sie Ihre Fragen nur dort, so dass alle die Antworten sehen können, und nicht manche von Ihnen einen Vorteil durch privat gestellte und beantwortete Fragen haben. Hier ist noch mal der Link zum Workplace --  https://datenanalyse2223.slack.com -- und der ~~Einladungs-Link~~ [Einladungs-Link](https://join.slack.com/t/datenanalyse2223/shared_invite/zt-1r8h1btua-oQ_MVJRE5jcbf~gaLkEfww).
- Wenn Sie allgemeine Fragen zum Vorlesungsstoff oder zur Bioinformatik haben, können Sie auch auf Slack fragen, oder auch sich jederzeit per Mail an mich wenden oder in meinem Büro (BioQuant, Raum 664) vorbei kommen. Wenn Sie bei mir vorbei kommen möchten, rufen Sie am besten vorher kurz an (54-6855), da ich nicht immer im Büro bin (und vormittags meist von zuhause arbeite).


## Aufgabe 1: Vergleich von LAMP und PCR

Zu Beginn der Covid-Pandemie erschien der Mangel an Testkapazität als größte Schwierigkeit. Antigen-Schnelltests waren noch nicht verfügbar, und die Kapazität medizinischer Labore für PCR-Tests war begrenzt. Verschiedene Alternativen zur Detektion viraler RNA wurden daher in großer Eile untersucht. Am ZMBH haben wir damals, ebenso wie auch einige andere Instute weltweit, die LAMP-Methode getestet. 

Bei der "loop mediated isothermal amplification" (LAMP) wird die reverse-trankribierte RNA mittels Polymerase so amplfiziert, dass kein Thermocycler erforderlich ist: an den Enden der Templates enstehen "Schlaufen", die die Polymerase immer wieder zurücklaufen lassen, so dass bei konstanter Temperatur eine endlose Kette von DNA-Kopien kontinuierlich erzeugt wird. Dabei werden Protonen frei, so dass man die Produktion con DNA mit einem pH-Indikator an einem Farbumschlag erkennen kann. Wenn der Reaktion Primer zugegeben wurden, die zur Virus-RNA komplementär sind, erkennt man nach etwa 10 bis 40 Minuten bei 60 °C einen Farbumschlag von Phenolrot. Allerdings findet man auch ohne virale cDNA nach etwas längerer Inkubationszeit ebenso eine Ansäuerung. Es kommt also darauf an, zum richtigen Zeitpunkt abzulesen.

Wir haben unsere Ergebnisse in folgendem Paper veröffentlicht:

Dao Thi et al.: *A colorimetric RT-LAMP assay and LAMP-sequencing for detecting SARS-CoV-2 RNA in clinical samples*. Science Translational Medicine 12:eabc7075 (2020).
[doi:10.1126/scitranslmed.abc7075](https://doi.org/10.1126/scitranslmed.abc7075) 

In dieser Aufgabe sollen Sie u.a. Abbildung 2B,C des Papers rekonstruieren. Ein 96-Well-Platte wurde mit Proben von Rachenabstrichen befüllt, die im Labor der Uniklinik untersucht wurden. Eine RNA-Extraktion wurde bereits durchgeführt, die Wells enthielt also extrahierte RNA, für die nun auf SARS-CoV-2 getetst werden sollte. 

Die Platte mit der extrahierten Proben-RNA wurde also mit LAMP-Mix und Phenolrot versetzt und für 45 Minuten bei 60 °C inkubiert. Alle 5 Minuten wurde die Platte vom Heizelement genommen, kurz auf Eis gelegt und in einem Platten-Scanner ("Tecan") gemessen. Der Plattenscanner wurde programmiert, für jedes Well die optische Absorption bei Wellenlänge 434 nm (blaues Licht) und 560 nm (gelbes Licht) zu messen, und die Daten in Excel-Arbeitsblättern zu speichern.

Eine Excel-Datei mit den Daten finden Sie [hier](https://papagei.bioquant.uni-heidelberg.de/simon/Vl2223/tecan_scans.xslx). Sie finden 6 Blätter mit je zwei Scans, für die beiden Wellenlänge und 6 verschiedene Inkubationszeiten.

### (a) Einlesen der Daten

☛ Lesen Sie die Excel-Daten in R so ein, dass Sie eine Tabelle erhalten mit einer Zeile pro Messzeitpunkt und Well und folgenden Spalten: Inkubationszeit (20, 25, ..., 45 Minuten), Well-Position (Zeile A-H und Spalte 1-12), Messwert (optische Absorbtion) bei 560 nm ("gelb") und 343 nm ("blau").

Hinweise:
- **Diese erste Teil-Aufgabe ist recht schwierig.** Wenn Sie Probleme haben, finden Sie die fertige Tabelle (Ersatzergebnis) [hier](https://papagei.bioquant.uni-heidelberg.de/simon/Vl2223/tecan_tbl.csv) und können so schon mit der nächsten, leichteren Teil-Aufgabe weiter machen.
- Um Excel-Dateien zu lesen, verwenden Sie die Funktion `read_xlsx` aus dem Paket `readxl`. 
- Sofern Sie nichts anderes angeben, liest `read_xlsx` nur das erste Arbeitsblatt ("sheet") der Exceldatei ("workbook"). Um z.B. das zweite Blatt einzulesen, verwenden Sie `read_xlsx( datei.xlsx, sheet=2 )` (oder `sheet="25 min")`.
- Die Metadaten in den ersten Zeilen brauchen wir in R nicht. Wenn Sie *nur* den Block mit den Messdaten der Platte einlesen wollen, können Sie `read_xlsx` mit den Parametern `skip` und `n_max` sagen, dass es *skip* Zeilen am Anfang überspringen und dann nur *n_max* Zeilen lesen soll. So können Sie passgenau nur den 9x13-Block mit den Plattenwerten und den Well-Labels einlesen. Das machen Sie zwei mal pro Sheet.
- Setzen Sie dann das Ergebnis eines Sheets zu einer Tabelle zusammen mit Spalten für Well-Position und Messwert bei blau und bei gelb. Fügen Sie eine Spalte an, die den zugehörigen Minuten-Wert enthält.
- Setzen Sie dann die Tabellen aller Sheets mit `bind_rows` zu einer großen Tabelle zusammen.
- Wenn Sie sich erinnern, mit man `function`s definiert, können Sie eine Funktion definieren, die ein Sheet bearbeitet, so dass Sie nicht alles 6 mal schreiben müssen.

### (b) Plot der Inkubationskurven

Verwenden Sie das Ergebnis aus (a) oder die Ersatzlösung hier: [tecan_tbl.csv](https://papagei.bioquant.uni-heidelberg.de/simon/Vl2223/tecan_tbl.csv).

Bei pH um 6 und darunter ist Phenolrot gelb und absorbiert also blaues Licht stark stärker als gelbes Licht. Bei pH über 7 ist es umgekehrt, und der Farbstoff erscheint dem Auge rot.

☛ Plotten Sie die Absorbtionswerte ("optical density", OD) bei blau gegen die bei gelb für alle gemessenen Wells bei allen Zeiten (in einem großen Plot). Erläutern Sie, warum es sinnvoll ist, die Differenz $\Delta \text{OD} = \text{OD}_\text{434 nm} - \text{OD}_\text{560 nm}$ als Maß dafür zu verwenden, wie viel DNA durch die LAMP-Reaktion gebildet wurde.

*Hinweis* (eingefügt am 12.4.): Die Formulierung "Plot von *a* gegen *b*" impliziert, dass *a* auf der y- und *b* auf der x-Achse liegt. Überlegen Sie auch, wann ein Streudiagramm (mit Punkten) Sinn macht und wann eines mit Linien.


☛ Plotten Sie nun für jedes Well den $\Delta\text{OD}$-Wert gegen die Inkubationszeit, d.h., jedes Well wird durch eine Linie dargestellt (wie in Fig 2B des Papers, aber ohne Farben). Denken Sie daran, `geom_line` mittels der `group`-Aesthetic mitzuteilen, welche Werte zu einer Linie verbunden werden sollen.

☛ Bei welcher Inkubationszeit erkennen Sie den klarsten Unterschied zwischen den Proben?

### (c\) Vergleich mit den PCR-Ergebnissen

Die Proben auf der 96-Well-Platte haben wir vom virologischen Labor der Uniklinik erhalten, wo sie parallel per qPCR auf SARS-CoV-2 getestet wurden. Hier ist die Tabelle mit den PCR-Ergebnissen: [ct_values.csv](https://papagei.bioquant.uni-heidelberg.de/simon/Vl2223/ct_values.csv).

Bei einer qPCR misst man nach jeder PCR-Runde die DNA-Konzentration in der Probe mittels eines floureszenten DNA-Farbstoffes. Der CT-Wert gibt an, wie viele PCR-Runden (thermocycles) erforderlich waren, bis das Floureszenzsignal klar detektierbar ist. Die Kurve der Floureszenzwerte gegen die Zeit des Thermocyclers wird dabei interpoliert, weswegen auch nicht-ganzzahlige Werte angegeben werden. (Das erste Bild auf [dieser Wikipedia-Seite](https://en.wikipedia.org/wiki/Real-time_polymerase_chain_reaction) zeigt solche Kurven für mehrere Wells.)

Das Labor der Uniklinik verwendete damals folgende Interpretationsregel für SARS-Cov-2-Proben: Wenn die Floureszenz vor Ablauf von 35 Zyklen (also $\text{CT}\le 35$) den Schwellwert überschritt, wurde dies als "positiv" (SARS-Cov-2 detektiert) gewertet, bei 35-40 als "fraglich". Wenn bei 40 Zyklen noch nichts detektiert war, wurde abgebrochen und als "negativ" (kein Virus in Probe) gewertet. In unserer Tabelle ist so ein Abbruch als `inf` (für "infinite", $\infty$) bezeichnet.

☛ Fügen Sie die Tabelle aus (a) und die Tabelle mit den PCR-Ergebnissen zusammen.

Hinweis: In einer Spalte sind die Wells nach Zeile und Spalte getrennt ("A" und "1"), in der anderen zusammen ("A1"). Sie können z.B. die Tidyverse-Fuktion `unite` verwenden, um zwei Spalten zusammenzufügen (oder Sie verwenden `str_c` mit `mutate`).

☛ Plotten Sie die Daten der zusammengefügte Tabelle als Streudiagramm wie folgt: Jedes Well ist ein Punkt, die x-Achse gibt den CT-Wert, die y-Achse das LAMP-Ergebnis ($\Delta\text{OD}$) bei 30 Minuten.

Ihr Plot sollte so ähnlich aussehen wie Abb. 2C im Paper. Allerdings haben wir im Paper noch ein paar "Verschönerungen" angebracht, die ich hier *nicht* verlange weil sie etwas schwierig sind, nämlich: Wir haben die CT-Achse umgedreht, die Punkte mit negaqtivem CT (`inf`) etwas auseinander gezogen ("gejittered") und eine Hilfslinie eingezeichnet. Wenn Sie möchten, versuchen Sie, die `inf`-Werte durch eine große Zahl (z.B. 45) zu ersetzen (`CT = ifelse( CT>40, 45, CT )`, da `inf>40`) oder gar durch eine gejitterte Zahl (`45+runif(n())`).

### (d) Farbiger Linienplot

☛ Wiederholen Sie den Plot aus ~~(a)~~ (b), färben Sie nun aber die Linien ~~rot~~ in einer Farbe für PCR-positive und ~~blau~~ in einer anderen für PCR-negative Proben. ~~Können Sie auch eine dritte Farbe für die "fraglichen" Proben (CT zwischen 35 und 40) einbauen?~~

### (e) Sensitivität und Spezifizität

Wir nehmen für as folgende an, dass PCR ein "Goldstandard" ist, also stets korrekt ist und vergleichen, wie gut unser LAMP-Test ist. Dazu legen wir fest:
- PCR-Ergebnisse mit CT<40 gelten als positiv, sonst negativ.
- LAMP-Ergebnisse mit $\Delta\text{OD}<0$ gelten als ~~positiv~~negativ, mit $\Delta\text{OD}>0$ als ~~negativ~~positiv. Es wird der $\Delta\text{OD}$-Wert bei 30 Minuten verwendet.

☛ Wie viele der PCR-positiven Proben wurde durch LAMP korrekt als positiv erkannt? Diesen Anteil nennt man "Sensitivität". Berechnen Sie die Sensitivität und ihr binomisches 95%-Konfidenzintervall.

☛ Wie viele der PCR-negativen Proben wurde durch LAMP korrekt als negativ erkannt? Diesen Anteil nennt man "Spezifizität". Berechnen Sie die Spezifizität und ihr binomisches 95%-Konfidenzintervall.

☛ Patienten mit einem hohen CT-Wert sind deutlich weniger ansteckend als solche mit einem geringen CT-Wert. Nehmen wir CT=30 als Grenze für einen "sehr ansteckenden" Patienten. Wie hoch ist die Sensitivität des LAMP-Tests bei der Erkennung solcher "sehr ansteckender" Fälle?

## Aufgabe 2: RNA-Seq

Vor einigen Jahren hat die AG Kaessmann am ZMBH folgendes Paper veröffentlicht:

Margarida Cardoso-Moreira et al.: *Gene expression across mammalian organ development*. Nature 571: 505–509 (2019). [doi:10.1038/s41586-019-1338-5](https://doi.org/10.1038/s41586-019-1338-5)

Lesen Sie sich die Einleitung durch, um zu verstehen, worum es geht. Wir werden in dieser Aufgabe aber nicht zwischen Spezies und Organen vergleichen, sondern uns auf das Cerebellum der Maus beschränken.

### Die RNA-Seq-Daten zur Maus

Die Matrix mit den Genexpressionsdaten zur Maus finden Sie hier: [Mouse.CPM.txt](https://www.ebi.ac.uk/biostudies/files/E-MTAB-6798/Mouse.CPM.txt) Diese Tabelle lesen Sie am besten mit `read.delim` wie folgt ein:

```
read.delim( "Downloads/Mouse.CPM.txt", sep=" " ) %>%
as_tibble( rownames="gene_id" ) -> mouse_cpm
```

**Wichtig**: Falls die große Datei Ihren Computer überfordert, geben Sie bitte auf Slack Bescheid, und ich erstelle eine gekürzte Datei.

Jede Spalte entspricht einer Probe. Die Spaltennamen enthalten den namen des Organs oder Gewebe, dann das Entwicklungsstadium ("stage") und zuletzt das Replikat (d.h., die Nummer der Maus). Das Entwicklungsstadium ist eine Angabe wie `e14.5` für 14½. Tag der Trächtigkeit oder `P10` für 10. Tag ab Geburt. Die Ziffer ganz am Ende ist die Nummer der Maus / des Embyos, da zu jedem Stadium mehrere Tiere verwendet wurden.

Da die Spalten-Namen (Probennamen) etwas "verwinkelt" sind, hilft Ihnen dieser Code, die drei Elemente zu extrahieren. (Kopieren Sie ihn einfach in Ihre Notebook.)

***Hinweis:** Ich habe den folgenden Code am 27.3. leicht geändert, nämlich ein `[-1]` in der zweiten Zeile eingefügt. Die erste Spalte der Matrix enthält ja das Gensymbol (`gene_id`) und nicht Daten zu einer Probe, und daher sollte man dies entfernen. Mit dem verbesserten Code entfällt jetzt die überflüssige erste Zeile in der Tabelle.*

***Hinweis 2:** Am 6.4. habe ich nochmal was korrigiert, nämlich bei `arrange` ein `desc` eingefügt.*

```
# Zerlege Spaltennamen in drei Teile:
colnames(mouse_cpm)[-1] %>%
tibble( sample=. ) %>% 
extract( sample, c( "tissue", "stage", "replicate" ), 
    "^([[:alpha:]]+)\\.(P[0-9]+|e[0-9]+\\.5)\\.(.*)", remove=FALSE ) -> sample_table

# Ermittle korrekte Reihenfolge der Stages
sample_table %>% select(stage) %>% unique() %>%
mutate(
  eP = str_sub( stage, 1, 1 ),
  num = as.numeric( str_sub( stage, 2, 5 ) )
) %>%
arrange( desc(eP), num ) %>%
pull( stage ) -> stages_in_order

# Setze Reihenfolge in `stage`-Spalte von `sample_table`
sample_table %>%
mutate( stage = fct_relevel( stage, stages_in_order ) ) -> sample_table

sample_table
```

***Hinweis 3** (eingefügt am 6.4.): Eine Erklärung dieses Codes finden Sie [hier](https://papagei.bioquant.uni-heidelberg.de/simon/Vl2223/sampleTable.html).


Die Zeilen sind mit der Ensembl-Gene-ID beschriftet. Eine Tabelle, um diese IDs in Gen-Namen umzusetzen, können sie auf [Ensembl Biomart](https://www.ensembl.org) erzeugen, oder hier fertig herunter laden: [ensembl_gene_ids_and_names.tsv](https://papagei.bioquant.uni-heidelberg.de/simon/Vl2223/ensembl_gene_ids_and_names.tsv)

Die Werte in der Matrix sind CPM-Werte. Das steht für "counts per million", d.h., die Read-Anzahlen für jedes Gen wurde bereits durch die Gesamtzahl aller Reads der Probe geteilt ("Normalisierung", siehe Vorlesung) und dann mal $10^6$ genommen.

### (a) Entwicklung des ~~Cerebellums~~ Gehirns: zunächst ein Gen

Das Gen-Symbol "Dbx1" steht für "developing brain homeobox 1". Es sollte sich also im entwickelnden Hirn stärker exprimiert sein als im erwachsenen Hirn. 

☛ Erstellen Sie ein Streudigramm, in dem die gemessenen CPM-Werte für Dbx1 gegen das Entwicklungsstadium aufgetragen sind.

Gehen Sie z.B. wie folgt vor:
- Wandeln Sie die "breite" Tabelle in eine "lange" um, mit einem Wert pro Zeile und Spalten für "sample", "gene_id" und "cpm"
- Filtern Sie, um nur die Zeilen zu behalten, die sich auf das Großhirn (oder des Cerebellums, wie Sie wollen) und auf das Gen "Dbx1" beziehen. Dazu müssen Sie die beiden Hilfstabellen (`sample_table` und Gen-Namen-Tabelle) anfügen.
- Nun können Sie ein Streudiagramm erstellen, mit Genexpression auf der y-Achse und Enwticklungsstadium auf der x-Achse.

Wie sollten Sie die y-Achse skalieren?

***Nachtrag** (eingefügt am 27.3.): Ich hatte übersehen, dass für die ENtwicklungstage vor E13.5 nur Daten für "brain" aber nicht "cerebellum" vorliegen. Laut Paper steht "brain" nur für das  Vorder- und Mittelhirn (also im Wesentlichen das Großhirn) und "cerebellum" für das Hinterhirn (also im WWesentlichen das Kleinhirn. Vermutlich lässt sich das bei frühen Stadien nicht so leicht trennen.*

*Wernn Sie "brain" statt (wie ursprünglich verlangt) "cerebellum" verwenden, haben Sie mehr Daten für Ihren Plot. Ich überlasse es Ihnen, ob Sie den Plot für "brain" oder für "cerebellum" erstellen.*

### (b) Mitteln über die Replikate

Für jede Kombination von Gen und Stage haben wir Werte von mehreren Proben von verschiedenen Mäusen. Wir wollen über diese mitteln und so eine Tabelle (Matrix) erhalten mit einer Zeile pro Gen und einer Spalte pro Stage, darin die MIttelwerte für das Cerebellum (oder das Großhirn -- wie Sie wollen; siehe Hinweis oben).

☛ Erstellen Sie diese Matrix. 

Gehen Sie z.B. wie folgt vor:
- Starten Sie wie in (a) mit der "langen" Matrix, mit nur den Cerebellum-Werten.
- Gruppieren Sie die Zeilen so, dass jede Gruppe die drei bis vier Werte enthält, über die gemittelt werden soll. Führen Sie dann die Summarisierung zu Mittelwerten durch. (Denken Sie an `group_by`+`summerize`.)
- Pivotieren Sie die Tabelle, so dass die Stages nebeneinander stehen.

Das Mitteln führen Sie bitte auf der logarithmischen Skala durch. Berechnen Sie also vor dem Mitteln `lcpm = log10( cpm + 0.01 )`, wobei der "Pseudocount" 0,01 uns vor $\log(0)=-\infty$ schützt.


### (c\) Welche Gene ändern sich während der Embryonal-Entwicklung stark?

Wie haben in (a) gesehen, dass das Gen "Dbx1" immer schwächer wird, während der Embryo heranwächst. Nun möchten wir weitere solche Gene finden.

Hierzu machen wir es uns einfach: Wir vergleichen unser erstes Stadium (E10.5) mit der Geburt (P0) und finden Gene mit großem Unterschied zwischen E10.5 und P0.

***Hinweis** (eingefügt am 27.3.): Sorry, ich hatte übersehen, dass vor E13.5 noch nicht zwischen Groß- und Kleinhirn unterschieden wird.  Erstellen Sie den Plot also, nach Ihrer Wahl, entweder für "cerebellum" (mit E13.5 als Vergleichsbasis) oder für "brain" (mit E10.5 als Vergleichsbasis) und verwenden Sie jeweils die verfügbaren Zeitpunkte.*

☛ Verwenden Sie also die Tabelle aus (b), um die 10 Gene zu finden, bei denen der log-fold change (LFC, Differenz der logarithmischen Mittelwerte) zwischen E10.5 und P0 am größten, sowie am kleinsten ist. Erstellen Sie zwei Tabelle mit diesen je 10 Genen mit Gen-Namen und LFC.

☛ Finden Sie auf demselben Weg einige Gene, die sich stark zwischen neugeborenen (P0) und erwachsenen (P63) Mäusen unterscheiden.

*Hinweis* (eingefügt am 12.4.): Hier suchen wir natürlich die Gennamen, nicht die Ensembl-IDs.

### (d) Liniendiagramme der Mittelwerte

In (a) haben wir die Werte der einzelnen Replikate durch einen Punkt dargestellt. 

Erstellen Sie nun stattdessen Liniendiagramme, in denen jedes Gen durch eine Linie dargestellt wird, die die Mittelwerte aus ~~(c\)~~(b) verbindet. Jedes Diagramm sollte 10 Linien mit verschiedenen Farben für die 10 Gene aus je einer der in (c\) erhaltenen Listen interessanter Gene darstellen. 

☛ Erstellen Sie ein Diagramm für jede der 4 Genliste aus (c\), sowie zum Vergleich auch ein Diagramm mit 10 zufällig ausgewählten Genen.

*Hinweise* (eingefügt am 12.4.): 
- Hier suchen wir natürlich die Gen-Namen, nicht die Ensembl-IDs.
- Die Linien sollen den Verlauf der Genexpression über alle verfügbaren Stadien darsstellen, also nicht nur für die Zeitpunkte, die verglichen wurden, sondern auch für die Werte dazwischen und ggf. davor.

### (e) t-Test

☛ Wählen Sie aus den geplotteten Genen eines aus und prüfen Sie, ob der Unterschied zwischen P0 und P63 statistisch signifikant ist, indem Sie auf die Einzelwerte zurück gehen und diese mittels t-Test vergleichen. 

### (f) weitere Gene mit interessantem Verlauf

Diese Aufgabe ist nur **für Fortgeschrittene/Ambitionierte**, die sich ihre 1,0 beweisen möchten.

Vielleicht gibt es ja auch Gene, die zum Beispiel sowohl zu E13.5 wie auch zu P0 schwach, aber in der Zwischenzeit mal stark exprimiert sind. Wir wollen auch solcge Gene sehen

☛ Finden Sie für jedes Gen den kleinsten und den größten Mittelwert unter den Mittelwerten für alle Embryonalstadien. Plotten Sie die 10 Gene mit den stärksten Unterschieden zwischen Maximum und Minimum.


## ~~Aufgabe 3 (?): NHANES~~

*Ich hatte überlegt, noch eine kleine Aufgabe zu den NHANES-Daten hinzuzufügen. Aber da Sie ja fast alle eine Hausarbeit über die Winterferien abgegeben haben, wo Sie das schon gemacht haben, habe ich mich dagegen entschieden, fast dasselbe nochmal zu fragen. Es gibt also **keine Aufgabe 3.***
