Bazy danych i R/Bioconductor Praca z pakietem biomart
Zagadnienia RStudio Oprogramowanie BioMart Pakiet biomart wprowadzenie funkcje biomart przykładowe zastosowania
RStudio
RStudio http://www.rstudio.com/
KOD ZMIENNE ctrl +ENTER GRAFIKA KONSOLA POMOC
Instalacja pakietów Bioconductor Poprzez panel pomocniczy Poprzez konsolę Instalacja pakietu install.packages("limma") Uruchomienie pakietu library( limma ) Działa tylko gdy wskazane odpowiednie repozytorium!!!
Instalacja pakietów Bioconductor Instalacja pakietu ze wskazaniem repozytorium source( "http://www.bioconductor.org/bioclite.r") bioclite( GenomeGraphs )
Instalacja pakietów Bioconductor Instalacja pakietu ze wskazaniem repozytorium source( "http://www.bioconductor.org/bioclite.r") bioclite( GenomeGraphs )
Instalacja pakietów Bioconductor Wybór repozytorium setrepositories() 1: + CRAN 2: BioC software 3: BioC annotation 4: BioC experiment 5: BioC extra 6: CRAN (extras) 7: Omegahat 8: R-Forge 9: rforge.net Instalacja poprzez konsolę lub panel pomocniczy
BioMart
BioMart = Data mining BioMart to system zarządzania danymi pełniący rolę wyszukiwarki, która pozwala na wykonanie skomplikowanych zapytao (łączy różne kryteria wyszukiwania) i prezentuje wyniki w formie tabeli Rozwijany wspólnie przez the European Bioinformatics Institute (EBI) i Cold Spring Harbor Laboratory (CSHL) Pierwotnie stworzony na potrzeby projektu Ensembl, obecnie ma generalne zastosowania
Dostęp Różnorodne możliwości dostępu do BioMart: aplikacje web-owe, graficzne, tekstowe biblioteki Perl, Java, R http://www.biomart.org Nie wymaga umiejętności programistycznych
Bazy danych z zaimplementowanym systemem BioMart Ensembl / Ensembl plants Wormbase HapMap Gramene UniProt Nadają się dobrze do zapytao seryjnych (batch queries)
Zapytania BioMart
Database Dataset
Zapytania BioMart Co? Attributes Skąd? Mart A konkretnie? Filters, Values
Realizacja złożonych zapytao Query Engine
biomart
Pakiet biomart Interfejs R dla baz danych posiadających zaimplementowany system BioMart Łączy się z bazami i wykonuje zapytania online Może zwracad duże zestawy danych wg różnych kryteriów Nie wymaga znajomości struktury baz danych i składni zapytao SQL Dzięki pracy w środowisku R mamy możliwośd bezpośredniego wykorzystania danych do dalszej pracy
Podstawowe informacje Obecna wersja 2.24 Wymaga bibliotek: utils, XML, RCurl, AnnotationDbi Strona pakietu w repozytorium Bioconductor http://www.bioconductor.org/packages/release/bioc/ html/biomart.html
Krok 1: Wybór bazy danych Każdą analizę rozpoczynamy od wskazania bazy danych, z której chcemy pozyskad informacje Wyświetlenie dostępnych baz danych listmarts() Funkcja zwraca listę baz danych lub ograniczone do baz Ensembl: listensembl() Połączenie z bazą danych usemart(biomart, dataset)
Krok 2: Wybór zestawu danych Bazy BioMart mogą zawierad różne zestawy danych, np. w Ensembl każdy gatunek tworzy oddzielny zestaw danych Wyświetlenie zestawów danych dostępnych dla danej bazy listdatasets(mart) Funkcja zwraca listę zestawów danych (nazwa-opis- wersja) Wybór zestawu danych usedataset(dataset, mart)
Krok 3: Filtry Filtry ograniczają obszar danych odpytywanej bazy listfilters(mart) Funkcja zwraca listę filtrów dostępnych dla danej bazy np. etc. który chromosom, koordynaty genomowe konkretny gen id sondy na mikromacierzy tylko pozycje zawierające adnotacje GO tylko pozycje posiadające id w bazie mirbase
Filtry mogą mied różne typy (numeryczne, ciągi znaków, boolowskie) filtertype(filter,mart) filtertype("chromosome_name", ensembl) filtertype("affy_hg_u133_plus_2", ensembl) filtertype("with_affy_hg_u133_plus_2", ensembl) Filtry mogą mied różne opcje (predefiniowane wartości filteroptions(filter,mart) filteroptions("biotype", ensembl) filteroptions("("chromosome_name", ensembl)
Krok 4: Atrybuty Atrybuty określają jakie informacje chcemy pozyskad z bazy listattributes(mart, page) Funkcja zwraca listę atrybutów dostępnych dla danej bazy np. ID genu koordynaty genomowe opis etc. Lista atrybutów może byd długa, więc są one podzielone na grupy (pages) attributepages(mart)
Kompilacja: funkcja getbm getbm to podstawowa funkcja zapytań w biomart. Argumenty: attributes: wektor atrybutów które chcemy pozyskad (=output). filters: kryteria zapytania (=input). values: parametry dla podanych wyżej kryteriów. mart: obiekt klasy mart utworzony przy pomocy funkcji usemart (źródło danych: baza i zestaw) affyids=c("202763_at","209310_s_at","207500_at") getbm(attributes=c('affy_hg_u133_plus_2', 'entrezgene'), filters = 'affy_hg_u133_plus_2', values = affyids, mart = ensembl)
Stosowanie wielu filtrów Funkcja getbm może byd użyta z wieloma filtrami Filtry należy podad jako wektor Wartości powinny byd listą wektorów, przy czym kolejnośd wektorów argumentu values powinna byd zgodna z kolejnością wektorów argumentu filters
Funkcje specjalne Funkcje getgene oraz getsequence wywołują funkcję getbm z zakodowanym zestawem pewnych parametrów
getgene getgene( id, type, mart) getgene zwraca adnotacje genów z Ensembl wybranych na podstawie podanych identyfikatorów id: konkretny identyfikator type: typ identyfikatora = values = filters mart: obiekt klasy mart utworzony przy pomocy funkcji usemart (źródło danych: baza i zestaw) g1 = getgene( id = "1939_at", type = "affy_hg_u95av2", mart = ensembl) g2 = getgene( id = "100", type = "entrezgene", mart = ensembl)
getsequence getsequence(chromosome, start, end, id, type, seqtype, upstream, downstream, mart) getsequence służy do pozyskiwania sekwencji z Ensembl w sposób prostszy niż przy pomocy getbm wskazanie albo wg chromosome, start, end albo wg id seqtype: cdna, peptide, 3utr, 5utr, genomic type: hugo, ensembl, embl, entrezgene, refseq, ensembltrans, unigene seq1 = getsequence(id="brca1", type="hgnc_symbol", seqtype="peptide", mart = mart) seq2 = getsequence(id="1939_at", type="affy_hg_u95av2", seqtype="gene_flank", upstream = 20, mart = mart)
exportfasta exportfasta(sequences, file) funkcja służy do zapisania sekwencji (wyniku funkcji getsequence) w formacie fasta
Przykładowe zapytania
Adnotacja sond mikromacierzowych wg Ensembl Ensembl ma własną ścieżkę adnotacji mikromacierzy(affymetrix, Illumina, Agilent, ) Adnotacja do sekwencji genomowej oraz cdna (do detekcji sond pokrywających miejsca splicingowe) Oba mapowania przechowywane jako (gapped) alignment do sekwencji genomu -> ProbeFeatures W przypadku zestawów Affy wymagane aby co najmniej 50% sond w zestawie mapowało się do danego transkryptu (wartośd obliczna dla mkażdego zestawu oddzielnie) Dozwolone maksymalnie 1 niesparowanie Gdy nie ma wyraźnego linku lub co najmniej 100 dopasowao (np. sekwencje Alu) sonda jest odrzucana Zmapowana sonda / zestaw sond jest adnotowany do transkryptu jeśli pokrywa się z eksonem lub regionem UTR (maks. 1 mismatch)
Zapytanie 1 Jaka jest lokalizacja na chromosomie oraz symbole w nomenklaturze HUGO genów ludzkich reprezentowanych przez następujące sondy na platformie Affymetrix human u133plus2: 211550_at, 202431_s_at, 206044_s_at mart filters values attributes
mart: hsapiens_gene_ensembl filters: affy_hg_u133_plus_2 values: 211550_at, 202431_s_at, 206044_s_at attributes: affy_hg_u133_plus_2, ensembl_gene_id chromosome_name, start_position, end_position, band, strand hgnc_symbol
>getbm(attributes=c("affy_hg_u133_plus_2","ensembl_gene_id"," hgnc_symbol","chromosome_name","start_position","end_position ","band","strand"), filters="affy_hg_u133_plus_2", values= c("211550_at","202431_s_at","206044_s_at"), mart = ensembl) affy_hg_u133_plus_2 ensembl_gene_id hgnc_symbol chromosome_name start_position end_position band strand 1 211550_at ENSG00000146648 EGFR 7 55019021 55256620 p11.2 1 2 206044_s_at ENSG00000157764 BRAF 7 140719327 140924764 q34-1 3 202431_s_at ENSG00000136997 MYC 8 127735434 127741434 q24.21 1 >
Zapytanie 2 Jaka jest adnotacja GO dla genów z zapytania 1? ENSG00000146648 ENSG00000157764 ENSG00000136997 geny <- c("ensg00000146648","ensg00000157764","ensg00000136997") query_2 <- getbm(attributes=c("ensembl_gene_id","go_id","name_1006"), filters="ensembl_gene_id", values=geny, mart=ensembl)
Zapytanie 3 Użycie kilku filtrów Pozyskaj symbole HUGO dla genów zlokalizowanych na chromosomach 9, 7, 20 oraz Y, które są powiązane z następującymi terminami GO: "GO:0000902","GO:0000080","GO:0000114", "GO:0004714" go=c("go:0000902","go:0000080","go:0000114","go:0004714") chrom=c(9,7,20,"y") getbm(attributes = "hgnc_symbol", filters=c("go_id","chromosome_name"), values=list(go,chrom), mart=ensembl) getbm(attributes = c("hgnc_symbol","go_id"), filters=c("go_id","chromosome_name"), values=list(go,chrom), mart=ensembl)
Zapytanie 4 Użycie typów filtrów Pozyskaj wszystkie mirna znalezione na chromosomie 15 wraz z ich pozycją na chromosomie mirna <- getbm(c("mirbase_id", "ensembl_gene_id", "start_position", "chromosome_name"), filters=c("chromosome_name", "with_mirbase"), values=list(13,true), mart=ensembl) head(mirna)