Warianty strukturalne

Slajdy są dostępne tu (N. Dojer), oraz tu (J. Korbel) i tu (J. Aerts)

dziś na zajęciach obejrzymy sobie pliki z wykrytymi wariantami przez projekt 1000 genomów. Pliki są w formacie VCF

Możemy wybrać sobie chromosom i spróbować zwizualizowac plik w IGV (raczej nie zadziała w labie).

Lepiej będzie spróbować znaleźć translokacje, insercje i delecje (BND,INS,DEL) i zwizualizować je w CIRCOS (circos działa na komputerze adela, konto tsg2)

1. Dla zadanego chromosomu stwórz ścieżki z wystąpieniami insercji (słupki) delecji (heatmap) na podstawie danych z pliku vcf

2. dla zadanej pary chromosomów pokaż translokacje między nimi opisane w pliku cancer_breakpoints.txt na koncie użytkownika tsg2 na komputerze adela.

Mogą się przydać lekcje circos

Zadanie zaliczeniowe nr 1

Naszym zadaniem będzie liczenie zawartości nukleotydów GC w różnych fragmentach genomu drożdża używanego m.in. do wytwarzania piwa poprzez górną fermentację. Wielbiciele dolnej fermentacji będą musieli poczekać, aż genom drożdży lagerowych zostanie równie dobrze opisany. Sekwencja tego genomu jest dostępna tu w postaci pliku w formacie FastA, a jej opis tutaj w postaci pliku typu GFF.

Naszym zadaniem jest stworzyć program w python’ie, w postaci pojedyńczego pliku zad1_[nr indeksu].py, zawierającego 3 następujące funkcje:

  • (3 pkt) funkcja gc_content(gene_id), która dla zadanego identyfikatora genu (Np. YAL003W) znajduje jego pozycję na genomie (chromosom, początek, koniec) i oblicza udział nukleotydów G i C spośród wszystkich pozycji sekwencji odczytanej z odpowiedniego fragmentu pliku fasta. Np. zawartość GC w sekwencji “ATGCGCTGATG” to 6/11, czyli 0.54(54).
  • (3 pkt) funkcja gc_intron(chromosom), dla zadanego chromosomu znajduje w pliku gff wszystkie introny i liczy dla nich średni GC content.
  • (4 pkt) funkcja gc_compare(chromosom), która dla zadanego chromosomu wybiera wszystkie introny i dla każdego z nich liczy GC content intronu i GC content całego genu (gen dla intronu znajdujemy w polu parent pliku GFF). W wyniku zwracamy listę trójek, (gene_id, GC_intron, GC_gene).

W pliku z rozwiązaniem mogą znajdować się dodatkowe funkcje, ale powinny być one poniżej funkcji wymaganych w rozwiązaniu. Kod powinien być wyposażony w komentarze. Zakładamy, że podczas wykonania, pliki .fsa i .gff znajdują się w bieżącym katalogu. Zajęć praktycznych z drożdżami ani ich produktami nie planujemy.

Rozwiązania wysyłamy do 23. listopada e-mailem do prowadzących laboratoria z kopią do wykładowcy, używając w tytule tagu [WDI-1-2014]. Aby uzyskać punkty za zadanie trzeba swoje rozwiązanie przedstawić osobiście prowadzącemu lub prowadzącej laboratoria.

TSG2 – Zajęcia 4 – wyszukiwanie SNPów

Slajdy do wykładu są tu i tu.

Dane (sparowane odczyty z genomu ludzkiego) są dostępne tu. Dobrze byłoby zacząć od QC, żeby zobaczyć z czym mamy do czynienia. Potem mapujemy wg. standardowych parametrów do genomu ludzkiego (hg19). Warto porównać to co wyjdzie nam przy pomocy programu bowtie (z opcją -2) i to co wychodzi przy pomocy programu BWA (zmapowane odczyty w pliku sam)

Będziemy robić zadania z tutorialu, który jest tutaj

Interesuje nas sekcja 3, czyli o znajdowaniu snipow przy pomocy mpileup z samtools i bcftools.

Poza tym chcemy nauczyć się korzystać z pakietu GATK do lokalnego re-alignmentu (sekcja 4) i snp-callingu (sekcja 5)

A także do porównywania znalezionych snpów do dbSNP (sekcja 7) przy użyciu podanego pliku vcf.

Porównaj warianty znalezione przy pomocy  mappera BWA z tymi, które otrzymujemy przy pomocy bowtie. pliki VCF znajdziesz tu

 

 

TSG2 – Zajęcia 3 – mapowanie odczytów

Dziś zajmiemy się mapowaniem odczytów. Slajdy z wykłądu są tu

Spróbujemy powrócić do jednego z plików, które już przetwarzaliśmy: test1.fastq

Będziemy używać oprogramowania bowtie do mapowania odczytów do zadanego genomu.

1. Pobierz probram bowtie i sekwencje genomu i stworz dla niej pliki indeksu

2. Spróbuj zmapować przy użyciu bowtie i opcji -m 1 -v 0 (tylko unikalne mapowania bez niezgodności z sekwencją referencyjną).

3. Spróbuj różnych parametrów preprocessingu (flitrowanie trimowanie itp) aby zwiekszyc liczbe zmapowanych odczytow.

4. Zinstaluj przeglądarkę IGV i zwizualizuj zmapowane odczyty przy jej pomocy

5. Porównaj mapowania dokładne (z p. 3) do mapowań z domyślnymi parametrami.

 

TSG2 – zajęcia 2

Dziś chcemy bliżej zapoznać się z indeksami sekwencji.

Spróbujmy zaimplementować trzy rodzaje indeksów:

1. Drzewo sufiksowe. Implementujemy funkcje build_ST(genome) i find (ST,word). Nie interesuje nas tak bardzo koszt implementacji drzewa (może być słownik) ani koszt budowy drzewa (może być n^2). Chodzi o to, aby find działał liniowo względem długości słowa i zwracał wszystkie wystąpienia słowa w genomie.

2. Tablica sufiksowa. Implementujemy funkcję build_SA(genome) i find(SA, word). Podobnie jak w p. 1.

3*. FM-Index: możemy podzielić na podproblemy:

– Dla zadanego genomu policz BWT(genome)

– Dla zadanej BWT, policz Last-First mapping

– Przy użyciu BWT i Last-First mapping skonstruuj wyszukiwanie słowa (czy istnieje wystąpienie i gdzie jest w genomie

– dodaj funkcjonalność związaną z wyszukwianiem wszystkich słów

4. Dla zadanego słowa, napisz funkcję, która wyszukuje wariantów tego słowa w ustalonej odległości (<k błędów) w zadanym indeksie (np. wyszukaj słowa podobne do ATGCG z nie więcej niż 2 błędami w zadanej sekwencji).

TSG 2 – Wykład 2.

Dzisiaj o mapowaniu odczytów. Slajdy z wykładu są tu. Warto też obejrzeć ostatnią część slajdów z kursu w CSHL dostępnych tu

Jako zadanie na zajęcia mamy dokończyć analizę 3. zbioru danych po groomerz’e. Plik można znaleźć w historii nazwanej “dane 3 groomer” na serwerze centromere:8080

Na dziś myślę, że warto jest popróbować samemu zaimplementować wyszukiwanie wzorca przy pomocy drzew sufiksowych, tablic sufiksowych i transformaty B-W.