Bioinformatyka: Wykład 5 Bioconductor
Pytanie z poprzedniego wkładu opisz dwie klasy R odnoszące się do czasu, podaj najważniejszą różnicę
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
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
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"))
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
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
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).
PROCESY Z UDZIAŁEM RNA Wikipedia: Dhorspool
ALTERNATYWNY SPLAJSING Narayanese at English Wikipedia National Human Genome Research Institute Wikipedia: Agathman
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
SEKWENCJONOWANIE RNA Eksperyment sekwencjonowania RNA - przygotowanie biblioteki fragmentów cdna RNA-seqlopedia http://rnaseq.uoregon.edu
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
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!
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:!! Z = x 0 x 1 v 0 n0 + v 1 n1 sprawdź prawdopodobieństwo uzyskania takiego wyniku losowo. (n 0 i n 1 są liczbą obiektów w obu grupach pomniejszoną o 1)
Hipotetyczny średni rozkład liczby cząsteczek mrna w badanej populacji ŹRÓDŁA BŁĘDÓW
Pojedynczy osobnik z populacji - prawdziwy rozkład liczby cząstek mrna w dniu eksperymentu ŹRÓDŁA BŁĘDÓW
Pojedynczy osobnik z populacji - liczba cząstek mrna w próbie po procedurze eksperymentalnej ŹRÓDŁA BŁĘDÓW
Pojedynczy osobnik z populacji - liczba cząstek mrna zmierzona w sekwencjonowaniu ŹRÓDŁA BŁĘDÓW
ŹRÓDŁA BŁĘDÓW Dwa pomiary Hipotetyczny średni rozkład liczby cząsteczek mrna w badanej populacji Obiekt 1 Obiekt 2
Dwa pomiary ŹRÓDŁA BŁĘDÓW Realizacje dla dwóch obiektów cor(x1,y1) : 0.9694165 Obiekt 1 Obiekt 2
Dwa pomiary Pomiary dla dwóch obiektów cor(x2,y2) : 0.7503846 ŹRÓDŁA BŁĘDÓW Obiekt 1 Obiekt 2
Dwa pomiary ŹRÓDŁA BŁĘDÓW Procedura eksperymentalna dla dwóch obiektów cor(x3,y3) : 0.6909174 Obiekt 1 Obiekt 2
Dwa pomiary ŹRÓDŁA BŁĘDÓW Procedura eksperymentalna dla dwóch obiektów cor(x3,y3) : 0.6909174
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.
PRZYGOTOWANIE BIBLIOTEKI Synteza nici DNA na matrycy RNA RNA-seqlopedia http://rnaseq.uoregon.edu
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
SEKWENCJONOWANIE Wiele firm rozwija metody sekwencjonowania RNA/DNA, oparte na różnych procesach chemicznych Illumina Affymetrix Pacific Bio
ILUMINA (SOLEXA) SEQUENCING Wikipedia: DMLapato
ILUMINA (SOLEXA) SEQUENCING Wikipedia: DMLapato
ILUMINA (SOLEXA) SEQUENCING Wikipedia: DMLapato
ILUMINA (SOLEXA) SEQUENCING Wikipedia: DMLapato
ILUMINA (SOLEXA) SEQUENCING Wikipedia: DMLapato
Etapy: ANALIZA SEKWENCJI 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
BIOCONDUCTOR
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 = 10log p Q = 10log p 1 p
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
SAM/BAM Sequence Alignment Map (BAM jest wersją binarną)
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)
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
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" "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z" > LETTERS [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" "T" "U" "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" "T" "C" "C" "G" "G" "C" "G" > DNA_ALPHABET [1] "A" "C" "G" "T" "M" "R" "W" "S" "Y" "K" "V" "H" "D" "B" "N" "-" "+" "." > 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" "G" "C" "A" "C" "A" "A" "G" > seq [1] "GTCCCAGCTGAGAGCACAAG"
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
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!
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 >