Bioinformatik für Biochemiker - Oliver Kohlbacher

Werbung
Bioinformatik
für Biochemiker
Oliver Kohlbacher
WS 2009/2010
7. Datenbanksuche
Abt. Simulation biologischer Systeme
WSI/ZBIT, Eberhard Karls Universität Tübingen
Übersicht
•  Datenbanksuche statt Alignment
•  Heuristiken: schnell statt optimal
•  BLAST
–  Algorithmus & Komplexität
–  Signifikanz von Alignments
–  Anwendung & Ausgaben des Programms
•  Beispiel
2
Datenbanksuche
•  Problem
–  Gegeben: eine Sequenz und eine Sequenzdatenbank
–  Gesucht: „ähnlichste“ Vorkommen der Sequenz in der
Datenbank
•  Beispiele
–  Suche nach dem nächsten Homologen in einem Genom
–  Identifizierung einer unbekannten Sequenz
Anfragesequenz S
Datenbanksequenz D
1
GenBank – Wachstum
•  Größe von Genbank wächst immer noch
exponentiell an
•  Derzeit sind über 99 Mio. Sequenzen mit ca.
99 Mrd. bp gespeichert
http://www.ncbi.nlm.nih.gov/Genbank/genbankstats.html
Komplexität von Datenbanksuche
•  Sucht man in großen Datensätzen nach einer
Sequenz, ist dies naiv durch Berechnung des
optimalen lokalen Alignments möglich
•  Problem: Hauptspeicher!
•  Zum Aufbau der DP-Matrix benötigt man O(|
S||D|) Speicher
•  Sucht man eine DNA-Sequenz von 1.000 bp im
menschlichen Genom (3 Gbp), so benötigt
man 12.000 GB Hauptspeicher für die Matrix!
•  Suche mit Smith-Waterman ist auch recht
langsam auf Datenbanken dieser Länge
Heuristiken zur Datenbanksuche
•  Smith-Waterman ist ein “optimaler Algorithmus”, d.h.
er findet ein optimales Alignment
•  In der Informatik verwendet man neben optimalen
Algorithmen häufig auch Heuristiken
•  Heuristiken sind Algorithmen, die oft suboptimale
(aber meist hinreichend gute) Lösungen liefern, dafür
aber weniger rechenaufwändig als optimale
Algorithmen sind
•  In der Datenbanksuche setzt man aus
Geschwindigkeitsgründen ausschließlich Heuristiken ein
•  Eines der wichtigsten Werkzeuge zur heuristischen
Suche ist BLAST
2
BLAST
•  BLAST (Basic Local Alignment Search Tool) wurde
1990 von Altschul et al. vorgestellt
•  Wir werden zunächst den Algorithmus anreißen, dann
die Verwendung von BLAST sowie die Interpretation
der Ergebnisse
•  BLAST ist ein mehrstufiger Algorithmus:
–  Zunächst werden Regionen der Datenbank identifiziert, die
Treffer enthalten können
–  Diese werden dann mit Hilfe eines lokalen Alignments näher
untersucht
•  Auffinden der interessanten Regionen ist sehr schnell
möglich
•  Anschließend müssen Alignments nur auf einem
geringen Bruchteil der Datenbank berechnet werden
) deutlicher Geschwindigkeitsgewinn!
Altschul SF, Gish W, Miller W, Myers EW, Lipman DJ. Basic local alignment search tool. J Mol Biol. (1990), 215(3):403-10.
BLAST
Grundidee:
–  Eine zur Anfrage ähnliche Sequenz in der Datenbank besitzt
auch kurze Teilsequenzen (ohne Gaps), die zu Teilsequenzen
der Datenbank ähnlich sind
–  Finde kurze Substrings in der Datenbank, die zu Substrings
der Anfrage sehr ähnlich sind
–  Treten diese an einer Stelle gehäuft auf, haben wir
vermutlich die Anfrage gefunden
Anfragesequenz S
Datenbanksequenz D
BLAST – w-mere
•  BLAST basiert auf so genannten w-meren, Worten der Länge w
•  BLAST versucht in D alle Vorkommen kurzer Worte zu
identifizieren, die ausreichend ähnlich zu gleich langen Worten
aus S sind
Beispiel: w = 2
S = RQCSAGW
Alle 2-mere in S: RQ, QC, CS, SA, AG, GW
Mit BLOSUM62 erzielen folgende 2-mere einen Score > 8,
wenn sie mit den 2-meren aus S verglichen werden:
RQ:
QC:
CS:
…
RQ
QC, RC, EC, NC, DC, HC, KC, MC, SC
CS, CA, CN, CD, CQ, CE, CG, CK, CT
3
BLAST – w-mere
•  Für jede Anfrage S konstruiert BLAST zunächst eine Liste aller in
S vorkommenden w-mere, dann eine Liste aller dazu ähnlichen
w-mere (gemäß Scoringmatrix)
•  Nach diesen w-meren wird dann in D gesucht
•  Da keine Gaps zugelassen werden und nur direkte Identität mit
sehr kurzen Sequenzen getestet werden muss, geht dies sehr
schnell
S
w-mere aus S
Treffer in D
Ähnliche k-mere
Treffer in D
Datenbanksequenz D
BLAST – Hits
•  Treffer (hits) in der Datenbank deuten auf Regionen
hin, in denen evtl. Ähnlichkeit zur Anfragesequenz
besteht
•  Starke Ähnlichkeit = viele Treffer nah beieinander
•  Ähnlichkeit bedingt aber auch richtige Reihenfolge
der Treffer – Diagonalen!
S
D
BLAST – HSPs
•  Im zweiten Schritt wird nun nach Paaren von Treffern
gesucht, die auf der selben Diagonalen liegen und
einen gewissen Höchstabstand in D nicht
überschreiten
•  Diese Paare werden als HSPs (high-scoring pairs)
bezeichnet
S
D
4
BLAST – Alignment
S
•  HSPs werden durch lokale Alignments erweitert
soweit möglich (Abbruch, wenn Score unter
Grenzwert fällt)
•  Alignment wird dabei nur auf den Regionen um HSPs
herum berechnet (seeds)
•  Alignment kann lokal recht effizient (ähnlich SmithWaterman) berechnet werden
D
BLAST – Auswertung
S
•  Nicht signifikante Alignments werden verworfen
•  Alignments die ausreichend gute Scores liefern,
werden beibehalten
•  Diese entsprechenden lokalen Alignments werden
dann von BLAST als Ergebnis ausgegeben
•  Alle möglichen Alignments werden dabei nach ihrer
statistischen Signifikanz bewertet und sortiert
D
Statistik
•  Wann ist eine Sequenzsuche erfolgreich?
•  Wie unterscheidet man sinnvolle Alignments von
solchen die durch Zufall entstanden sind?
•  Wann ist ein Alignment statistisch signifikant?
•  Es gibt eine Reihe von Größen, die zur Entscheidung
dieser Fragen herangezogen werden
– 
– 
– 
– 
Sequenzidentität
Ähnlichkeit (raw score)
Bit-Score (normalisierter Score)
E-Wert (E-value)
•  Oft geht man davon aus, dass Sequenzidentität über
25-30% funktionelle und strukturelle Ähnlichkeit der
Proteine impliziert
5
Bit-Score
•  Da der unbereinigte Score (raw score) eines Alignments
von der Länge der Sequenzen, der verwendeten
Scoringmatrix und Gapkostenfunktion abhängt, ist der
Vergleich der Raw-Scores nicht aussagekräftig
•  Karlin und Altschul haben eine Normalisierung
vorgeschlagen, der die Ergebnisse untereinander besser
vergleichbar macht, den so genannten Bit-Score s´, der
sich wie folgt aus dem Raw-Score s berechnet:
•  Karlin-Altschul-Parameter λ und K ergeben sich dabei
jeweils aus der verwendeten Scoringfunktion
E-Werte
•  Der E-Wert ist die wichtigste statistische Größe bei
der Bewertung eines BLAST-Ergebnisses
•  Er trifft eine Aussage über die statistische
Signifikanz des Alignments, d.h. wie wahrscheinlich
es ist, dass die Ähnlichkeit der beiden Sequenzen ein
zufälliges Ergebnis ist
•  Berechnung des E-Werts basiert auf den Bit-Scores:
•  Genauer betrachtet ist der E-Wert E(s) der
Erwartungswert für die Anzahl der Alignments mit
Score s´ die sich zufällig ergeben
E-Werte
•  Für die Wahrscheinlichkeit P(s´), dass ein Alignment
mit einem Score von s´ oder besser zufällig zu finden
ergibt sich dann:
•  E-Wert kann Werte zwischen Null und unendlich
annehmen
•  Sehr kleine E-Werte bedeuten natürlich ein
statistisch signifikanteres Alignment
•  Gute Alignments haben sehr kleine E-Werte
(z.B. · 0.001)
•  Alignments mit größeren E-Werten sind nicht als
relevant anzusehen
6
Vorbereitung
•  BLAST erfordert eine Vorbereitung der
Sequenzdatenbank bevor die Suche gestartet werden
kann
•  Dabei werden die Sequenzen aus einem beliebigen
Format (z.B. FASTA) in ein spezielles BLAST-Format
umgewandelt und zusätzliche Index-Strukturen
angelegt
•  Dies erledigt das Programm formatdb
•  Die Vorbereitung einer Datenbank muss nur einmal
durchgeführt werden, danach können beliebig viele
Suchen damit durchgeführt werden
•  Ändert sich die Datenbank, muss formatdb natürlich
wieder neu ausgeführt werden
•  Details zur Verwendung in der Übung
Aufruf von BLAST
•  Von BLAST existieren eine Reihe von Varianten, je nachdem was
und worin gesucht werden soll:
–  blastp
–  blastn
–  blastx
–  tblastn
–  tblastx
Proteinsequenz in Protein-DB
NA-Sequenz in NA-DB
alle Translationen einer NA-Sequenz in
Protein-DB
eine Proteinsequenz gegen alle sechs
übersetzten Leserahmen einer NA-DB
alle sechs Translationen einer NA-Sequenz
gegen alle entsprechenden Translationen einer
NA-DB (sehr rechenaufwändig!)
•  Aktuelle Versionen von BLAST vereinen dies in einem einzigen
Programm (blastall), dem man den Namen der BLASTVariante als Kommandozeilenparameter mitgibt:
•  Beispiel:
blastall –p blastp …
sucht eine Proteinsequenz in einer Proteindatenbank
Parameter
•  BLAST hat natürlich jede Menge an Parametern, die das
Verhalten des Algorithmus bestimmen
•  Relevant sind in erster Linie
–  Wortlänge w (Default: 3 für Proteine, 11 für NA)
–  E-Wert bis zu dem Alignments als relevant angesehen werden
sollen (Default: 10.0)
–  Verwendete Scoring-Matrix und Gapkosten (Default: BLOSUM62,
σ = 0, ρ = 0)
•  Diese Parameter müssen BLAST – sofern sie von den
Standardeinstellungen abweichen – an der
Kommandozeile mitgegeben werden
•  blastall verrät mögliche Parameter, wenn es ohne
Kommandozeilenparameter aufgerufen wird, Details in
der Übung
7
Interpretation der Ergebnisse
•  BLAST erzeugt eine Menge Output, der erstmal
interpretiert werden muss
•  Ausgabe besteht aus einer oft recht langen Textdatei
•  In der Ausgabe erscheinen
–  Versionsnummer
–  Eingabedaten
–  Eine Liste aller Treffer
–  Alle Treffer im Detail (inkl. Alignment)
•  Wir werden uns dieses Format nun oberflächlich
ansehen (Details: Übung)
BLAST-Ausgabe
BLASTP 2.2.8 [Jan-05-2004]
Reference: Altschul, Stephen F., Thomas L. Madden, Alejandro
A. Schaffer,
Jinghui Zhang, Zheng Zhang, Webb Miller, and David J. Lipman
(1997),
"Gapped BLAST and PSI-BLAST: a new generation of protein
database search
programs", Nucleic Acids Res. 25:3389-3402.
Query= 1HSO:B CLASS I ALCOHOL DEHYDROGENASE 1, ALPHA SUBUNIT
(374 letters)
Database: Arabidopsis_chr1.fasta
7493 sequences; 3,192,001 total letters
Searching...............done
BLAST-Ausgabe
Score
Sequences producing significant alignments: (bits)
ref|NP_177837.1| alcohol dehydrogenase (ADH) 382
ref|NP_564409.1| alcohol dehydrogenase,...
335
ref|NP_176652.2| alcohol dehydrogenase,...
320
ref|NP_173659.1| alcohol dehydrogenase,...
289
ref|NP_173660.1| alcohol dehydrogenase,...
286
E
Value
e-107
5e-93
3e-88
6e-79
5e-78
•  Der zweite Teil der Ausgabe enthält die Trefferliste
•  Am Anfang jeder Zeile dieser Liste steht jeweils die ID (aus der
FASTA-Beschreibung) der Sequenz aus der Datenbank
•  Die beiden letzten Spalten enthalten den Bit-Score und den EWert für das zugehörige Alignment
8
BLAST-Ausgabe
>ref|NP_177837.1| alcohol dehydrogenase (ADH) [Arabidopsis thaliana]
Length = 379
Score = 382 bits (980), Expect = e-107
Identities = 190/374 (50%), Positives = 249/374 (66%), Gaps = 2/374 (0%)
Query: 1
Sbjct: 2
Query: 61
Sbjct: 62
STAGKVIKCKAAVLWELKKPFSIEEVEVAPPKAHEVRIKMVAVGICGTDDHVVSGTMVTP 60
ST G++I+CKAAV WE KP IEEVEVAPP+ HEVRIK++
+C TD +
TP
STTGQIIRCKAAVAWEAGKPLVIEEVEVAPPQKHEVRIKILFTSLCHTDVYFWEAKGQTP 61
L-PVILGHEAAGIVESVGEGVTTVKPGDKVIPLAIPQCGKCRICKNPESNYCLKNDVSNP 119
L P I GHEA GIVESVGEGVT ++PGD V+P+
+CG+CR C + ESN C
++
LFPRIFGHEAGGIVESVGEGVTDLQPGDHVLPIFTGECGECRHCHSEESNMCDLLRINTE 121
Query: 120 QG-TLQDGTSRFTCRRKPIHHFLGISTFSQYTVVDENAVAKIDAASPLEKVCLIGCGFST 178
+G + DG SRF+
KPI+HFLG STFS+YTVV
VAKI+ +PL+KVC++ CG ST
Sbjct: 122 RGGMIHDGESRFSINGKPIYHFLGTSTFSEYTVVHSGQVAKINPDAPLDKVCIVSCGLST 181
Query: 179 GYGSAVNVAKVTPGSTCAVFGLGGVGLSAIMGCKAAGAARIIAVDINKDKFAKAKELGAT 238
G G+ +NVAK
G + A+FGLG VGL A G + AGA+RII VD N +F +AKE G T
Sbjct: 182 GLGATLNVAKPKKGQSVAIFGLGAVGLGAAEGARIAGASRIIGVDFNSKRFDQAKEFGVT 241
Query: 239 ECINPQDYKKPIQEVLKEMTDGGVDFSFEVIGRLDTMMASLLCCHEACGTSVIVGVPPDS 298
EC+NP+D+ KPIQ+V+ EMTDGGVD S E G + M+ + C H+ G +V+VGVP
Sbjct: 242 ECVNPKDHDKPIQQVIAEMTDGGVDRSVECTGSVQAMIQAFECVHDGWGVAVLVGVPSKD 301
BLAST und BioPython
•  BioPython bietet viele Möglichkeiten BLAST direkt aus
einem Python-Programm heraus aufzurufen und die
Ergebnisse komfortabel auszulesen
•  Dazu bietet BioPython einen BLAST-Output-Parser an
(Parser = Code der bestimmte Dateiformate lesen
und interpretieren kann)
•  Damit kann man recht schnell Alignments berechnen,
sortieren, miteinander vergleichen usw.
•  Details zur Verwendung:
–  Übung
–  www.biopython.org
Literatur + Links
•  Merkl/Waak, S. 128ff: etwas
ausführlichere Grundlagen
•  Korf, Yandell, Bedell: BLAST,
O‘Reilly, 2003: alles was Sie zu
BLAST wissen müssen
•  BLAST zum Herunterladen für
praktisch alle Rechner (inkl.
Windows: ia32-win32):
ftp://ftp.ncbi.nih.gov/blast/executables/release/2.2.22/
9
Herunterladen