ONA 3 – Wykresy

Dzisiaj zajmujemy się wykresami.

Slajdy są tu ONA3-wykresy

Zadania na dziś:

1. Narysuj wykres podobny do tego ze slajdu nr. 14  z wykładu. Uwzględnij opisy osi, zakresy wartości, kolory, znaczniki wartości, legendę i tytuły osi oraz wykresów.

2. Narysuj wykres 10*sin(x)+normal(0,1) dla 1000 punktów w zakresie 0,10. Przyda się funkcja normal().

3. Napisz program, który wykona 1000 prób rzutu 10 kostkami. Narysuj na jednym wykresie 3 przenikające się histogramy (alpha=0.25): suma oczek na kościach parzystych (0,2,4,6,8), suma oczek na kościach nieparzystych (1,3,5,7,9), suma oczek na wszystkich kościach. Może przydać się funkcja randint().

4. Przedstaw dane z wykresu 3. w postaci 3 wykresów pudełkowych (boxplot)

5. Narysuj powierzchnię 3d (x,y,z) in linspace(0,1,100) gdzie z=y*cos(x)+(1-y)*sin(x), Może być przydatny ten przykład

5. Narysuj mapę ciepła dla tej samej powierzchni. Użyj różnych map kolorów.

 

WBO-2: Ewolucja sekwencji DNA

Dziś będziemy mówić o modelach ewolucji sekwencji.

Slajdy do wykładu są tu: wyk2.

Podczas labów mogą Państwo korzystać z serwera Jupyter, który ma zainstalowany pakiet biopython. (kilka porad jak używać jupyter’a tu )

Zadania do wykonania na dziś:

1. Obejrzyj moduł Bio.SubsMat.MatrixInfo, gdzie zdefiniowane są modele PAM i BLOSUM

2. Zaimplementuj prosty łańcuch Markowa, który pozwoli na symulowanie mutacji w czasie dyskretnym, zgodnie z macierzami przejścia zdefiniowanymi wykorzystując moduł SubsMat (substitution table). Rozważ model analogiczny do modelu Kimury i Felsensteina

3. Rozważ sekwencje z pliku fasta z poprzednich zajęć. Zbadaj ile mutacji losowych potrzeba aby Łańcuch Markowa “przeszedł” pomiędzy dwiema sekwencjami bez selekcji.

4. Zaimplementuj prosty proces Markowa z selekcją – jeśli mutacja zbliża nas do “celu” w sensie odległości Hamminga, to ją akceptuj, w przeciwnym razie wracaj do punktu wyjścia.

 

ONA 2 – Macierze i NumPy

Slajdy do wykładu – ONA2-Macierze

Jako interpretera pythona mogą Państwo użyć tego (Trochę porad jak używać tu )

Ćwiczenia:

  1. Stwórz macierze A i B o wymiarach  1000×1000 zawierające wartości A[i,j]==i*3-j*5 i B[i,j]==np.sqrt(A[i,j]) (Zauważ, że to wymaga wartości urojonych, a więc macierzy typu complex64 i wartość sqrt(-1) ->.j)
  2. Napisz funkcję poz(indeksy, shape), która dla zadanej krotki indeksów zwraca liniową pozycję elementu o zadanych indeksach w wielowymiarowaj macierzy o kształcie shape.
  3. Korzystając z broadcastingu i mnożenia macierzy zmień znak elementów w macierzy B, których suma indeksów jest nieparzysta
  4. korzystając z metody sort() , posortuj macierz 3-wymiarową wg. drugiej współrzędnej i obejrzyj wynik.
  5. Korzystając z funkcji frompyfunc() napisz funkcje wektorowe, które liczą a) sumę kwadratów dwóch macierzy  (dwie macierze do jednej)
    b) iloraz i resztę z dzielenia całkowitoliczbowego przez 17 (jedna macierz wejściowa i dwie macierze wyjściowe)
  6. Korzystając z modułu time, porównaj prędkość funkcji liczących N potęg dwójki – na liście i w wektorze. Dla jakich wartości N warto używać macierzy?