Zadanie zaliczeniowe

Termin: 20.01.2015

Zadanie polega na analizie danych z eksperymentów ChIP-seq pewnej modyfikacji histonów oraz pewnego białka u muszki owocowej Drosophila melanogaster, w kontekście różnicowej eksprecji genów w różnych tkankach.

Pod adresem znajdują się dane do analizy:

  • plik z adnotacją genomu dme3: dm3_genes.gtf
    Genom w odpowiedniej wersji (dm3) znajduje się tu.
  • kontrola dla eksperymentów ChIP-seq (plik input.txt.gz)
  • wyniki różnicowej analizy ekspresji genów w tkankach Elav i Repo wykonanej przy użyciu programu DEseq (plik DEseq.txt)
  • dla każdej osoby zapisanej na przedmiot indywidualny folder (oznaczony numerem indeksu) zawierający: wyniki eksperymentu ChIP-seq dla pewnej modyfikacji histonów (plik A.txt.gz), oraz dla pewnego innego białka (plik B.txt.gz). Obie próbki dotyczą tej samej tkanki.

Uwaga: jeśli czyjegoś numeru indeksu brak, lub ma problem z danymi (plik jest uszkodzony itp.) lub ma pytania dotyczące treści, prosimy zgłaszać je możliwie szybko na adres:
j.herman-izycka@mimuw.edu.pl

Pytania:

0. Wykonaj preprocessing danych z sekwencjonowania (analiza jakości, filtrowanie, mapowanie)
1. Zbadaj czy modyfikacja histonów A i białko B mają preferencje co do miejsca występowania w regionach genów (np. na 5′ lub 3′ końcu genów)?
2. Czy w obszarach genowych występowanie białka B i modyfikacji A są skorelowane?
3. Czy geny, na których znajduje się białko B wykazują różnicową ekspresję między tkankami Elav i Repo?

Jako rozwiązanie należy wysłać raport pod adres bartek@mimuw.edu.pl, a następnie omówić go osobiście. Raport powinien zawierać odpowiedzi na pytania wraz z uzasadnieniem, krótki opis wykonanych kroków (użyte programy, istotne parametry, metody, podsumowanie wyników). Można, a nawet należy zamieścić wykresy.

Zadanie zaliczeniowe 2 – Biomorfy

Termin: czwartek 22 stycznia, godzina 23:59.

Pytania prosimy umieszczać w komentarzach, lub ewentualnie kierować pod adres: j.herman-izycka@mimuw.edu.pl

Rozwiązania w formie pakietu zad2_[nr_indeksu] spakowanego w formacie zip lub tgz wysyłamy e-mailem do osoby prowadzącej laboratorium z kopią do wykładowcy, używając w tytule tagu [WDI-2-2014]. Aby uzyskać punkty za zadanie trzeba swoje rozwiązanie przedstawić osobiście prowadzącemu lub prowadzącej laboratoria.

Biomorfy to cyfrowe stworzenia, które kształtem mogą przypominać obiekty czy zwierzęta. Biomorfy są strukturami drzewiastymi (binarnymi), tzn. biomorf ma stawy (węzły) i segmenty (krawędzie), do każdego stawu poza zerowym (czyli poza korzeniem) wchodzi jeden segment, a wychodzą z niego dwa.

Opis historii oraz przykłady biomorfów: Opis biomorfów

Każdy biomorf ma genotyp, czyli listę 10 genów określających jego wygląd. Geny mają różny wpływ na biomorfa i są reprezentowane przez liczby całkowite albo rzeczywiste.

Opis genów

  • gen 0 – głębokość, czyli liczba rozgałęzień biomorfa
  • geny 1 i 2 – kąty odchylenia kolejnych segmentów od osi poprzedniego segmentu (w stopniach). Gen 1 odpowiada odchyleniom na rozgałęzieniach o nieparzystej głębokości, a gen 2 parzystej.
  • geny 3 i 4 – długości segmentów odpowiednio na nieparzystej (gen3) i parzystej (gen4) głębokości (wyrażona w pikselach)
  • gen 5 – wydłużenie/skrócenie segmentów.  Parzyste (nieparzyste) segmenty stopnia i są długości gen4*gen5**i (gen3*gen5**i) poprzedniego parzystego (nieparzystego)
  • gen 6,7,8 – geny kodujące kolor biomorfa (w notacji RGB), z zakresu 0.01-0.99
  • gen 9 – gradient koloru (czyli rozjaśnienie/przyciemnienie segmentów na kolejnych głębokościach). Tak jak wydłużenie, jest to cecha multiplikatywna

Biomorfy są jednopłciowe, a ich kolejne pokolenia różnią się
od poprzedniego poprzez losową, pojedynczą mutacje – drobną zmianę jednego
z ich genów.

Opis mutacji

  • gen 0 – głębokość zmienia się o +/-1
  • gen 1 i 2 – odchylenie zmienia się o +/-10 stopni
  • gen 3 i 4 – długość zmienia się o +/- 10 pikseli
  • gen 5 – przeskalowanie o losową wartość z przedziału [0.75, 1.5]
  • gen 6, 7 i 8 – przeskalowanie o losową wartość z przedziału [0.75, 1.5] (wynik skalowania spoza przedziału [0.01-0.99] powinien otrzymać wartość najbliższego krańca przedziału)
  • gen 9 -przeskalowanie o losową wartość z przedziału [0.75, 1.5]


Przykład 1: Biomorf o genotypie [2, 45, 10, 50, 20, 1, 0.1, 0.1, 0.1, 2 ] , wraz z mutantami.


Przykład 2: Biomorf o genotypie [4, 120, 30, 60, 20, 1.5, 0.2, 0.2, 0.4, 1.5] wraz z mutantami

    Napisz pakiet biomorph zawierający 3 moduły do symulowania ewolucji biomorfów.

  1. (3pkt) Moduł mutacja będzie generował zmutowane biomorfy. Powinien
    zawierać funkcję mutuj(biomorf), która zwróci listę 8 biomorfów
    pochodzących z losowych mutacji wejściowego biomorfa.
  2. (7pkt + 3pkt) moduł rysowanie powinien zawierać funkcję
    rysuj(biomorf) rysującą przy użyciu modułu turtle danego biomorfa (5 pkt),
    oraz funkcję rysuj_wszystkie(biomorf, listamutantów), która narysuje na środku wejściowego biomorfa oraz wokół wszystkie jego 8 potomnych zmutowanych biomorfów w formie obrazka 3×3 (patrz przykład 2).
  3. (7pkt) moduł symulacja: pozwoli na symulowanie ewolucji biomorfa
    korzystając z doboru (który zapewnia użytkownik) :

    1. (4 pkt) Moduł powinien zawierać funkcję symuluj(startowy), która startując od zadanego biomorfa startowy wyświetla go oraz 8 jego losowych mutantów, a następnie pozwala
      wybrać jeden z nich (wpisując numer od 1 do 9 w konsoli, biomorfy numerujemy rzędami, a w rzędzie od lewej do prawej) lub zakończyć
      symulację wpisując 0 (patrz podpowiedź 1). Funkcja zwraca historię symulacji, czyli listę zawierającą kolejne pary: (lista mutantów, numer wybranego mutanta).
    2. (3 pkt) Moduł powinien oferować możliwość uruchamiania jako skrypt z parametrami:
      -p plik – nazwa pliku z opisem biomorfa (jeden wiersz-jeden gen)
      -o output – (opcjonalny) nazwa pliku do którego należy wypisać historię symulacji (jeden wiersz – jedna para (lista mutantów, numer wybranego mutanta))
      -b gen0 gen1 … gen9 – startowy biomorf zapisany jak wartości poszczególnych genów

Do rysowania należy użyć modułu turtle

Podpowiedź 1: Wczytywanie z konsoli: funkcja raw_input("Napis wyświetlany w konsoli") zwracająca napis będący linią wpisaną przez użytkownika.