Johann Wolfgang Goethe-Universität Frankfurt am Main Seminar: „Aktuelle Themen der Bioinformatik“ Sommersemester 2004 Leitung: Dr. Dirk Metzler Klassifikation von Quartärstrukturen mittels Support Vector Machine (SVM) Florian Schwarte (Matr.-Nr. 2346351) [email protected] Klassifikation von Quartärstrukturen mittels Support Vector Machine – Florian Schwarte Inhalt 1 EINLEITUNG ............................................................................................................................................. 3 2 THEORETISCHE GRUNDLAGEN ......................................................................................................... 4 2.1 EINFÜHRUNG IN DIE STRUKTUR VON PROTEINEN ................................................................................. 4 2.2 SUPPORT VECTOR MACHINE (SVM)..................................................................................................... 5 3 DATENGEWINNUNG ............................................................................................................................... 6 4 ALGORITHMUS VON ZHANG ET AL. ................................................................................................. 8 4.1 KLASSIFIKATION MITTELS SUPPORT VECTOR MACHINE ....................................................................... 8 4.2 KLASSIFIKATION MITTELS KOVARIANTEM DISKRIMINANTEN-ALGORITHMUS ...................................... 9 4.3 ERGEBNISSE ........................................................................................................................................ 11 5 DISKUSSION ............................................................................................................................................ 13 6 QUELLEN ................................................................................................................................................. 15 -2- Klassifikation von Quartärstrukturen mittels Support Vector Machine – Florian Schwarte 1 Einleitung Der Datenbestand an Proteinsequenzen ist sehr groß geworden (Swiss Prot Rev. 43 vom 29.3.04 besitzt 146720 Einträge), vor allem im Verhältnis zu dem Wissen, welches wir aus diesen Daten ziehen können. Wir sprechen hier vom Problem des Data Minings. Data Mining beschreibt eine Menge von Techniken zum Erkennen bisher unbekannter, interessanter Zusammenhänge in großen Datenbanken [1]. Im Rahmen des Data Minings werden auch statistische Klassifikationsaufgaben betrachtet, wie z.B. Klassifikation nach strukturellen Eigenschaften, die sich aus der Sequenz ableiten lassen. Es ist allgemein bekannt, dass die Aminosäuresequenz bei den meisten Proteinen deren Tertiär-Struktur bestimmt (Afinsen et al., 1961; Afinsen, 1973). Das legt die Vermutung nahe, dass auch die Quartärstruktur durch die Sequenz bestimmt ist [3]. Robert Garian hat 2001 versucht, die Quartärstrukturen aus der Sequenz vorherzusagen [3]. Im Folgenden wird ein Verfahren von Zhang et al. vorgestellt, welches auf der Support Vector Machine basiert und eine bessere Performance liefern soll als das von Garian. Desweiteren wird ein weiteres, einfacheres Verfahren mittels kovarianter Diskriminantenanalyse, ebenfalls von Zhang et al., diskutiert Zunächst werden theoretische Grundlagen vermittelt, wie die räumliche Struktur eines Proteins zustande kommt und was eine Support Vector Machine ist. Dann wenden wir uns der Frage zu, welche Daten Zhang et al. als Eingabe für die SVM nehmen, insbesondere welche Deskriptoren sie zur Beschreibung der Aminosäuresequenz verwenden. Darauf folgt die eigentliche Vorstellung des Algorithmus’ von Zhang et al. mit den veröffentlichten Ergebnissen und abschließend eine Diskussion. -3- Klassifikation von Quartärstrukturen mittels Support Vector Machine – Florian Schwarte 2 Theoretische Grundlagen 2.1 Einführung in die Struktur von Proteinen Abbildung 1. Von der Proteinsequenz zur endgültigen Faltung [2] Ein Protein definiert sich in eindeutiger Weise durch seine Aminosäuresequenz. Sie kommt zustande durch den Aufbau von Peptidbindungen zwischen einzelnen Aminosäuremonomeren. Diese werden während der Translation in der Zelle mit Hilfe von Ribosomen sukzessive miteinander verknüpft. Dabei wird messenger-RNA (mRNA) als Matrix für die Proteinsequenz translatiert. Die somit entstehende fadenförmige Primärstruktur des Proteins faltet sich aufgrund von elektrostatischen Wechselwirkungen und Disulfidbrückenbildung in eine energetisch günstigere Konformation. Diese kann sich jedoch im Leben eines Proteins verändern, z.B. durch Bindung von Liganden. In lokalen Bereichen des Moleküls kommt es zur Ausbildung von Sekundärstrukturen, die da wären α-Helix, βFaltblatt und Loops (siehe Abbildung 1). Über Wechselwirkungen zwischen Aminosäuren, die auf der Sequenz weiter entfernt liegen, kommt es schließlich zur Ausbildung von Tertiärstrukturen, in die sich auch weitere Moleküle zwischenlagern können, wie z.B. das Molekül Häm bei Hämoglobin. Mehrere Tertiärstrukturen können wiederum zu einem oligomeren Protein aggregieren, man spricht dann von einer Quartärstruktur. Die miteinander verbundenen Proteinuntereinheiten können dabei entweder gleich oder verschieden sein, man spricht dann von Homo-Oligomeren bzw. Hetero-Oligomeren. -4- Klassifikation von Quartärstrukturen mittels Support Vector Machine – Florian Schwarte 2.2 Support Vector Machine (SVM) SVM ist ähnlich künstlicher neuronaler Netze und Entscheidungsbäumen eine Art lernfähige Maschine, welche auf statistischen Lernmethoden basiert. Sie kann u.a. für Mustererkennung und Klassifikation eingesetzt werden. Anwendungsbeispiele in Sachen Mustererkennung sind die Erkennung von handgeschriebenen Nummern (Cortes und Vapnik, 1995), Objekterkennung (Blanz et al., 1996), Sprecheridentifizierung (Schmidt, 1996), Gesichtererkennung in Fotos (Osuna, Freund und Gerosi, 1997) u.a. Weitere Beispiele sind die Vorhersage von Protein-Protein-Interaktionen (Bock und Gough, 2001), die Lokalisierung des Zellkompartiments, in dem ein Protein exprimiert wird (Hua und Sun, 2001) und Proteinfaltungen (Ding und Dubchak 2001). Wie bei den Neuronalen Netzen geht es auch hier bei der Anwendung von SVMs darum, mithilfe von Trainingsdaten ein Problem zu generalisieren. Im Fall der Klassifikation geht es darum, durch Training eine Funktion zu approximieren, die bei unbekannten Datensätzen eine möglichst akkurate Klassentrennung durchführt. In unserem Fall soll die SVM anhand einer Aminosäuresequenz darüber entscheiden können, ob das Protein ein Homodimer (Quartärstruktur bestehend aus zwei gleichen Proteinuntereinheiten) ist oder nicht. -5- Klassifikation von Quartärstrukturen mittels Support Vector Machine – Florian Schwarte 3 Datengewinnung Zhang et al. gewinnen ihre Trainings- und Testdaten aus der Datenbank R von Robert Garian (2001). Diese Datenbank besteht aus 1369 homo-oligomeren Proteinsequenzen, wobei 914 Homodimere sind und 725 Heterodimere. R ist abgeleitet worden von der SwissProt-Proteinsequenzdatenbank in der Version 34. Die entnommenen Homodimere sind ausschließlich prokaryotischer, cytosolischer Herkunft, was dadurch begründet ist, dass sie spezialisierte Proteine für ihre Arbeit ausschließen wollten [3]. Für die Klassifikation mittels SVM benutzen Zhang et al. Vektoren, welche die Komposition einer Proteinsequenz numerisch wiedergeben. Zunächst wird dazu ein Vektor bestehend aus 20 Elementen gebildet, der die Anzahl aller Aminosäuren in der Sequenz enthält. Dabei wird die alphabetische Ordnung der EinbuchstabenCodes von Aminosäuren benutzt. Z.B. entspricht f1 der Häufigkeit von A = Alanin: v [ f1 , f 2 ,..., f 20 ] Diesen Vektor kürzen Zhang et al. Symbolisch mit COMP ab. Die Autoren verwenden außer v noch vier weitere Vektoren FASG, NISK, WOLS und KYTJ, die allesamt v mit m Auto-Korrelationsfunktionen erweitern, um nicht nur die Anzahl der Aminosäuren wiederzugeben, sondern auch die Reihenfolge bzw. Zusammensetzung von Aminosäuren festzuhalten: w [ f1 , f 2 ,..., f 20 , r1 , r2 ,...rm ] Die Auto-Korrelationsfunktionen r j sind wie folgt definiert [8]: rj 1 L j hi hi j , j 1,2,..., m , L j i 1 wobei L die Länge der Sequenz ist und hi ein Index für die i. Aminosäure, der bei den vier besagten Vektoren unterschiedlich berechnet wird. Dieser Index soll numerisch die physisch-chemischen Eigenschaften der jeweiligen Aminsäure repräsentieren. Die einzelnen Indices hi können im -6- Web gefunden werden unter: Klassifikation von Quartärstrukturen mittels Support Vector Machine – Florian Schwarte http://www.genome.ad.jp/dbget/aaindex.html. Eine Auto-Korrelationsfunktion spiegelt einen gemittelten Vergleich zwischen benachbarten Aminosäuren in der Sequenz wider. Dabei werden für kleines j näher banchbarte und für großes j weiter entfernt benachtbarte Aminosäuren über Multiplikation miteinander kombinert. Das Resultat ist eine grobe Repräsentation der Aminosäurezusammensetzung des Proteins. In Tabelle 1 sind Deskriptor-Sätze aus der Arbeit von Zhang et al aufgeführt. COMP besteht nur aus den Aminosäure-Frequenzen, FASG, NISK, WOLS und KYTJ bestehen jeweils aus den Aminosäure-Frequenzen und m Auto-KorrelationsFunktionen mit unterschiedlichen Indices hi . Die letzten vier Deskriptor-Sätze haben die besten Ergebnisse von insgesamt 470 getesteten Protein-Indices erzielt und werden deshalb aufgeführt. Tabelle 1. Fünf Deskriptor-Sätze gebildet aus der Aminosäuresequenz von Proteinen Symbol Deskriptoren COMP Komposition von Aminosäuren FASG Komposition von Aminosäuren + Auto-Korrelationsfunktionen mit hi = pK-N-Wert der Aminosäure mit Index i (Fasman, 1976) NISK Komposition von Aminosäuren + Auto-Korrelationsfunktionen mit hi = 14 A contact number der Aminosäure mit Index i (Nishikawa-Ooi, 1986) WOLS Komposition von Aminosäuren + Auto-Korrelationsfunktionen mit hi = principle property value z1 der Aminosäure mit Index i (Wold et al, 1976) KYTJ Komposition von Aminosäuren + Auto-Korrelationsfunktionen mit hi = Hydropathy index der Aminosäure mit Index i (Kyte-Doolittle, 1982) Der pk-Wert z.B. ist der negative dekadische Logarithmus des K-Wertes, der die Gleichgewichtskonstante (Massenwirkungsgesetz) repräsentiert [5]. Der Hydropathie-Index ist ein Maß für die Wasserunlösligkeit bzw Fettlöslichkeit der Aminosäure. Z.B. ist Valin mit seiner unpolaren Seitenkette sehr gut in Fett und -7- Klassifikation von Quartärstrukturen mittels Support Vector Machine – Florian Schwarte schlecht in Wasser löslich und besitzt deshalb einen Hydropathie-Index von 4,2. Asparaginsäure dagegen mit seiner geladenen Säuregruppe ist schlecht in Fett und gut in Wasser löslich und besitzt einen Index von -3,5. 4 Algorithmus von Zhang et al. 4.1 Klassifikation mittels Support Vector Machine Wie bereits in Kapitel 2.2 erwähnt wird die SVM eingesetzt, um eine boolsche Klassifikation durchzuführen. Hierbei werden die Eingabevektoren auf einen Merkmalsraum mit eventuell höherer Dimension abgebildet und dann in diesem Merkmalsraum eine Hyperebene gelegt, welche die beiden Klassen Homodimer und Nicht-Homodimer voneinander abgrenzt. Diese Ebene wird durch Trainieren der SVM bestimmt. Jeder Eingabevektor wird von sogenannten Kernel-Funktionen auf jeweils einen Punkt im Merkmalsraum projiziert. Zwei Kernel-Funktionen sind im Folgenden gezeigt: Polynomial-Funktion k ( xi , x j ) ( xi * x j 1) d . Radiale Basisfunktion (RBF) k ( xi , x j ) exp( || xi x j || 2 ) . Die Entscheidungsfunktion, welche von der SVM letztendlich implementiert wird lautet: N f ( x ) sgn( y i i k (x , xi ) b) , i 1 wobei die Signum-Funktion (sgn(x)) wie folgt definiert ist: sgn(x) = 1 -1 if x => 0 if x < 0. Der Funktionswert 1 steht für Klassenzugehörigkeit (ein Homodimer), -1 für „NichtHomodimer“. -8- Klassifikation von Quartärstrukturen mittels Support Vector Machine – Florian Schwarte Als Software wurde das Programm SVMlight eingesetzt von Thorsten Joachims. Das Programm ist in der Version 5.0 vom 03.07.2002 unter http://svmlight.joachims.org/ frei erhältlich zu akademischen Zwecken. Die Autoren haben jedoch eine ältere Version von 1999 eingesetzt. Den Polynomial-Kernel haben Zhang et al. aufgrund Trainingsgeschwindigkeiten verworfen, der Parameter sehr langsamer des RBF-Kernels hat unterschiedliche Effekte auf die Klassifikationsperformance bei unterschiedlichen Datensätzen (siehe folgenden Abschnitt 4.2). 4.2 Klassifikation mittels kovariantem Diskriminanten-Algorithmus Sei das j. Protein einer Klasse K definiert als: T x Kj x Kj1 , x Kj2 ,..., x Kjn , j 1,2,..., N K ; K 1,2,..., l , wobei N K die Anzahl der Proteine in Klasse K ist und l die Zahl aller Proteinklassen. Der Durchschnittsvektor X K ist folgendermaßen definiert: T X K x1K , x2K ,..., xnK , wobei 1 x NK K i NK x j 1 K ji , i 1,2,..., n; K 1,2,..., l . X K ist der Mittelvektor der Klasse K und wird für Ähnlichkeitsvergleiche von zu klassifizierenden Proteinen p herangezogen. Die Kovarianzmatrix C K über alle Proteine der Klasse K ist folgendermaßen definiert: C11K C12K K K C21 C22 K C K K C N K 1 C N K 2 C1KN K C2KN K 1 NK K ( xsj x Kj )( xsiK xiK ). , wobei C Kji N K 1 s1 K C N K N K -9- Klassifikation von Quartärstrukturen mittels Support Vector Machine – Florian Schwarte Die Ähnlichkeit eines Proteins mit Eingabevektor X zum Durchschnittsvektor X K kann nun mittels einer kovarianten Diskriminantenfunktion F ( X , X K ) berechnet werden: F ( X , X K ) D 2 ( X , X K ) ln C K , wobei D 2 ( X , X K ) ( X X K )T (C K ) 1 ( X X K ). F ( X , X K ) berechnet die Distanz bzw. Verschiedenheit zwischen X und X K , gewichtet durch obige Kovarianzmatrix, wobei F ( X , X K ) noch mittels ln C K logarithmisch um die Determinante von C K erhöht wird. D2 ( X , X K ) definiert ein Abstandsmaß, linear gewichtet durch (C K ) 1 , was anschaulich eine Normierung über die Varianz einer Klasse bedeutet: Wird z.B. die Varianz der Vektorverteilung einer Klasse verdoppelt, so erfolgt über (C K ) 1 eine Halbierung von D 2 ( X , X K ) (siehe Abb. 2). Werden also Unterschiede in der Varianz in D 2 ( X , X K ) ausgeglichen, erfolgt durch den Faktor ln C K eine Berücksichtigung der Varianz. Z.B. werden Datenverteilungen mit großer Varianz gegenüber Datenverteilungen mit kleiner Varianz bestraft. Aufgrund des Logarithmus’ jedoch werden Varianzänderungen bei besonders großen Datenstreuungen weniger stark gewichtet. Eine mögliche Erklärung für die Verwendung dieses „Straffaktors“ könnte sein, dass große Datenstreuungen als eher fehlerbehaftet interpretiert werden und deshalb die entsprechende Klasse durch eine pauschale Erhöhung der Distanz zu anderen Vektoren bestraft wird. - 10 - Klassifikation von Quartärstrukturen mittels Support Vector Machine – Florian Schwarte Abbildung 2. Zwei Besipiele für Verteilungen von Vektoren einer Klasse. Der rote Punkt gibt jeweils den Mittel- bzw. Durchschnittsvektor an. Die Funktion D 2 ( X , X K ) definiert für die zweite Abbildung aufgrund der doppelt so großen Varianz ein halb so großes Distanzmaß wie bei der linken Abbildung. Die Klassifikation wird nun durchgeführt, indem einfach die Klasse K mit minimaler Diskriminanz zwischen X und X K bestimmt wird: K ( X ) arg min{ F ( X , X K ) | K 1,2,..., l}. K 4.3 Ergebnisse Um die Akkuratheit der Klassifikatoren zu testen benutzen die Autoren den jackknifeTest und den 10CV-Test (10-fold cross-validation). Beim jackknife-Test wird einfach aus einer gegebenen Menge von Proteinen jedes Protein genau einmal als Test-Protein ausgewählt, während alle anderen als Trainingsdaten genutzt werden. Die Anzahl an Tests entspricht demzufolge der Anzahl an Proteinen in der Menge. Die Ergebnisse des jacknife-Tests sind in Tabelle 1 ersichtlich. Beim 10CV-Test wird besagte Proteinmenge in 10 Blöcke ungefähr gleicher Größe unterteilt und dabei zunächst ein Block ausgewählt, dessen Proteine zum Testen herangezogen werden, während die restlichen 9 Blöcke als Trainingsdaten genommen werden. Dies wird zehnmal wiederholt, so dass jeder Block einmal zum Testen genutzt wird. Die Ergebnisse des 10CV-Tests sind in Tabelle 2 ersichtlich. Der kovariante Diskriminantenalgorithmus ist hier von den Autoren nicht weiter getestet worden, da die SVM schon beim jackknife-Test wesentlich bessere - 11 - Klassifikation von Quartärstrukturen mittels Support Vector Machine – Florian Schwarte Ergebnisse erzielt hat. Dafür ist jedoch ein Verfahren mit Entscheidungsbäumen getestet worden (Robert Garian, 2001) [3]. Diese Verfahren arbeiten mit einer Feature-Extraktionsfunktion (SDDV) zum Erzeugen der Deskriptoren für Proteinsequenzen. Als Maß für die Klassifikationsgenauigkeit benutzen die Autoren die GesamtKlassifikations-Akkuratheit (Q), die true-positive-Rate (TPR), die false-positive-Rate (FÜR) und den Metthew’s Korrelationskoeffizient (MCC). Wir werden uns im Folgenden jedoch ausschließlich auf die Gesamtakkuratheit Q beziehen, da alle anderen Werte mit diesem stark korrelieren. Q ist definiert als: Q (TP TN ) / N , wobei TP und TN die Anzahl der korrekt klassifizierten Sequenzen positiver (Homodimer) und negativer Beispiele (kein Homodimer) wiedergibt. N ist die Gesamtzahl aller Sequenzen. Tabelle 2. Gesamtakkuratheit Q der Support Vector Machine (SVM) und des kovarianten Diskriminantenalgorithmus’ (KoDiAlg) im jackknife-Test für unterschiedliche Deskriptoren (Spaltenüberschriften). COMP FASG NISK WOLS KYTJ Q (SVM) 78,5% 87,5% 83,2% 81,7% 81,9% Q (KoDiAlg) 58,9% 79,7% 67,7% 68,6% 66,1% Differenz 19,6% 7,8% 15,5% 13,1% 15,8% Tabelle 3. Ergebnisse der Support Vector Machine (SVM) und eines weiteren Verfahrens mit Entscheidungsbäumen (SDDV)[3] im 10SV-Test. Verfahren Entsch.bäume SVM SVM SVM SVM SVM SVM Deskriptoren SDDV SDDV COMP FASG NISK WOLS KYTJ Q 69,9% 70,2% 78,1% 87,0% 82,7% 81,2% 81,2% - 12 - Klassifikation von Quartärstrukturen mittels Support Vector Machine – Florian Schwarte Offenbar erzielt wie bereits erwähnt die SVM bei allen Deskriptoren bessere Ergebnisse als der kovariante Diskriminantenalgorithmus und außerdem bessere Ergebnisse wie das Verfahren nach Robert Garian mit Entscheidungsbäumen. Das FASG erzielt unter allen Deskriptoren die besten Ergebnisse. Allgemein scheinen die vorgestellten Deskriptoren von Zhang et al. die Information in der Aminosäuresequenz gut einzufangen, welche darüber Aufschluss gibt, ob das Protein ein Homodimer ist oder nicht. Diese Deskriptoren liefern auch allesamt bessere Ergebnisse wie der von Garian verwendete. Wie bereits erwähnt, hat die Wahl von verschiedenen Parametern Einfluss auf die Klassifikationsakkuratheit. Insbesondere sind obige Ergebnisse bei optimaler Wahl der Parameter m (Anzahl an Auto-Korrelations-Funktionen in den Deskriptoren) und (Parameter für RBF-Kernel der SVM) erzielt worden. Diese Parameter sind nicht nur zwischen den unterschiedlichen Deskriptoren unterschiedlich zu wählen sondern erzielen auch bei unterschiedlichen Datensätzen verschiedene Ergebnisse. Die Akkuratheit der SVM für einen unbekannten Datensatz ist also stark von der richtigen Wahl der Parameter abhängig. 5 Diskussion Wir haben ein Verfahren kennen gelernt, welches mittels SVM über eine Aminosäuresequenz entscheiden kann, ob das zugehörige Protein ein Homodimer ist oder nicht. Es kann also nur nach einer speziellen Form der Quartärstruktur klassifiziert werden, einem Protein mit exakt zwei gleichen Untereinheiten. Zhang et al. versprechen, daran zu arbeiten auch nach Homo- und Hetero-Multimeren klassifizieren zu können. Demzufolge ist hier nur ein einziger kleiner Schritt getan in Sachen Vorhersage von Quartärstrukturen. Tabelle 2 offenbart, dass die besseren Ergebnisse im Vergleich zu Garian nicht in der Benutzung der SVM begründet liegen, sondern in der Wahl anderer Deskriptoren. Die SVM erzielt bei Benutzung der SDDV-Deskriptoren nahezu gleiche Ergebnisse wie das Decision-Tree-Modell von Garian. Dieser wichtige Fakt ist in der Veröffentlichung von Zhang et al. nicht erwähnt worden, lässt jedoch den Zweifel - 13 - Klassifikation von Quartärstrukturen mittels Support Vector Machine – Florian Schwarte aufkommen, ob die SVM als Modell wirklich besser geeignet ist wie die Entscheidungsbäume. Um das zu testen, müsste das Decision-Tree-Modell mit den vorgestellten Deskriptoren COMP, FASG, NISK, WOLS und KYTJ getestet werden, um einen Vergleich herstellen zu können. Ein weiterer wichtiger Punkt ist, dass die Ergebnisse von Zhang et al. von Parametern abhängig sind, die durch Tests natürlich so gewählt worden sind, dass sie beste Ergebnisse erzielen. Doch um einen automatischen Klassifikator zu entwickeln, müssten auch diese Parameter in irgendeiner Weise automatisch gewählt werden. Anders gesagt würden die durchschnittlichen Ergebnisse sicherlich schlechter ausfallen, wenn bei konstanten Parametern unterschiedliche Datensätze gewählt würden. Ansonsten ist eine Klassifikationsakkuratheit von bis zu 87% recht viel versprechend, jedoch wie oben erläutert stark Kontextabhängig. In der Vorhersage von Quartärstrukturen über die Aminosäuresequenz steckt also noch viel Entwicklungspotential, zumal auch der erste entsprechende Ansatz von Robert Garian gerade erst im Jahr 2001 veröffentlicht worden ist. - 14 - Klassifikation von Quartärstrukturen mittels Support Vector Machine – Florian Schwarte 6 Quellen [1] Böhm, K.: Von OLAP zu Mining, Folien zur Vorlesung, Eidgenössische Technische Hochschule Zürich, Sommersemester 1999, [2] E.G Beck, http://www.egbeck.de/skripten/bs11.htm (lv 03.04.2004) [3] Garian R., Prediction of quaternary structure from primary Structure, Bioinformatics Vol. 17 no. 6 2001, S. 551–556 [4] Garian R., Quaternary Structure Predictor: Experimental Homodimer Classifier, [5] http://www.mericity.com (lv 04.04.2004) Schaschke H., Hoffmann M., Gärtner H., Chemie: Formeln & Gesetze, Buch und Zeit Verlag, 1999 [6] Swiss-Prot, http://www.ebi.ac.uk/swissprot/, 2003 (lv 06.04.03) [7] The Math Forum Homepage, http://mathforum.org (lv 03.04.2004) [8] Zhang S., Pan Q., Zhang H., Zhang Y., Wang H., Classification of quaternary structure with support vector machine, Bioinformatics Vol. 19 no. 18 2003, S. 2390-2396 - 15 -