Bioinformatyka: Wykład 5 Bioconductor Białystok 09.02.2016 Pytanie z poprzedniego wkładu • opisz dwie klasy R odnoszące się do czasu, podaj najważniejszą różnicę Białystok 09.02.2016 BIOCONDUCTOR Zestaw ściśle ze sobą powiązanych pakietów (1104) do analizy danych pochodzących z eksperymentów biologii molekularnej • Dwa wydania rocznie • Społeczność użytkowników i developerów http://bioconductor.org • Białystok 09.02.2016 INSTALACJA • własny system instalacji, częściowo niezależny od standardowego mechanizmu R - czyli funkcji install.packages() • umożliwia koordynację między pakietami i lepszą kontrolę błędów - (usuwa potencjalne niezgodności między wersjami R’a i pakietów oraz pakietów między sobą). • dostarczona przez Bioconductora funkcja biocLite() jest nakładką na install.packages() zapewniającą instalację poprawnej wersji pakietów zgodnej z wersją Bioconductora Białystok 09.02.2016 INSTALACJA bieżąca wersja (21.12.2015) to Bioconductor 3.2 zgodny z R 3.2. Przed instalacją Bioconductora należy zainstalować właściwą wersję R. • Instalacja Bioconductora: • ! source("https://bioconductor.org/biocLite.R") biocLite() ! • Instalacja pakietów Bioconductora (np pakietów “GenomicFeatures” and “AnnotationDbi” ! biocLite(c("GenomicFeatures", "AnnotationDbi")) Białystok 09.02.2016 ZASTOSOWANIA Pakiety Bioconductora są najczęściej zorganizowane w potoki przetwarzania (workflows). Pakiety wykonują dobrze zdefiniowane zadania cząstkowe i łączą się z innymi używając wspólnych struktur danych. • Przykładowe zastosowania • Sequence Analysis • Oligonucleotide Arrays • Annotation Resources • Annotating Genomic Ranges • Annotating Genomic Variants • Białystok 09.02.2016 ZASTOSOWANIA Większość zastosowań Bioconductora dotyczy danych sekwencyjnych pochodzących z eksperymentów sekwencjonowania nowej generacji dla DNA i RNA • Dlatego będziemy się dalej zajmować takimi właśnie przykładowymi zastosowaniami. • Skoncentrujemy się na sekwencjonowaniu RNA w kontekście analizy poziomu ekspresji genów • Białystok 09.02.2016 RNA SEQ • Dwa podstawowe zastosowania • Analiza jakościowa: identyfikacja genów podlegających ekspresji, określenie granic intron/exon, miejsc startu transkrypcji. • Analiza ilościowa: określenie różnic w poziomie transkrypcji, wariantów w splajsingu, startu transkrypcji dla różnych grup (np różnych fenotypów lub różnych terapii). Białystok 09.02.2016 PROCESY Z UDZIAŁEM RNA Wikipedia: Dhorspool Białystok 09.02.2016 ALTERNATYWNY SPLAJSING Narayanese at English Wikipedia National Human Genome Research Institute Białystok Wikipedia: Agathman 09.02.2016 SEKWENCJONOWANIE RNA • Przebieg eksperymentu sekwencjonowania RNA-seqlopedia http://rnaseq.uoregon.edu • • • • • • • Izolacja RNA z materiału biologicznego Oczyszczenie RNA Fragmentacja na kawałki odpowiedniej wielkości Synteza cDNA na matrycy RNA Amplifikacja cDNA metodą PCR Sekwencjonowanie Analiza sekwencji Białystok 09.02.2016 SEKWENCJONOWANIE RNA Eksperyment sekwencjonowania RNA przygotowanie biblioteki fragmentów cDNA RNA-seqlopedia http://rnaseq.uoregon.edu Białystok 09.02.2016 SEKWNCJONOWANIE RNA • W zależności od celu eksperymentu przeprowadzane są różne analizy i ważne są różne aspekty jakości eksperymentu. W nawiasach zaznaczamy ważność dla eksperymentów jakościowych/ilościowych • wiele prób na różnych obiektach biologicznych (przydatne/kluczowe) • stopień pokrycia transkryptu (ważne zwłaszcza dla identyfikacji izoform / niekonieczne - ważne jest istnienie unikatowych readów) • krotność pokrycia (depth of sequencing) (wystarczająco wysoka by odkryć rzadkie transkrypty/kluczowe dla uzyskania dobrej oceny statystycznej) RNA-seqlopedia http://rnaseq.uoregon.edu Białystok 09.02.2016 ANALIZY ILOŚCIOWE RNA Replikacja - sposób na minimalizację błędów • techniczna (wiele próbek materiału z tego samego obiektu) • biologiczna (próby pochodzące od różnych obiektów biologicznych) • Techniczna może pomóc zminimalizować błędy wynikające z niedoskonałości eksperymentu • Biologiczna - pozwala na przebadanie efektu dla większej populacji • Niemal zawsze lepszym wyborem jest zwiększenie liczby prób biologicznych! • Białystok 09.02.2016 ANALIZY ILOŚCIOWE RNA Testowanie hipotez • H0 - hipoteza zerowa - różnice ekspresji genu X między obiema grupami są efektem losowym • H1 - hipoteza alternatywna - różnica ekspresji genu X między grupami jest związana z badanym zjawiskiem. • Algorytm (uproszczony) • dla każdego genu • policz średnią i wariancję ekspresji genu X w próbie kontrolnej E0(X) • policz średnię i wariancję ekspresję genu X w próbie testowej E1(X) • policz zmienną Z ze wzoru: x0 − x1 • ! Z= ! • v0 v1 + n0 n1 sprawdź prawdopodobieństwo uzyskania takiego wyniku losowo. (n0 i n1 są liczbą obiektów w obu grupach pomniejszoną o 1) Białystok 09.02.2016 ŹRÓDŁA BŁĘDÓW • Hipotetyczny średni rozkład liczby cząsteczek mRNA w badanej populacji Białystok 09.02.2016 ŹRÓDŁA BŁĘDÓW • Pojedynczy osobnik z populacji - prawdziwy rozkład liczby cząstek mRNA w dniu eksperymentu Białystok 09.02.2016 ŹRÓDŁA BŁĘDÓW • Pojedynczy osobnik z populacji - liczba cząstek mRNA w próbie po procedurze eksperymentalnej Białystok 09.02.2016 ŹRÓDŁA BŁĘDÓW • Pojedynczy osobnik z populacji - liczba cząstek mRNA zmierzona w sekwencjonowaniu Białystok 09.02.2016 ŹRÓDŁA BŁĘDÓW Dwa pomiary • Hipotetyczny średni rozkład liczby cząsteczek mRNA w badanej populacji • Obiekt 2 Obiekt 1 Białystok 09.02.2016 ŹRÓDŁA BŁĘDÓW Dwa pomiary • Realizacje dla dwóch obiektów • cor(X1,Y1) : 0.9694165 • Obiekt 2 Obiekt 1 Białystok 09.02.2016 ŹRÓDŁA BŁĘDÓW Dwa pomiary • Pomiary dla dwóch obiektów • cor(X2,Y2) : 0.7503846 • Obiekt 2 Obiekt 1 Białystok 09.02.2016 ŹRÓDŁA BŁĘDÓW Dwa pomiary • Procedura eksperymentalna dla dwóch obiektów • cor(X3,Y3) : 0.6909174 • Obiekt 2 Obiekt 1 Białystok 09.02.2016 ŹRÓDŁA BŁĘDÓW Dwa pomiary • Procedura eksperymentalna dla dwóch obiektów • cor(X3,Y3) : 0.6909174 • Białystok 09.02.2016 PRZYGOTOWANIE BIBLIOTEKI Synteza nici DNA na matrycy RNA • potrzebny jest primer (fragment, do którego będą dodawane nukleotydy) • oligo-dT (dołącza do ogona poli-A dojrzałego mRNA) • losowy primer (doczepia się w losowym miejscu) • doklejanie do końca RNA sekwencji komplementarnej do przygotowanego primera • Synteza drugiej nici DNA na pierwszej - również potrzebne są primery • Doklejenie sekwencji adapterowych do dwuniciowego DNA. Adaptery są konieczne dla dalszych operacji - amplifikacji DNA dla zwiększenia liczby kopii. • Białystok 09.02.2016 PRZYGOTOWANIE BIBLIOTEKI • Synteza nici DNA na matrycy RNA RNA-seqlopedia http://rnaseq.uoregon.edu Białystok 09.02.2016 PRZYGOTOWANIE BIBLIOTEKI Doklejenie sekwencji adapterowych do dwuniciowego DNA. Adaptery są konieczne dla dalszych operacji - amplifikacji DNA dla zwiększenia liczby kopii. • Doklejenie znaczników do sekwencjonowania • RNA-seqlopedia http://rnaseq.uoregon.edu Białystok 09.02.2016 SEKWENCJONOWANIE • Wiele firm rozwija metody sekwencjonowania RNA/DNA, oparte na różnych procesach chemicznych • Illumina • Affymetrix • Pacific Bio Białystok 09.02.2016 ILUMINA (SOLEXA) SEQUENCING Wikipedia: DMLapato Białystok 09.02.2016 ILUMINA (SOLEXA) SEQUENCING Wikipedia: DMLapato Białystok 09.02.2016 ILUMINA (SOLEXA) SEQUENCING Wikipedia: DMLapato Białystok 09.02.2016 ILUMINA (SOLEXA) SEQUENCING Wikipedia: DMLapato Białystok 09.02.2016 ILUMINA (SOLEXA) SEQUENCING Wikipedia: DMLapato Białystok 09.02.2016 ANALIZA SEKWENCJI • Etapy: • Rozdzielenie eksperymentów • Filtrowanie ze względu na jakość • Obcięcie fragmentów znacznikowych • Mapowanie (dopasowanie) fragmentów do referencyjnego genomu lub transkryptomu • Annotacja transcryptów ze zmapowanymi fragmentami • Zliczenie zmapowanych fragmentów w celu oceny ilości transkryptu • Analiza statistyczna pozwalająca na zbadanie różnic w ekspresji dla pojedynczych transkryptów (genów lub wariantów) • Wizualizacja i analiza wieloczynnikowa Białystok 09.02.2016 BIOCONDUCTOR Białystok 09.02.2016 FASTQ Format do przechowywania danych z sekwencjonowania • 4 linie na fragment 1. Linia zaczyna się od znaku @, następnie identyfikator sekwencji i opcjonalnie opis 2. Linia zawiera wyłącznie sekwencję 3. Linia zaczyna się od znaku + i może opcjonalnie zawierać identyfikator i opis 4. Linia zawiera symbolicznie zapisaną ocenę jakości dla każdego nukleotydu. Musi zawierać dokładnie tyle samo znaków co sekwencja. • Skala jakości (! najniższa ~ najwyższa): • !”#$%&’()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNO! PQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Q = −10 log p p Q = −10 log 1− p Białystok 09.02.2016 Przykłady • generyczny FASTQ • ! @SEQ_ID! !GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCACAGTTT! !+! !''*((((***+))%%%++)(%%%%).1***-+*''))**55CCF>>>>>>CCCCCCC65 ! ! • NCBI @SRR001666.1 071112_SLXA-EAS1_s_7:5:1:817:345 length=36! GGGTGATGGCCGCTGCCGATGGCGTCAAATCCCACC! +SRR001666.1 071112_SLXA-EAS1_s_7:5:1:817:345 length=36! IIIIIIIIIIIIIIIIIIIIIIIIIIIIII9IG9IC Białystok 09.02.2016 SAM/BAM • Sequence Alignment Map (BAM jest wersją binarną) Białystok 09.02.2016 BIOSTRINGS Pakiet Biostrings służy do manipulacji sekwencjami biologicznymi (DNA/ RNA i białka • instalacja • ! source("http://bioconductor.org/biocLite.R") biocLite("Biostrings") ! • załadowanie do pamięci require(Biostrings) ! • lub library(Biostrings) Białystok 09.02.2016 BIOSTRINGS > library(Biostrings) Ładowanie wymaganego pakietu: BiocGenerics Ładowanie wymaganego pakietu: parallel Dołączanie pakietu: ‘BiocGenerics’ Następujące obiekty zostały zakryte z ‘package:parallel’: clusterApply, clusterApplyLB, clusterCall, clusterEvalQ, clusterExport, clusterMap, parApply, parCapply, parLapply, parLapplyLB, parRapply, parSapply, parSapplyLB Następujący obiekt został zakryty z ‘package:stats’: xtabs Następujące obiekty zostały zakryte z ‘package:base’: anyDuplicated, append, as.data.frame, as.vector, cbind, colnames, do.call, duplicated, eval, evalq, Filter, Find, get, intersect, is.unsorted, lapply, Map, mapply, match, mget, order, paste, pmax, pmax.int, pmin, pmin.int, Position, rank, rbind, Reduce, rep.int, rownames, sapply, setdiff, sort, table, tapply, union, unique, unlist, unsplit Ładowanie wymaganego pakietu: S4Vectors Ładowanie wymaganego pakietu: stats4 Creating a generic function for ‘nchar’ from package ‘base’ in package ‚S4Vectors’ Ładowanie wymaganego pakietu: IRanges Ładowanie wymaganego pakietu: XVector Białystok 09.02.2016 BIOSTRINGS Pakiet Biostrings służy do manipulacji sekwencjami biologicznymi (DNA/ RNA i białka • Zawiera użyteczne klasy i obiekty • Przykład - generowanie losowej sekwencji • > letters [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "v" "w" "x" "y" "z" > LETTERS [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "V" "W" "X" "Y" "Z" > sample(LETTERS[c(1,3,7,20)],size=20,replace=TRUE) [1] "G" "C" "T" "A" "C" "T" "A" "A" "T" "T" "C" "G" "G" > DNA_ALPHABET [1] "A" "C" "G" "T" "M" "R" "W" "S" "Y" "K" "V" "H" "D" > seq<- sample(DNA_ALPHABET[1:4],size=20,replace=TRUE) > seq [1] "G" "T" "C" "C" "C" "A" "G" "C" "T" "G" "A" "G" "A" > seq [1] "GTCCCAGCTGAGAGCACAAG" Białystok "n" "o" "p" "q" "r" "s" "t" "u" "N" "O" "P" "Q" "R" "S" "T" "U" "T" "C" "C" "G" "G" "C" "G" "B" "N" "-" "+" "." "G" "C" "A" "C" "A" "A" "G" 09.02.2016 BIOSTRINGS • Klasa wirtualna XStrings nie jest dostępna bezpośrednio ale dostępne są jej podklasy: • BString - ogólna klasa napisowa • DNAString - sekwencja DNA • RNAString - sekwencja RNA • AAString - sekwencja aminikwasowa > bstring = BString("I am a BString object") > bstring 21-letter "BString" instance seq: I am a BString object > dnastring <- DNAString("I am a BString object") Błąd w poleceniu '.Call2("new_XString_from_CHARACTER", classname, x, start(solved_SEW), ': key 73 (char 'I') not in lookup table > aastring <- AAString("I am a BString object") > aastring 21-letter "AAString" instance seq: I am a BString object Białystok 09.02.2016 BIOSTRINGS • obiekty klas pochodnych od XStrings nie są zwykłymi napisami: > dnastring = DNAString("TTGAAA-CTC-N") > dnastring 12-letter "DNAString" instance seq: TTGAAA-CTC-N > length(dnastring) [1] 12 > dnastring[1:4] 4-letter "DNAString" instance seq: TTGA > bstring[1:4] 4-letter "BString" instance seq: I am > napis<-"I am a BString object" > napis[1] [1] "I am a BString object" > napis[1:4] [1] "I am a BString object" NA NA NA ! Białystok 09.02.2016 BIOSTRINGS • klasy pochodnych od XStrings są klasami typu S4 - rzadziej występujące w R niż klasa typu S3. Inny jest sposób dostępu do elementów klasy > str(dnastring) Formal class 'DNAString' [package "Biostrings"] with 5 slots ..@ shared :Formal class 'SharedRaw' [package "XVector"] with 2 slots .. .. ..@ xp :<externalptr> .. .. ..@ .link_to_cached_object:<environment: 0x7f8b8aee9400> ..@ offset : int 0 ..@ length : int 12 ..@ elementMetadata: NULL ..@ metadata : list() > slotNames(dnastring) [1] "shared" "offset" "length" "elementMetadata" "metadata" > dnastring@length [1] 12 > dnastring$length Błąd w poleceniu 'dnastring$length':$ operator not defined for this S4 class > Białystok 09.02.2016