Category Archives: WBO

WBO 12 – Mapowanie odczytów NGS

Dziś mamy zajęcia o mapowaniu odczytów. Wykład tutaj: wyk12-ngs

Zadania na dziś dotyczą głównie indeksów sekwencji:

1. Napisz funkcję compute BWT(txt), która oblicza BWT (w postaci napisu) dla zadanej sekwencji DNA oraz tablice C(x) i OCC(i,x)

2. Wylicz te wartośći dla sekwencji:
CGAGCCGCTTTCCATATCTATTAACGCATAAAAAACTCTGCTGGCATTCACAAATGCGCAGGGGTAAAACGTTTCCTGTAGCACCGTGAGTTATACTTTGT

3. Korzystając z metody podanej na wykładzie wyszukaj wystąpień napisu AAAC w podanej sekwencji

4. Korzystając z podanej metody omijania błędów znajdź sekwencję (z co najwyżej jednym błędem) AAAACTCCGCTGGCATTCACAAAT

Zadanie domowe: Użyj stworzonego dziś kodu aby wyszukać wszystkich promotorów z pliku ecoli_proms.fa w sekwencji genomu E. coli Escherichia_coli_str_k_12_substr_mg1655.ASM584v2.dna.chromosome.Chromosome.fa

WBO – Zadanie 2

Naszym zadaniem będzie analiza ewolucji białek z rodziny Homeodomain (HOX). W szczególności interesować nas będą białka pobrane z bazy homeoDB dla 4 gatunków: Człowieka, myszy, muszki owocowej i chrząszcza: homeo2.fa. Co istotne, w pliku Fa opis genu obejmuje: Gatunek|Nazwę genu|rodzinę genu|klasę genu

Podzielimy to zadanie na kilka podzadań:

  1. Korzystając z lokalnej instalacji narzędzia BLAST stwórz bazę danych sekwencji z pliku Fasta i następnie wylicz przybliżoną macierz podobieństwa poprzez wykorzystanie funkcji oceny BLAST. Dla genów niepodobnych wg blast, przyjmij ustaloną niską wartość podobieństwa. (3 pkt)
  2. Korzystając z metody Neighbor joining skonstruuj drzewo genów dla tej rodziny.  (2 pkt)
  3. Zakładając, że człowiek z myszą i muszka z chrząszczem są najbliżej spokrewnionymi gatunkami spośród 4 danych dokonaj uzgodnienia otrzymanego drzewa genów z drzewem gatunków, tj. znajdź optymalny (w sensie duplikacji i strat) scenariusz ewolucyjny dla drzewa gatunków i Twojego  drzewa genów.   Czy możesz wybrać taki scenariusz optymalny, który jest zgodny z opisem genów w oryginalnym pliku (zakładamy, że geny z  różnych rodzin w tym samym gatunku to na pewno paralogi, a geny o tej samej nazwie u różnych gatunków to ortologi). (7 pkt)
  4. Wykorzystując narzędzie Hmmer dokonaj opisu domen białkowych dla klas genów hox (białka o tej samej ostatniej kolumnie w pliku fasta). Sprawdź, jak często białka należące do każdej z klas zawierają domeny należące do innej klasy. (4 pkt)
  5. Opisz swoje rozwiązanie (1 strona) i wyniki (max 2 strony) w krótkim raporcie w .pdf (4 pkty)

Wynik w postaci programu w pythonie i raportu w pdf wyślij na adres e-mail wykładowcy z dopiskiem [WBO-2-2018] do 22. czerwca 2018.

WBO 11 – Motywy sekwencyjne i ich wyszukiwanie

Dziś rozmawialiśmy o reprezentacji i wyszukiwaniu motywów sekwencyjnych: wyk11-motifs

Zadania na dziś:

1. Pobierz listę promotorów e_coli w pliku fasta: ecoli_proms.fa

2. Zapoznaj się z modelem macierzy motywów z modułu Bio.motifs i jego dokumentacją 

3. Zaimplementuj prostą, zachłanną metodę consensus dla wyszukiwania motywów, zastosuj ją do promotorów e.coli i obejrzyj wyniki dla motywów długości 3,4,5,6. Schemat algorytmu jest następujący:

  • zaczynając od dowolnego miejsca w pierwszej sekwencji skonstruuj na jego podstawie model PWM
  • dla każdej kolejnej sekwencji wybieraj sekwencję najlepiej pasującą do obecnego modelu PWM
  • Po wybraniu sekwencji skonstuuj nowy model PWM, wzbogacony o tę sekwencję
  • Po wykonaniu tej procedury dla wszystkich punktów startowych z sekwencji 1. zwróć kilka (np. 5) najlepszych macierzy

Powtórz tę procedurę dla kilku różnych permutacji pliku wejściowego.

4. Porównaj wyniki ze znanymi motywami promotorowymi w E. coli

5. Wykonaj analizę tych samych promotorów przy pomocy MEME i porównaj wyniki z otrzymanymi z consensusa

WBO 10 – Uzgadnianie drzew

Dzisiaj na wykładzie zajmowaliśmy się uzgadnianiem drzew.

Slajdy do wykładu:

Zadania na lab:

Dzisiaj zajmiemy się uzgadnianiem drzew. Rozważmy sytuację, gdy mamy 1 drzewo gatunków S i drzewo genów G zgodne z tym drzewem gatunków (dla każdego genu g\in G , s(g)\in S). Na początek możesz

1. Napisz algorytm LCA(G,S), który znajduje mapowanie LCA i zwraca je w postaci słownika

2. Napisz funkcje liczące koszty DC(G,S), D(G,S) a następnie wykorzystaj wzór ze slajdu 10, który wylicza koszt L(G,S)

3. Napisz funkcję fat_tree(G,S), która tworzy scenariusz uzgadniający G i S (nie zawsze optymalny), gdzie w korzeniu występują wszystkie duplikacje, zaś wszystkie straty występują w krawędziach prowadzących do liści. Scenariusz w naszym przypadku, to etykietowanie drzewa gatunków zdarzeniami ewolucyjnymi, D i L. Zauważmy, że zarówno straty jak i duplikacje występują na krawędziach drzewa gatunków.

4. Napisz funkcję optimal_tree(G,S), która znajduje jeden z optymalnych scenariuszy uzgadniających G i S. W tym celu musimy przenieść w drzewie “grubym” duplikacje w dół, a straty w górę, jeśli to możliwe.

5. sprawdź na przykładzie drzewa z wykładu (abcde), czy Twój algorytm działa poprawnie

WBO 9 – Homologi i funkcje genów

Slajdy z dzisiejszego wykładu są tu: WBO9

Zadania na dziś:

1. Zapoznaj się z testem Fishera  (np w pakiecie scipy fisher_exact) i metodą GSEA zaimplementowaną w Istytucie Broad’a 

2. Zapoznaj się z formatami plików OBO i GAF z projektu gene ontology: opis formatów, przykładowy plik GAF, przykładowy plik OBO

3. Napisz prosty program, który testuje testem Fishera, wraz z poprawką Bonferroniego wzbogacenie funkcji GO w zadanym zbiorze genów.

4. Przetestuj to na połączonym zbiorze histonów i homologów PAH

5 (*). Zaimplementuj uproszczoną metodę GSEA na podstawie danych z suplementu do pracy o GSEA 06580SuppText

 

Praca domowa:

Napisz funkcję Go_enrichment z zadania 3 poszerzoną o przypisanie genów do terminów nadrzędnych (na podstawie relacji is_a, part_of z pliku OBO)

WBO – ustalenia dot. Zaliczenia WBO

Dziś na zajęciach umówiliśmy się, że kolokwium będzie na ostatnich ćwiczeniach – 12. czerwca o godzinie 10:15.

Na przedostatnich zajęciach (5. czerwca) zrobimy sobie na ćwiczeniach powtórkę z zagadnień do kolokwium.

Duży projekt zaliczeniowy ogłoszę nie później niż w połowie maja, żeby mieli Państwo miesiąc na wykonanie go.

 

WBO 8 – Algorytm BLAST

Dziś rozmawialiśmy o algorytmach przybliżonego wyszukiwania sekwencji w bazach danych. Slajdy są tu: wyk8

Na ćwiczeniach spróbujemy zająć się wykorzystaniem programu blast:

0. Wczytaj plik w formacie FastQ microbial_reads.fastq (jest już na naszym serwerze jupyter, nie trzeba go tam ładować), przy pomocy SeqIO.parse(). Są to odczyty z mikrobiomu jelitowego myszy.

1. Wybierz kilka losowych, dość długich sekwencji DNA i uruchom dla nich program BLAST online, obejrzyj wyniki (jeśli nic się nie “trafiło”, możesz wybrać inne, dłuższe sekwencje)

2. Wykonaj wyszukiwanie dla tych samych sekwencji przy pomocy interfejsu API biopython’a do blasta online (NCBIWWW) i parsera xml (NCBIXML)

3. Znajdź, która z twoich wybranych sekwencji ma najistotniejsze trafienia do bazy NCBI

4. Przeanalizuj “trafioną” sekwencję. Czy to możliwe, aby ta sekwencja była dokładnie z tego organizmu, który był badany? Porównaj z wynikami algorytmu Smith’a-Waterman’a

 

 

WBO 7 – zastosowania HMM

Dzisiaj mówiliśmy o zastosowaniach HMM do reprezentacji profilów uliniowień oraz wyszukiwania genów.

Slajdy są tu: wyk7

W ramach ćwiczeń, warto jest zapoznać się z bazą PFAM  i możliwością wyszukiwania profilów domen przy pomocy programu HMMER. Mieliśmy też wykorzystać moduł HmmerIO, ale niestety nie działa on po niedawnych zmianach formatu HMMER.

Zasadniczo powinniśmy móc wykorzystać to narzędzie (pfam+hmmer) do wyszukania domen. I znalezienia ich modeli. Proponuję zacząć od białka tramtrack , które posiada 2 istotnie różne wersje TTK69 i TTK88. Proszę znaleźć te dwie sekwencje aminokwasowe w bazie flybase, ściągnąć je do siebie i wrzucić do wyszukiwarki domen pfam/hmmer. Następnie porównać struktury domen tych białek i zobaczyć jak to się ma do struktury egzonów genu tramtrack. Warto zobaczyć jak wyglądają opisy domen w postaci profilów hmm.

WBO 6 – Ukryte modele Markowa

Dziś na wykładzie omówiliśmy ukryte modele Markowa i algorytmy rekonstrukcji parametrów z danych. Slajdy są tu: wyk6

Przy okazji – na naszym serwerze jupyter doinstalowalem mozliwosc uzywania python’a 3, ale niestety przestala dzialac funkcjonalnosc python’a 2. Jesli ktos chce korzystac ze stworzonych wczesniej notebooków, to trzeba wybrac opcję: kernel->change kernel-> python 3

Zadania na dziś:

0. Zapoznaj się z modułem hmmlearn. Będziemy go wykorzystywać do uczenia modeli z emisjami

1. Wyspy CpG znajdują się często w genomach, w szczególności genomie ludzkim. Spróbuj zdefiniować ukryty model Markowa, który ma 2 stany i spróbuj nauczyć go na sekwncji zawartej w pliku cpg.fa. Zrób to zarówno dla sekwencji liter (ACGT), jak i dla sekwencji dwunukleotydów (AA,AC,AG,AT, itp…) Czy możesz zinterpretować macierze emisji i przypisać jeden ze stanów do wysp CpG? Wykonaj kilkakrotnie proces uczenia (Baum-Welch) i zobacz czy wyniki są podobne. Jak interpretujesz prawdopodobieństwa w macierzy przejść. Czy coś możesz powiedzieć o średniej długości wysp CpG?

Warto przyjrzeć się przykładowi użycia klasy MultinomialHMM

2. czasami potrzebujemy użyć łańcuchów Markowa do segmentacji sygnału. Weżmy przykładowy plik – dane o methylacji histonów w rzodkiewniku (H3K9me2-crh6-3-chr1.sgr) zawierający poziom metylacji w różnych pozycjach (plik jest tekstowy, każda linia zawiera informacje o pozycji i wartośći). Wykorzystaj HMM z emisjami Gaussowskimi do segmentacji genomu na 2 lub 3 stany. Jakie są wysetymowane wartości średnie dla różnych stanów? Przykład wykorzystania HMMów z emisjami Gaussowskimi można znaleźć tu 

praca domowa:

Wykorzystaj model nauczony na danych o CpG i przetestuj które z 30 sekwencji w pliku cpg_test.fa są naprawdę wyspami CpG. Jako wynik proszę przysłać program w pythonie i wynik w pliku tekstowym.