Uczenie maszynowe w bioinformatyce

Zasady realizacji projektu

Projekt można wykonać samodzielnie lub w dwuosobowym zespole. Mile widziane jest zaproponowanie tematu związanego ze swoimi zainteresowaniami badawczymi lub pracą magisterską, ale w razie braku własnego pomysłu należy wybrać zadanie z poniższej listy. Każdy z tematów może być realizowany tylko przez jeden z zespół. Wybór zadania następuje przez wpisanie członków zespołu do pliku UMB25L_projekt_zespoły na platformie Teams (kanał Projekt, zakładka Pliki).

Do napisania projektu można posłużyć się dowolnym językiem programowania, w tym również środowiskami R, Octave lub Matlab. Dopuszczalne jest korzystanie z bibliotek i toolboxów ułatwiających wykonanie projektu od strony technicznej, związanych np. z odczytem i zapisem danych, operacjami matematycznymi, czy też wizualizacją wyników. Natomiast użycie narzędzi w znacznym stopniu realizujących główny cel projektu (np. biblioteki z gotową siecią neuronową w przypadku, gdy temat wprost mówi o samodzielnej implementacji takiej sieci) powinno być konsultowane z prowadzącym.

Pierwszym etapem zaliczenia projektu jest rozmowa, której celem jest przedstawienie wstępnej koncepcji sposobu rozwiązania zadania. Ogólny termin rozmowy podany został poniżej, natomiast zapisy na konkretne dni i godziny odbędą poprzez dokument UMB25L_projekt_rozmowa na platformie Teams.

Kod i sprawozdanie należy umieścić w repozytorium na wydziałowym serwerze GitLab najpóźniej w podanym poniżej terminie. Zespół tworzy jedno repozytorium o nazwie zgodnej ze schematem UMB25L_Nazwisko1_Nazwisko2, gdzie Nazwisko1 i Nazwisko2 to nazwiska osób realizujących projekt. Osoba zakładająca repozytorium powinna dodać jako współpracowników drugiego członka zespołu oraz prowadzącego (trubel). Proces zakładania repozytorium zdalnego opisany został w osobnej prezentacji.

Obrony odbędą się w ostatnim tygodniu semestru - zapisy na konkretne terminy będą możliwe w dokumencie UMB25L_projekt_obrona na platformie Teams. Ostateczna ocena będzie uwzględniać zarówno jakość realizacji projektu, jak i stopień zrozumienia tematyki związanej z zadaniem. Znaczenie będzie miał również jasny podział obowiązków pomiędzy członkami zespołu.


Ważne daty związane z projektem:

03.03udostępnienie listy projektów
07-11.04rozmowa wstępna (5 punktów)
08.06umieszczenie projektu i sprawozdania w repozytorium (35 punktów)
09-13.06obrony

Klasteryzacja

  1. Implementacja wielostartowego algorytmu klasteryzacji K-średnich (K-means). Program powinien pozwalać na wybór stosowanej miary odległości (np. Euklidesa i Manhattan) i sposobu tworzenia centroidu (średnia arytmetyczna lub mediana) oraz umożliwiać wizualizację wyników na płaszczyźnie dwóch pierwszych składowych głównych (do wyznaczania składowych głównych można użyć gotowej funkcji, np. pca w środowisku Matlab). Materiały: wykład 6, wykład 7. Przykładowe dane do projektu.
  2. Implementacja algorytmu klasteryzacji DBSCAN (Density-Based Spatial Clustering of Applications with Noise). Program powinien pozwalać na wybór stosowanej miary odległości (np. Euklidesa i Manhattan) oraz umożliwiać wizualizację wyników na płaszczyźnie dwóch pierwszych składowych głównych (do wyznaczania składowych głównych można użyć gotowej funkcji, np. pca w środowisku Matlab). Materiały: publikacja 1 wykład 6, wykład 7. Przykładowe dane do projektu.
  3. Implementacja algorytmu klasteryzacji Jarvisa-Patricka. Program powinien pozwalać na wybór stosowanej miary odległości (np. Euklidesa i Manhattan) oraz umożliwiać wizualizację wyników na płaszczyźnie dwóch pierwszych składowych głównych (do wyznaczania składowych głównych można użyć gotowej funkcji, np. pca w środowisku Matlab). Materiały: publikacja, wykład 6, wykład 7. Przykładowe dane do projektu.
  4. Klasteryzacja zbioru danych na zadaną liczbę klastrów przy użyciu algorytmu genetycznego. Program powinien umożliwiać wizualizację wyników na płaszczyźnie dwóch pierwszych składowych głównych (do wyznaczania składowych głównych można użyć gotowej funkcji, np. pca w środowisku Matlab). Przy implementacji można korzystać z zewnętrznej biblioteki realizującej operacje genetyczne (np. Global Optimization Toolbox). Materiały: wykład 6, wykład 7. Przykładowe dane do projektu.
  5. Implementacja algorytmu aglomeracyjnej klasteryzacji hierarchicznej. Program powinien pozwalać na wybór stosowanej miary odległości i sposobu tworzenia drzewa oraz umożliwiać wizualizację wyników w postaci dendrogramu. Materiały: wykład 6. Przykładowe dane do projektu.
  6. Implementacja algorytmu aglomeracyjnej klasteryzacji hierarchicznej (np. UPGMA lub Neighbor Joining) i użycie go do tworzenia drzew filogenetycznych na podstawie sekwencji DNA. Program powinien pozwalać na wybór stosowanej miary odległości ewolucyjnej i umożliwiać wizualizację wyników w postaci dendrogramu. Materiały: prezentacja, skrypty Matlaba, wykład 6. Przykładowe dane do projektu.
  7. Estymacja liczby klastów przy użyciu miary silhouette i indeksu Calińskiego-Harabasza. W projekcie można użyć gotowej implementacji algorytmu klasteryzacji, np. K-means z Matlaba. Program powinien umożliwiać wizualizację wyników na płaszczyźnie dwóch pierwszych składowych głównych (do wyznaczania składowych głównych można użyć gotowej funkcji, np. pca w środowisku Matlab). Materiały: wykład 6, wykład 7. Przykładowe dane do projektu.
  8. Zbadanie właściwości klasteryzacji po redukcji wymiarowości danych za pomocą analizy składowych głównych. Można użyć dowolnego algorytm klasteryzacji, np. implementacji K-means z Matlaba. Materiały: wykład 6, wykład 7. Przykładowe dane do projektu.

Klasyfikacja

  1. Implementacja klasyfikatorów liniowej analizy dyskryminacyjnej LDA (Linear discriminant analysis), naiwnego gaussowskiego klasyfikatora Bayesa (Gaussian naïve Bayes) i K-najbliższych sąsiadów (K-NN). Weryfikacja i porównanie skuteczności klasyfikatorów powinna odbywać się przy wykorzystaniu walidacji krzyżowej (Cross-Validation). Jako miar jakości należy użyć dokładności (accuracy) i pola pod krzywą ROC (Receiver operating characteristic), które można wyznaczać za pomocą gotowych funkcji. Materiały: wykład 8. Przykładowe dane do projektu.
  2. Klasyfikacja danych przy użyciu sieci neuronowej typu MLP (MultiLayer Perceptron) lub RBF (Radial basis function network). Sugerowana jest samodzielna implementacja prostej sieci neuronowej - w przypadku chęci użycia narzędzi w rodzaju Neural Network Toolbox wymagana jest wcześniejsza konsultacja z prowadzącym. Weryfikacja skuteczności klasyfikatora powinna odbywać się przy wykorzystaniu walidacji krzyżowej (Cross-Validation). Jako miar jakości należy użyć dokładności (accuracy) i pola pod krzywą ROC (Receiver operating characteristic), które można wyznaczać za pomocą gotowych funkcji. Przykładowe dane do projektu.
  3. Użycie metody wektorów nośnych SVM (Support Vector Machine) do klasyfikacji danych. Sugerowana jest samodzielna implementacja prostej postaci klasyfikatora - w przypadku chęci użycia zewnętrznego kodu (np. biblioteki libSVM lub funkcji fitcsvm/predict środowiska Matlab) wymagana jest wcześniejsza konsultacja z prowadzącym. Weryfikacja skuteczności klasyfikatorów powinna odbywać się przy wykorzystaniu walidacji krzyżowej (Cross-Validation). Jako miar jakości należy użyć dokładności (accuracy) i pola pod krzywą ROC (Receiver operating characteristic), które można wyznaczać za pomocą gotowych funkcji. Przykładowe dane do projektu.
  4. Porównanie skuteczności czterech metod klasyfikacji dostępnych w bibliotece scikit-learn albo środowiskach R lub Matlab dla danych, w których występują co najmniej 3 klasy próbek. Weryfikacja skuteczności klasyfikatorów powinna odbywać się przy wykorzystaniu walidacji krzyżowej (Cross-Validation). Jako miar jakości należy użyć dokładności (accuracy) i pola pod krzywą ROC (Receiver operating characteristic), które można wyznaczać za pomocą gotowych funkcji. Podczas realizacji projetku należy zadbać o właściwą optymalizacje parametrów używanych metod i zbadać ich wpływ na wyniki. Przykładowe dane do projektu.
  5. Porównanie skuteczności czterech metod klasyfikacji dostępnych w bibliotece MLlib (działajacej na platformie Spark) dla danych, w których występują co najmniej 3 klasy próbek. Weryfikacja skuteczności klasyfikatorów powinna odbywać się przy wykorzystaniu walidacji krzyżowej (Cross-Validation). Jako miar jakości należy użyć dokładności (accuracy) i pola pod krzywą ROC (Receiver operating characteristic), które można wyznaczać za pomocą gotowych funkcji. Podczas realizacji projetku należy zadbać o właściwą optymalizacje parametrów używanych metod i zbadać ich wpływ na wyniki. Przykładowe dane do projektu.

Selekcja cech

  1. Selekcja cech różnicujących dwie grupy próbek za pomocą testu permutacyjnego ze statystyką t i kontrolą FDR (False Discovery Rate). Materiały: wykład 9. Przykładowe dane do projektu.
  2. Selekcja cech różnicujących próbki z dwóch klas przy użyciu liniowego klasyfikatora SVM (Support Vector Machine) i metody Recursive Feature Elimination. Uzyskane wynik należy porównać z tymi uzyskanymi za pomocą selekcji w oparciu o prostą miarę f-score (Fisher score). Przy realizacji projektu można korzystać z gotowej implementacji klasyfikatora SVM. Materiały: publikacja 1, publikacja 2, wykład 9. Przykładowe dane do projektu.
  3. Selekcja cech różnicujących próbki z dwóch klas przy użyciu procedury sekwencyjnego dodawania lub usuwania cech (Sequential Feature Selection) korzystającej z klasyfikatora ocenianego za pomocą walidacji krzyżowej (Cross-Validation). Uzyskane wynik należy porównać z tymi uzyskanymi za pomocą selekcji w oparciu o prostą miarę f-score (Fisher score). Przy realizacji projektu można korzystać z gotowej implementacji dowolnego klasyfikatora. Materiały: prezentacja, publikacja, wykład 9. Przykładowe dane do projektu.
  4. Selekcja cech różnicujących próbki z dwóch klas przy pomocy algorytmu genetycznego, który korzysta z klasyfikatora ocenianego za pomocą walidacji krzyżowej (Cross-Validation). Uzyskane wynik należy porównać z tymi uzyskanymi za pomocą selekcji w oparciu o prostą miarę f-score (Fisher score). Przy realizacji projektu można użyć zewnętrznej biblioteki realizującej operacje genetyczne (np. Global Optimization Toolbox) oraz gotowej implementacji dowolnego klasyfikatora. Materiały: prezentacja, publikacja 1, publikacja 2, wykład 9. Przykładowe dane do projektu.
  5. Selekcja cech o charakterystycznych wzorcach przy użyciu rozkładu macierzy na wartości szczególne (SVD - Singular Values Decomposition). Materiały: publikacja 1, publikacja 2, wykład 7. Przykładowe dane do projektu.

Regresja i predykcja

  1. Przewidywanie czasów retencji peptydów na podstawie ich sekwencji przy użyciu sieci neuronowej. Danymi uczącymi dla sieci są zbiory złożone z sekwencji peptydów i zmierzonych dla nich czasów retencji. Sugerowana jest samodzielna implementacja prostej sieci neuronowej - w przypadku chęci użycia narzędzi typu Neural Network Toolbox wymagana jest wcześniejsze konsultacja z prowadzącym. Materiały pomocnicze: publikacja, przydatny program, przykładowe dane uczące.
  2. Przewidywanie czasów retencji peptydów na podstawie ich sekwencji przy użyciu regresji metodą wektorów nośnych (SVR - Support Vector Regression). Danymi uczącymi dla sieci są zbiory złożone z sekwencji peptydów i zmierzonych dla nich czasów retencji. W projekcie można korzystać z gotowej implementacji SVR (np. biblioteki libSVM lub funkcji fitrsvm środowiska Matlab), należy jednak samodzielnie zadbać o właściwą optymalizacje parametrów metody. Materiały pomocnicze: publikacja, przydatny program. Przykładowe dane uczące.

Przetwarzanie wstępne

  1. Rekonstrukcja brakujących wartości w zbiorze danych przy użyciu algorytmu K-najbliższych sąsiadów (K-Nearest Neighbours) i porównanie jego skuteczności z prostymi metodami, takimi jak zastąpienie zerami lub średnią wierszy. Materiały: publikacja, wykład 5. Przykładowe dane do projektu.
  2. Rekonstrukcja brakujących wartości w zbiorze danych przy użyciu rozkładu macierzy na wartości szczególne (SVD - Singular Values Decomposition) i porównanie jego skuteczności z prostymi metodami, takimi jak zastąpienie zerami lub średnią wierszy. Materiały: publikacja 1, publikacja 2, wykład 5, wykład 7. Przykładowe dane do projektu.

Interpretacja biologiczna wyników badań (analiza funkcjonalna)

  1. Oprogramowanie do wyznaczenie grup powiązanych ze sobą funkcjonalnie genów (np. uczestniczących w tych samych procesach biologicznych, zdefiniowanych w bazie danych Gene Ontology), które są w istotny sposób nadreprezentowane w zadanym zbiorze genów. Możliwa jest samodzielna implementacja prostego testu nadreprezentacji lub – po konsultacji z prowadzącym – skorzystanie z gotowych funkcji zawartych np. w Bioinformatics Toolbox. Materiały: wykład 12, link, przydatny program, publikacja. Przykładowe dane.

Dane

Danymi wejściowymi są pliki tekstowe o polach rozdzielonych znakami tabulacji (pliki TSV, można je otworzyć w dowolnym arkuszu kalkulacyjnym). Każdy plik zawiera macierz danych liczbowych reprezentujących poziomy ekspresji genów lub białek w kolejnych próbkach. Kolumny macierzy danych odpowiadają próbkom, natomiast wiersze reprezentują cechy (geny, białka lub peptydy). W pliku znajdują się również nazwy cech (pierwszy ciąg znaków w wierszu) i próbek (ciągi znaków w pierwszym wierszu) oraz przypisanie próbek do klas (cyfry w drugim wierszu - każda cyfra odpowiada jednej klasie, nazwy klas są w pierwszej kolumnie tego wiersza, rozdzielone znakami #).

 

W większości archiwów znajdują się trzy wersje zbioru danych: w postaci pierwotnej, po wstępnym przetworzeniu oraz wersja zawierająca tylko 500 cech wybranych pod kątem różnicowania klas.

 

  • Leukemia - mikromacierze oligonukleotydowe, 72 próbki, 3 klasy, 7129 cech (sond reprezentujących geny).
  • LungCancer - mikromacierze oligonukleotydowe, 203 próbki, 5 klas, 12600 cech (sond reprezentujących geny).
  • CRC - mikromacierze oligonukleotydowe, 111 próbek, 3 klasy, 12345 cech (sond reprezentujących geny).
  • BarretNP - mikromacierze oligonukleotydowe, 76 próbek, 3 klasy, 22277 cech (sond reprezentujących geny).
  • RAT - mikromacierze oligonukleotydowe, 39 próbek, 5 klas, 1000 cech (sond reprezentujących geny).
  • Lymphoma - mikromacierze cDNA, 62 próbki, 3 klasy, 4026 cech (sond reprezentujących geny).
  • Peptydom1 - spektrometria mas, 60 próbek, 2 klasy, 1186 cech (peptydów). W archiwum znajduje się również wersja zbioru danych ograniczona do 419 peptydów wybranych pod kątem różnicowania klas.
  • Peptydom2 - spektrometria mas, 60 próbek, 2 klasy, 918 cech (peptydów). W archiwum znajduje się również wersja zbioru danych ograniczona do 240 peptydów wybranych pod kątem różnicowania klas.
  • BreastCancer - parametry cytopatologiczne, 569 próbek, 2 klasy, 32 cechy (Breast Cancer Wisconsin Data Set).