ONA 2 – Wektory, macierze i numpy

Slajdy do wykładu – ONA2-Macierze

Jako interpretera pythona mogą Państwo dalej używać naszego serwera Jupyter. Proszę o nie nadużywanie tych interpreterów – szczególnie jeśli chodzi o zajmowanie pamięci. Trochę porad jak używać jupytera znajdą Państwo 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. Np. poz([1,1,1],(2,2,2)) daje 7, zaś poz([0,1,0],(2,2,2)) daje 2. Jeśli ktoś przyśle mi w ciągu tygodnia taki program liczący poz() dla dowolnej liczby wymiarów, i nie tworzącej dodatkowych macierzy, e-mailem, z dopiskiem [ONA] w temacie, to otrzyma dodatkowy punkt do zaliczenia.
  3. Napisz program, który  zmienia znak elementów w macierzy B, których suma indeksów jest nieparzysta, na ujemny. Warto wykorzystać  mnożenie macierzy i ew. broadcasting.
  4. korzystając z metody sort() , posortuj macierz 3-wymiarową wg. drugiej współrzędnej i obejrzyj wynik ze zrozumieniem tego co się wydarzyło.
  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?

APB 1,2 – Wprowadzenie i projekty BioX

Na pierwszym wykładzie rozmawialiśmy głównie o planach na wykład. Plan na lab, to zapoznanie się z podstawami systemów kontroli wersji.

Slajdy są tu: wyk1-intro

Materiały do labu:

Na drugim wykładzie rozmawialiśmy o bioperlu, biopythonie i innych projektach open-source. Slajdy do wykładu są tu: wyk2-bioX

Zgrubny harmonogram pracy na laboratoriach (zachęcam do wyprzedzania):

26 II – zebranie zespołów, (ew. wybór kierowników, może być później)
11 III – decyzja dot. tematu projektu
 praca w grupach
25 III – określenie zakresu projektu – krótki opis projektu (dostarczony do mnie dokument 1-2 stronicowy
 praca w grupach
15 IV – szczegółowy opis funkcjonalności do stworzenia przez poszczególne osoby
 praca w grupach
29 IV – prezentacja początkowych implementacji, dyskusja decyzji projektowych
 praca w grupach
4 VI – prezentacje projektów

 

WBO 2 – Sequence evolution models

Today, we will discuss basic mathematical models of sequence evolution. (polska wersja poniżej)

The slides for the lecture can be found here: wyk2

Again, you can use our jupyter server. There are some tutorials on jupyter usage  here. Otherwise, you will need a python interpreter with biopython installed.

Assignments for today:

1. Take a look at the Bio.SubsMat.MatrixInfo module, where PAM and BLOSUM matrices are defined.

2. Implement a simple, discrete Markov model, that allows for simulation of mutations in a sequence over discrete time steps, according to substitution matrices defined using Bio.SubsMat. Try to implement Kimura and Felsenstein models.

3. Take the test_fasta file from last week and see how many steps of random mutations without selection does it take to change one of the sequences to another without selection pressure.

4. Implement a simple Markov process with selection, i.e. after making a random mutation that brings you closer (according to Hamming distance) to the target sequence, then accept it. Reject it otherwise. Compare run times of this implementation with the previous one (without selection).

 

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.