Bioinformatyka: Wykład 5

advertisement
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
Download