Formalne informacje o projekcie (terminy, zasady zaliczania, skład osobowy, itp.) można znaleźć tutaj:
MBI - projekt
Ze swojej strony zwracam uwagę na terminy i kary związane z opóźnieniami.
Nie jest narzucony konkretny język programowania ani środowisko (z wyjątkiem zalecenia w przypadku grupy projektów nr 1).
Przy realizacji projektów można korzystać z zewnętrznych bibliotek i narzędzi, jednak należy mieć na uwadze, że nie wolno używać oprogramowania nielegalnego, ani gotowych rozwiązań.
Uwaga: limit przydzielonych mi studentów został wyczerpany, tj. mam 14/14 osób zapisanych na projekty, więc proszę zapisywać się do innych prowadzących projekty.
Napisać aplikację, która pozwala zrozumieć działanie wskazanego algorytmu. Pożądane jest, aby aplikacja mogła być uruchamiana przez przeglądarkę (być może zaimplementowana w JavaScript + HTML5 + CSS3). Użytkownik może wprowadzić własne dane i śledzić (krok po kroku) sposób wykonywania obliczeń. Wybierając to zadanie proszę wskazać algorytm, który będzie obrazowany. Przykłady algorytmów:
Aplikacja prostego assemblera DNA, dostarcza wynikowego napisu na podstawie krótkich pod-napisów o danej długości, które się nakładają. Wykorzystać algorytm grafu de Bruijna (patrz wykład o sekwencjonowaniu DNA).
Aplikacja do ustalania kolejności kontigów i tworzenia scafoldów. Dla danego zbioru kontigów oraz sekwencji PET (patrz wykład o sekwencjonowaniu) obliczyć kolejność kontigów. Algorytm może być zachłanny, tzn. badać wszystkie permutacje, chociaż zachęcam do próby użycia własnej heurystyki.
Aplikacja wykorzystuje programowanie dynamiczne (macierzy trójwymiarowa) i oblicza najlepsze dopasowanie dla trzech podanych sekwencji (opis algorytmu - wykład dotyczący podobieństw wielu sekwencji).
Aplikacja oblicza strukturę drugorzędową cząsteczki DNA lub RNA wykorzystując algorytm Nussinov (opis algorytmu - wykład o strukturach drugorzędowych RNA)
Dla podanej grupy sekwencji obliczyć macierz BLOSUM. Sekwencje powinny być tej samej długości. W wyniku działania programu dostarczana będzie macierz podobieństw (zawierająca logarytmy), macierz podstawień (zlicza wszystkie pary danych symboli) oraz częstości poszczególnych symboli. Wykorzystać algorytm omawiany na wykładzie dotyczący macierzy substytucji.
Dla danej sekwencji DNA jednoznacznie (zgodnie z tablicą kodów genetycznych) można uzyskać sekwencje RNA i sekwencję białka, którą jest zakodowane; każdy kodon (trójka nukleotydów) jednoznacznie określa aminokwas. Nie można jednoznacznie odtworzyć sekwencji RNA i DNA mając sekwencję białka (ciąg aminokwasów), ponieważ dany aminokwas może być kodowany przez więcej niż jeden kodon (kodonów jest 64, zaś aminokwasów 20). Można tutaj się posłużyć tabelami częstości kodonów dla danego organizmu. Wykorzystanie ukrytego modelu Markowa pozwoli na odtworzenie struktury DNA i RNA bez potrzeby tego rodzaju parametrów. Wykorzystać algorytm Viterbiego oraz trenowania Viterbiego omówione na wykładzie dotyczącym Modeli Markowa.
Istnieje możliwość zaproponowania i realizacji własnego projektu, do czego, gorąco, zachęcam. Tematyka projektu powinna wiązać się z tematyką wykładu. Złożoność projektu powinna być porównywalna do tematów w obecnej liście.