ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ιπλωµατική Εργασία του Γεράσιµου Χατζηδαµιανού (Α.Ε.Μ.3810) υπό την καθοδήγηση του κ. Ιωάννη Ν. Αθανασιάδη ιπλ. Ηλεκτρολόγου Μηχανικού και την επίβλεψη του κ. Περικλή Α. Μήτκα Αναπληρωτή Καθηγητή Πρόβλεψη συµπεριφοράς πρωτεϊνών µε χρήση µεθόδων εξόρυξης δεδοµένων Φεβρουάριος 2003
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Πρόβλεψη συµπεριφοράς πρωτεϊνών µε χρήση µεθόδων εξόρυξης δεδοµένων. ιπλωµατική εργασία του Χατζηδαµιανού Γεράσιµου (Α.Ε.Μ.:3810) Καθοδήγηση Ιωάννης Ν. Αθανασιάδης ( ιπλ. Ηλεκτρολόγος Μηχανικός) Επίβλεψη κ. Περικλής Α. Μήτκας (Αναπληρωτής Καθηγητής) Φεβρουάριος 2003
Αφιερωµένη στους γονείς µου και τους φίλους µου Αντώνη και ηµήτρη.
εν ξέρεις τι θες αλλά ζητάς Ξέρεις τι θες αλλά πονάς Πονάς που φεύγουν δίχως εσένα πλοία εν ξέρεις που πηγαίνουνε µα ξέρεις πως κάποτε θα φτάσουν εκεί που εσύ δεν έφτασες ποτέ Ονειρεµένα, µακρυνά ταξίδια αυτά θα κάνουν µα εσύ έµεινες στο χτες. Σε ηλιοκαµµένους τόπους θ αγκυροβολήσουν εκεί που οι νύχτες είναι µικρές Εκεί ίσως κάποτε σε συναντήσουν φτάνει µόνο να το θες. Ε. ραγώνα
Περιεχόµενα Περιεχόµενα... 5 Ευχαριστίες... 8 Εισαγωγή... 9 Κεφάλαιο 1. Περιγραφή του προβλήµατος... 12 1.1. Εισαγωγή...12 1.2. Η ανάγκη για κατηγοριοποίηση πρωτεϊνών...13 1.3. Ο στόχος της εργασίας...14 1.4. Ορισµός του προβλήµατος...15 Κεφάλαιο 2. Ανάλυση απαιτήσεων... 17 2.1. Εισαγωγή...17 2.2. Απεικόνιση των δεδοµένων...18 2.3. Όψεις χρηστών...19 2.3.1. Βιολόγοι...19 2.3.2. Μαθητές...19 2.3.3. Προγραµµατιστές...19 2.4. Παρεχόµενες υπηρεσίες...19 2.4.1. ηµιουργία δέντρου αποφάσεων...19 2.4.2. Λειτουργικό και απλό Interface...20 2.4.3. Ενσωµάτωση πολλών εργαλείων σε ένα πρόγραµµα...20 Κεφάλαιο 3. Μεθοδολογία ανάπτυξης... 22 3.1. Εισαγωγή...22 3.2. Τεχνολογίες που χρησιµοποιήθηκαν...22 3.2.1. Borland JBuilder 6...22 3.2.2. Microsoft SQL Server 2000...23 3.2.3. WEKA Data Miner...23 3.3. Προετοιµασία των δεδοµένων...24 3.3.1. Η βάση δεδοµένων Prosite...24 3.3.2. Οι υπόλοιπες βάσεις δεδοµένων...28 3.3.3. οµή τελικού αρχείου WEKA...30 3.3.4. οµή τελικού αρχείου SQL Analysis Server...32 3.4. Ο Αλγόριθµος...34 3.4.1. Στοιχεία που χρειαζόµαστε...34
3.4.2. Ο αλγόριθµος στο µικροσκόπιο...35 3.4.3. Χρήση αποθηκευµένων διαδικασιών (stored procedures)...37 3.5. Σχεδίαση της Βάσης εδοµένων...39 3.5.1. Σχέσεις, πεδία ορισµού και τύποι δεδοµένων...40 3.5.2. Περιορισµοί ακεραιότητας...42 3.5.3. Παραδείγµατα πινάκων, ερωτηµάτων...43 3.5.4. Εκτίµηση µεγέθους...50 Κεφάλαιο 4. Υλοποίηση... 53 4.1. Εισαγωγή...53 4.2. Στάδια υλοποίησης...53 4.3. Προβλήµατα που παρουσιάστηκαν...56 4.3.1. Προβλήµατα αλγορίθµου...56 4.3.2. Προβλήµατα ταχύτητας εκτέλεσης...59 4.4. Προβλέψιµες βελτιώσεις επεκτάσεις...59 4.4.1. υνατότητα εκτέλεσης από τον παγκόσµιο ιστό...59 4.4.2. Μείωση χρόνου εκτέλεσης...60 4.4.3. Έξοδος σε XML...60 Κεφάλαιο 5. Εξόρυξη γνώσης Πειράµατα µε το WEKA... 61 5.1. Εισαγωγή...61 5.2. Πειράµατα...61 5.2.1. Εξαγωγή δέντρου µε τη χρήση 10 κλάσεων...61 5.2.2. Εξαγωγή δέντρου µε τη χρήση 20 κλάσεων...65 5.2.3. Πείραµα µε χρήση 30 κλάσεων...67 5.3. Συζήτηση...68 5.3.1. Το πρώτο πείραµα...68 5.3.2. Το δεύτερο πείραµα...68 5.3.3. Το τρίτο πείραµα...69 5.4. Συµπεράσµατα...69 5.5. Περιορισµοί...70 Κεφάλαιο 6. Πειράµατα µε τον SQL Analysis Server... 72 6.1. Εισαγωγή...72 6.2. Πειράµατα...72 6.2.1. ένδρο αποφάσεων 50 κλάσεων...72 6.2.2. ένδρο αποφάσεων 80 κλάσεων...75 6.3. Συµπεράσµατα...76 Κεφάλαιο 7. Σύνοψη... 77
Βιβλιογραφία... 80 Παράρτηµα Α. Οδηγός χρήσης GenTool... 81 Α1. Εισαγωγή...81 Α2. ηµιουργία της βάσης δεδοµένων Gen Database...81 Α3. ηµιουργία δέντρου αποφάσεων...81 Α4. ηµιουργία σετ ελέγχου...82 Παράρτηµα Β. Εικόνες διεπαφών... 84 Παράρτηµα Γ. είγµατα πηγαίου κώδικα... 87 Παράρτηµα. Οδηγίες Εγκατάστασης... 93
Ευχαριστίες Με την παρουσίαση και βαθµολόγηση της διπλωµατικής εργασίας που κρατάτε στα χέρια σας, παίζεται και η τελευταία πράξη, µιας παράστασης που ξεκίνησε περίπου πέντε χρόνια πριν. Υποκλινόµενος ο πρωταγωνιστής, επιθυµεί να ευχαριστήσει όλους εκείνους τους ανθρώπους, που ήταν πάντα δίπλα του. Η συνεργασία µου το «Εργαστήριο Ευφυών Συστηµάτων και Λογισµικού» και τον Αναπληρωτή Καθηγητή κ. Περικλή Μήτκα εκπλήρωσε µία µεγάλη µου επιθυµία. Το γνωστικό αντικείµενο των Βάσεων εδοµένων µου κέντρισε το ενδιαφέρον από την πρώτη στιγµή, που το διδάχθηκα, ορίζοντας έτσι, τους στόχους µου για το µέλλον. Ξεκινώντας από την άρτια καθοδήγηση του διδακτορικού φοιτητή Ιωάννη Αθανασιάδη και την εξαιρετική επίβλεψη του επίσης διδακτορικού φοιτητή Ανδρέα Συµεωνίδη και συνεχίζοντας µε την ακούραστη προσφορά του πτυχιούχου Ηλεκτρολόγου Μηχανικού Γιώργου Μιλή πάνω σε όλα τα θέµατα που αφορούν στον SQL Server 2000 της Microsoft, µια µικρή λέξη όπως το «ευχαριστώ» στο σύγγραµµα αυτό αποτελεί την ελάχιστη µορφή ανταµοιβής. Ευχαριστώ θερµά επίσης, τους καλούς σύµβουλους σε θέµατα της γλώσσας προγραµµατισµού Java, τον προπτυχιακό φοιτητή Γιώργο Μαµαλάκη καθώς και τον διδακτορικό φοιτητή ιονύση Κεχαγιά που δικαίως θεωρείται ο «γκουρού» του GUI. Φυσικά, το κείµενο, που πρόκειται να διαβάσετε, δεν θα είχε την µορφή, που έχει τώρα, αν δεν περνούσε πρώτα από τα έµπειρα µάτια της φιλολόγου καθηγήτριας Ιωάννας Σ. Μερµεκλή.
Εισαγωγή Γενικά Καθηµερινά ακούµε, βλέπουµε και διαβάζουµε για τις διάφορες εφευρέσεις, εξελίξεις, «υπερβάσεις» της τεχνολογίας, κατορθώµατα της ιατρικής για όλα αυτά που υπόσχονται να κάνουν τη ζωή µας καλύτερη ή τουλάχιστον έτσι νοµίζουµε. Κανείς δεν µπορεί να πει µε σιγουριά, ποια από όλα αυτά θα κερδίσουν κάποια θέση στην ιστορία, µπορούµε όµως να προβλέψουµε µε ασφάλεια, ότι οι εξελίξεις τόσο στην βιοτεχνολογία όσο και στην γενετική θα απασχολούν για πολλά χρόνια την επιστηµονική κοινότητα. Στη συγκεκριµένη εργασία δε θα γίνει καµία αναφορά στους κινδύνους που εγκυµονούν για τον άνθρωπο η κλωνοποίηση συγγενικών µε αυτόν οργανισµών και η επικράτηση των µεταλλαγµένων λαχανικών στις προηγµένες οικονοµικά χώρες. ε θα πραγµατοποιηθεί καµία προσπάθεια απόδειξης της ύπαρξης ή όχι ενός εµβολίου που καταπολεµά την επάρατη νόσο, ούτε θα γίνει λόγος για βρέφη που γεννιούνται κατά παραγγελία. Το κείµενο που κρατάτε στα χέρια σας, παρουσιάζει µία εφαρµογή που αναπτύχθηκε στα πλαίσια της διπλωµατικής εργασίας µε τίτλο «Κατηγοριοποίηση πρωτεϊνών µε χρήση µεθόδων εξόρυξης δεδοµένων» υπό την καθοδήγηση του διδακτορικού φοιτητή Ιωάννη Αθανασιάδη και την επιτήρηση του αναπληρωτή καθηγητή κ. Περικλή Μήτκα. Το όνοµα της εφαρµογής είναι GenTool και ονοµάστηκε έτσι γιατί αποτελεί ένα ολοκληρωµένο εργαλείο προετοιµασίας και ανάλυσής γενετικών δεδοµένων. Η συγκεκριµένη µελέτη βασίστηκε σε προηγούµενες έρευνες που έγιναν µε στόχο την πρόβλεψη της συµπεριφοράς των πρωτεϊνών [WWH + 01]. Ο τρόπος µε τον οποίο αντιµετωπίστηκε το ζήτηµα της πρόβλεψης, είναι η δηµιουργία ενός δενδρικού µοντέλου αποφάσεων µε τη χρήση ενός σετ εκπαίδευσης και στη συνέχεια ο έλεγχος και η αξιοποίηση του από άγνωστες σε αυτό πρωτεΐνες. Η ανάγκη για χρήση µεθόδων εξόρυξης δεδοµένων και δένδρων αποφάσεων προέκυψε από το γεγονός ότι κάθε πρωτεΐνη αποτελείται από ένα συγκεκριµένο αριθµό µοτίβων τα οποία καθορίζουν τη συµπεριφορά της. Η αναγνώριση των ιδιοτήτων µιας πρωτεΐνης λοιπόν, θα
Εισαγωγή 10 έπρεπε να αποτελεί το συµπέρασµα αµέτρητων συνδυασµών καθώς κάποια µοτίβα είναι πιο ισχυρά από κάποια άλλα, επηρεάζοντας έτσι µε την παρουσία ή απουσία τους τον τρόπο µε τον οποίο αυτή αντιδρά. Για περισσότερες λεπτοµέρειες σχετικά µε τα µοτίβα, θα µπορούσε κανείς να ανατρέξει στο βιβλίο των Hudak J. & McClure, M.A. A Comparative Analysis of Computational Motif Detection Methods 4:138-149 (1999). Μια πρώτη µελέτη στην αναγνώριση των προτύπων των πρωτεϊνών πραγµατοποιήθηκε από τους Dayhoff M. O., Barker W. C., Hunt L. T. Establishing Homologies in Protein Sequences, Methods in Enzymology, 91, 524 (1983). Περιεχόµενα του συγγράµµατος Αρχικά, ο αναγνώστης, συναντά κάποια γενικά στοιχεία σχετικά µε την βιοπληροφορική και τον ρόλο της στη σύγχρονη εποχή. Πραγµατοποιούνται εκτενείς αναφορές στη σηµασία που έχει η έρευνα σε αυτόν τον τοµέα για τον άνθρωπο, αλλά και τις συνέπειες από την λανθασµένη εξέλιξή της. Έπειτα, ο αναγνώστης εισάγεται στο πρόβληµα που καλούµαστε να αντιµετωπίσουµε. Έτσι λοιπόν, παρουσιάζεται την περιγραφή του προβλήµατος, µε απλά λόγια και ορίζονται οι όροι που θα χρησιµοποιηθούν στη συνέχεια. Η απόσταση της θεωρητικής προσέγγισης του έργου από την επινόηση του κατάλληλου αλγορίθµου και την υλοποίηση του, δείχνει να µικραίνει µε την περιγραφή των απαιτήσεων που οδήγησαν στην δηµιουργία του συγκεκριµένου συστήµατος και µε την παρουσίαση των αναγκών κάθε χρήστη που χρήζουν κάλυψης. Κατόπιν, ο αναγνώστης έρχεται σε επαφή µε τη µεθοδολογία ανάπτυξης του συστήµατος και γνωρίζει τις τεχνολογίες που χρησιµοποιήθηκαν. Γίνεται σαφής η πρόθεση να περιγραφεί αναλυτικά ο αλγόριθµος που επινοήσαµε καθώς και να αποσαφηνιστούν οι σκέψεις που οδήγησαν στην επιλογή του. Θεωρούµε ότι αρκετό ενδιαφέρον παρουσιάζουν οι περιγραφές των ενδιάµεσων σταθµών που µεσολάβησαν µέχρι τη δηµιουργία του τελικού προϊόντος καθώς και η παρουσίαση των προβληµάτων που αντιµετωπίστηκαν σε όλη τη διάρκεια της υλοποίησης.
Εισαγωγή 11 Η όλη εργασία δε θα είχε καµία αξία, αν δεν γινόταν εκτενής αναφορά στα πειράµατα που πραγµατοποιήθηκαν, στα διάφορα στατιστικά στοιχεία που προέκυψαν, καθώς και σε µερικά σχόλια πάνω στα αποτελέσµατα. Απαραίτητη κρίνεται επίσης η αναφορά στα συµπεράσµατα που εξάγονται από το κεφάλαιο των πειραµάτων όπως και στους τρόπους βελτίωσής των αποτελεσµάτων. Με έναν οργανωµένο τρόπο, παρουσιάζονται επίσης, οι βέλτιστες δυνατές ρυθµίσεις για το καλύτερο δυνατό αποτέλεσµα. Στο τέλος του συγγράµµατος µπορεί κανείς να συναντήσει τη βιβλιογραφία που χρησιµοποιήθηκε καθώς και διάφορα παραρτήµατα που περιλαµβάνουν το εγχειρίδιο χρήσης της εφαρµογής, εικόνες της, τµήµατα κώδικα καθώς και τον πλήρη οδηγό εγκατάστασής του συστήµατος.
Κεφάλαιο 1. Περιγραφή του προβλήµατος 1.1. Εισαγωγή Ο όρος «βιοπληροφορική» δηµιουργήθηκε για να περιγράψει τη δηµιουργία εργαλείων πληροφορικής για την αξιοποίηση των δεδοµένων, που προέρχονται από τον χώρο της βιολογίας. Είναι µια σύνθετη επιστήµη και καθώς το αντικείµενο της Βιολογίας είναι εξαιρετικά ευρύ, έτσι και η επιστήµη της Βιοπληροφορικής είναι δύσκολο να οριστεί και να απαριθµηθούν οι τοµείς που καλύπτει. Εύκολα καταλαβαίνει κανείς ότι ο κλάδος αυτός γνώρισε ιδιαίτερη ανάπτυξη τα τελευταία χρόνια χάρη στην ευρεία εξέλιξη των υπολογιστών. Μερικά από τα επιτεύγµατα της βιοπληροφορικής είναι η αποκωδικοποίηση του γενετικού κώδικα του ανθρώπου (DNA) σε εξαιρετικά σύντοµο χρονικό διάστηµα, η ταχύτατη ανάπτυξη της βιοτεχνολογίας, αλλά και η κλωνοποίηση συγγενικών µε τον άνθρωπο οργανισµών. Ένας άλλος µεγάλος τοµέας της Βιοπληροφορικής είναι οι βάσεις δεδοµένων. Με την αποκωδικοποίηση του DNA και των πρωτεϊνών του ανθρώπου, αλλά και πάρα πολλών άλλων οργανισµών δηµιουργήθηκαν µεγάλες βάσεις δεδοµένων για την καταγραφή τους. Χαρακτηριστικός είναι ο αριθµός των βασικών δοµικών στοιχείων του DNA που είναι καταχωρηµένα στις
Κεφάλαιο 1. Περιγραφή προβλήµατος 13 τρεις µεγάλες βάσεις δεδοµένων (Genbank, EMBL, DDBJ), ο οποίος ξεπερνάει αυτήν την στιγµή τα 20 τρισεκατοµµύρια! 1.2. Η ανάγκη για κατηγοριοποίηση πρωτεϊνών Ένας άλλος τοµέας της Βιοπληροφορικής είναι η δοµική Βιολογία ή αλλιώς η παρουσίαση των δοµών διάφορων βιολογικών µακροµορίων. Να διευκρινίσουµε ότι η γνώση της δοµής στο χώρο των µακροµορίων, είναι αυτή που θα δώσει την απάντηση σε πάρα πολλές ασθένειες, καθώς οι περισσότερες οφείλονται σε προβληµατική λειτουργία των πρωτεϊνών, που σχετίζονται µε αυτές. Η λειτουργία µιας πρωτεΐνης είναι άµεσα συνδεδεµένη µε την δοµή της. Η Βιοπληροφορική ασχολείται τόσο µε την απεικόνιση της τρισδιάστατης δοµής, που έχει προκύψει από πειραµατικά δεδοµένα όσο και µε την πρόβλεψή της µε διάφορους αλγόριθµους, που έχει υποτεθεί ότι ισχύουν για τις δοµές των πρωτεϊνών. Οι πρωτεΐνες σαν δοµικό στοιχείο του ανθρώπινου σώµατος αποτελούν το 1/5 του βάρους του. Έτσι µετά το H 2 O οι πρωτεΐνες αποτελούν το πιο σηµαντικό υλικό του ανθρώπινου σώµατος. Μύες, δέρµα, τρίχες, νύχια ακόµα και το σύνολο του µατιού και φυσικά τα ένζυµα και ορισµένες ορµόνες είναι πρωτεϊνικής φύσης. Ακόµα και η άµυνα του οργανισµού, ο σχηµατισµός αντισωµάτων, η µεταφορά ουσιών όπως οξυγόνου, αλάτων και λιπαρών οξέων γίνεται στο ζωικό οργανισµό µε τις πρωτεΐνες. Οι πρωτεΐνες είναι υπεύθυνες για την οικοδόµηση και διατήρηση των ιστών του αίµατος ή και ακόµα για την παροχή ενέργειας. Οι πρωτεΐνες δοµούνται από αµινοξέα και µε την ακολουθία τους καθορίζουν και τη λειτουργικότητα τους. Ο αριθµός των αµινοξέων, που συµµετέχουν στη δοµή της πρωτεΐνης είναι διαφορετικός και εξαρτάται από το είδος αυτής. Από το συνολικό αριθµό των 20 αµινοξέων, που συµµετέχουν στο µέγιστο στη δοµή των πρωτεϊνών, τα 10 µπορούν να σχηµατισθούν από τον ανθρώπινο οργανισµό, ενώ τα υπόλοιπα 10 πρέπει να εισαχθούν µε τις τροφές. Τα αµινοξέα, που εισάγονται µε την τροφή, λέγονται απαραίτητα αµινοξέα. Απ όλα τα παραπάνω µπορούµε εύκολα να συµπεράνουµε την πολύ µεγάλη σηµασία, που έχουν οι πρωτεΐνες για τον άνθρωπο. Μέχρι τώρα η βιολογική δράση των πρωτεϊνών µπορούσε να γίνει γνώστη µόνο µέσω της
Κεφάλαιο 1. Περιγραφή προβλήµατος 14 διαδικασίας χρονοβόρων και πολυέξοδων πειραµάτων. Η βιοπληροφορική αναλαµβάνει να επιλύσει αυτό το πρόβληµα µε µεθόδους σαν και αυτήν που παρουσιάζεται παρακάτω. 1.3. Ο στόχος της εργασίας Ο στόχος της παρούσας διπλωµατικής εργασίας είναι η πρόβλεψη της λειτουργικής συµπεριφοράς των πρωτεϊνών το οποίο αποτελεί µέχρι και σήµερα ένα από τα πιο µεγάλα προβλήµατα της λειτουργικής γενετικής. Τα τελευταία χρόνια ποικιλία προγραµµατιστικών προσεγγίσεων έχουν αναπτυχθεί για την αναγνώριση µικρών αλυσίδων αµινοξέων, οι οποίες εµπεριέχονται σε οικογένειες συσχετιζόµενων πρωτεϊνών. Οι αλυσίδες αυτές ονοµάζονται µοτίβα και καθώς σε αυτά κυρίως οφείλεται η συµπεριφορά µιας πρωτεΐνης, χρησιµοποιούνται ευρέως για την πρόβλεψη της λειτουργίας αυτής. Έχουν ήδη αναπτυχθεί κάποιες βάσεις δεδοµένων, που περιέχουν τέτοια µοτίβα. Μερικές από τις πιο γνωστές είναι:! Prosite! Pfam! Prints Οι λειτουργίες, καθώς και ο συσχετισµός τους µε τα µοτίβα είναι αποθηκευµένες στις παραπάνω βάσεις δεδοµένων µε αποτέλεσµα να γνωρίζουµε την πιθανή λειτουργία των πρωτεϊνών, όπου περιέχονται. Γράφουµε πιθανή καθώς οι τελικές ιδιότητες που διέπουν µία πρωτεΐνη, είναι συνάρτηση πολλών µοτίβων όπου κάποια υπερισχύουν κάποιων άλλων. Έτσι λοιπόν, γίνεται αµέσως ορατή η ανάγκη δηµιουργίας εργαλείων, που θα µπορούν να ανακαλύπτουν οµοιότητες αλυσίδων και που θα µπορούν, κατ επέκταση, να προβλέπουν τη συµπεριφορά κάποιας πρωτεΐνης. Στην πράξη αλγόριθµοι εξόρυξης δεδοµένων εφαρµόζονται µε επιτυχία στην αναγνώριση αγνώστων πρωτεϊνών [WWH + 01]. Συνοψίζοντας, λοιπόν, οι στόχοι της παρούσας διπλωµατικής εργασίας είναι: 1. ηµιουργία λογισµικού προ-επεξεργασίας δεδοµένων Το λογισµικό αυτό θα έχει τη δυνατότητα να επεξεργάζεται τις τρεις µεγάλες βάσεις δεδοµένων που αφορούν στις πρωτεΐνες και να εξάγει ένα
Κεφάλαιο 1. Περιγραφή προβλήµατος 15 αρχείο µε τις πληροφορίες εκείνες που θα χρησιµοποιηθούν στη συνέχεια από τα προγράµµατα εξόρυξης δεδοµένων. Αυτή η διαδικασία ονοµάζεται προεπεξεργασία (preprocessing) και αποτελεί απαραίτητο βήµα για τη δηµιουργία του µοντέλου εξόρυξης δεδοµένων. 2. Χρήση εργαλείων εξόρυξης γνώσης για την εξαγωγή µοντέλων πρόβλεψης της συµπεριφοράς των πρωτεϊνών. Με τη χρήση εργαλείων εξόρυξης δεδοµένων όπως το WEKA (Waikato Environment for Knowledge Analysis) και ο SQL Analysis Server 2000 της Microsoft, θα δηµιουργηθούν µοντέλα γνώσης τα οποία θα χρησιµοποιηθούν για την πρόβλεψη συµπεριφορών των πρωτεϊνών. 3. ιεξαγωγή πειραµάτων και αποκόµιση χρήσιµων συµπερασµάτων. Με τη διεξαγωγή των πειραµάτων και την λήψη αποτελεσµάτων θα γίνει η αξιολόγηση της λειτουργικότητας του συστήµατος και της συνολικής προσφοράς της εργασίας γενικότερα. 1.4. Ορισµός του προβλήµατος Το βασικό πρόβληµα στο οποίο επιχειρείται να δοθεί λύση είναι το ακόλουθο: «δεδοµένης µίας βάσης δεδοµένων ή ενός σετ εκπαίδευσης αµινοξέων, που υπάρχουν σε πρωτεΐνες µε γνωστές ιδιότητες (οι οποίες έχουν προσδιοριστεί πειραµατικά), στόχος είναι η δηµιουργία ενός εργαλείου, το οποίο θα µπορεί να κατηγοριοποιεί νέες, άγνωστες πρωτεΐνες σε κάποια οικογένεια πρωτεϊνών (κλάση), γνωστή στο σετ εκπαίδευσης». Στο Σχήµα 1.1, παρουσιάζεται το διάγραµµα του τρόπου προσέγγισης του προβλήµατος. Για να είναι δυνατή η πρόβλεψη της λειτουργία της πρωτεΐνης, λοιπόν, απαιτείται η δηµιουργία ενός σετ δεδοµένων εκπαίδευσης (Training Data Set), το οποίο θα χρησιµοποιηθεί από τον αλγόριθµο του δέντρου αποφάσεων (Decision Tree Algorithm) για την κατασκευή του δέντρου. Στη φάση της αξιολόγησης χρήσης του δέντρου και της γνώσης που αυτό παρέχει, εισάγεται µια πρωτεΐνη εντελώς άγνωστη σε αυτό και ταξινοµείται ανάλογα µε τις ιδιότητες που την χαρακτηρίζουν.
Κεφάλαιο 1. Περιγραφή προβλήµατος 16 Σετ δεδοµένων εκπαίδευσης Σετ δεδοµένων δοκιµής Αξιολόγηση δέντρου αποφάσεων Αλγόριθµος δέντρου αποφάσεων Ταξινοµητής δέντρου αποφάσεων Άγνωστη πρωτεΐνη Πρόβλεψη λειτουργίας πρωτεΐνης Σχήµα 1.1 Βασικό διάγραµµα
Κεφάλαιο 2. Ανάλυση απαιτήσεων 2.1. Εισαγωγή Πρόκειται για τη σχεδίαση ενός ισχυρού και αξιόπιστου εργαλείου που θα ενσωµατώνει αρκετές λειτουργίες αναφορικά µε τη σύγκριση πρωτεϊνών, καθώς και την αναγνώρισή τους. Πιο συγκεκριµένα, το εν λόγω σύστηµα θα έχει τη δυνατότητα να δέχεται τον κώδικα µιας πρωτεΐνης και συγκρίνοντας τον µε τις κλάσεις συµπεριφορών που περιλαµβάνει, να εξάγει χρήσιµα συµπεράσµατα σχετικά µε τις ιδιότητες αυτής. Η επιλογή των κλάσεων, που θα παίρνουν µέρος σε κάθε έρευνα, θα γίνεται από τον χρήστη και το αποτέλεσµα της κάθε αναζήτησης θα είναι η συµπεριφορά, που θα παρουσιάζει η υπό εξέταση πρωτεΐνη. Για την δηµιουργία του παραπάνω συστήµατος θα χρησιµοποιηθεί το πρόγραµµα Gen-Miner, που αναπτύχθηκε από τον µεταπτυχιακό φοιτητή Ανδρέα Συµεωνίδη στο Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης, το WEKA (Waikato Environment for Knowledge Analysis) του πανεπιστηµίου Waikato της Νέας Ζηλανδίας καθώς και ο Analysis Manager του SQL Server 2000 της Microsoft.
Κεφάλαιο 2. Ανάλυση απαιτήσεων 18 2.2. Απεικόνιση των δεδοµένων Το πρώτο βήµα στη διαδικασία αναγνώρισης της συµπεριφοράς των πρωτεϊνών, είναι η προετοιµασία του σετ δεδοµένων. Στην πλειοψηφία τους οι οδηγούµενοι από γεγονότα αλγόριθµοι αντιµετωπίζουν το κάθε στοιχείο (instance) ως ταξινοµηµένο τµήµα ενός συγκεκριµένου σετ γνωρισµάτων (attributes). Έτσι αρχικά απεικονίζεται κάθε πρωτεϊνική αλυσίδα µε τρόπο βασισµένο στον παραπάνω. Είναι σαφές ότι η επιλογή των γνωρισµάτων παίζει πολύ σηµαντικό ρόλο στη διαδικασία εξόρυξης δεδοµένων. Στην παρούσα περίπτωση οι πρωτεϊνικές αλυσίδες απεικονίζονται µε τη χρήση ενός κατάλληλου λεξικού ακολουθιών µοτίβων. Ας υποθέσουµε ότι το λεξικό περιλαµβάνει Ν µοτίβα. Κάθε πρωτεϊνική αλυσίδα περιέχει κάποιον περιορισµένο αριθµό αυτών. Κωδικοποιείται κάθε ακολουθία σαν ένα δυαδικό πρότυπο από N-bit µε το i-στο να παίρνει την τιµή 1 (YES), αν το αντίστοιχο µοτίβο υπάρχει στην αλυσίδα και την τιµή 0 (NO), αν αυτό απουσιάζει. Κάθε ακολουθία των N-bit συνοδεύεται από µία ετικέτα, χάρη στην οποία αναγνωρίζεται η λειτουργική οικογένεια της ακολουθίας. Το σετ εκπαίδευσης, εποµένως, δεν είναι τίποτε άλλο από µια συλλογή δυαδικών προτύπων των N-bit (Σχήµα 2.1 Απεικόνιση δεδοµένων). Πρωτεΐνη Χ Μοτίβα στην πρωτεΐνη Χ m3 m5 m6 N-bit δυαδικό πρότυπο 0 0 1 0 1 1 0... Σχήµα 2.1 Απεικόνιση δεδοµένων
Κεφάλαιο 2. Ανάλυση απαιτήσεων 19 2.3. Όψεις χρηστών 2.3.1. Βιολόγοι Κάθε λογισµικό που αναπτύσσεται, έχει σαν στόχο την ευρεία αποδοχή του από κάποια οµάδα ατόµων. Στην περίπτωση της βιοπληροφορικής, τα διάφορα εργαλεία επιζητούν µια θέση στον υπολογιστή κάθε βιολόγου. Έτσι λοιπόν, οι βιολόγοι αποτελούν τη µεγαλύτερη κατηγορία χρηστών, καθώς είναι αυτοί που θα χρησιµοποιούν πιο συχνά το σύστηµα για επιστηµονικούς σκοπούς. 2.3.2. Μαθητές Εφόσον η βιολογία αποτελεί για χρόνια τώρα διδακτικό αντικείµενο στα σχολεία όλου του κόσµου, δεν είναι παράλογο να θεωρούµε τους µαθητές υποψήφιους χρήστες του λογισµικού. Μαζί µε τους µαθητές το σύστηµα είναι πιθανό να χρησιµοποιείται και από τους καθηγητές τους, ενώ θα προσφέρεται γνώση, που πιθανόν να ικανοποιήσει φοιτητές διαφόρων σχολών. 2.3.3. Προγραµµατιστές Μια τελευταία κατηγορία χρηστών είναι αυτή των προγραµµατιστών ευφυών συστηµάτων. Οι προγραµµατιστές θα µπορούν να αντλούν στοιχεία τόσο για την ανάλυση όσο και για την εξέλιξη του συστήµατος, όπως επίσης να αποκτούν τεχνογνωσία πάνω σε θέµατα βιοπληροφορικής. 2.4. Παρεχόµενες υπηρεσίες 2.4.1. ηµιουργία δέντρου αποφάσεων Τα παραπάνω επιτυγχάνονται µέσω της δηµιουργίας ενός δέντρου αποφάσεων. Το δέντρο παραµένει στη διάθεση του χρήστη, για περαιτέρω µελέτη, ενώ παράλληλα του δίνεται η δυνατότητα να το αποθηκεύσει. Ο χρήστης έχει στην ουσία τη δυνατότητα να επιλέξει ανάµεσα σε δύο τρόπους υλοποίησης του δέντρου. Ο ένας είναι µέσω του WEKA ενώ ο άλλος είναι µέσω του SQL Analysis Server.
Κεφάλαιο 2. Ανάλυση απαιτήσεων 20 2.4.2. Λειτουργικό και απλό Interface Η διεπαφή των χρηστών, δηµιουργήθηκε µε σκοπό να είναι απλή στη χρήση της, και κατανοητή ακόµη και στον λιγότερο καταρτισµένο χρήστη. Περιλαµβάνονται επεξηγήσεις πλήκτρων (tool tips), αλληλεπίδραση όπως αλλαγή χρώµατος πλήκτρων όταν ο δείκτης του ποντικιού βρίσκεται επάνω και πολλά άλλα. 2.4.3. Ενσωµάτωση πολλών εργαλείων σε ένα πρόγραµµα Όπως αναφέρθηκε και στην παράγραφο 1.3, στόχος της εργασίας ήταν η δηµιουργία ενός ολοκληρωµένου συστήµατος, το οποίο θα πραγµατοποιεί τόσο την προετοιµασία των δεδοµένων, όσο και την µετέπειτα αναζήτηση της άγνωστης πρωτεΐνης. Γι αυτό το λόγο ενσωµατώσαµε το πρόγραµµα εξόρυξης δεδοµένων WEKA. Στην Εικόνα 2.1, βλέπουµε το διάγραµµα ροής δεδοµένων του προγράµµατος. Από τη στιγµή που ο χρήστης εισάγει έναν έγκυρο κωδικό για τον SQL Server, έχει πρόσβαση στη δηµιουργία αρχείων εκπαίδευσης και ελέγχου που µπορούν να αξιοποιηθούν τόσο από τον SQL Analysis Server, όσο και από το σύστηµα WEKA. Εισαγωγή κωδικού χρήστη Επιλογή κλάσεων ηµιουργία αρχείου WEKA Επιλογή πρωτεϊνών ηµιουργία αρχείου SQL ηµιουργία SQL DATA Sets ηµιουργία WEKA DATA Sets Εικόνα 2.1 ιάγραµµα ροής δεδοµένων
Κεφάλαιο 2. Ανάλυση απαιτήσεων 21 Το γραφικό περιβάλλον του λογισµικού Η πρώτη εικόνα που εµφανίζεται στο χρήστη µετά την εκτέλεση του προγράµµατος, είναι το παράθυρο εισαγωγής ονόµατος χρήστη και κωδικού πρόσβασης για τη σύνδεση µε τον SQL Server. Έπειτα, αν τα στοιχεία είναι σωστά και ο χρήστης είναι εξουσιοδοτηµένος, εµφανίζεται η καρτέλα της προετοιµασίας των δεδοµένων (Preprocessing), η οποία περιλαµβάνει πλήκτρα εκτελέσεως των αποθηκευµένων διαδικασιών, επιλογής των επιθυµητών κλάσεων και πεδίο καταγραφής συµβάντων. Για να γίνουν καλύτερα κατανοητά όλα τα παραπάνω καθώς και το διάγραµµα ροής δεδοµένων, ο αναγνώστης παραπέµπεται στις εικόνες των διεπαφών του παραρτήµατος Β καθώς και στο εγχειρίδιο χρήσης του παραρτήµατος Α.
Κεφάλαιο 3. Μεθοδολογία ανάπτυξης 3.1. Εισαγωγή Σε αυτό το κεφάλαιο παρουσιάζεται ο τρόπος µε τον οποίο αποφασίστηκε να αντιµετωπιστεί το πρόβληµα, που εκτενώς αναλύθηκε στο κεφάλαιο 1. Πιο αναλυτικά, στην παράγραφο 3.2 συναντά κανείς τις τεχνολογίες που χρησιµοποιήθηκαν, ποιες δηλαδή ήταν οι γνώσεις, των οποίων η κτήση κρίθηκε απαραίτητη για την υλοποίηση του συστήµατος. Στην παράγραφο 3.3, παρουσιάζεται αναλυτικά ο αλγόριθµος που υλοποιήθηκε, ενώ στην παράγραφο 3.4 περιγράφεται η σχεδίαση της βάσης δεδοµένων που υλοποιήθηκε. 3.2. Τεχνολογίες που χρησιµοποιήθηκαν 3.2.1. Borland JBuilder 6 Το σύστηµα ανάπτυξης εφαρµογών για Windows της Borland, JBuilder 6, κρίθηκε ως η βέλτιστη επιλογή για την ανάπτυξη του προγράµµατος, καθώς:! Βασίζεται στην γλώσσα προγραµµατισµού Java, η οποία µπορεί να εκτελείται σε οποιοδήποτε λειτουργικό σύστηµα µε τον ίδιο τρόπο.
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 23! Η Java είναι µία γλώσσα προγραµµατισµού που αναπτύχθηκε ιδιαίτερα τα τελευταία χρόνια και όπως πιστεύεται από πολλούς, είναι η γλώσσα του µέλλοντος.! Η χρήση της µηχανή WEKA (µία Java Implemented Data Mining µηχανή) µέσα από το GenTool, ήταν εφικτό µόνο µε την ανάπτυξη του προγράµµατός σε Java.! H έκδοση 6 του JBuilder είναι ιδιαίτερα βελτιωµένη και παρέχει πάρα πολλές ευκολίες για τη δηµιουργία συµπαγή και χωρίς σφάλµατα κώδικα.! Οι βιβλιοθήκες συναρτήσεων που έχουν αναπτυχθεί για την Java, είναι υπερµεγέθεις και αυτό θα διευκόλυνε το προγραµµατιστικό µας έργο, καθώς δε θα χρειαζόταν να γράψουµε υπερβολικά πολλές γραµµές κώδικα. 3.2.2. Microsoft SQL Server 2000 Η δηµιουργία µιας βάσης δεδοµένων κρίθηκε απαραίτητη για την γρήγορη και χωρίς σφάλµατα λειτουργία του προγράµµατος. Επιλέχθηκε ο SQL Server της Microsoft, καθώς:! Αποτελεί ένα από τα καλύτερα και πιο ολοκληρωµένα συστήµατα της αγοράς.! Είναι γνωστές οι δυνατότητές του και ικανοποιούν πλήρως τις απαιτήσεις της εφαρµογής.! Συνοδεύεται από πολύ καλή τεκµηρίωση, γεγονός το οποίο θα βοηθούσε ιδιαίτερα τόσο στη γρήγορη δηµιουργία, όσο και στην καλύτερη αξιοποίηση της βάσης.! Είναι ένα σύστηµα που χρησιµοποιείται για αρκετά χρόνια στο εργαστήριο Ευφυών Συστηµάτων και Τεχνολογίας Λογισµικού, τα µέλη του οποίου, µοιράζονται µε χαρά την γνώση και εµπειρία που έχουν αποκτήσει πάνω σε αυτό. 3.2.3. WEKA Data Miner Ενώ η προετοιµασία των δεδοµένων θα γινόταν µε τη χρήση του JBuilder 6 και του SQL Server 2000, το πρόγραµµα που επελέγη να χρησιµοποιηθεί για
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 24 την εξόρυξη των δεδοµένων ονοµάζεται WEKA (Waikato Environment for Knowledge Analysis) και επελέγη διότι:! Παρέχει πολύ µεγάλο αριθµό επιλογών τόσο για εξόρυξη δεδοµένων, όσο και για δηµιουργία δέντρων αποφάσεων.! Έχει αναπτυχθεί από το πανεπιστήµιο Waikato της Νέας Ζηλανδίας και ο κώδικάς του είναι διαθέσιµος µέσω του διαδικτύου [URL02].! Υπάρχει πλήθος εγχειριδίων και προσεγµένη τεκµηρίωση όλων των συναρτήσεων, που υλοποιούνται από την υπό συζήτηση µηχανή µε αποτέλεσµα να δίνεται η δυνατότητα εκµετάλλευσης όλων των ιδιαίτερων χαρακτηριστικών της. 3.3. Προετοιµασία των δεδοµένων Πριν δούµε, όµως, τον τρόπο µε τον οποίο θα προετοιµάζονται τα δεδοµένα µε σκοπό την εισαγωγή τους στη µηχανή WEKA, θα δούµε ποια µορφή έχουν αυτά και το τι ακριβώς εκφράζουν. 3.3.1. Η βάση δεδοµένων Prosite Η βάση δεδοµένων Prosite περιέχει πάνω από 1100 εγγραφές. Κάθε εγγραφή περιγράφει µια λειτουργία, κοινή σε ορισµένες πρωτεΐνες. Στο παρόν σύγγραµµα κάθε εγγραφή αντιστοιχεί σε µία κλάση πρωτεϊνών. Για παράδειγµα, η εγγραφή PDOC00662 αντιστοιχεί στην κλάση MCM family signature and profile. Για να διευκολύνουν την πλοήγηση σε αχανή δεδοµένα, αλλά και για να επιτρέψουν στους προγραµµατιστές να δηµιουργήσουν διάφορα εργαλεία βιοπληροφορικής, οι σχεδιαστές της Prosite βάσης δεδοµένων ταξινόµησαν τις εγγραφές τους σε ένα αρχείο (PROSITE.DAT) µε τον ακόλουθο τρόπο: i. Κάθε σειρά µπορεί να έχει από 6 έως 128 χαρακτήρες, όπου οι δύο πρώτοι αποτελούν τον τύπο της πληροφορίας που ακολουθεί στην υπόλοιπη σειρά, ii. Οι χαρακτήρες 3 έως 5 είναι κενοί για να διαχωρίζονται τα δεδοµένα από τις περιγραφές τους και iii. Οι υπόλοιποι 6 έως 128 χαρακτήρες καταλαµβάνονται από τα δεδοµένα της σειράς.
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 25 Στο Σχήµα 3.1 παρουσιάζεται η δοµή των εγγραφών στο αρχείο Prosite. Θα πρέπει να σηµειωθεί ότι ο τύπος ID Identification εµφανίζεται µόνο µία φορά για κάθε εγγραφή και είναι αυτός µε τον οποίο ξεκινά. Μία φορά µόνο εµφανίζονται επίσης οι τύποι AC Accession number, DT Date, DE Short description και DO Pointer the documentation file. Όλοι οι υπόλοιποι µπορούν να έχουν από µηδέν έως άπειρα στοιχεία για καθεµία εγγραφή. ID Identification AC Accession number DT Date DE Short description PA Pattern MA Matrix/profile RU Rule NR Numerical results CC Comments DR Cross references to SWISS PROT 3D Cross references to PDB DO Pointer the documentation file // Termination line Σχήµα 3.1 οµή εγγραφών στο αρχείο Prosite Για να γίνουν πιο κατανοητά τα παραπάνω, παραθέτουµε ένα δείγµα του αρχείου και πιο συγκεκριµένα αυτό της εγγραφής PDOC00325 (Σχήµα 3.2).! Η γραµµή ID (IDentification) είναι πάντα η πρώτη γραµµή µιας εγγραφής. Στη γενική της µορφή δέχεται δύο ορίσµατα: το όνοµα της εγγραφής και τον τύπο αυτής. Οι χαρακτήρες που επιτρέπονται, είναι οι Α Ζ (λατινικοί), 0 9 καθώς και ο χαρακτήρας υπογράµµισης _. Παραδείγµατα: ID ADH_ZINC; PATTERN, ID SULFATION; RULE, ID SH3; MATRIX.! Η γραµµή AC (ACcession number) είναι πάντα η δεύτερη γραµµή µιας εγγραφής και ορίζει τον αριθµό αντιστοίχισης, που σχετίζεται µε µία εγγραφή. Είναι ένας ιδιαίτερα σηµαντικός αριθµός, καθώς µερικές φορές επιβάλλεται η αλλαγή των ονοµάτων ID από έκδοση σε έκδοση, ο αριθµός αυτός παραµένει σταθερός. έχεται ένα όρισµα της µορφής
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 26 PSnnnnn, όπου οι χαρακτήρες PS αντιστοιχούν στη λέξη Prosite και οι χαρακτήρες nnnnn αντιστοιχούν σε έναν πενταψήφιο αριθµό. Παράδειγµα: AC PS00387 ID PPASE; PATTERN. AC PS00387; DT NOV-1990 (CREATED); NOV-1997 (DATA UPDATE); JUL-1998 (INFO UPDATE). DE Inorganic pyrophosphatase signature. PA D-[SGDN]-D-[PE]-[LIVMF]-D-[LIVMGAC]. NR /RELEASE=40.7,103373; NR /TOTAL=69(69); /POSITIVE=45(45); /UNKNOWN=0(0); /FALSE_POS=24(24); NR /FALSE_NEG=2; /PARTIAL=2; CC /TAXO-RANGE=A?EP?; /MAX-REPEAT=1; CC /SITE=1,magnesium; /SITE=3,magnesium; /SITE=6,magnesium; DR P87118, IPY2_SCHPO, T; P28239, IPY2_YEAST, T; Q9YBA5, IPYR_AERPE, T; DR O67501, IPYR_AQUAE, T; P21216, IPYR_ARATH, T; P19514, IPYR_BACP3, T; DR O05724, IPYR_BACST, T; P51064, IPYR_BARBA, T; P37980, IPYR_BOVIN, T; DR P57190, IPYR_BUCAI, T; Q18680, IPYR_CAEEL, T; Q9PLF1, IPYR_CHLMU, T; DR O84777, IPYR_CHLTR, T; O77460, IPYR_DROME, T; P17288, IPYR_ECOLI, T; DR P44529, IPYR_HAEIN, T; Q9ZLL5, IPYR_HELPJ, T; P56153, IPYR_HELPY, T; DR O23979, IPYR_HORVD, T; Q15181, IPYR_HUMAN, T; P13998, IPYR_KLULA, T; DR O34955, IPYR_LEGPN, T; O48556, IPYR_MAIZE, T; O26363, IPYR_METTH, T; DR P47593, IPYR_MYCGE, T; O69540, IPYR_MYCLE, T; P75250, IPYR_MYCPN, T; DR O06379, IPYR_MYCTU, T; O22537, IPYR_ORYSA, T; P57918, IPYR_PASMU, T; DR O13505, IPYR_PICPA, T; O77392, IPYR_PLAF7, T; Q9UY24, IPYR_PYRAB, T; DR O59570, IPYR_PYRHO, T; Q9RGQ1, IPYR_RHORU, T; Q9ZCW5, IPYR_RICPR, T; DR P19117, IPYR_SCHPO, T; Q43187, IPYR_SOLTU, T; Q9X8I9, IPYR_STRCO, T; DR P50308, IPYR_SULAC, T; P80507, IPYR_SYNY3, T; P37981, IPYR_THEAC, T; DR P77992, IPYR_THELI, T; P38576, IPYR_THETH, T; P00817, IPYR_YEAST, T; DR P19371, IPYR_DESVH, P; P82992, IPYR_RHOVI, P; DR Q9Z6Y8, IPYR_CHLPN, N; O05545, IPYR_GLUOX, N; DR Q06305, AER3_AERHY, F; Q06303, AER4_AERHY, F; Q06306, AER5_AERHY, F; DR P09167, AERA_AERHY, F; Q9X4Y1, AGPA_RHIME, F; Q44257, CBAB_COMTE, F; DR P12351, CYP1_YEAST, F; P28616, DNAJ_BORBU, F; Q9TU03, GDIS_BOVIN, F; DR P37693, HETM_ANASP, F; Q59171, HXKG_BRUAB, F; O77793, PA2Y_HORSE, F; DR P47712, PA2Y_HUMAN, F; P50393, PA2Y_RAT, F; P39303, PTXA_ECOLI, F; DR P55852, SMT3_ARATH, F; P55857, SMT3_ORYSA, F; P36100, T2EA_YEAST, F; DR P52494, TREA_CANAL, F; P03747, VTTB_BPT7, F; P24653, Y101_NPVOP, F; DR P37904, YCEI_ECOLI, F; Q09475, YP93_CAEEL, F; P70796, YTZ4_AGRVI, F; 3D 1FAJ; 1IGP; 1INO; 1IPW; 1JFD; 1MJW; 1MJZ; 1OBW; 2EIP; 1QEZ; 2PRD; 3D 1HUK; 1WGI; 1WGJ; 1YPP; 8PRK; 1HUJ; DO PDOC00325; // Σχήµα 3.2 είγµα εγγραφής αρχείου Prosite! Η γραµµή DT (DaTe) ορίζει την ηµεροµηνία εισαγωγής ή τελευταίας ενηµέρωσης µιας εγγραφής. Είναι πάντα η τρίτη γραµµή µιας εγγραφής και έχει τη µορφή: DT MMM-YYYY(CREATED);MMM-YYYY(DATA UPDATE);MMM-YYYY(INFO UPDATE) Όπου, ΜΜΜ είναι ο µήνας και ΥΥΥΥ είναι το έτος. Παράδειγµα:
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 27 DT NOV-1990 (CREATED); NOV-1997 (DATA UPDATE); JUL-1998 (INFO UPDATE).! Η γραµµή DE (DEscription) περιέχει περιγραφικές πληροφορίες για το περιεχόµενο της εγγραφής. Βρίσκεται πάντα στην τέταρτη σειρά και η µορφή της είναι: DE Description. Το πεδίο Description λαµβάνει τιµές σε απλά αγγλικά και δεν ακολουθεί κάποια συγκεκριµένη τυποποίηση. Παράδειγµα: DE Inorganic pyrophosphatase signature.! Η γραµµή ΡΑ (PAttern) περιέχει τον ορισµό ενός προτύπου PROSITE. Παράδειγµα: PA D-[SGDN]-D-[PE]-[LIVMF]-D-[LIVMGAC].! Η γραµµή ΜΑ (MAtrix) ορίζει την εγγραφή ενός προφίλ (ή πίνακα) PROSITE. Η πλήρης περιγραφή του συγκεκριµένου πεδίου δε θα παρουσιαστεί στο παρόν σύγγραµµα, καθώς η µελέτη του δεν κρίνεται απαραίτητη για την κατανόηση των περαιτέρω.! Η γραµµή NR (Numerical Results) περιέχει πληροφορίες σχετικά µε αποτελέσµατα, που ελήφθησαν από τη σάρωση ολόκληρης της τράπεζας δεδοµένων SWISS-PROT µε ένα πρότυπο. Παράδειγµα: NR /RELEASE=40.7,103373; NR /TOTAL=69(69);/POSITIVE=45(45);/UNKNOWN=0(0); /FALSE_POS=24(24); NR /FALSE_NEG=2; /PARTIAL=2;! Η γραµµή CC (Comments) περιέχει σχόλια διαφόρων ειδών. Παράδειγµα: CC /TAXO-RANGE=A?EP?; /MAX-REPEAT=1; CC /SITE=1,magnesium; /SITE=3,magnesium; /SITE=6,magnesium;! Οι γραµµές DR (Data bank Reference) χρησιµοποιούνται σαν δείκτες σε εγγραφές της SWISS-PROT, οι οποίες συλλέχθηκαν (ή όχι) από το πρότυπο, µε το οποίο αυτή σαρώθηκε. Η µορφή της γραµµής είναι: DR AC_NB,ENTRY_NAME,C; AC_NB,ENTRY_NAME,C; AC_NB,ENTRY_NAME,C; Όπου:
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 28 AC_NB είναι ο κωδικός αντιστοιχίας στις εγγραφές της SWISS-PROT, ENTRY_NAME είναι το όνοµα της SWISS-PROT εγγραφής και C είναι µία χαρακτηριστική σηµαία που µπορεί να πάρει µία από τις ακόλουθες τιµές: Τ για true positive, όταν η αλυσίδα περιέχεται στην υπό εξέταση οµάδα N για false negative, όταν η αλυσίδα ανήκει στην οµάδα που εξετάζεται, αλλά δεν κατέστη δυνατό να ανιχνευθεί στο πρότυπο ή το προφίλ P potential hit, όταν η αλυσίδα της πρωτεΐνης ανήκει στην οµάδα, αλλά δεν ανιχνεύθηκε διότι τα τµήµατα της αλυσίδας, που χρησιµοποιούνται ως «αποτύπωµα», δεν είναι διαθέσιµα στην τράπεζα δεδοµένων.? για κάποια άγνωστη πρωτεΐνη η οποία θα µπορούσε να ανήκει στην συγκεκριµένη οµάδα και F false positive, όταν η αλυσίδα της πρωτεΐνης δεν περιέχεται στην κατηγορία που εξετάζεται. Παραδείγµατα: DR P50308,IPYR_SULAC,T;P80507,IPYR_SYNY3,T;P37981,IPYR_THEAC,T; DR P77992,IPYR_THELI,T;P38576,IPYR_THETH,T;P00817,IPYR_YEAST,T; DR P19371,IPYR_DESVH,P;P82992,IPYR_RHOVI,P; DR Q9Z6Y8,IPYR_CHLPN,N;O05545,IPYR_GLUOX,N; DR Q06305,AER3_AERHY,F;Q06303,AER4_AERHY,F;Q06306,AER5_AERHY,F;! Η γραµµή DO (DOcumentation) περιλαµβάνει τον κωδικό δείκτη της εγγραφής στο έγγραφο τεκµηρίωσης του PROSITE. Στη συνέχεια του συγγράµµατος ο κωδικός τεκµηρίωσης θα αναφέρεται ως όνοµα κλάσης ή κωδικός κλάσης. Έχει τη µορφή: DO PDOCnnnnn; Παράδειγµα: DO PDOC00325; 3.3.2. Οι υπόλοιπες βάσεις δεδοµένων Στην παράγραφο 3.3.1 είδαµε τον τρόπο µε τον οποίο, είναι δοµηµένη η βάση δεδοµένων PROSITE. Σε αυτήν την παράγραφο θα εξεταστούν οι υπόλοιπες δύο βάσεις δεδοµένων, που θα χρησιµοποιηθούν και θα
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 29 πραγµατοποιηθεί αναφορά στα στοιχεία, που απαιτούνται για την προετοιµασία των δεδοµένων.! Η βάση δεδοµένων των ισχυρών µοτίβων Στη βάση δεδοµένων των µοτίβων περιέχεται η αναλυτική περιγραφή καθενός από αυτά, ποιες πρωτεΐνες περιέχουν αυτό το µοτίβο, αν και κατά πόσο η εµφάνιση της πρωτεΐνης είναι ορθή κατά Swiss prot. είγµα του αρχείου παρουσιάζεται στο Σχήµα 3.3. sw O00628 PEX7_HUMAN 323 D405387F7F14B432 73 96 prf PS50082 WD_REPEATS_2 8.5 6.5 SEP-2000 11-10 8.169 sw O00629 IMA4_HUMAN 521 D98BC45002C9F57E 114 158 prf PS50176 ARM_REPEAT 8.5 6.5 SEP-2000 1-1 9.327 sw P57413 RSMC_BUCAI 338 E43516DDD22FA014 194 305 prf PS50193 SAM_BIND 8.5 6.5 MAY-1999 1-1 10.587 sw P57415 MVIN_BUCAI 511 D95FF4B563410A9F 157 182 prf PS50314 PHE_RICH 8.5 6.5 SEP-2000 1-1 6.529 sw P57421 FLGD_BUCAI 236 E15EAA2D3D84F293 5 38 prf PS50321 ASN_RICH 8.5 6.5 SEP-2000 1-1 6.922 sw P57426 FLGI_BUCAI 372 CCF74D2E1B294835 296 313 prf PS50079 NLS_BP 5.0 3.0 MAY-1999 1-1 3.000 sw P57428 FLGK_BUCAI 543 6A6F958F91F78771 439 455 prf PS50321 ASN_RICH 8.5 6.5 SEP-2000 1-1 6.729 sw P57429 RNE_BUCAI 902 C3FA00476E3C2E37 39 119 prf PS50126 S1 8.5 6.5 MAY-1999 1-1 12.147 Σχήµα 3.3 είγµα αρχείου ισχυρών µοτίβων! Η βάση δεδοµένων των ισχυρών προτύπων Η βάση δεδοµένων των ισχυρών προτύπων έχει ακριβώς τα ίδια χαρακτηριστικά µε αυτή των ισχυρών µοτίβων. Έτσι, περιέχει τον κωδικό του προτύπου, το όνοµα του, τις πρωτεΐνες, που το περιλαµβάνουν, καθώς και τα ονόµατα αυτών (Σχήµα 3.3).
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 30 sw P38647 GR75_MOUSE 679 3E58DC6275796232 58 65 pat PS00297 HSP70_1 - - NOV-1997 1-1 - sw P38650 DYHC_RAT 4644 8C6ABDBEDF875D82 1904 1911 pat PS00017 ATP_GTP_A - - APR-1990 1-1 - sw P38657 PDA3_BOVIN 505 A85911748DC70A23 49 67 pat PS00194 THIOREDOXIN - - NOV-1997 1-1 - sw P38658 ER60_SCHMA 484 D85606CFC5C269B9 38 56 pat PS00194 THIOREDOXIN - - NOV-1997 1-1 - sw P38659 PDA4_RAT 643 85611B66F3A4DE41 81 99 pat PS00194 THIOREDOXIN - - NOV-1997 1-1 - sw P38660 PDA6_MESAU 439 E24CAECF5FFF5F8D 182 200 pat PS00194 THIOREDOXIN - - NOV-1997 1-1 - sw P38662 LECA_DOLLA 237 BEB7E84DC2895327 193 202 pat PS00308 LECTIN_LEGUME_ALPHA - - JUL-1999 1-1 - sw P38667 PGK_NEUCR 418 5C0A97780B643EC2 18 28 pat PS00111 PGLYCERATE_KINASE - - JUL-1999 1-1 - Σχήµα 3.4 είγµα αρχείου ισχυρών προτύπων 3.3.3. οµή τελικού αρχείου WEKA Όπως αναφέρθηκε και στην αρχή του κεφαλαίου, το αποτέλεσµα της προετοιµασίας των δεδοµένων είναι η παραγωγή ενός τελικού αρχείου, που θα µπορεί να αξιοποιηθεί από τη µηχανή αναζήτησης WEKA. Αυτό έχει προέκταση.arff και η µορφή του ορίζεται από το ίδιο το πρόγραµµα. Έτσι, η πρώτη γραµµή του αρχείου περιλαµβάνει το όνοµα της σχέσης, για την οποία παρουσιάζονται τα δεδοµένα. Αν για παράδειγµα θέλαµε να παρουσιάσουµε µε τη µορφή.arff αρχείου τα δεδοµένα κάποιας µετεωρολογικής πρόβλεψης, ένα όνοµα σχέσης, το οποίο θα µπορούσε να χρησιµοποιηθεί, είναι weather. Στην περίπτωση των πρωτεϊνών, το βέλτιστο όνοµα κρίθηκε ότι είναι protein. Η σχέση αυτή συµβολίζεται µε την ετικέτα @relation. Η δεύτερη σειρά περιέχει τις πρωτεΐνες, των οποίων τα δεδοµένα εµφανίζονται πιο κάτω, ή αλλιώς τα γνωρίσµατα των πρωτεϊνών. Συµβολίζεται µε την ετικέτα @attribute. Οι επόµενες σειρές περιέχουν τα υπόλοιπα γνωρίσµατα των δεδοµένων, καθώς και τις πιθανές τιµές τους. Συµβολίζονται και αυτά µε την ετικέτα @attribute και ο αριθµός τους ποικίλει µε την περίπτωση. Στο τέλος εµφανίζονται οι σειρές των δεδοµένων, στις οποίες υπάρχει αντιστοιχία ανάµεσα στα γνωρίσµατα, τις τιµές τους και τη σειρά εµφάνισης σε κάθε εγγραφή. Το τµήµα των δεδοµένων σε ένα.arff αρχείο εισάγει η ετικέτα
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 31 @data αλλά µονάχα µία φορά για το σύνολο των δεδοµένων. Στο Σχήµα 3.5 παραθέτουµε ένα τυπικό αρχείο που παράγει το υπό συζήτηση σύστηµα. @relation protein @attribute protein {P98140,Q04962,P00748,Q9R098,P22897,P11717,Q07113,P49260,P80964,P81019,P81121,P 02751,P04937,P02784,P04557,P08253,P33434,P33436,P52176,P14780,P41245,Q04756,P08 169,P49259,Q9UBV2,P07589,P50282,Q90611,P50757,O18733,P41246} @attribute PS00023 {YES,NO} @attribute PS50034 {YES,NO} @attribute PS50240 {YES,NO} @attribute PS50026 {YES,NO} @attribute PS50070 {YES,NO} @attribute PS00022 {YES,NO} @attribute PS01253 {YES,NO} @attribute PS00021 {YES,NO} @attribute PS00134 {YES,NO} @attribute PS00135 {YES,NO} @attribute PS01186 {YES,NO} @attribute PS50099 {YES,NO} @attribute PS50231 {YES,NO} @attribute PS50041 {YES,NO} @attribute PS00615 {YES,NO} @attribute PS00017 {YES,NO} @attribute PS50079 {YES,NO} @attribute PS50325 {YES,NO} @attribute PS00687 {YES,NO} @attribute PS50269 {YES,NO} @attribute PS00024 {YES,NO} @attribute PS00343 {YES,NO} @attribute PS50319 {YES,NO} @attribute PS50105 {YES,NO} @attribute PS50276 {YES,NO} @attribute CLASS {PDOC00022} @data P98140,YES,YES,YES,YES,YES,YES,YES,YES,YES,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 Q04962,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,N O,NO,PDOC00022 P00748,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,N O,NO,PDOC00022 Q9R098,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P22897,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,YES,YES,YES,YES,NO,NO,NO,NO,NO,NO,N O,NO,NO,PDOC00022 P11717,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,YES,NO,NO,NO,NO,NO,NO,N O,NO,PDOC00022 Q07113,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P49260,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 Q04756,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,YES,N O,NO,PDOC00022 P08169,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P49259,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 Q9UBV2,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P07589,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 32 P80964,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P81019,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P81121,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P02751,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,YES,YES,NO,NO,NO,NO, NO,NO,PDOC00022 P04937,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,YES,NO,NO,NO,N O,NO,PDOC00022 P02784,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P04557,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P08253,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,YES,YES,NO, NO,NO,PDOC00022 P33434,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P33436,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P52176,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P14780,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P41245,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 Q04756,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,YES,N O,NO,PDOC00022 P08169,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P49259,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 Q9UBV2,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P07589,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P50282,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,YE S,NO,PDOC00022 Q90611,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P50757,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 O18733,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,YES,PDOC00022 P41246,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 Σχήµα 3.5 είγµα τελικού αρχείου WEKA 3.3.4. οµή τελικού αρχείου SQL Analysis Server Η χρήση των µεθόδων εξόρυξης που παρέχει ο SQL Analysis Server, αξιοποιήθηκαν µετά την υλοποίηση του αρχικού αλγορίθµου για το WEKA. Για τη διατήρηση της οµοιοµορφίας δεν πραγµατοποιήθηκαν σηµαντικές αλλαγές στην έξοδο του προγράµµατος. Αφαιρέθηκαν, όµως, τα πεδία που στερούταν
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 33 νοήµατος. είγµα του τελικού αρχείου για τον SQL Analysis Server, παρουσιάζεται στο Σχήµα 3.6. Αξίζει να σηµειωθεί, ότι για να µπορέσει να πραγµατοποιηθεί η εξόρυξη δεδοµένων, µε τη χρήση του SQL Analysis Server, απαιτείται η µεταφορά του παραγόµενου αρχείου σε ένα πίνακα στη βάση. Αυτό υλοποιείται µε τη χρήση του DTS (Data Transformation Packages). P80964,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P81019,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P81121,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P02751,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,YES,YES,NO,NO,NO,NO, NO,NO,PDOC00022 P04937,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,YES,NO,NO,NO,N O,NO,PDOC00022 P02784,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P04557,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P08253,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,YES,YES,NO, NO,NO,PDOC00022 P33434,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P33436,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P52176,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P14780,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P41245,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 Q04756,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,YES,N O,NO,PDOC00022 P08169,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P49259,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 Q9UBV2,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P07589,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P50282,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,YE S,NO,PDOC00022 Q90611,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 P50757,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 O18733,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,YES,PDOC00022 P41246,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00022 Σχήµα 3.6 είγµα τελικού αρχείου για τον SQL Analysis Server
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 34 3.4. Ο Αλγόριθµος Όπως έχει αναφερθεί και παραπάνω, δύο από τους στόχους που τέθηκαν, είναι η προετοιµασία των δεδοµένων, µε τα οποία θα γίνει η εκπαίδευση του συστήµατος WEKA και η δυνατότητα αναζήτησης µιας πρωτεΐνης. Για να είναι εφικτό αυτό, πρέπει να προηγηθεί το στάδιο της προετοιµασίας το δεδοµένων, το οποίο σηµαίνει ότι από τα τρία αρχεία που αποτελούν τη βάση δεδοµένων (prosite.dat, pattern.dat, profile.dat) πρέπει να συντεθούν µε τέτοιο τρόπο ώστε να είναι δυνατή η λήψη του επιθυµητού αποτελέσµατος. Στο Κεφάλαιο 3.3, πραγµατοποιήθηκε αναλυτική παρουσίαση της µορφής των δεδοµένων, που θα χειρίζεται το σύστηµα, καθώς και της πηγής αυτών, ενώ στο παρόν κεφάλαιο θα εξεταστεί ο τρόπος που γίνεται ο συνδυασµός όλων αυτών των δεδοµένων. 3.4.1. Στοιχεία που χρειαζόµαστε! Στις γραµµές DR του αρχείου Prosite, βρίσκονται οι κωδικοί των πρωτεϊνών, τα ονόµατά τους και η χαρακτηριστική σηµαία ύπαρξης ή απουσίας αυτής στην κλάση για την οποία κατηγοριοποιήθηκε. Από τη συγκεκριµένη γραµµή πρέπει να διατηρηθούν ακριβώς τα παραπάνω στοιχεία. ηλαδή, κωδικός πρωτεΐνης, όνοµα και χαρακτηριστική σηµαία. Η κλάση, στην οποία ανήκει η κάθε πρωτεΐνη, εµφανίζεται στο τέλος κάθε εγγραφής και εισάγεται µε τη γραµµή DO. Με το αρχείο prosite.dat δηµιουργούµε έναν πίνακα στον SQL Server, µε τη βοήθεια των πακέτων DTS (Data Transformation Packages). Τα στοιχεία που τελικά αξιοποιούνται, τα αποµονώνονται µε τη βοήθεια µιας αποθηκευµένης διαδικασίας (βλ. Παρ. 3.4.3).! Από τα υπόλοιπα δύο αρχεία, (profile.dat, pattern.dat) οι πληροφορίες που χρειάζεται το σύστηµά, είναι πιο εύκολο να αποσπαστούν, καθώς είναι καλύτερα δοµηµένες. Έτσι, µε τη βοήθεια του DTS, δηµιουργούνται 2 πίνακες (έναν για το κάθε αρχείο), οι οποίοι περιλαµβάνουν τον κωδικό της πρωτεΐνης, το όνοµά της, τον κωδικό του προφίλ ή προτύπου, που περιλαµβάνει και τέλος το όνοµα αυτού. Στο κεφάλαιο 3.5 θα δούµε αναλυτικότερα τον τρόπο µε τον οποίο σχεδιάστηκε η βάση µε σκοπό την καλύτερη δυνατή εξυπηρέτηση των αναγκών του συστήµατος.
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 35 3.4.2. Ο αλγόριθµος στο µικροσκόπιο Έχοντας, λοιπόν, δηµιουργήσει τους πίνακες µε τα δεδοµένα που απαιτούνται, ξεκινά η επεξεργασία τους. Με τη χρήση του γραφικού περιβάλλοντος, που δηµιουργήθηκε στον JBuilder, εµφανίζονται στο χρήστη όλες οι διαθέσιµες κλάσεις της βάσης του prosite. Ο χρήστης επιλέγει ποιες από αυτές που εµφανίζονται στην οθόνη του, επιθυµεί να συµπεριλάβει στην έρευνά του. Στη συνέχεια, πιέζοντας το πλήκτρο «Update» εκτελούνται στη βάση ορισµένες πολύ βασικές διαδικασίες. Ας τις δούµε αναλυτικά: " Εισαγωγή των επιλεγµένων κλάσεων ση βάση Με αυτήν τη διαδικασία εισάγονται στον πίνακα SelectedClasses της βάσης µας όλες τις κλάσεις που επέλεξε ο χρήστης. " Εκτέλεση της [dbo].[sel_prot_proc] διαδικασίας Με την εκτέλεση της sel_prot_proc διαδικασίας ο SQL Server, επιλέγει τις πρωτεΐνες που ανήκουν στις κλάσεις που βρίσκονται στον πίνακα SelectedClasses και έχουν χαρακτηριστική σηµαία Τ ή Ν. Με αυτές δηµιουργεί ένα νέο πίνακα που λέγεται sel_proteins. " Εκτέλεση της [dbo].[selected_prof_pat_table2] διαδικασίας Η selected_prof_pat_table2 διαδικασία εισάγει στον πίνακα selected_prof_pat_table τα προφίλ και πρότυπα που περιέχονται στις πρωτεΐνες, οι οποίες υπάρχουν στον πίνακα sel_proteins. Όλα τα παραπάνω παρουσιάζονται γραφικά στο παρακάτω σχήµα (Σχήµα 3.7 Λογικό διάγραµµα αλγορίθµου).
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 36 Επιλογή κλάσεων Εισαγωγή στη Β Εκτέλεση sel_prot_proc Εκτέλεση selected_prof_pat_table2 ηµιουργία πινάκων: sel_proteins, selected_prof_pat_table Σχήµα 3.7 Λογικό διάγραµµα αλγορίθµου " Εκτέλεση της [dbo].[prot_exit] διαδικασίας Τελευταία, εκτελείται η prot_exit αποθηκευµένη διαδικασία. Με αυτήν πραγµατοποιούνται οι απαραίτητες συγκρίσεις και δηµιουργείται ο τελικός πίνακας, από τον οποίο εξάγονται στη συνέχεια τα δεδοµένα του τµήµατος @data του τελικού αρχείου WEKA ή ολόκληρο το αρχείο για τον Analysis Manager του SQL Server. Πιο συγκεκριµένα, χρησιµοποιούνται δύο δείκτες (cursors). Ο πρώτος σαρώνει τον πίνακα sel_proteins των επιλεγµένων πρωτεϊνών και ο δεύτερος τον πίνακα selected_prof_pat_table των επιλεγµένων προφίλ / προτύπων. Στη συνέχεια, µε ένα select ερώτηµα ανιχνεύεται η ύπαρξη του συνδυασµού 1 ης πρωτεΐνης 1 ου προφίλ, 1 ης πρωτεΐνης 2 ου προφίλ και ούτω καθ εξής. Σε περίπτωση που το select ερώτηµα δεν ανιχνεύσει την ύπαρξη του συνδυασµού, στον πίνακα prot_exit εισάγεται η τιµή NO σε αντίθετη περίπτωση εισάγεται η τιµή YES.
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 37 Επιπλέον, η διαδικασία αναλαµβάνει να εισάγει στην αρχή κάθε εγγραφής τον κωδικό της πρωτεΐνης, ενώ στο τέλος κάθε σετ εγγραφών την κλάση στην οποία ανήκει. 3.4.3. Χρήση αποθηκευµένων διαδικασιών (stored procedures) Οι αποθηκευµένες διαδικασίες αποτελούν για πολλούς το καλύτερο εργαλείο επεξεργασίας των δεδοµένων µιας βάσης. Για την αξιοποίηση όλων των δεδοµένων που ήταν διαθέσιµα, δηµιουργήθηκαν 10 αποθηκευµένες διαδικασίες. Η αναλυτική τους περιγραφή βρίσκεται στο κεφάλαιο 3.5. Εδώ θα γίνει µια απλή αναφορά στον αλγόριθµο που χρησιµοποιήθηκε, για τη δηµιουργία του τελικού πίνακα prosite.! dbo.new_prosite_t Ο DTS εισάγει σε πίνακα κάποιας βάσης δεδοµένα, που διαχωρίζονται µε κάποιο συγκεκριµένο τρόπο. Όπως είδαµε στο Σχήµα 3.1 τα πεδία του αρχείου διαχωρίζονται µε ερωτηµατικά στην ελληνική γλώσσα ή άνω τελείες στην αγγλική (semicolons ;). Το αποτέλεσµα του διαχωρισµού παρουσιάζεται πιο κάτω (Σχήµα 3.8 Μορφή αρχικού πίνακα Prosite). Από τις DR P11829,ACP1_ARATH,T P10352,ACP1_BRANA,T P52411,ACP1_CUPLA,T DR P02902,ACP1_HORVU,T P07854,ACP1_SPIOL,T P25701,ACP2_ARATH,T DR P17650,ACP2_BRANA,T P52412,ACP2_CUPLA,T P08817,ACP2_HORVU,T DR P23235,ACP2_SPIOL,T P25702,ACP3_ARATH,T P32887,ACP3_BRANA,T DR P52413,ACP3_CUPLA,T P15543,ACP3_HORVU,T P52414,ACP4_CUPLA,T DR P08971,ACP5_BRANA,T P20803,ACP_ANAVA,T O67611,ACP_AQUAE,T DR Q9GLP2,PRTC_PIG,? P41950,YLK2_CAEEL,? <NULL> DR O15943,CADN_DROME,F <NULL> <NULL> DO PDOC00010 Σχήµα 3.8 Μορφή αρχικού πίνακα Prosite τρεις στήλες του σχήµατος πρέπει να δηµιουργηθεί ένας πίνακας ο οποίος θα έχει τέσσερις στήλες και οι οποίες θα περιλαµβάνουν τα παρακάτω στοιχεία: Όνοµα κλάσης, Κωδικός πρωτεΐνης, Όνοµα πρωτεΐνης και Χαρακτηριστική σηµαία. Με τη βοήθεια συναρτήσεων επεξεργασίας κειµένου καταλήγουµε στον πίνακα new_prosite_table, ο οποίος αποτελείται από τα στοιχεία που προαναφέραµε. Παρουσιάζουµε δείγµα του παρακάτω (Σχήµα 3.9 είγµα τελικού πίνακα prosite). Ο πηγαίος κώδικας της διαδικασίας βρίσκεται στο παράρτηµα (Πηγαίος Κώδικας V. new_prosite_table).
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 38 PDOC01035 P33371 YOHI_ECOLI T PDOC01035 P42252 YCBT_BACSU T PDOC01035 O05523 YDIJ_BACSU T PDOC00806 P18501 HESB_ANASP T PDOC00806 P57452 Y371_BUCAI N Σχήµα 3.9 είγµα τελικού πίνακα prosite! dbo.sel_prot_proc Είναι η αποθηκευµένη διαδικασία, η οποία µε ένα inner join ερώτηµα, εισάγει στον πίνακα των επιλεγµένων πρωτεϊνών (sel_proteins) τις πρωτεΐνες αυτές που ανήκουν στις κλάσεις που έχει επιλέξει ο χρήστης και έχουν σηµαία Τ ή Ν (για περισσότερες λεπτοµέρειες πάνω στις χαρακτηριστικές σηµαίες, βλ. 3.3.1 Η βάση δεδοµένων Prosite). Ο πίνακας που επηρεάζει, είναι ο sel_proteins και ένα δείγµα του παρουσιάζεται στο Σχήµα 3.10. Ο πηγαίος κώδικας αυτής της διαδικασίας, βρίσκεται στο παράρτηµα (Πηγαίος Κώδικας II. sel_prot_proc). O97972 O98668 O99821 P00332 P00374 P00381 P00392 P00452 PDOC00089 PDOC00142 PDOC00420 PDOC00313 PDOC00496 PDOC00496 PDOC00185 PDOC00089 Σχήµα 3.10 είγµα πίνακα sel_proteins! dbo.selected_prof_pat_table Με αυτή τη διαδικασία δηµιουργούµε τον πίνακα selected_prof_pat, ο οποίος περιλαµβάνει τα προφίλ/πρότυπα, που περιέχονται στις πρωτεΐνες του πίνακα sel_proteins. PS00014 PS00017 PS00017 PS00011 PS00012 Q9LKR3 O00139 O04716 P81428 P31171 Σχήµα 3.11 είγµα πίνακα selected_prof_pat
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 39 Ο πηγαίος κώδικας της παραπάνω διαδικασίας βρίσκεται στο παράρτηµα (Πηγαίος Κώδικας I. selected_prof_pat_table).! dbo.prot_exit Η διαδικασία αυτή δηµιουργεί τον πίνακα στήλη Prot_exit ο οποίος έχει όλα τα δεδοµένα εκείνα, τα οποία εγγράφονται στη συνέχεια στο πεδίο @data του τελικού αρχείου. είγµα του πίνακα Prot_exit βρίσκεται στο Σχήµα 3.12. Ο πηγαίος κώδικας της διαδικασίας είναι στο παράρτηµα (Πηγαίος Κώδικας IV. prot_exit). 1 O00139,YES,NO,NO,NO,YES,NO,NO,NO,NO,YES,PDOC00298 2 P03246,NO,NO,NO,NO,NO,NO,YES,NO,NO,NO,NO,PDOC00324 3 Q34667,YES,NO,NO,NO,NO,NO,NO,NO,YES,NO,NO,PDOC00011 4 P04070,YES,YES,NO,NO,NO,NO,YES,NO,NO,NO,NO,NO,NO,PDOC00010 5 P06109,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00013 Σχήµα 3.12 είγµα πίνακα Prot_exit! dbo.distinct stored procedures Πρόκειται για µία κατηγορία διαδικασιών, που χρησιµοποιούνται για τη δηµιουργία πινάκων µε µοναδικές distinct τιµές. Πήραν το όνοµά τους από τη χρήση του όρου distinct σε όλα τα ερωτήµατα επιλογής (select statements). Οι πηγαίοι κώδικές τους παρουσιάζονται στο παράρτηµα (Πηγαίος Κώδικας III. distinc_proc). 3.5. Σχεδίαση της Βάσης εδοµένων Στην παράγραφο αυτή παρουσιάζεται η λογική σχεδίαση του σχήµατος της βάσης, που υλοποιήθηκε. Αρχικά, θα παρουσιαστούν οι σχέσεις και τα γνωρίσµατά τους. Στη συνέχεια, θα δοθούν κάποια παραδείγµατα πινάκων και θα αναφερθούν επιφανειακά οι αποθηκευµένες διαδικασίες, καθώς µε τη χρήση αυτών υλοποιούνται οι αλγόριθµοι της προηγούµενης παραγράφου. Τέλος, θα γίνει µία εκτίµηση του µεγέθους της βάσης.
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 40 3.5.1. Σχέσεις, πεδία ορισµού και τύποι δεδοµένων Prosite Class Code Protein Code Protein Name Flag Στη σχέση prosite (αντιστοιχεί στον πίνακα new_prosite_table στην πραγµατική βάση δεδοµένων) συναντά κανείς τα παρακάτω γνωρίσµατα: " Class Code: Είναι ο κωδικός της κλάσης κατά Swiss-Prot στην οποία αντιστοιχεί η πρωτεΐνη της πλειάδας. Είναι τύπου Varchar(10). " Protein Code: Το γνώρισµα αυτό περιλαµβάνει τον κωδικό της πρωτεΐνης κατά Swiss-Prot και είναι τύπου Varchar(10) επίσης. " Protein Name: Το όνοµα της πρωτεΐνης, που υπάρχει στην κλάση. Τύπος: Varchar(15). " Flag: Η χαρακτηριστική σηµαία της πρωτεΐνης της πλειάδας. Τύπος: Varchar(1). Profile Protein Code Protein Name Profile Code Profile Name Η σχέση profile δηµιουργήθηκε µε τη χρήση του DTS και περιλαµβάνει τα ακόλουθα πεδία: " Protein Code: Ο κωδικός της πρωτεΐνης κατά Swiss-Prot. Τύπος Varchar(10). " Protein Name: Το όνοµα της πρωτεΐνης. Τύπος Varchar(15). " Profile Code: Ο κωδικός του προφίλ. Τύπος Varchar(10). " Profile Name: Το όνοµα του προφίλ. Τύπος Varchar(15). Pattern Protein Code Protein Name Pattern Code Pattern Name Στη σχέση pattern, απαντώνται τα ακόλουθα πεδία: " Protein Code: Όπως και στις παραπάνω σχέσεις, ο κωδικός πρωτεΐνης κατά Swiss-Prot. Τύπος Varchar(10).
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 41 " Protein Name: Όνοµα πρωτεΐνης, τύπος Varchar(15). " Pattern Code: Κωδικός προτύπου. Τύπος Varchar(10). " Pattern Name: Όνοµα προτύπου. Τύπος Varchar(15). Selected Proteins Protein Code Class Code Η σχέση selected proteins δηµιουργήθηκε για να αποθηκεύει τις πρωτεΐνες που έχουν επιλεγεί από το χρήστη. Το όνοµά της στην πραγµατική βάση είναι sel_proteins και αποτελείται από δύο πεδία: " Protein Code: Ο κωδικός της πρωτεΐνης. Τύπος: Varchar(10). " Class Code: Ο κωδικός της κλάσης. Τύπος: Varchar(10). Selected Profiles Patterns Profile/Pattern Code Protein Code Η σχέση selected profiles/patterns περιέχει τα προφίλ και πρότυπα, που περιέχονται στις πρωτεΐνες που έχει επιλέξει ο χρήστης. Τα πεδία του είναι: " Profile/Pattern Code: Ο κωδικός του προφίλ ή προτύπου. Τύπος: Varchar(10). " Protein Code: Ο κωδικός της πρωτεΐνης. Τύπος: Varchar(10). Selected Classes Class Code Η σχέση selected classes έχει µόνο ένα πεδίο και λαµβάνει τις τιµές του από το τελικό πρόγραµµα. Είναι οι κλάσεις, που επιλέγει ο χρήστης να χρησιµοποιήσει στην ερευνά του. Γνώρισµα: " Class Code: Είναι ο κωδικός κλάσης και αποτελεί το πρωτεύον κλειδί του πίνακα. Ο τύπος του είναι Varchar(10). Prot Exit Row Prot Attr
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 42 Η σχέση prot exit είναι η σχέση εξόδου. Περιλαµβάνει το µεγαλύτερο µέρος των πληροφοριών εξόδου. Αποτελείται από δύο πεδία, τα: " Row: Είναι ο αριθµός γραµµής και αποτελεί το πρωτεύον κλειδί του πίνακα. Τύπος: bigint " Prot Attr: Είναι το διάνυσµα εξόδου. Τύπος: Text(16). 3.5.2. Περιορισµοί ακεραιότητας Οι παραπάνω σχέσεις συνδέονται µε τους περιορισµούς ακεραιότητας, που παρουσιάζονται στο Σχήµα 3.13. Prosite Class Code Protein Code Protein Name Flag Selected Proteins Protein Code Class Code Distinct Protein Protein Distinct Class Class
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 43 Profile Protein Code Protein Name Profile Code Profile Name Pattern Protein Code Protein Name Pattern Code Pattern Name Selected Profiles Patterns Profile/Pattern Code Protein Code Distinct Prof/Pat Prof/Pat Code Σχήµα 3.13 Περιορισµοί ακεραιότητας 3.5.3. Παραδείγµατα πινάκων, ερωτηµάτων Έχοντας ήδη έρθει σε επαφή µε τις σχέσεις της βάσης, ο αναγνώστης µπορεί στη συνέχεια να γνωρίσει τον τρόπο µε τον οποίο οργανώνονται τα πολυάριθµα στοιχεία στους πίνακες. Σε αυτή την παράγραφο θα δοθούν κάποια παραδείγµατα των πινάκων µε πραγµατικά δεδοµένα, καθώς και παραδείγµατα ερωτηµάτων που γίνονται από την τελική εφαρµογή προς τη βάση. Αξίζει να σηµειωθεί ότι τα υπογραµµισµένα γνωρίσµατα είναι τα πρωτεύοντα κλειδιά.! Οι πίνακες και µερικές πλειάδες τους Ο Πίνακας 3.1 περιλαµβάνει τους κωδικούς όλων των κλάσεων, που υπάρχουν στο αρχείο prosite.dat. Η δηµιουργία ενός τέτοιου πίνακα κρίθηκε αναγκαία, καθώς µε τη βοήθειά του εµφανίζονται στο χρήστη τα ονόµατα (κωδικοί) των κλάσεων που µπορεί να επιλέξει (βλ. Πίνακας 3.1).
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 44 ηµιουργείται από την διαδικασία all_classes_proc (Πηγαίος Κώδικας VI. all_classes_proc). All Classes Class Code PDOC00022 PDOC00026 PDOC00056 PDOC00571 PDOC00593 PDOC50179 Πίνακας 3.1 Ο Πίνακας 3.2 αποτελείται, επίσης, από κωδικούς κλάσεων, µόνο που σε αυτόν τον πίνακα βρίσκονται οι κλάσεις, που θα εγγραφούν στο τελικό αρχείο. Είναι ένας δυναµικός πίνακας, ο οποίος ανανεώνεται σύµφωνα µε τις επιλογές του χρήστη ( ιεπαφή 1. Καρτέλα επεξεργασίας δεδοµένων). Distinct Class Class PDOC00022 PDOC00026 PDOC00056 PDOC00571 PDOC00593 PDOC50179 Πίνακας 3.2 Ο Πίνακας 3.3 περιέχει τους κωδικούς εκείνων των πρωτεϊνών, που βρίσκονται στις κλάσεις, που έχει επιλέξει ο χρήστης. Τα στοιχεία του τοποθετούνται αυτούσια στο πεδίο @attribute protein του τελικού
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 45 αρχείου. ηµιουργείται από τη διαδικασία distinct_prot_proc (Πηγαίος Κώδικας III. distinc_proc). Distinct Protein Protein O06325 O07642 P04049 P05697 P05697 Q15283 Πίνακας 3.3 Στον πίνακα Distinct Prof/Pat (Πίνακας 3.4) εισάγονται οι κωδικοί των προφίλ/προτύπων που περιέχονται στις επιλεγµένες πρωτεΐνες. Έπειτα, ο πίνακας εγγράφεται στο τελικό αρχείο.arff στα πεδία @attribute χωρίς καµία αλλαγή, εφόσον ο χρήστης έχει επιλέξει την επεξεργασία µέσω WEKA. Η διαδικασία που τον δηµιουργεί, είναι η distinct_prof_pat_proc (Πηγαίος Κώδικας III. distinc_proc). Distinct Prof/Pat Prof/Pat Code PS00024 PS00118 PS50196 PS50214 PS50280 PS50817 Πίνακας 3.4 Ο Πίνακας 3.5 είναι ο πίνακας εισόδου δεδοµένων από τον χρήστη. Οι κλάσεις, που επιλέγονται από το χρήστη, εισάγονται σε αυτόν τον πίνακα.
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 46 Selected Classes Class Code PDOC00022 PDOC00026 PDOC00056 PDOC00571 PDOC00593 PDOC50179 Πίνακας 3.5 Για τον πίνακα Prot_Exit (Πίνακας 3.6) έχουν ειπωθεί πολλά. Θα υπενθυµίσουµε µόνο ότι θεωρείται ο τελικός πίνακας εξόδου και όχι άδικα, καθώς κατέχει τα στοιχεία του µεγαλύτερου τµήµατος του τελικού αρχείου (@data), όταν η επεξεργασία πρόκειται να γίνει µε τη χρήση του WEKA ενώ αποτελεί ολόκληρο το αρχείο που χρησιµοποιεί ο SQL Server όταν φυσικά πρόκειται να χρησιµοποιηθεί ο Analysis Manager για την επεξεργασία. Κάθε νέο τµήµα εγγραφών ξεκινά µε τον κωδικό της πρωτεΐνης και τελειώνει µε το όνοµα της κλάσης στην οποία περιέχεται η πρωτεΐνη της πλειάδας. ε δηµιουργείται από ένα απλό SQL ερώτηµα και γι αυτό, ο κώδικας, που τον δηµιουργεί, διατίθεται στο παράρτηµα (Πηγαίος Κώδικας IV. prot_exit). Prot Exit Row Prot Attr 1 O00139,YES,NO,NO,NO,YES,NO,NO,NO,NO,YES,PDOC00298 2 P03246,NO,NO,NO,NO,NO,NO,YES,NO,NO,NO,NO,PDOC00324 3 Q34667,YES,NO,NO,NO,NO,NO,NO,NO,YES,NO,PDOC00011 4 P04070,YES,YES,NO,NO,NO,NO,YES,NO,NO,NO,NO,NO,PDOC00010 5 P06109,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00013 6 P19540,YES,YES,NO,NO,NO,NO,NO,NO,NO,NO,NO,NO,PDOC00010 Πίνακας 3.6 Ο Πίνακας 3.7 δηµιουργείται από τη διαδικασία sel_prot_proc (Πηγαίος Κώδικας II. sel_prot_proc) και αποτελείται από τους κωδικούς των
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 47 επιλεγµένων από το χρήστη - πρωτεϊνών, καθώς και τους κωδικούς των κλάσεων στις οποίες ανήκουν. Sel Proteins Protein Code O06325 O07642 P04049 P05697 P05697 Class Code PDOC00022 PDOC00026 PDOC00056 PDOC00571 PDOC00593 Q15283 Πίνακας 3.7 PDOC50179 Ο Πίνακας 3.8 έχει δύο στήλες, ο συνδυασµός των οποίων αποτελεί το πρωτεύον κλειδί. Τα περιεχόµενά τους είναι ο κωδικός του προφίλ/προτύπου και ο κωδικός της πρωτεΐνης που το περιέχει. ηµιουργείται από τη διαδικασία selected_prof_pat_table2 (Πηγαίος Κώδικας I. selected_prof_pat_table). Selected Prof/Pat Prof_Pat_Code PS00024 PS00118 PS50196 PS50214 PS50280 ProtCode O06325 O07642 P04049 P05697 P05697 PS50817 Πίνακας 3.8 Q15283
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 48 Ο πίνακας των προτύπων (Πίνακας 3.9) δηµιουργείται µε τη βοήθεια του DTS, καθώς τα στοιχεία του πηγαίου αρχείου είναι χωρισµένα σε στήλες µε το σύµβολο. Pattern Protein Code Protein Name Pattern Code Pattern Name O03085 ATPB_VANDA PS00017 ATP_GTP_A O03169 ATP6_LATCH PS00449 ATPASE_A O03176 CYB_LATCH PS00193 CYTOCHROME_B_QO O17449 TBB1_MANSE PS00227 TUBULIN O17795 DHBX_CAEEL PS00061 ADH_SHORT O17795 DHBX_CAEEL PS00017 ATP_GTP_A Πίνακας 3.9 Για τον πίνακα των προφίλ (Πίνακας 3.10) εργαζόµαστε όπως ακριβώς και σε αυτόν των προτύπων. Με τη χρήση του DTS και του συµβόλου ως διαχωριστή (delimiter) δηµιουργούµε τον πίνακα Profile. Profile Protein Code Protein Name Profile Code Profile Name O00160 MY1F_HUMAN PS50096 IQ O00160 MY1F_HUMAN PS50079 NLS_BP O08579 EMD_MOUSE PS50324 SER_RICH O08579 EMD_MOUSE PS50079 NLS_BP O08581 CIW1_MOUSE PS50265 CHANNEL_PORE_K Q62893 AMH2_RAT PS50298 TGFB_RECEPTOR Πίνακας 3.10
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 49 Ενώ οι δύο προηγούµενοι πίνακες (Πίνακας 3.9 και Πίνακας 3.10) δεν παρουσίασαν δυσκολίες στην πλήρωσή τους µε στοιχεία, δε συνέβη το ίδιο και µε τον New Prosite Table (Πίνακας 3.11), ο οποίος απαιτεί την εκτέλεση της οµώνυµης αποθηκευµένης διαδικασίας (βλ. Πηγαίος Κώδικας V. new_prosite_table). New Prosite Table Class Code Protein Code Protein Name Flag PDOC01035 O83656 Y650_TREPA T PDOC01035 O05960 Y741_RICPR T PDOC00936 O14022 ATCY_SCHPO F PDOC00936 P57140 Y028_BUCAI N PDOC00639 P28526 GER2_HORVU P PDOC00351 Q9NZ56 FMN2_HUMAN? Πίνακας 3.11! Μερικά ερωτήµατα Κατά τη σχεδίαση της βάσης υλοποιήθηκαν µε τη µορφή αποθηκευµένων διαδικασιών το µεγαλύτερο µέρος των ερωτηµάτων, που µπορεί να υποβάλει κανείς. Έτσι, τα ερωτήµατα, που γίνονται από την εφαρµογή προς τη βάση, είναι ολιγάριθµα και αποτελούνται κυρίως από εντολές εκτέλεσης των αποθηκευµένων διαδικασιών. Ας δούµε κάποια παραδείγµατα: " «SELECT * FROM AllClasses» Με αυτό το ερώτηµα δηµιουργείται ένα σετ αποτελεσµάτων (ResultSet), το οποίο περιέχει όλους τους κωδικούς των κλάσεων µε τους οποίους πληρώνεται ο πίνακας επιλογής στην καρτέλα «Preprocessing». " «EXEC [Gen Database].[dbo].[sel_prot_proc]» Με αυτό το ερώτηµα εκτελείται η διαδικασία sel_prot_proc. Με παρόµοιες εντολές εκτελούνται και τις υπόλοιπες. " «SELECT * FROM Distinct_Protein» Με αυτήν την εντολή εισάγονται στην εφαρµογή µας τα δεδοµένα του πίνακα Distinct_Protein, τα οποία χρησιµοποιούνται για τη δηµιουργία των τελικών αρχείων.
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 50 " «SELECT ClassName FROM selectedclasses» Αξιοποιώντας κατάλληλα το παραπάνω ερώτηµα και µε τη χρήση ενός σετ αποτελεσµάτων µε ειδικό τρόπο, εισάγονται στον πίνακα selectedclasses τις επιλεγµένες από το χρήστη κλάσεις. 3.5.4. Εκτίµηση µεγέθους Κατά την υλοποίηση της βάσης τηρήθηκαν διάφορα στατιστικά στοιχεία σχετικά µε το µέγεθός της. Θα πρέπει να σηµειωθεί ότι µε κάθε νέα εκτέλεση του προγράµµατος σβήνονται όλα τα περιεχόµενα των πινάκων. Με άλλα λόγια το µέγεθος της βάσης δεν µπορεί να υπερβεί κάποια συγκεκριµένη τιµή. Στη συνέχεια, µε τη χρήση απλών υπολογισµών και έχοντας ως οδηγό τον τύπο του πεδίου κάθε πίνακα επιχειρείται µια εκτίµηση του µεγέθους της βάσης δεδοµένων, που σχεδιάστηκε. Ας δούµε αναλυτικά, λοιπόν, το προβλεπόµενο µέγεθος κάθε πίνακα σε bytes:! New Prosite Table Η κάθε σειρά του πίνακα αποτελείται από 35 το πολύ bytes. Αυτή τη στιγµή ο πίνακας περιλαµβάνει 96.816 γραµµές. Η βάση δεδοµένων του Prosite όµως, ανανεώνεται κάθε δύο εβδοµάδες, εποµένως είναι λογικό να θεωρηθεί ότι σύντοµα θα περιλαµβάνει περίπου 100.000 εγγραφές. Συνολικά: 35*100.000 = 3.500.000 bytes.! Profile Η κάθε πλειάδα στον πίνακα profile µπορεί να απαιτεί 50 bytes κατά µέγιστο. Οι εγγραφές του αυτή τη στιγµή, υπολογίζονται στις 97.049. Πραγµατοποιώντας την εκτίµηση για ένα σχετικά µικρό βάθος χρόνου υπολογίζεται ότι θα υπάρχουν 100.000 εγγραφές. Εποµένως: 50*100.000 = 5.000.000 bytes.! Pattern Στο συγκεκριµένο πίνακα η κάθε σειρά µπορεί να αποτελείται από 50 το πολύ bytes, όπως και στο πίνακα profile. Οι εγγραφές αυτή τη στιγµή
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 51 είναι 49.653. Εποµένως, για 50.000 σειρές: 50*50.000 = 2.500.000 bytes.! Selected Proteins Ο µέγιστος αριθµός byte κάθε σειράς είναι 20. Όταν ο χρήστης επιλέξει όλες τις κλάσεις, ο πίνακας selected proteins δέχεται 79.404 εγγραφές. Για απλοποίηση των υπολογισµών, θεωρούνται 80.000 πλειάδες, εποµένως: 20*80.000 = 1.600.000 bytes.! Selected Profiles Patterns Το µέγιστο των byte, που µπορεί να έχει κάποια σειρά είναι 20. Ο τρέχον αριθµός εγγραφών είναι 87.147. Με µέγιστο τις 88.000 εγγραφές: 20*88.000 = 1.760.000 bytes.! Selected Classes Ο συγκεκριµένος πίνακας στήλη έχει σειρές των 10 κατά µέγιστο - byte. Στην παρούσα δοκιµή έχουν επιλέγει 1.089 κλάσεις. Θεωρούνται 1.500 για µία σωστή εκτίµηση: συνεπώς 10*1.500 = 15.000 bytes.! Prot Exit Ο πίνακας prot exit στην πλήρη έκτασή του, έχει 75.000 πλειάδες ενώ η καθεµία, έχει 12.693 χαρακτήρες. Ο κάθε χαρακτήρας λογίζεται ως ένα byte εποµένως, το µέγεθος του πίνακα, θα είναι 12.700 * 75.000 = 952.500.000! Distinct Class Σε αυτόν τον πίνακα αποθηκεύονται οι κλάσεις, που επέλεξε ο χρήστης και έχουν τουλάχιστον µία πρωτεΐνη. Αποτελείται από µία στήλη των 10 byte. Το σύνολο των εγγραφών αναµένεται στις 1.500 κατά συνέπεια: 10*1.500 = 15.000 bytes.! Distinct Protein Ο πίνακας αυτός περιέχει τις πρωτεΐνες, που έχουν επιλεγεί έµµεσα από το χρήστη. Αποτελείται από µία στήλη των 10 byte κατά µέγιστο και έχει
Κεφάλαιο 3. Μεθοδολογία Ανάπτυξης 52 συνολικά 54.104 εγγραφές. Θεωρούνται 55.000 για τον υπολογισµό, οπότε: 10*55.000 = 550.000 bytes.! Distinct Prof/Pat Με την ίδια λογική, όπως και ο πίνακας των πρωτεϊνών, κάθε γραµµή αποτελείται από 10 byte το µέγιστο και 1.186 σειρές. Αν θεωρηθούν 1.200, λαµβάνονται: 10*1.200 = 12.000 bytes. Αθροίζοντας, λοιπόν, όλα τα παραπάνω γινόµενα υπολογίζεται ο αριθµός των byte, που θα καταλαµβάνει κατά µέγιστο η βάση που δηµιουργήθηκε. Έχουµε: 3.500.000 + 5.000.000 + 2.500.000 + 1.600.000 + 1.760.000 + 15.000 + 952.500.000 + 15.000 + 550.000 + 12.000 = 967.452.000 bytes = 922.634 megabytes
Κεφάλαιο 4. Υλοποίηση 4.1. Εισαγωγή Έχοντας αναλύσει σε βάθος τον αλγόριθµο, που χρησιµοποιήθηκε, έχοντας εξετάσει λεπτοµερώς τη σχεδίαση της βάσης, που υλοποιήθηκε και έχοντας υπολογίσει τη µέγιστη δυνατή χωρητικότητα, που απαιτείται για την αποθήκευσή της, το επόµενο βήµα είναι η εξήγηση του τρόπου µε τον οποίο υλοποιήθηκε το σύστηµα και η αναφορά στα προβλήµατα, που αντιµετωπίστηκαν κατά τη διάρκεια αυτής. Στην παράγραφο 4.3, λοιπόν, θα γίνει αναφορά στα προβλήµατα, ενώ στην παράγραφο 4.4 θα δοθούν κάποια στοιχεία που θα µπορούσαν να χρησιµοποιηθούν από ανθρώπους που επιθυµούν την εξέλιξη του προγράµµατος. Θα πρέπει σε αυτό το σηµείο να αναφερθεί ότι η υλοποίηση διήρκεσε περίπου έξι µήνες στη διάρκεια των οποίων καταναλώθηκαν περίπου 45 κιλά στερεάς τροφής, 180 λίτρα υγρής, 1350 kwh ρεύµατος και 1500 µονάδες τηλεφωνικών κλήσεων προς το διαδίκτυο. 4.2. Στάδια υλοποίησης Σε αυτή την παράγραφο θα εξεταστούν τα σηµαντικότερα στάδια, που ακολούθησε η υλοποίηση του συστήµατος.
Κεφάλαιο 4. Υλοποίηση 54 1. Μελέτη συγγραµµάτων, αναζήτηση στοιχείων Το πρώτο βήµα για την υλοποίηση του συστήµατος ήταν η µελέτη της γλώσσας προγραµµατισµού Java, καθώς σε αυτή θα γινόταν η ανάπτυξη του συστήµατος. Παράλληλα, για την εύρεση του βέλτιστου αλγορίθµου κρίθηκε απαραίτητη η ανάγνωση συγγραµµάτων σχετικών µε πρωτεϊνικά δεδοµένα γενικά και ειδικότερα η µελέτη της βάσης δεδοµένων Prosite [BAI 99]. 2. Εξοικείωση µε το περιβάλλον του JBuilder Στον πρακτικό κόσµο του ηλεκτρολόγου µηχανικού είναι γνωστή η απόσταση που υπάρχει ανάµεσα στην θεωρία και στην πράξη. Με άλλα λόγια, ήταν απαραίτητη η εξοικείωση µε το περιβάλλον ανάπτυξης, δηλαδή το πρόγραµµα της Borland, JBuilder 6. Στην εξοικείωση αυτή βοήθησε ιδιαίτερα η ανάπτυξη ενός καθ όλα λειτουργικού γραφικού περιβάλλοντος για την εφαρµογή Gen Miner [ΣΥΜ 01]. 3. Βελτιστοποίηση αλγορίθµου Η δηµιουργία του γραφικού περιβάλλοντος για το λογισµικό Gen Miner φανέρωσε την αδυναµία του να χειριστεί ένα πλήθος κλάσεων που ξεπερνάει τις 23. Γι αυτό, επιβλήθηκε η ανεύρεση ενός νέου τρόπου προετοιµασίας των δεδοµένων. Επινοήθηκε η µετατροπή των δεδοµένων από αρχεία σε πίνακες µε τη βεβαιότητα ότι θα προσέφερε ένα περιβάλλον γρηγορότερης εκτέλεσης και λιγότερο επιρρεπές σε σφάλµατα. Ονοµάζουµε αυτό το στάδιο «Βελτιστοποίηση αλγορίθµου» και όχι «Γένεση αλγορίθµου», καθώς αυτό που άλλαξε στη δεύτερη εκδοχή του ήταν κυρίως ο τρόπος αποθήκευσης των δεδοµένων και όχι αυτός της επεξεργασίας τους. Η κύρια λογική παρέµεινε ίδια. 4. Σχεδίαση της Βάσης εδοµένων Gen Database Εφόσον αποφασίστηκε η χρήση κάποιας βάσεως δεδοµένων για την εφαρµογή, έµενε η άρτια σχεδίασή της. Στην παράγραφο 3.5 αναπτύσσεται αναλυτικά και αιτιολογούνται οι επί µέρους επιλογές µας. Σηµαντικό ρόλο στη σχεδίαση της GenDatabase που θα διαβάσετε, διαδραµάτισε τόσο η αποκτηθείσα από το µάθηµα Βάσεων εδοµένων εµπειρία, όσο και η απλότητα των απαιτήσεων.
Κεφάλαιο 4. Υλοποίηση 55 5. Υλοποίηση της Βάσης εδοµένων Μετά από πολλές ώρες µελέτης, σκέψης και σχεδιασµού έφτασε η πιο ενδιαφέρουσα στιγµή, αυτή της υλοποίησης της Gen Database. Με τη βοήθεια συναδέλφων και βιβλίων του «Εργαστηρίου Ευφυών Συστηµάτων & Λογισµικού» κατορθώθηκε τόσο την υλοποίηση της βάσης, όσο και την υλοποίηση και αποσφαλµάτωση των αποθηκευµένων διαδικασιών που απαιτούνται για τη λειτουργία της. 6. ηµιουργία µη λειτουργικού GUI Με την Gen Database έτοιµη και σε αναµονή κατασκευάστηκε ένα µη λειτουργικό γραφικό περιβάλλον. Στόχος ήταν η εµφύτευση στο πρόγραµµά εκείνης της οµορφιάς και λειτουργικότητας που θα µπορούσε να συναγωνιστεί εµπορικά πακέτα λογισµικού. 7. Πλήρης ανάπτυξη συστήµατος Από µόνο του ένα γραφικό περιβάλλον είναι σαφές ότι δεν µπορεί να έχει ιδιαίτερη χρησιµότητα. Σε αυτό το στάδιο προστέθηκε ο κώδικας που έρχεται σε επαφή µε την Gen Database και δηµιουργεί τόσο το τελικό αρχείο εκπαίδευσης, όσο και το αρχείο δοκιµής. Επιπλέον, προστέθηκε η δυνατότητα εκκίνησης του WEKA (Waikato Environment for Knowledge Analysis) µε αποτέλεσµα την παρουσίαση µιας ολοκληρωµένης πρότασης επεξεργασίας δεδοµένων πρωτεϊνικής φύσης. Τέλος, βελτιώθηκε η δηµιουργία των αρχείων ελέγχου τόσο για το WEKA όσο και για τον SQL Analysis Server. 8. Αποσφαλµάτωση προγράµµατος Ένα από τα µεγαλύτερα στάδια στην υλοποίηση ενός συστήµατος είναι η αποσφαλµάτωσή του. Είναι γενικά παραδεκτό ότι η αξιοπιστία ενός συστήµατος αποτελεί όχι µόνο κριτήριο αποδοχής από τους χρήστες, αλλά και δείκτη επαγγελµατισµού των ανθρώπων που το ανέπτυξαν. Αναφορικά στη περίπτωση του GenTool, η προσθήκη επιπλέον κώδικα µε στόχο την αύξηση της αξιοπιστίας κρίθηκε απαραίτητη. Είναι γνωστό ότι η αύξηση της αξιοπιστίας οδηγεί αναπόφευκτα στη µείωση της απόδοσης, αλλά είναι επίσης γνωστό ότι κανείς δε χρησιµοποιεί αναξιόπιστο λογισµικό. Τέλος, πρέπει να επισηµάνουµε το γεγονός ότι σε καµιά
Κεφάλαιο 4. Υλοποίηση 56 περίπτωση δεν έχει επιτευχθεί η πλήρης αποσφαλµάτωση του λογισµικού, έχουν αφαιρεθεί όµως, τα σφάλµατα µε τις βαρύτερες συνέπειες. 9. οκιµές Το τελευταίο στάδιο της υλοποίησης είναι αυτό των δοκιµών. Εδώ πραγµατοποιούνται εξονυχιστικά τεστ στο σύστηµά και ελέγχεται η αξιοπιστία και η ταχύτητά του. 4.3. Προβλήµατα που παρουσιάστηκαν 4.3.1. Προβλήµατα αλγορίθµου Όπως αναφέρθηκε και στην προηγούµενη παράγραφο, η υλοποίηση του προγράµµατος προετοιµασίας δεδοµένων βασίστηκε σε κάποιο προϋπάρχον λογισµικό του εργαστηρίου «Ευφυών συστηµάτων και λογισµικού». Το όνοµά του είναι Gen Miner. Αναπτύχθηκε εξ ολοκλήρου σε Java από τον µεταπτυχιακό φοιτητή Ανδρέα Συµεωνίδη [ΣΥΜ 01]. " Εύρεση του κατάλληλου αλγορίθµου Πριν αποφασιστεί η υλοποίηση του αλγορίθµου, που παρουσιάστηκε στην παράγραφο 3.4, πραγµατοποιήθηκε µια προσπάθεια βελτίωσης του Gen Miner και πιο συγκεκριµένα δηµιουργήθηκε ένα γραφικό περιβάλλον γι αυτό. Στην πορεία διαπιστώθηκε ότι εξαιτίας του τρόπου µε τον οποίο αντιµετωπιζόταν οι βάσεις δεδοµένων δηµιουργούνταν διάφορα σφάλµατα θέσεων στην επεξεργασία τους µε αποτέλεσµα να απαιτείται επανασχεδιασµός του αλγορίθµου. Έτσι γεννήθηκε η ιδέα της σχεδίασης µιας βάσης δεδοµένων για το στάδιο της προετοιµασίας των δεδοµένων (preprocessing), η οποία θα µπορούσε να χρησιµοποιηθεί και από τη συνάρτηση προετοιµασίας του σετ ελέγχου (test set). Έπρεπε, λοιπόν, αρχικά να αποφασιστεί ο τρόπος µε τον οποίο θα δηµιουργούταν οι απαραίτητες σχέσεις στη βάση.
Κεφάλαιο 4. Υλοποίηση 57 " ηµιουργία των αρχικών πινάκων της βάσης Με άλλα λόγια, έπρεπε να βρεθεί κάποια µέθοδος µεταφοράς των δεδοµένων από τα τρία αρχεία, που αποτελούσαν τα δεδοµένα, (prosite.dat, profile.dat, pattern.dat) σε πίνακες της βάσης. Η λύση του DTS δόθηκε από τα µέλη του εργαστηρίου «Ευφυών συστηµάτων και λογισµικού» και ήταν αποτέλεσµα της τεχνογνωσίας και του άριστου πνεύµατος συνεργασίας που έχει αναπτυχθεί µε την πάροδο των χρόνων. " Επεξεργασία αρχικών πινάκων Ενώ η υπηρεσία µεταφοράς δεδοµένων του SQL Server λειτούργησε άψογα για τα αρχεία των προφίλ και προτύπων, η δοµή του αρχείου Prosite δεν της επέτρεψε να δηµιουργήσει τον πίνακα που επιθυµούσαµε. Για το λόγο αυτό επιστρατεύτηκαν οι συναρτήσεις επεξεργασίας κειµένου (string manipulation functions) του SQL Server και πραγµατοποιήθηκε µία αποθηκευµένη διαδικασία, που θα είχε σαν στόχο τη δηµιουργία του τελικού πίνακα (new_prosite_table). Ο κώδικας, που χρησιµοποιήθηκε, είναι διαθέσιµος στο παράρτηµα (Πηγαίος Κώδικας V. new_prosite_table). " «Φιλικότητα» ως προς το δίκτυο Σε µια εποχή όπου η κυριαρχία των δικτύων υπολογιστών και όχι µόνο είναι αδιαµφισβήτητη, θα ήταν λάθος να µην δοµηθεί το σύστηµά µε τέτοιο τρόπο ώστε να είναι «φιλικό» για το δίκτυο (Network friendly). Με άλλα λόγια, έπρεπε να αντιµετωπιστεί το πρόβληµα µεταφοράς τεράστιου όγκου δεδοµένων από τον διακοµιστή στην εφαρµογή και κατά συνέπεια τον πολύ µεγάλο χρόνο εκτέλεσης των διαδικασιών. Στην προσπάθειά επίλυσης του παραπάνω προβλήµατος υλοποιήθηκε µε τέτοιο τρόπο τη βάση ώστε να απαιτείται η µεταφορά του λιγότερου δυνατού όγκου δεδοµένων. Έτσι η επιλογή των κλάσεων από την εφαρµογή δηµιουργεί έναν πίνακα µε αυτές στη βάση και αυτή είναι η µοναδική µεταφορά δεδοµένων µέχρι την τελική λήψη των αποτελεσµάτων. Εποµένως, το µεγαλύτερο µέρος του φόρτου εργασίας για την προετοιµασία των δεδοµένων εναποτίθεται στον διακοµιστή SQL. Η εφαρµογή είναι υπεύθυνη για τη σωστή δηµιουργία των αρχείων εκπαίδευσης και ελέγχου
Κεφάλαιο 4. Υλοποίηση 58 µε την ακριβή δροµολόγηση των δεδοµένων και την εµφάνιση ενός όµορφου και λειτουργικού γραφικού περιβάλλοντος. " Τεράστιος όγκος δεδοµένων Βασιζόµενοι στην προηγούµενη λογική επιχειρήθηκε η εκτέλεση του δοκιµαστικό πρόγραµµα, που ετοιµάσαµε. Σύµφωνα µε τον αλγόριθµο θα δηµιουργούταν ο πίνακας (Prot_Exit), ο οποίος θα περιείχε τα δεδοµένα προς έξοδο, τα οποία θα συλλέγονταν από την εφαρµογή και θα διοχετευόταν στο τελικό αρχείο. Κατά την εκτέλεση, όµως, διαπιστώθηκε ότι ήταν αδύνατο ο SQL Server να χειριστεί έναν πίνακα 54.000.000 γραµµών. Οι δοκιµές λάµβαναν χώρα σε ηλεκτρονικό υπολογιστή για οικιακή χρήση τελευταίας γενιάς µε χαρακτηριστικά:! Επεξεργαστής: AMD AthlonXP 1.5GHz! Μνήµη R.A.M.: 512 MB! Σκληρός δίσκος: 20 GB Οι πρώτες δοκιµές µε περισσότερες των 20 κλάσεων δεν κατέστη δυνατό να ολοκληρωθούν. Η τροποποίηση του αλγορίθµου, φάνταζε ήδη αναπόφευκτη. Έτσι και έγινε. Ως καλύτερη αντιµετώπιση του προβλήµατος, κρίθηκε η τροποποίηση των πεδίων του πίνακα Prot_Exit. Πιο συγκεκριµένα, πραγµατοποιήθηκε µετατροπή του πεδίου Prot_Attr ως τύπου text και αποθηκεύτηκαν εκεί όλα τα δεδοµένα που αρχικά δηµιουργούσαν τον τεράστιο αριθµό στηλών. " Σύνδεση µε τον JDBC Driver Μεγάλη δυσκολία παρουσιάστηκε, κατά την προσπάθεια σύνδεσης της εφαρµογής µε τον SQL Server. Ενώ το εγχειρίδιο χρήσης του JBuilder υποστήριζε ότι υπάρχουν οδηγοί για τον SQL Server της Microsoft, στην πράξη δε φάνηκε να ισχύει κάτι τέτοιο. Μετά από αρκετές ώρες πλοήγησης στο διαδίκτυο και διαδοχικές απογοητεύσεις από οδηγούς εταιριών, που απαιτούσαν αγορά για σωστή λειτουργία, χρησιµοποιήθηκε ο οδηγός (driver) της Microsoft [URL06].
Κεφάλαιο 4. Υλοποίηση 59 4.3.2. Προβλήµατα ταχύτητας εκτέλεσης Στην προσπάθειά δηµιουργίας ενός όσο το δυνατό φιλικότερου προς το χρήστη συστήµατος, επιχειρήθηκε η µείωση της ταχύτητας εκτέλεσης του προγράµµατος στο ελάχιστο. Ο τρόπος µε τον οποίο δοµήθηκε ο αλγόριθµος της διαδικασίας prot_exit απαιτούσε την ύπαρξη πρωτεύοντος κλειδιού στον πίνακα εξόδου Prot_Exit (έτσι ώστε τα δεδοµένα να τοποθετηθούν µε την σειρά εξόδου στους πίνακες). Το γεγονός αυτό σε συνδυασµό µε κάποια προγραµµατιστική λεπτοµέρεια οδήγησαν στην υπερβολικά αργή εκτέλεση της διαδικασίας. Αξίζει να αναφερθεί ότι για να ολοκληρωθεί η εκτέλεση απαιτούνταν περίπου 13 ηµέρες! Όπως είναι φυσικό, το νούµερο είναι ιδιαίτερα απογοητευτικό και σαφώς απαγορευτικό για οποιαδήποτε δοκιµή. Τελικά αφαιρέθηκαν τα πρωτευόντων κλειδιά από τον πίνακα, καθώς είναι γνωστό ότι η εισαγωγή πλειάδων επιβραδύνεται σηµαντικά σε πίνακες µε δείκτες ή πρωτεύοντα κλειδιά (indexes or primary keys). Το πρόβληµα της σωστής σειράς εξόδου αντιµετωπίστηκε µε µια απλή ταξινόµηση. Η επιθυµητή διάρκεια εκτέλεσης, όµως, ήταν ακόµη πολύ µακριά. Μια προγραµµατιστική λεπτοµέρεια στη γλώσσα SQL, που ανακαλύφθηκε µετά από κόπο, ήταν τελικά η λύση του προβλήµατος. Με δυο λόγια, η χρήση ψευδωνύµου σε έναν πίνακα ενός SELECT ερωτήµατος (table alias) ήταν υπεύθυνο γι αυτήν την καθυστέρηση. Το αποτέλεσµα ήταν η βελτίωση της ταχύτητας εκτέλεσης κατά 300 ώρες ή 12,5 ηµέρες. Πιο απλά, το πρόγραµµα, πλέον, µπορούσε να εκτελείται σε 11 ώρες! 4.4. Προβλέψιµες βελτιώσεις επεκτάσεις Σε αυτήν την παράγραφο θα γίνει αναφορά στα σηµεία, που χρήζουν βελτίωσης και θα µπορούσαν να καλυφθούν στο µέλλον. 4.4.1. υνατότητα εκτέλεσης από τον παγκόσµιο ιστό Ένα χαρακτηριστικό, που θα µπορούσε να προστεθεί στο σύστηµα µελλοντικά, είναι αυτό της χρήσης µέσω του διαδικτύου. Πιο συγκεκριµένα, θα µπορούσε να δοθεί η δυνατότητα στο χρήστη να δηµιουργεί το σετ δοκιµής από
Κεφάλαιο 4. Υλοποίηση 60 το δίκτυο και να το υποβάλει στο αποθηκευµένο δέντρο. Με αυτόν τον τρόπο ο διαχειριστής του συστήµατος θα είναι υπεύθυνος για την συντήρηση και ανανέωση του δέντρου αποφάσεων, ενώ οι τελικοί χρήστες δε θα χρειάζεται να εγκαθιστούν ολόκληρη τη βάση δεδοµένων στο σύστηµά τους, ούτε καν την τελική εφαρµογή. Θα µπορούν να δηµιουργούν µε την πρωτεΐνη, που επιθυµούν, το προσωπικό σετ δοκιµής. 4.4.2. Μείωση χρόνου εκτέλεσης Ο µικρός χρόνος εκτέλεσης ενός προγράµµατος αποτελεί µη τελεστική απαίτηση. Έχει παρατηρηθεί πως, ανεξάρτητα του ποσοστού µείωσης του χρόνου, πάντα θα υπάρχει χώρος για περαιτέρω µείωση. Ένας καλός τρόπος βελτίωσης θα ήταν ίσως η παραλληλοποίηση των διαδικασιών, που εκτελούνται στον διακοµιστή της βάσης δεδοµένων. Ένας άλλος τρόπος θα µπορούσε να είναι η βελτίωση του αλγορίθµου δηµιουργίας των τελικών δεδοµένων. 4.4.3. Έξοδος σε XML Το σύστηµα, που σχεδιάστηκε, βασίζεται στην εφαρµογή WEKA και στον SQL Analysis Server σε ότι αφορά στο µέρος του data mining. Είναι σαφές, όµως, ότι, καθώς το WEKA είναι ένα µη επαγγελµατικό λογισµικό το οποίο στερείται της δυνατότητας επεξεργασίας πολύ µεγάλου όγκου δεδοµένων, περιορίζει αρκετά την προετοιµασία των δεδοµένων. Αυτό σηµαίνει ότι ο µέγιστος αριθµός κλάσεων, που µπορεί να αξιοποιήσει το WEKA, στην πλήρη έκτασή τους δεν ξεπερνά τον αριθµό των 30. Έτσι, εξάγοντας τα αποτελέσµατα του preprocessing σε XML πιθανότατα θα ήταν εφικτή η καλύτερη δυνατή επεξεργασία τους µε τη βοήθεια εµπορικών πακέτων λογισµικού για εξόρυξη δεδοµένων.
Κεφάλαιο 5. Εξόρυξη γνώσης Πειράµατα µε το WEKA 5.1. Εισαγωγή Το πρόγραµµά εκτελέστηκε αρκετές φορές µετά την ολοκλήρωσή του και τα αποτελέσµατά του χρησιµοποιήθηκαν τόσο για αποσφαλµάτωση όσο και για τη διεξαγωγή πειραµάτων και εξαγωγή χρήσιµων συµπερασµάτων. Στην επόµενη παράγραφο, περιγράφονται οι συνθήκες του κάθε πειράµατος, τους στόχους που ετέθησαν καθώς και τα αποτελέσµατα που ελήφθησαν. Στην παράγραφο 5.4 αναρτάται µία συζήτηση γύρω από τα αποτελέσµατα και την αξία τους, ενώ ταυτόχρονα προτείνονται τρόποι βελτίωσης πέρα από την παρούσα εφαρµογή. 5.2. Πειράµατα 5.2.1. Εξαγωγή δέντρου µε τη χρήση 10 κλάσεων Στο συγκεκριµένο πείραµα, χρησιµοποιήθηκαν 10 κλάσεις πρωτεϊνών. Συµπεριλήφθηκαν οι σηµαντικότερες κλάσεις από όλες τις νουκλεϊκές οµάδες. Είναι οι παρακάτω: PDOC00662, PDOC00064, PDOC00670, PDOC50007, PDOC00154, PDOC00343, PDOC00561, PDOC00224, PDOC00791, PDOC00271.
Κεφάλαιο 5. Εξόρυξη γνώσης Πειράµατα µε το WEKA 62 Η διαδικασία του preprocessing διήρκησε 5 λεπτά και 45 δευτερόλεπτα. Το εξαγόµενο αρχείο χρησιµοποιήθηκε για την διαδικασία του Data Mining µέσω της µηχανής WEKA και ελήφθησαν τα παρακάτω αποτελέσµατα. Number of Leaves : 78 Size of the tree : 155 Time taken to build model: 6.88 seconds === Evaluation on training set === === Summary === Correctly Classified Instances 1105 80.1305 % Incorrectly Classified Instances 274 19.8695 % Kappa statistic 0.7701 Mean absolute error 0.0497 Root mean squared error 0.1577 Relative absolute error 28.5525 % Root relative squared error 53.4411 % Total Number of Instances 1379 === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure Class 0.803 0.004 0.974 0.803 0.881 PDOC00064 0.45 0.02 0.739 0.45 0.56 PDOC00154 0.986 0.198 0.472 0.986 0.638 PDOC00224 0.808 0 1 0.808 0.894 PDOC00271 0.695 0.002 0.968 0.695 0.809 PDOC00343 0.945 0.004 0.912 0.945 0.929 PDOC00561 0.842 0.003 0.983 0.842 0.907 PDOC00662 0.917 0.001 0.917 0.917 0.917 PDOC00670 0.92 0 1 0.92 0.958 PDOC00791 0.415 0.001 0.944 0.415 0.576 PDOC50007 === Confusion Matrix === a b c d e f g h i j <-- classified as 188 4 40 0 0 0 1 1 0 0 a = PDOC00064 3 68 79 0 0 0 1 0 0 0 b = PDOC00154 0 3 207 0 0 0 0 0 0 0 c = PDOC00224 0 1 23 105 1 0 0 0 0 0 d = PDOC00271 0 7 26 0 91 5 1 0 0 1 e = PDOC00343 0 0 1 0 2 52 0 0 0 0 f = PDOC00561 1 4 27 0 0 0 170 0 0 0 g = PDOC00662 0 0 1 0 0 0 0 11 0 0 h = PDOC00670 1 2 14 0 0 0 0 0 196 0 i = PDOC00791 0 3 21 0 0 0 0 0 0 17 j = PDOC50007 Αποτελέσµατα 5.1
Κεφάλαιο 5. Εξόρυξη γνώσης Πειράµατα µε το WEKA 63 Σχήµα 5.1 Απεικόνιση δέντρου αποφάσεων 10 κλάσεων
Κεφάλαιο 5. Εξόρυξη γνώσης Πειράµατα µε το WEKA 64 === Run information === Scheme: weka.classifiers.j48.j48 -C 1.0 -M 2 Relation: protein-weka.filters.attributefilter-v-r2-275 Instances: 1379 Attributes: 274 [list of attributes omitted] Test mode: user supplied test set: 1 instances Time taken to build model: 6.36 seconds === Evaluation on test set === === Summary === Correctly Classified Instances 1 100 % Incorrectly Classified Instances 0 0 % Kappa statistic 1 Mean absolute error 0 Root mean squared error 0 Relative absolute error 0 % Root relative squared error 0 % Total Number of Instances 1 === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure Class 0 0 0 0 0 PDOC00064 0 0 0 0 0 PDOC00154 0 0 0 0 0 PDOC00224 0 0 0 0 0 PDOC00271 0 0 0 0 0 PDOC00343 1 0 1 1 1 PDOC00561 0 0 0 0 0 PDOC00662 0 0 0 0 0 PDOC00670 0 0 0 0 0 PDOC00791 0 0 0 0 0 PDOC50007 === Confusion Matrix === a b c d e f g h i j <-- classified as 0 0 0 0 0 0 0 0 0 0 a = PDOC00064 0 0 0 0 0 0 0 0 0 0 b = PDOC00154 0 0 0 0 0 0 0 0 0 0 c = PDOC00224 0 0 0 0 0 0 0 0 0 0 d = PDOC00271 0 0 0 0 0 0 0 0 0 0 e = PDOC00343 0 0 0 0 0 1 0 0 0 0 f = PDOC00561 0 0 0 0 0 0 0 0 0 0 g = PDOC00662 0 0 0 0 0 0 0 0 0 0 h = PDOC00670 0 0 0 0 0 0 0 0 0 0 i = PDOC00791 0 0 0 0 0 0 0 0 0 0 j = PDOC50007 Αποτελέσµατα 5.2
Κεφάλαιο 5. Εξόρυξη γνώσης Πειράµατα µε το WEKA 65 5.2.2. Εξαγωγή δέντρου µε τη χρήση 20 κλάσεων Οι κλάσεις που επιλέχθηκαν για αυτό το πείραµα, είναι κατά 10 περισσότερες έτσι ώστε να δηµιουργηθεί καλύτερη γνώση και πιο µεγάλο δέντρο αποφάσεων, το οποίο θα οδηγούσε σε αποτελέσµατα µε µεγαλύτερο ποσοστό επιτυχίας. Οι κλάσεις που επιλέχθηκαν είναι οι παρακάτω: PDOC00020, PDOC00023, PDOC00027, PDOC00335, PDOC00340, PDOC00344, PDOC00552, PDOC00561, PDOC00564, PDOC00567, PDOC00789, PDOC00790, PDOC00793, PDOC00800, PDOC00803, PDOC50001, PDOC50006, PDOC50017. Η διαδικασία του preprocessing διήρκησε 10 λεπτά και 13 δευτερόλεπτα και η εισαγωγή του παραγόµενου αρχείου στο WEKA, απέδωσε τα παρακάτω αποτελέσµατα: Number of Leaves : 93 Size of the tree : 185 Time taken to build model: 8.2 seconds === Evaluation on training set === === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure Class 0.62 0.002 0.934 0.62 0.745 PDOC00020 0.962 0.006 0.676 0.962 0.794 PDOC00023 0.922 0.009 0.951 0.922 0.936 PDOC00027 0.821 0.001 0.979 0.821 0.893 PDOC00335 0.989 0.109 0.441 0.989 0.61 PDOC00340 0.774 0.004 0.9 0.774 0.832 PDOC00344 0.928 0.028 0.928 0.928 0.928 PDOC00351 0.368 0 1 0.368 0.538 PDOC00552 0.745 0.002 0.911 0.745 0.82 PDOC00561 0.843 0.004 0.957 0.843 0.897 PDOC00564 0.652 0.002 0.938 0.652 0.769 PDOC00567 0.75 0 1 0.75 0.857 PDOC00789 0.417 0 1 0.417 0.588 PDOC00790 0.882 0 1 0.882 0.938 PDOC00793 0.84 0 1 0.84 0.913 PDOC00800 0.708 0.001 0.944 0.708 0.81 PDOC00803 0.75 0.001 0.951 0.75 0.839 PDOC50001 0.527 0.002 0.923 0.527 0.671 PDOC50006 0.905 0.007 0.576 0.905 0.704 PDOC50017
Κεφάλαιο 5. Εξόρυξη γνώσης Πειράµατα µε το WEKA 66 === Summary === Correctly Classified Instances 1832 84.2686 % Incorrectly Classified Instances 342 15.7314 % Kappa statistic 0.8182 Mean absolute error 0.024 Root mean squared error 0.1107 Relative absolute error 26.2689 % Root relative squared error 51.7803 % Total Number of Instances 2174 === Confusion Matrix === a b c d e f g h i j k l m n o p q r s <-classified as 57 3 0 0 8 0 21 0 0 0 1 0 0 0 0 0 0 2 0 a = PDOC00020 0 25 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 b = PDOC00023 0 0 309 0 23 0 0 0 0 2 1 0 0 0 0 0 0 0 0 c = PDOC00027 0 0 0 92 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 d = PDOC00335 0 0 0 2 172 0 0 0 0 0 0 0 0 0 0 0 0 0 0 e = PDOC00340 0 0 0 0 19 72 0 0 2 0 0 0 0 0 0 0 0 0 0 f = PDOC00344 0 0 0 0 29 0 570 0 1 1 0 0 0 0 0 2 1 1 9 g = PDOC00351 0 0 0 0 12 0 0 7 0 0 0 0 0 0 0 0 0 0 0 h = PDOC00552 0 0 0 0 1 8 0 0 41 0 0 0 0 0 0 0 0 0 5 i = PDOC00561 0 0 16 0 13 0 0 0 0 156 0 0 0 0 0 0 0 0 0 j = PDOC00564 0 0 0 0 40 0 0 0 0 0 75 0 0 0 0 0 0 0 0 k = PDOC00567 0 0 0 0 3 0 0 0 0 0 0 9 0 0 0 0 0 0 0 l = PDOC00789 0 0 0 0 7 0 0 0 0 0 0 0 5 0 0 0 0 0 0 m = PDOC00790 0 0 0 0 6 0 1 0 1 0 0 0 0 60 0 0 0 0 0 n = PDOC00793 0 0 0 0 7 0 0 0 0 0 0 0 0 0 42 0 0 1 0 o = PDOC00800 1 0 0 0 7 0 3 0 0 0 3 0 0 0 0 34 0 0 0 p = PDOC00803 2 0 0 0 8 0 1 0 0 2 0 0 0 0 0 0 39 0 0 q = PDOC50001 1 9 0 0 14 0 17 0 0 1 0 0 0 0 0 0 1 48 0 r = PDOC50006 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 19 s = PDOC50017 J48 pruned tree ------------------ PS00024 = YES: PDOC00023 (24.0/9.0) PS00024 = NO PS50207 = YES: PDOC00803 (10.0/2.0) PS50207 = NO PS50261 = YES: PDOC00344 (9.0/1.0) PS50261 = NO PS50824 = YES: PDOC00023 (3.0) PS50824 = NO PS00034 = YES: PDOC00027 (13.0) PS00034 = NO PS50215 = YES: PDOC00351 (46.0/2.0) PS50215 = NO PS00062 = YES: PDOC00800 (3.0) PS00062 = NO PS50324 = YES: PDOC00027 (147.0/97.0) PS50324 = NO PS50246 = YES: PDOC00335 (3.0) PS50246 = NO PS50804 = YES: PDOC00027 (2.0) PS50804 = NO: PDOC00351 (1914.0/1371.0) Number of Leaves : 11 Size of the tree : 21 Time taken to build model: 0.98 seconds Αποτελέσµατα 5.3
Κεφάλαιο 5. Εξόρυξη γνώσης Πειράµατα µε το WEKA 67 5.2.3. Πείραµα µε χρήση 30 κλάσεων Σε αυτό το πείραµα, χρησιµοποιήθηκαν 30 κλάσεις, µε σκοπό να µελετηθεί ο τρόπος µε τον οποίο διαφοροποιούνται τα αποτελέσµατα. Number of Leaves : 128 Size of the tree : 255 Time taken to build model: 43.8 seconds === Evaluation on training set === === Summary === Correctly Classified Instances 1936 74.4902 % Incorrectly Classified Instances 663 25.5098 % Kappa statistic 0.7133 Mean absolute error 0.0257 Root mean squared error 0.1133 Relative absolute error 39.4603 % Root relative squared error 62.8371 % Total Number of Instances 2599 === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure Class 0.935 0.022 0.732 0.935 0.822 PDOC00010 0.956 0.215 0.47 0.956 0.63 PDOC00013 0.711 0.001 0.982 0.711 0.824 PDOC00021 0.66 0.001 0.939 0.66 0.775 PDOC00024 0.869 0.005 0.964 0.869 0.914 PDOC00027 0.156 0 0.875 0.156 0.264 PDOC00031 0.876 0.003 0.925 0.876 0.9 PDOC00061 0.586 0 1 0.586 0.739 PDOC00067 0.5 0 1 0.5 0.667 PDOC00072 0.183 0.002 0.765 0.183 0.295 PDOC00075 0.278 0.001 0.714 0.278 0.4 PDOC00160 1 0 1 1 1 PDOC00164 1 0 1 1 1 PDOC00166 0.727 0 1 0.727 0.842 PDOC00167 0.956 0.004 0.908 0.956 0.931 PDOC00171 0.519 0.002 0.915 0.519 0.663 PDOC00298 0.561 0.003 0.742 0.561 0.639 PDOC00300 0.795 0.03 0.819 0.795 0.807 PDOC00304 0.852 0 1 0.852 0.92 PDOC00305 1 0.001 0.75 1 0.857 PDOC00307 0.636 0.004 0.778 0.636 0.7 PDOC00310 0.667 0.002 0.6 0.667 0.632 PDOC00485 0.5 0 1 0.5 0.667 PDOC00486 0.059 0 1 0.059 0.112 PDOC00490 1 0 1 1 1 PDOC00495 0.6 0.001 0.966 0.6 0.74 PDOC00499 0.635 0.001 0.952 0.635 0.762 PDOC00722 0.385 0 0.833 0.385 0.526 PDOC00728 Αποτελέσµατα 5.4
Κεφάλαιο 5. Εξόρυξη γνώσης Πειράµατα µε το WEKA 68 / πρότυπα. Το παραγόµενο δέντρο, αποτελείται από 2599 πρωτεΐνες και 371 προφίλ 5.3. Συζήτηση 5.3.1. Το πρώτο πείραµα Στο πρώτο πείραµα λοιπόν, δηµιουργήθηκε ένα σετ εκπαίδευσης, που αποτελείται από 1379 πρωτεΐνες, οι οποίες βρίσκονται σε 10 µόλις κλάσεις. Το δέντρο αποφάσεων δηµιουργήθηκε από το WEKA σε 7 περίπου δευτερόλεπτα και χρησιµοποιώντας ολόκληρο το σετ εκπαίδευσης σαν σετ ελέγχου, το ποσοστό επιτυχίας στην αναγνώριση των πρωτεϊνών, ήταν 80,13%. Περισσότερες λεπτοµέρειες, παρουσιάζονται στα Αποτελέσµατα 5.1. Στο Σχήµα 5.1 µπορούµε να δούµε µια απεικόνιση του δέντρου αποφάσεων που δηµιουργήθηκε για το συγκεκριµένο πείραµα. Στη συνέχεια, χρησιµοποιώντας και πάλι το GenTool, κατασκευάστηκε το αρχείο του σετ ελέγχου µίας πρωτεΐνης, για να διαπιστωθεί κατά πόσο µπορεί να ταξινοµηθεί σωστά. Τα αποτελέσµατα παρουσιάζονται στο σχήµα των αποτελεσµάτων (Αποτελέσµατα 5.2), όπου είναι σαφές ότι, η πρωτεΐνη που επιλέχθηκε τυχαία, ταξινοµήθηκε σωστά (correctly classified instances 1 100%). Επίσης, από τον πίνακα αβεβαιότητας (confusion matrix) διαπιστώνεται ότι η πρωτεΐνη ανήκει στην κλάση PDOC00561. Σε κάθε περίπτωση, µπορούµε να δούµε τα διάφορα χρήσιµα στατιστικά στοιχεία για κάθε κλάση χωριστά. Αυτό που εξετάζουµε, είναι η ακρίβεια των αποτελεσµάτων και προκύπτει από τα ποσοστά που αναγράφονται στον σχετικό πίνακα. 5.3.2. Το δεύτερο πείραµα Στο δεύτερο πείραµα, χρησιµοποιήθηκαν 10 κλάσεις παραπάνω οι οποίες περιείχαν 2174 πρωτεΐνες συνολικά, σχεδόν διπλάσιο αριθµό από το προηγούµενο πείραµα. Το πλήρες δέντρο αποτελείται από 93 φύλλα και 185 επίπεδα. Η ακρίβεια της ταξινόµησης, φαίνεται στο πίνακα µε τίτλο «Detailed Accuracy By Class» της εικόνας των αποτελεσµάτων (Αποτελέσµατα 5.3).
Κεφάλαιο 5. Εξόρυξη γνώσης Πειράµατα µε το WEKA 69 Οι ρυθµίσεις που χρησιµοποιήθηκαν για την παραγωγή αυτού του δέντρου, έδωσαν το ποσοστό επιτυχίας 84,26% για όλες τις πρωτεΐνες. Κάτω ακριβώς από τον πίνακα αβεβαιότητας παρουσιάζεται µια µικρή έκδοση του δέντρου που αποδίδεται µε απλά γραφικά. Ήταν αδύνατο να παρουσιαστεί ολόκληρο το δέντρο σε αυτή τη µορφή καθώς το µέγεθός του κρίθηκε υπερβολικά µεγάλο. 5.3.3. Το τρίτο πείραµα Σε αυτό το πείραµα, χρησιµοποιήθηκαν, 30 κλάσεις, δεν παρατηρήθηκε όµως πολύ µεγάλη αύξηση στον αριθµό πρωτεϊνών. Έτσι, το WEKA έπρεπε να ταξινοµήσει 2599 πρωτεΐνες και το κατάφερε µε ποσοστό 74,49 %. Εδώ χρησιµοποιήθηκε µικρότερη τιµή ευαισθησίας αποκοπής οριακών τιµών (pruning) και εκεί αποδίδεται το σχετικά χαµηλό ποσοστό. Τα υπερβολικά µεγάλα νούµερα των 128 φύλλων και 255 επιπέδων του δέντρου, δεν επέτρεψαν την απεικόνισή τους. Θα πρέπει σε αυτό το σηµείο να τονισθεί ότι όπως φαίνεται ξεκάθαρα και από το χρόνο που απαιτήθηκε για να δηµιουργηθεί το µοντέλο (43,8 δευτερόλεπτα), το WEKA αντιµετωπίζει σοβαρά προβλήµατα επεξεργασίας µεγάλων αρχείων. Αξίζει να σηµειωθεί ότι στα παραπάνω προβλήµατα εντάσσεται και η αδυναµία του εργαλείου WEKA, να δεχτεί το σετ ελέγχου που εισήχθη, παρά το γεγονός ότι αποκλείστηκαν από τον έλεγχο περισσότερα από 50 προφίλ. 5.4. Συµπεράσµατα Το συµπέρασµα, που προκύπτει αβίαστα από τα πειράµατα µε το WEKA, είναι ότι η κατηγοριοποίηση των πρωτεϊνών µε τον αλγόριθµο, που προτείνεται, αποφέρει από πολύ καλά µέχρι άριστα ποσοστά επιτυχίας. Ο χρόνος που απαιτείται για την λήψη τους είναι σηµαντικά µικρός, αν αναλογιστεί κανείς ότι τα αρχεία που παράγονται περιέχουν περισσότερους από 2.5 εκατοµµύρια χαρακτήρες. Για τα πειράµατα του προηγούµενου κεφαλαίου, χρησιµοποιήθηκαν όλες οι δυνατότητες που παρείχε το WEKA. Έτσι, το πρώτο πείραµα διεξήχθη µε «κλάδεµα» (pruning) του δέντρου αποφάσεων και ευαισθησία 0.5 ή 50%. Ο χρόνος που χρειάστηκε για να χτιστεί το µοντέλο, ήταν πολύ µικρός (6,88
Κεφάλαιο 5. Εξόρυξη γνώσης Πειράµατα µε το WEKA 70 δευτερόλεπτα) και τα αποτελέσµατά που έδωσε στο ζήτηµα της κατηγοριοποίησης, ήταν ιδιαίτερα θετικά. Στο δεύτερο πείραµα, δεν «κλαδεύτηκε» το δέντρο. Ο χρόνος που απαιτήθηκε για την κατασκευή του δέντρου, ήταν πιο µεγάλος, όµως ανάλογα µεγαλύτερος ήταν και ο αριθµός των κλάσεων που χρησιµοποιήθηκαν για τον σχηµατισµό του. Όπως ήταν αναµενόµενο, το αποτέλεσµα ήταν αρκετά καλύτερο και η κατηγοριοποίηση µιας τυχαίας πρωτεΐνης, επιτυχής. Τέλος, στο τελευταίο πείραµα, παρουσιάζεται ένα δέντρο που λόγω των περιορισµών που επιβλήθηκαν, χτίστηκε µε λιγότερα προφίλ από ότι θα έπρεπε και µε περισσότερο «κλάδεµα». Έτσι, ετέθη η ευαισθησία κοντά στο µηδέν (0.05) και τα αποτελέσµατα είναι φυσικά χειρότερα από αυτά των δύο προηγούµενων. Μέσα από συνεχή ενασχόληση µε το WEKA, ανακαλύφθηκε ότι οι βέλτιστες ρυθµίσεις ποικίλλουν ανάλογα µε την περίπτωση. Γι αυτό το λόγο, παρουσιάζονται στον παρακάτω πίνακα (Πίνακας 5.1) οι βέλτιστες ρυθµίσεις τόσο για τη µέγιστη δυνατή ακρίβεια κατηγοριοποίησης, όσο και για την ταχύτερη δηµιουργία του µοντέλου. «Κλάδεµα» Ευαισθησία Μέγιστη δυνατή ακρίβεια κατηγοριοποίησης Όχι 1 Ταχύτερη δυνατή δηµιουργία του µοντέλου Ναι 0.25 Πίνακας 5.1 Ιδανικές ρυθµίσεις για το Waikato Tool 5.5. Περιορισµοί Πρέπει να γίνει σαφές ότι οι δυνατότητες του συστήµατος που υλοποιήθηκε δεν περιορίζονται στη δηµιουργία αρχείου για 30 κλάσεις µόνο. Υπενθυµίζεται ότι οι κλάσεις στο σύνολό τους είναι 1089. Σε ένα από τα πρώτα τεστ του τελικού προϊόντος που πραγµατοποιήθηκαν στην προετοιµασία των δεδοµένων έλαβαν µέρος 500 κλάσεις. Με απογοήτευση όµως διαπιστώθηκε ότι το εργαλείο που επρόκειτο να χρησιµοποιηθεί για την εξόρυξη των δεδοµένων δεν ήταν δυνατόν να αντιµετωπίσει ένα τόσο µεγάλο σετ εγγραφών. Εξήχθη
Κεφάλαιο 5. Εξόρυξη γνώσης Πειράµατα µε το WEKA 71 λοιπόν στο συµπέρασµα, ότι δυστυχώς ήταν αδύνατο να παραχθεί όλη η γνώση που απαιτείται για την ολοκληρωµένη αντιµετώπιση του προβλήµατος της κατηγοριοποίησης των πρωτεϊνών. Μερικοί από τους υπόλοιπους περιορισµούς που συνάντησε στο δρόµο της η παραπάνω υλοποίηση είναι οι παρακάτω:! Ο πολύ µεγάλος όγκος δεδοµένων, είχε σαν αποτέλεσµα την πολύ δύσκολη και χρονοβόρα επεξεργασία τους. ηµιουργείται άµεσα λοιπόν η ανάγκη, για υλικό επαγγελµατικών προδιαγραφών. Η δυνατότητα αυτή δεν υπήρξε µε αποτέλεσµα την αδυναµία λήψης κάποιου καλύτερου αποτελέσµατος.! Όπως αναφέρθηκε και νωρίτερα, καθώς το πρόγραµµα WEKA είναι αυτό που αξιοποιεί την προετοιµασία των δεδοµένων δηµιουργώντας το δενδρικό µοντέλο και εκπαιδεύοντάς το, τα πειράµατα υπέκυψαν αναγκαστικά στους περιορισµούς που είναι προφανές ότι έχει ένα µη εµπορικό προϊόν που δηµιουργήθηκε για εκπαιδευτικούς σκοπούς.
Κεφάλαιο 6. Πειράµατα µε τον SQL Analysis Server 6.1. Εισαγωγή ιαβάζοντας τα παραπάνω, ο προσεκτικός παρατηρητής, µπορεί εύκολα να κατανοήσει ότι οι περιορισµοί που τέθηκαν από το WEKA, δεν επέτρεψαν την πλήρη αξιοποίηση των δυνατοτήτων του συστήµατος προετοιµασίας δεδοµένων. Αποφασίστηκε, λοιπόν, η χρήση του SQL Analysis Server για την διεξαγωγή πειραµάτων µε περισσότερες κλάσεις και κατά συνέπεια, τη δηµιουργία πληρέστερου δέντρου αποφάσεων. 6.2. Πειράµατα 6.2.1. ένδρο αποφάσεων 50 κλάσεων Το πρώτο πείραµα εξετάζει τη δηµιουργία ενός δένδρου αποφάσεων που παράγεται από 50 κλάσεις. Το GenTool χρειάστηκε 22 λεπτά για να επεξεργαστεί τα δεδοµένα και να δηµιουργήσει το τελικό.arff αρχείο. Εισήχθη ο πίνακας που δηµιουργήθηκε µέσω DTS στον SQL Analysis Server και δηµιουργήθηκε το δενδρικό µοντέλο αποφάσεων. Το διάγραµµά του παρουσιάζεται στην παρακάτω εικόνα (Εικόνα 6.1).
Κεφάλαιο 6. Πειράµατα µε τον SQL Analysis Server 73 Εικόνα 6.1 ένδρο αποφάσεων SQLServer, 50 κλάσεων Σε αυτό το σηµείο κρίνεται σκόπιµο να αποσαφηνιστεί ο τρόπος µε τον οποίο παράγει το δένδρο αποφάσεων ο SQL Analysis Server. Αρχικά, λοιπόν, ερευνά όλους τους πιθανούς συνδυασµούς µε σκοπό την εύρεση προτύπων. Στη συνέχεια, σύµφωνα µε τα δεδοµένα που έχει, υπολογίζει τις πιθανότητες κατηγοριοποίησης κάθε πρωτεΐνης σε συγκεκριµένη κλάση και δηµιουργεί ένα πιθανοτικό µοντέλο ταξινόµησης (Probabilistic Classification Tree). Αποφασίζει ποιο θα είναι το τελικό δένδρο, δηλαδή από πόσα φύλλα θα πρέπει να αποτελείται, σύµφωνα µε τις µεγαλύτερες πιθανότητες που έχει υπολογίσει. εν δίνεται η δυνατότητα στο χρήστη, να επιλέξει ποια θα πρέπει να είναι η ευαισθησία του αλγορίθµου και κατά συνέπεια δεν µπορεί να ρυθµίσει το µέγεθος του δένδρου. Επιλέγοντας κάποιο από τα φύλλα του δένδρου, εµφανίζεται στο δεξί τµήµα του παραθύρου, το ιστόγραµµα της εικόνας 6.2. Εκεί βλέπουµε τις πιθανότητες που υπολόγισε ο SQL Analysis Server για κάθε κλάση. Πιο απλά, σε περίπτωση που κάποια πρωτεΐνη περιέχει το επιλεγµένο πρότυπο / προφίλ (κάθε φύλλο είναι και ένα πρότυπο / προφίλ) το οποίο στην υπό εξέταση περίπτωση είναι το PS50157 και δεν περιέχει στην αλυσίδα της το προφίλ PS50071 έχει 36,29% πιθανότητες να ανήκει στην κλάση PDOC00027, 28,53% πιθανότητες να ανήκει στην κλάση PDOC00033 και ούτω καθ εξής. Στην εικόνα 6.3, παρουσιάζεται ο συγκεντρωτικός πίνακας αποτελεσµάτων. Εκεί, µπορούµε να δούµε πως ακριβώς ταξινοµήθηκαν οι πρωτεΐνες του σετ εκπαίδευσης.
Κεφάλαιο 6. Πειράµατα µε τον SQL Analysis Server 74 Εικόνα 6.2 Ιστόγραµµα 50 κλάσεων Εικόνα 6.3 Συγκεντρωτικός πίνακας πιθανοτήτων
Κεφάλαιο 6. Πειράµατα µε τον SQL Analysis Server 75 6.2.2. ένδρο αποφάσεων 80 κλάσεων Η παραπάνω διαδικασία, επαναλήφθηκε και για 80 κλάσεις. Το δένδρο που δηµιουργήθηκε, βρίσκεται στην εικόνα 6.4. Το χρώµα του κάθε φύλλου, ορίζεται από το χρώµα της κλάσης µε την µεγαλύτερη πιθανότητα για το συγκεκριµένο προφίλ / πρότυπο. Εικόνα 6.4 ένδρο αποφάσεων 80 κλάσεων Το ιστόγραµµα της εικόνας 6.5, απεικονίζει την περίπτωση που το πρότυπο PS50071 υπάρχει στην αλυσίδα µιας πρωτεΐνης, αυτή ανήκει στην κλάση PDOC00033 µε πιθανότητα 43,83% και στην κλάση PDOC00027 µε πιθανότητα 26,54%. Εικόνα 6.5 Ιστόγραµµα 80 κλάσεων Τέλος, στην εικόνα 6.6 παρουσιάζεται ο πίνακας των ταξινοµηµένων πρωτεϊνών. Εκεί βλέπουµε ότι από τις 567 πρωτεΐνες που περιέχουν το
Κεφάλαιο 6. Πειράµατα µε τον SQL Analysis Server 76 πρότυπο PS50071, οι 283 ανήκουν στην κλάση PDOC00033 ποσοστό 43,83%, οι 171 στην κλάση PDOC00027 ποσοστό 26,54%, οι 101 στην κλάση PDOC00032 ποσοστό 15,74% ενώ οι υπόλοιπες είναι διάσπαρτες στις εναποµείναντες κλάσεις. Εικόνα 6.6 Πίνακας πιθανοτήτων 6.3. Συµπεράσµατα Το συµπέρασµα που προκύπτει αβίαστα από τη µελέτη των παραπάνω πειραµάτων αλλά και από τη γενικότερη ενασχόλησή του γράφοντος µε την εξόρυξη δεδοµένων µε τη χρήση του SQL Analysis Server, είναι ότι παρόλο που αποτελεί ένα εµπορικό πακέτο υψηλών δυνατοτήτων, στερείται της δυνατότητας να αντεπεξέλθει σε πολύ µεγάλες απαιτήσεις επεξεργασίας. Αυτό συµβαίνει για το λόγο ότι δεν µπορεί να διαχειριστεί πίνακες µε υπερβολικά µεγάλο αριθµό στηλών. Έτσι, όταν επιχειρήθηκε η δηµιουργία µοντέλου µε 200 κλάσεις (780 προφίλ) διαπιστώθηκε η αδυναµία που αναφέρεται παραπάνω. Σε όλα αυτά αξίζει να προστεθεί ότι δεν επιτρέπεται στο χρήστη η εισαγωγή στον πίνακα εξόρυξης όλων των προφίλ µε µία κίνηση, γεγονός το οποίο τον υποχρεώνει να τοποθετεί µία µία την κάθε στήλη. Γίνεται κατανοητό λοιπόν, ότι ο SQL Analysis Server, δεν αποτελεί το βέλτιστο εργαλείο εξόρυξης δεδοµένων.
Κεφάλαιο 7. Σύνοψη Γενικά συµπεράσµατα Ολοκληρώνοντας την ανάγνωση αυτής της διπλωµατικής εργασίας, ο αναγνώστης - µηχανικός, θα πρέπει εύκολα να µπορεί να επιχειρηµατολογήσει απέναντι στα εξής συµπεράσµατα: Αρχικά, σε ότι αφορά στο σύστηµα που αναπτύχθηκε, δεν είναι δύσκολο να διαπιστώσει κανείς ότι πρόκειται για µία εφαρµογή λειτουργική και εύχρηστη, χωρίς περίπλοκα µενού και πλήκτρα τοποθετηµένα χωρίς σειρά και χωρίς κάποια σαφή οµαδοποίηση. Πιστεύεται ότι οι επεξηγήσεις που εµφανίζονται λίγα δευτερόλεπτα µετά την αναµονή του δείκτη του ποντικιού πάνω από κάποιο πλήκτρο, βοηθούν ιδιαίτερα το χρήστη που διαθέτει µικρή έστω εµπειρία στη χρήση ηλεκτρονικών συσκευών. Όπως έχει αναφερθεί και παραπάνω, στο παράρτηµα Α, το οποίο αποτελεί τον οδηγό χρήσης του συστήµατος, αναλύονται διεξοδικά οι δυνατότητες του προγράµµατος και δίνονται τα απαραίτητα εφόδια στον οποιοδήποτε έστω και ελάχιστα µυηµένο στις διαδικασίες αναζήτησης συµπεριφορών βιολογικών δεδοµένων. Αυτό που δεν µπορεί να διαπιστώσει ο αναγνώστης, όσο προσεκτικά και αν πραγµατοποιήσει τη µελέτη του κειµένου, είναι: 1. η µεγάλη ταχύτητα µε την οποία εκτελούνται οι απαραίτητες διαδικασίες (εκτιµήσεις δείχνουν ότι η ταχύτητα δεν µπορεί να αυξηθεί περισσότερο από 10% µε τη χρήση των ίδιων εργαλείων ανάπτυξης),
Κεφάλαιο 7. Σύνοψη 78 2. η αντοχή του συστήµατος σε λάθη (σε κανένα από τα τεστ που πραγµατοποιήθηκαν δεν έκλεισε από κάποιο σφάλµα που παρουσιάστηκε), 3. η φιλικότητά του ως προς το σύστηµα που το υποδέχεται (δεν απαιτεί την εγκατάσταση κάποιου προγράµµατος ή έστω κάποιων αρχείων στο σύστηµα που θα εκτελεστεί) 4. και τέλος η φιλικότητα ως προς το δίκτυο (δεν επιφορτίζει τη σύνδεση του µε τον διακοµιστή της βάσης δεδοµένων µεταφέροντας άσκοπα µεγάλο πλήθος εγγραφών πινάκων). Κατά δεύτερον, σε ότι αφορά στο άλλο µεγάλο µέρος της εργασίας, αυτό της εξόρυξης δεδοµένων (data mining), πρέπει να σηµειωθεί, ότι, επιλέχθηκε η πιο αποτελεσµατική και εύκολα κατανοητή µέθοδος για το συγκεκριµένο σετ δεδοµένων. Τα αποτελέσµατα που ελήφθησαν, ήταν ανάλογα των προσδοκιών και στόχων που ετέθησαν στην αρχή της εργασίας. Στο Κεφάλαιο 5, παρουσιάστηκαν εκτενώς οι τρόποι µε τους οποίους µπορεί κανείς να ρυθµίσει την ευαισθησία και κατά συνέπεια να επιδράσει δραστικά στην εκπαίδευση του δένδρου µε τη χρήση του WEKA, ενώ στο Κεφάλαιο 6 χρησιµοποιήθηκε ο SQL Analysis Server µε σκοπό να δοθεί η δυνατότητα σύγκρισης εµπορικού και µη λογισµικού. Μερικά από τα συµπεράσµατα που εύκολα µπορεί να εξάγει κανείς από όσα αναφέρονται σχετικά µε την εξόρυξη δεδοµένων και του δενδρικού µοντέλου που χρησιµοποιήθηκε, είναι τα παρακάτω: 1. η χρήση του δένδρου αποφάσεων για εξόρυξη δεδοµένων αποτελεί µία αξιόπιστη και συνάµα εύκολα υλοποιήσιµη λύση. Είναι ιδιαίτερα παραµετροποιήσιµη µπορεί να χρησιµοποιηθεί σε πληθώρα περιπτώσεων, 2. η αντιµετώπιση προβληµάτων µε εξαιρετικά µεγάλο αριθµό καταστάσεων (attributes στην περίπτωση µας προφίλ και πρότυπα) είναι µια ιδιαίτερα κοπιαστική διαδικασία η οποία απαιτεί ειδική µεταχείριση και 3. τέλος, η γνώση που παρέχεται µετά από την ενασχόληση µε ένα ζήτηµα, συχνά συµβαδίζει µε παλιές λαϊκές ρήσεις και γνωµικά. Στη δική µας περίπτωση θα ταίριαζε εκείνη που επισηµαίνει ότι ο καλός τεχνίτης γίνεται από τα εργαλεία που αυτός έχει.
Κεφάλαιο 7. Σύνοψη 79 Επίλογος Ρίχνοντας κανείς µια µατιά στις παραγράφους 5.5 και 4.3, µπορεί εύκολα να διαπιστώσει ότι οι συνθήκες αντιµετώπισης του ζητήµατος δεν ήταν οι βέλτιστες δυνατές. Το σύστηµα, όµως, που προέκυψε, είναι αξιόπιστο και βελτιστοποιηµένο σε ότι αφορά στην προετοιµασία των δεδοµένων στην πλήρη έκτασή τους δηλαδή µε τη χρήση όλων των 1100 κλάσεων. Η διαδικασία της εξόρυξης των δεδοµένων είναι ένα κοµµάτι που µπορεί να γίνει ξεχωριστά από την προετοιµασία τους και όποτε ο χρήστης το επιθυµήσει. Γι αυτό το σκοπό η έξοδος του προγράµµατος είναι τέτοια ώστε να µπορεί να χρησιµοποιηθεί από το µεγαλύτερο µέρος των εξειδικευµένων πακέτων λογισµικού. Κλείνοντας, θέλουµε να πιστεύουµε ότι η γνώση που περιέχεται στο παρόν σύγγραµµα, µπορεί να αποτελέσει ένα κόκκο άµµου σε µελλοντικά οικοδοµήµατα σοφίας. Όλοι µας ακούµε και όλοι µας φοβόµαστε τις αρνητικές συνέπειες της ραγδαίας ανάπτυξης στον τοµέα της βιοπληροφορικής και κυριότερα της γενετικής. Ας ευχηθούµε η λογική και η ηθική των µηχανικών να είναι παρούσα στις κρίσιµες αποφάσεις.
Βιβλιογραφία [EN 96] R. Elmasri, S.B. Navathe, Θεµελιώδεις Αρχές Συστηµάτων Βάσεων εδοµένων Τόµος Α, ίαυλος, Αθήνα, 1996. [EN 96] R. Elmasri, S.B. Navathe, Θεµελιώδεις Αρχές Συστηµάτων Βάσεων εδοµένων Τόµος Β, ίαυλος, Αθήνα, 1996. [FLA 99] David Flanagan, JAVA in a nutshell A Desktop Quick Reference, O Reilly, Sebastopol, CA, 1999. [SEI 01] Claude Seidman, Data Mining with Microsoft SQL Server 2000, Microsoft Press, Redmond, Washington, 2001. [IJ 01] Marc Israel, J. Steven Jones, SQL Server 2000 Design, Sybex, Alameda, CA, 2001. [WWH + 01] Dake Wang, Xiangyun Wang, Vasant Honavar and Drena L. Dobbs, Data Driven Generation of Decision Trees for Motif Based Assignment of Protein Sequences to Functional Families, Iowa State University, Ames, IA, 2001. [ΜΣΚ 01] Περικλής Α. Μήτκας, Ανδρέας Λ. Συµεωνίδης, ιονύσης. Κεχαγιάς, Gen Miner: Προετοιµασία γενετικών δεδοµένων για την εύρεση και το διαχωρισµό λειτουργικών οικογενειών µε βάση την πρωτεϊνική αλυσίδα, ΤΗΜΜΥ Α.Π.Θ., Θεσσαλονίκη, 2001 [BAI 99] Amos Bairoch, Prosite: A dictionary of protein sites and patterns User Manual, Swiss Institute of Bioinformatics, Geneva, 1999 [ΣΥΜ 01] Ανδρέας Λ. Συµεωνίδης, GEN_MINER: Instruction Manual, ΤΗΜΜΥ Α.Π.Θ., Θεσσαλονίκη 2001 [URL01] http://www.expasy.org/ [URL02] http://www.cs.waikato.ac.nz/ml/ [URL03] http://www.sciencenews.gr [URL04] http://www.ebi.ac.uk/index.html [URL05] http://java.sun.com [URL06] http://www.microsoft.com
Παράρτηµα Α. Οδηγός χρήσης GenTool Α1. Εισαγωγή Σε αυτό το παράρτηµα, παρουσιάζεται ο ορθός τρόπος χρήσης του Gen Tool και βρίσκουν απάντηση κάποια συνήθη προβλήµατα που µπορεί να παρουσιαστούν κατά τη λειτουργία του. Α2. ηµιουργία της βάσης δεδοµένων Gen Database Για να µπορέσουµε να χρησιµοποιήσουµε το Gen Tool, είναι απαραίτητη η ύπαρξη µιας βάσης δεδοµένων ονόµατι Gen Database. Η δηµιουργία αυτής της βάσης, είναι εξαιρετικά απλή µε τη χρήση των αρχείων Create_All_Procedures.sql Create_All_Tables.sql (Πηγαίος Κώδικας VII. Create_All_Tables procedure) που βρίσκονται στο συνοδευτικό CD του συγγράµµατος. Μετά την εκτέλεση των παραπάνω ερωτηµάτων SQL και τη δηµιουργία των κατάλληλων πινάκων και διαδικασιών, πρέπει να εκτελεστούν οι διαδικασίες new_prosite_table (Πηγαίος Κώδικας V. new_prosite_table) και All_Classes (Πηγαίος Κώδικας VI. all_classes_proc). Αυτές, δηµιουργούν τους αντίστοιχους πίνακες, οι οποίοι είναι απαραίτητοι για την εκτέλεση των υπόλοιπων διαδικασιών και την ορθή λειτουργία του προγράµµατος. Αξίζει σε αυτό το σηµείο να υπογραµµίσουµε ότι για να µπορέσει να λειτουργήσει η Gen Database, είναι απαραίτητη η µεταφορά των τριών αρχείων που αποτελούν την βάση δεδοµένων prosite, µε τη χρήση του DTS. Α3. ηµιουργία δέντρου αποφάσεων Για να δηµιουργήσουµε το δέντρο αποφάσεων, ακολουθούµε τα παρακάτω βήµατα: 1. Κατά την εκκίνηση του προγράµµατος, εµφανίζεται το παράθυρο της εικόνας ΙΙΙ (βλ. Παράρτηµα Β, ιεπαφή 3. Αρχική διεπαφή σύνδεσης) στο οποίο αρχικά επιλέγουµε το όνοµα του SQL Server που θα χρησιµοποιήσουµε, το όνοµα του χρήστη που έχει πλήρη δικαιώµατα στη βάση δεδοµένων Gen Database καθώς και τον κωδικό εισόδου γι αυτόν τον χρήστη. Κάνουµε κλικ στο πλήκτρο OK και αν τα δεδοµένα εισόδου
Παράρτηµα Α. Οδηγός χρήσης GenTool 82 είναι σωστά, το πρόγραµµα εκκινεί. Με το πλήκτρο Cancel, η εφαρµογή κλείνει. 2. Μετά την εκκίνηση του προγράµµατος, το παράθυρο που παρουσιάζεται στην οθόνη µας, είναι αυτό της διεπαφής 1 (βλ. Παράρτηµα Β, ιεπαφή 1. Καρτέλα επεξεργασίας δεδοµένων). Εκεί, µε τα πλήκτρα που βρίσκονται στην κορυφή της καρτέλας, µπορούµε να επιλέξουµε όλες τις κλάσεις µοτίβα, µε το πλήκτρο All, καµία µε το πλήκτρο None, ή ακόµη να αντιστρέψουµε την επιλογή µας µε το πλήκτρο Invert. Επιλεγµένες κλάσεις, θεωρούνται αυτές οι οποίες έχουν τσεκαρισµένο το πεδίο Selected δίπλα στο όνοµά τους. 3. Στη συνέχεια, αφού έχουµε αποφασίσει ποιες κλάσεις θα συµπεριλάβουµε και τις έχουµε επιλέξει, κάνουµε κλικ στο πλήκτρο Update έτσι ώστε να ανανεωθούν οι απαραίτητοι πίνακες στη βάση. Αν δεν πιέσουµε το πλήκτρο Update το πλήκτρο Start δεν µπορεί να εκκινήσει τη διαδικασία. 4. Επιλέγουµε αν επιθυµούµε να εκκινήσει το πρόγραµµα WEKA και ανάλογα τσεκάρουµε το αντίστοιχο κιτίο επιλογής. Σε περίπτωση που ξεχάσουµε να το κάνουµε αυτό, µας δίνεται η δυνατότητα να εκτελέσουµε εκ των υστέρων το πρόγραµµα ανάλυσης δεδοµένων WEKA, µε το πλήκτρο Run WEKA. Η εφαρµογή διαθέτει επεξηγήσεις όλων των πλήκτρων (tool tips). Για να τις εµφανίσετε, αρκεί να αφήσετε τον δείκτη του ποντικιού σας επάνω στα πλήκτρα για ελάχιστα δευτερόλεπτα. 5. Στο κάτω µέρος της πρώτης καρτέλας ( ιεπαφή 1. Καρτέλα επεξεργασίας δεδοµένων) καταγράφονται όλα τα συµβάντα και λάθη που πραγµατοποιούνται από το πρόγραµµα. Α4. ηµιουργία σετ ελέγχου Η δηµιουργία των σετ ελέγχου, πραγµατοποιείται από τη δεύτερη καρτέλα, «Generate Data Sets» ( ιεπαφή 2. Καρτέλα δηµιουργίας DATA Set). Εκεί, για να δηµιουργηθούν τα Data Sets, πρέπει να ακολουθηθούν τα παρακάτω βήµατα:
Παράρτηµα Α. Οδηγός χρήσης GenTool 83 1. Εκτέλεση της συνάρτησης Populate list µε την πίεση του αντίστοιχου πλήκτρου. Μετά την εκτέλεση της συνάρτησης, θα εµφανιστούν στη λίστα στο αριστερό τµήµα της καρτέλας, όλες οι πρωτεΐνες των οποίων τα στοιχεία είναι διαθέσιµα στη βάση δεδοµένων. 2. Στη συνέχεια επιλέγουµε τις πρωτεΐνες που επιθυµούµε να περιέχονται στο σετ ελέγχου και... 3. Πιέζουµε το πλήκτρο δηµιουργίας των Data Sets «Create files» που επιθυµούµε, ανάλογα µε το σύστηµα που θα χρησιµοποιήσουµε στη συνέχεια για την εξόρυξη δεδοµένων και περιµένουµε µέχρι να εµφανιστεί το µήνυµα επιβεβαίωσης «Files created». Το πρόγραµµα, θα δηµιουργήσει δύο αρχεία. Το ένα θα περιέχει όλες τις πρωτεΐνες που έχει επιλέξει ο χρήστης, ενώ το άλλο θα περιέχει όλες τις πρωτεΐνες που εµφανίστηκαν στη λίστα, πλην των πρωτεϊνών που έχει επιλέξει ο χρήστης. Για να δηµιουργήσετε ένα καινούριο αρχείο εκπαίδευσης πρέπει να επανεκκινήσετε την εφαρµογή.
Παράρτηµα Β. Εικόνες διεπαφών ιεπαφή 1. Καρτέλα επεξεργασίας δεδοµένων
Παράρτηµα B. Εικόνες διεπαφών 85 ιεπαφή 2. Καρτέλα δηµιουργίας DATA Set
Παράρτηµα B. Εικόνες διεπαφών 86 ιεπαφή 3. Αρχική διεπαφή σύνδεσης