Neurale netværk til identifikation og klassifikation af katalytiske proteiner - et case study



Relaterede dokumenter
Danmarks Tekniske Universitet

Proteiners byggesten er aminosyrer

Henrik Bulskov Styltsvig

Proteiner. Proteiner er molekyler der er opbygget af "aminosyrer",nogle er sammensat af få aminosyrer medens andre er opbygget af mange tusinde

Appendiks 6: Universet som en matematisk struktur

DANMARKS NATIONALBANK

BIOTEKNOLOGI HØJT NIVEAU

katalysatorer f i g u r 1. Livets undfangelse på et celluært plan.

Fraktaler Mandelbrots Mængde

Simulering og forudsigelse af strukturelle foldninger i proteiner vha. en biologisk orienteret evolutionær algoritme

Side 1 af 14. Eksamen: Bioinformatik It og Sundhed 27 Jan 2011 kl 9-13

Side%1%af%14% Eksamen: Bioinformatik It og Sundhed 27 Jan 2011 kl 9-13

Enzymkemi H. C. Ørsted Ungdomslaboratorium Kemisk Institut Københavns Universitet august 2001

Lagervisning. Dina Friis, og Niels Boldt,

Boolsk algebra For IT studerende

DM13-1. Obligatorisk opgave E.05. Jacob Aae Mikkelsen

Pointen med Funktioner

at du trænes i at genkende aminosyrer i en simpel proteinstruktur (pentapeptid = lille protein bestående af 5 (penta) aminosyrer)

Fig. 1 Billede af de 60 terninger på mit skrivebord

Intra- og intermolekylære bindinger.

Afstande, skæringer og vinkler i rummet

På grund af reglerne for copyright er det ikke muligt at lægge figurer fra lærebøger på nettet. Derfor har jeg fjernet figurerne fra slides ne, men

Danmarks Tekniske Universitet

Proteiner: en introduktion. Modul 1; F13 Rolf Andersen, 18/2-2013

18 Multivejstræer og B-træer.

Afstande, skæringer og vinkler i rummet

Bilag 7 Analyse af alternative statistiske modeller til DEA Dette bilag er en kort beskrivelse af Forsyningssekretariatets valg af DEAmodellen.

EA3 eller EA Cube rammeværktøjet fremstilles visuelt som en 3-dimensionel terning:

Bioinformatik Open Source Software i biologiens tjeneste

Opgave: BOW Bowling. Rules of Bowling. danish. BOI 2015, dag 1. Tilgængelig hukommelse: 256 MB

Ekstraordinær re-eksamen 2015

AI is not ROBOTS

INTRODUKTION TIL DIAGRAMFUNKTIONER I EXCEL

How to do in rows and columns 8

Boolsk algebra For IT studerende

af integrationsrådenes høringsret og økonomiske midler

Egenskaber ved Krydsproduktet

Er der flere farver i sort?

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

En statistikstuderendes bekendelser Søren Wengel Mogensen

Forskningsnyheder om Huntingtons Sygdom På hverdagssprog Skrevet af forskere. Til det globale HS-fællesskab Ofte stillede spørgsmål, januar 2011

Gymnasieøvelse i Skanning Tunnel Mikroskopi (STM)

Periodiske kædebrøker eller talspektre en introduktion til programmet periodisktalspektrum

Velkommen. Præsentation

Skriftlig eksamen i samfundsfag

Hassansalem.dk/delpin User: admin Pass: admin BACKEND

Avisforside. Vi har skrevet en avis om studier ved Aarhus Universitet

Påstand: Et foster er ikke et menneske

Tal i det danske sprog, analyse og kritik

DKAL Snitflader REST Register

Matema10k. Matematik for hhx C-niveau. Arbejdsark til kapitlerne i bogen

Bilag 1. Om læsning og tolkning af kort udformet ved hjælp af korrespondanceanalysen.

Theory Danish (Denmark) Ikke-lineær dynamik i elektriske kredsløb (10 point)

Studieretningsprojekter i machine learning

Michael Jokil

Emneopgave: Lineær- og kvadratisk programmering:

Klasse 1.4 Michael Jokil

Hvordan afspilles/vises materialet i LARM.fm

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Matematik i AT (til elever)

Arealet af en trekant Der er mange formler for arealet af en trekant. Den mest kendte er selvfølgelig

BIOTEKNOLOGI HØJT NIVEAU

Byggeriets Evaluerings Center

LEKTION 4 MODSPILSREGLER

VisiRegn: En e-bro mellem regning og algebra

Oprids over grundforløbet i matematik

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Egenskaber ved Krydsproduktet

Reaktionskinetik - 1 Baggrund. lineære og ikke-lineære differentialligninger. Køreplan

Broer, skak og netværk Carsten Thomassen: Naturens Verden 10, 1992, s

Funktionsterminologi

Personaleledelse. Skab det bedste hold. Husk ros og skulderklap

Fraktaler. Mandelbrots Mængde. Foredragsnoter. Af Jonas Lindstrøm Jensen. Institut For Matematiske Fag Århus Universitet

Side 1 af 13. Eksamen: Bioinformatik It og Sundhed 27 Jan 2011 kl 9-13

Undersøgelse af karakterudviklingen på de gymnasiale uddannelser

Hvordan gør de professionelle?

Brugergrænseflader i VSU

1. Hvad er kræft, og hvorfor opstår sygdommen?

Hvilke overvejelser bør materialeproducenten gøre om produktdata?

Hensigten har været at træne de studerende i at dele dokumenter hvor der er mulighed for inkorporering af alle former for multimodale tekster.

IT Support Guide. Opsætning af netværksinformationer i printere

Prosodi i ledsætninger

Bedre adgang til udbud for små og mellemstore virksomheder

Matematik, maskiner og metadata

10 Vigtigste SEO Ranking Faktorer

1. Installere Logger Pro

Styringsteknik. Et projekt i faget styringsteknik. En rapport af Rune Zaar Østergaard

1. BAGGRUNDEN FOR UNDERSØGELSEN...

OPQ Profil OPQ. Rapport om følelsesmæssig intelligens. Navn Sample Candidate. Dato 23. oktober

Undervisningsmiljøvurdering

kollegiekokkenet.tmpdesign.dk Side 1

Små virksomheders andel af offentlige

SmartFraming Et vindue til nationale sundhedssystemer. Version 3.0

TAGISOLERING BRUGERVEJLEDNING (VERSION 0.9.2)

Køreplan Matematik 1 - FORÅR 2005

Noter til Perspektiver i Matematikken

It-sikkerhedstekst ST9

Transkript:

Neurale netværk til identifikation og klassifikation af katalytiske proteiner - et case study Projekt udarbejdet af: Glennie Helles Datalogisk vejleder: Prof. Peter Johansen

Indholdsfortegnelse 1 INDLEDNING...4 1.1 Baggrund...4 1.2 Problemformulering...4 1.3 Afgrænsning...5 1.4 Læsevejledning...6 2 ANALYSE...7 2.1 Biokemisk baggrund...7 2.1.1 Proteinernes byggesten...7 2.1.2 Protein-strukturer...8 2.1.3 Protein-grupper...9 2.1.4 Enzymer...9 2.2 Kravspecifikation...11 3 METODE...12 3.1 Neurale netværk...12 3.1.1 Biologisk baggrund og terminologi...12 3.1.2 Oversigt over grundelementerne...14 4 DESIGN...16 4.1 Datarepræsentation...16 4.1.1 Detaljeret design af datarepræsentation...17 4.1.2 Håndtering af variabel inddata-længde...19 4.1.3 Afgørelse af kategori i forbindelse med begrænsningsmodellen...21 4.2 Arkitektur...22 4.2.1 Overordnede arkitekturdesign...22 4.2.2 Detaljeret arkitekturdesign...24 4.2.3 Arkitekturoptimering...30 4.3 Aktiveringsfunktioner...30 4.3.1 Valg af aktiveringsfunktion...31 4.4 Optræning af netværket...32 4.4.1 Valg af træningsalgoritme...32 4.4.2 Detaljeret design af træningsalgoritme...34 4.4.3 Detaljeret design af træningssæt...34

4.5 Applikation...35 4.5.1 Konfigurerbar applikation...35 4.5.2 Brugerapplikationen...36 4.6 Implementationsdesign...36 4.6.1 Neurale netværk...36 4.6.2 Applikation...41 4.6.3 Samlet klassediagram...42 5 IMPLEMENTATION...44 5.1 Ændringer til implementationsdesignet...44 5.2 Afprøvning...45 5.2.1 Intern afprøvning...45 5.2.2 Ekstern afprøvning...46 5.3 Brugevejledning...46 6 RESULTATBEHANDLING...48 6.1 Træningssæt...48 6.2 Træning...49 6.2.1 Træningslængde...49 6.2.2 Kantvægtenes startværdi...50 6.3 Resultater: enzym identifikation...51 6.3.1 Kvantitet...51 6.3.2 Kvalitet...51 6.4 Resultater: enzym klassifikation...52 6.4.1 Kvantitet...52 6.4.2 Kvalitet...53 6.4.3 Kombination af netværk...55 6.4.4 Det endelige system...57 6.5 Optimerings- og udvidelsesmuligheder...58 6.6 Samlet vurdering...59 7 KONKLUSION...61 8 LITTERATURLISTE...63 9 BILLAGSLISTE...64

1 Indledning Dette projekt omhandler brugen af neurale netværk til identifikation og klassifikation af den særlige form for proteiner, der kaldes for enzymer. Dette kapitel beskriver indledningsvist baggrunden for projektet, hvorefter problemformuleringen samt afgræsning af projektet følger. Kapitlet afsluttes med en kort læsevejledning. Læseren af dette projekt forventes bekendt med datalogiske begreber og metoder, men der forudsættes intet særligt biokemisk kendskab, idet de nødvendige begreber vil blive forklaret undervejs. 1.1 Baggrund Proteiner er noget, vi, som mennesker, primært genkender fra varedeklarationer som en energikilde, der sammen med fedt og kulhydrater, er essentiel for vores velbefindende. Proteiner tjener mange forskellige og livsvigtige formål i vores kroppe, men de opbygges af nogle byggesten, som mennesket ikke selv er i stand til at producere. Til gengæld kan vi nedbryde de proteiner, der indtages gennem føden, til byggestenene, og på den måde danne vores egne proteiner. Menneskets celler indeholder mange tusinde forskellige proteiner. For bedre at kunne overskue denne enorme mængde af proteiner klassificeres de normalt i henhold til deres ligheder, idet nogle proteiner ligner hinanden ved eksempelvis at interagere med de samme kemiske stoffer, have den samme effekt på deres omgivelser, eller på anden måde udvise en ensartet opførsel. Katalytiske proteiner også kaldet enzymer er et eksempel på en klasse af proteiner, der adskiller sig fra andre proteiner. Selv om alle enzymer deler en egenskab, der adskiller dem fra andre proteiner, adskiller de sig på mange andre måder indbyrdes fra hinanden. Et enzym klassificeres derfor også i forhold til andre enzymer. Klassificering af et protein som et enzym såvel som klassificering af enzymet i forhold til andre enzymer sker traditionelt på baggrund af de observationer, som forskellige mere eller mindre tidskrævende og kostbare forsøg giver anledning til. Neurale netværk er generelt kendte for deres evne til at genkende mønstre og klassificere data, og de har tidligere været anvendt til biokemisk klassificering indenfor eksempelvis forudsigelser af protein-strukturer. Automatisering af identifikation og klassifikation af enzymer synes derfor at være en oplagt problemstilling, hvor neurale netværk kunne assistere de klassiske metoder. 1.2 Problemformulering I dette projekt ønsker jeg at undersøge om det er muligt at udvikle et system, der, ved brug af neurale netværk, kan skelne enzymer fra andre proteiner, og klassificere enzymerne i henhold til de seks forskellige kategorier, der anvendes indenfor biokemien (se afsnit 2.1). Hvorvidt neurale netværk succesfuldt kan anvendes afhænger af om enzymerne udviser et generelt mønster, som et neuralt netværk kan lære at genkende. Jeg er opmærksom på, at et projekt som dette er forbundet med en nærværende risiko for, at der ganske enkelt ikke findes et mønster, men min indstilling til dette projekt er, at alle konklusioner, der kan drages, er interessante, og jeg betragter derfor projektet som værd at forsøge. 4

Projektet vil være opdelt i systemkonstruktion og resultatpræsentation, hvoraf systemkonstruktionen udgør størstedelen af projektet: Systemkonstruktion Systemkonstruktionen skal opdeles i en analysefase, en designfase og en implementationsfase. Analysefasen Analysen skal redegøre for den del af biokemien, der er relevant for at opnå en domæneforståelse, der muliggører konstruktionen af systemet. Domæne-forståelsen skal transformeres til konkrete systemkrav i form af en kravspecifikation. Desuden skal selve metodevalget behandles i denne fase. Analysen skal kunne anvendes som kravspecifikation i designfasen. Designfasen Designfasen skal først og fremmest finde frem til et konkret design af de(t) neurale netværk, som systemet skal baseres på herunder selve arkitekturen af netværket og repræsentationen af inddata. Designet af netværket skal overholde kravene fremsat i analysen. Da jeg vælger selv at implementere de(t) neurale netværk, skal designdelen desuden indeholde et implementationsdesign. Designet ønskes så fleksibelt som muligt, således at det kan bære ændringer af de centrale dele i de(t) neurale netværk. Da jeg ønsker, at implementere systemet i programmeringssproget Java, skal designet være objekt-orienteret. Implementationsfasen Denne fase skal primært omhandle selve implementationen af designet. Desuden skal den indeholde afprøvningen af applikationen, uden dog at forholde sig til de resultater applikationen giver anledning til. Resultatpræsentation Denne del skal dels redegøre for de træningsdata, det neurale netværk er baseret på, og dels for de resultater som applikationen giver anledning til. Slutteligt skal en samlet vurdering af systemet gives. 1.3 Afgrænsning Systemet er baseret på, at proteinernes sekundære strukturer (se afsnit 2.1), er kendte. Jeg vil således ikke behandle eller implementere neurale netværk, der forsøger at forudsige disse strukturer, men antage at man enten har et eksisterende system til dette, eller at man på anden vis har fundet frem til de pågældende strukturer. Ydermere vil systemet kun behandle proteiner, der har mindst 30 strukturer (se afsnit 4.1) Ikke alle enzymer er proteiner, men langt de fleste er, og jeg vil i dette projekt kun beskæftige mig med de enzymer, der er proteiner. Hvor jeg omtaler enzymer, vil det således kun være de katalytiske proteiner, der er omfattet. Da mit faglige formål med dette projekt er at stifte bekendtskab med neurale netværk, vil jeg ikke beskæftige mig med andre metoder til identifikation og klassifikation. Denne 5

afgrænsning finder jeg rimelig, idet neurale netværk hovedsageligt er kendte for deres enestående evne indenfor netop dette område. Hvis jeg skulle tage stilling til, om der fandtes andre og bedre metoder, ville der være behov for en større komparativ analyse af forskellige mulige metoder, hvilket ligger udenfor dette projekts rammer. I designet af de(t)neurale netværk vil jeg beskrive forskellige relevante metoder, der kan anvendes til at konstruere et netværk, men af hensyn til projektets omfang vil jeg ikke dække alle de mulige metoder. Der findes adskillige parametre, der kan justeres på i forbindelse med neurale netværk, og hvordan, disse parametre er sat, kan have afgørende indflydelse på, hvor godt et netværk præsterer. Da kombinationsmulighederne dog er enorme, har jeg valgt at afgrænse mig fra at forsøge at finde en optimal konfiguration. Uanset hvilket resultat dette projekt medfører, kan det således kun betragtes som en indikator og ikke en endegyldig konklusion om neurale netværks anvendelse i forbindelse med den valgte problemstilling. 1.4 Læsevejledning Strukturen for projektet afspejles i rapporten, der således er inddelt i syv kapitler, hvoraf nuværende kapitel tæller som det første. Kapitel 2 indeholder analyse af de krav, der stilles til systemet for at problemet kan betragtes succesfuldt løst, mens kapitel 3 giver en kort gennemgang af selve metoden der skal anvendes; nemlig neurale netværk. Kapitel 4 og 5 indeholder hhv. design og implementation af de neurale netværk, og kapitel 6 præsenterer og forholder sig til de resultater, som systemet giver. Der afsluttes med en samlet konklusion i kapitel 7. Jeg bestræber mig generelt på at anvende danske ord, men da meget litteratur indenfor såvel biokemien som datalogien kun forefindes på engelsk, vil jeg de steder, hvor jeg anser danske oversættelser for meningsforstyrrende, beholde de engelske ord. Engelske ord samt nye begreber vil altid blive anført i kursiv, når de introduceres. 6

2 Analyse Det er vigtigt at have en klar forståelse af, hvilke problemstillinger et system skal kunne løse, og i dette kapitel vil jeg derfor analysere den biokemiske baggrund for dette projekt. Hensigten med kapitlet er således at opnå en tilstrækkelig forståelse af domænet og dermed kunne formulere en kravspecifikation for systemet. 2.1 Biokemisk baggrund Dette afsnit giver en gennemgang af den relevante biokemiske baggrund. Formålet med afsnittet er at opnå en tilstrækkelig forståelse af domænet for således at kunne identificere de krav en bruger forventes at have til systemet. 2.1.1 Proteinernes byggesten Proteiner er forholdsvis store og meget komplekse molekyler. Deres byggesten kaldes for aminosyrer, og de fleste proteiner består af mellem 100 og 10.000 aminosyrer [1]. Der findes 20 forskellige aminosyrer, der kan optræde i et protein, og Tabel 1 herunder giver en oversigt over disse samt de 3- og 1-bogstavskoder, der som oftest anvendes til at betegne dem. Aminosyrer Navn 3-bogstavskode 1-bogstavskode Alanin Ala A Cystein Cys C Asparaginsyre Asp D Glutaminsyre Glu E Fenylalanin Phe F Glycin Gly G Histidin His H Isoleusin Ile I Lysin Lys K Leucin Leu L Methionin Met M Asparagin Asn N Prolin Pro P Glutamin Gln Q Arginin Arg R Serin Ser S Threonin Thr T Valin Val V Tryptofan Trp W Tyrosin Tyr Y Tabel 1 Tabel over de 20 aminosyrer der indgår i proteiner. De er her angivet sammen med deres hhv. 3- og 1-bogstavskoder. Et protein syntetiseres ved, at aminosyrerne en efter en bliver hægtet sammen i en kemisk binding, så der dannes en lang kæde, der herefter folder sig til en unik tredimensionel struktur. Denne lange kæde kaldes for proteinets aminosyresekvens eller dets primære struktur. 7

Alle aminosyrer består af en basisenhed og en sidekæde, hvor basisenheden er den samme for alle aminosyrer, mens sidekæden er forskellig fra aminosyre til aminosyre som illustreret på Figur 1 herunder. Figur 1 Eksempel på to forskellige aminosyrer. Aminosyrerne adskiller sig på deres sidekæder, mens basisenheden, der her er indrammet i en kasse, er fælles. Det er aminosyrernes basisenheder, der hægtes sammen under syntetisering, og da bindingen mellem basisenhederne er en langt stærkere kemisk binding end de bindinger, der holder proteinet i dets tredimensionelle struktur, kaldes de sammenhægtede basisenheder for proteinets back-bone. 2.1.2 Protein-strukturer I sine naturlige omgivelser folder kæden af aminosyrer sig til sin tredimensionelle struktur, og proteinet bliver dermed funktionelt. Selv om den tredimensionelle struktur for et protein adskiller sig fra andre proteiner, folder store dele af et protein sig i nogle delstrukturer, der er fælles på tværs af proteinerne. Disse delstrukturer kaldes for proteinets sekundære strukturer. De mest almindelige sekundære strukturer er α-helicer og β-strands, hvor sidstnævnte som regel ordner sig i såkaldte β-sheets (se Figur 2). Der findes en række andre sekundære strukturer, såsom 3 10 -helicer, poly-pro helicer, π-helicer, β-barrels, β-bulges, turns og hairpins. Jo flere sekundære strukturer der er kendte, desto nemmere bliver det at forudsige den komplette tredimensionelle struktur, men mange sekundære strukturer er vanskelige at identificere, og i dette projekt skal der derfor kun inkluderes de almindelige α-helicer og β- strands. En α-helix dannes som regel af mellem 10 og 15 aminosyrer, der er placeret umiddelbart efter hinanden på proteinets back-bone, men i enkelte α-helicer kan der indgå op til 50 aminosyrer. β-stands er som regel kortere, idet de dannes af mellem 3-10 på hinanden følgende aminosyrer. 8

Figur 2 Ovenstående er en figur af proteinet glukose oxidase. De to mest almindelige sekundære strukturer, a-helicer og b-sheets, er angivet som hhv. snoninger og pile. 2.1.3 Protein-grupper Der er stor variation mellem proteinernes rolle i cellerne. Nogle sørger eksempelvis for at transportere kemiske stoffer eller andre proteiner rundt i cellen, nogle indgår i selve konstruktionen af cellen, nogle indgår i immunsystemet, andre katalyserer biokemiske reaktioner, etc. Nogle proteiner har store strukturmæssige ligheder, men er dog stadig forskellige. F.eks. kan et protein, A, være længere end et andet protein B, men protein A kan fortsat have en stor sektion i eksempelvis midten, der er næsten identisk med protein B. Biokemisk vil man derfor betegne de to proteiner som relaterede, og der er større sandsynlighed for at de hører til inden for den samme kategori af proteiner. Identificerede og sekvenserede proteiner registreres i forskellige databaser, der for de flestes tilfælde er tilgængelige via Internettet. En af disse er "Protein Data Bank" (PDB) [1], hvor proteinerne opdeles i forskellige kategorier. Én af disse kategorier er de katalytiske proteiner - enzymerne. PDB indeholder struktur-information for i alt 18,623 proteiner, hvoraf de 8390 er enzymer 1. 2.1.4 Enzymer Under fysiologiske betingelser forløber mange biokemiske reaktioner utrolig langsomt, og det kan tage timer, før en reaktion er fuldendt [3]. Eksempelvis består levende organismers metabolisme, dvs. omsætning af næringsstoffer, af mange af sådanne biokemiske reaktioner, hvilket umiddelbart forekommer uhensigtsmæssigt, da organismers overlevelse afhænger af en hurtig og effektiv metabolisme. I levende organismer findes der imidlertid enzymer, der kan mangedoble hastigheden for disse reaktioner, så de forløber med en hastighed, der er brugbar. Selv om enzymer kan have meget stor indvirkning på en kemisk reaktion, er enzymet selv uændret af processen. De molekyler, et enzym binder, kaldes for substrater, og den del af substraterne, som de påvirker, kaldes for substratets funktionelle gruppe. Alle organiske molekyler har funktionelle grupper, der består af den lille gruppe af atomer, der giver molekylet dets kemiske egenskab. 1 Databasen opdateres jævnligt og tallene her stammer fra 7. juli, 2002. 9

Enzymer fungerer ved at binde et eller flere substrater i en region af enzymet, der kaldes for det aktive site. Der er som regel adskillige aminosyrer, der hjælper med at binde substraterne, men kun ganske få aminosyrer indgår i selve det aktive site. Hvordan enzymer øger reaktionshastigheden for en biokemisk reaktion, vil jeg ikke beskrive nærmere her, da det ikke er relevant for dette projekt, men yderligere information findes i [3] og [4]. De fleste enzymer består af forholdsvis lange aminosyresekvenser. Sekundære strukturer som α-helices og β-sheets optræder i større eller mindre grad hos alle enzymer, ligesom det er tilfældet for proteiner generelt. Enzymerne opdeles indbyrdes i seks forskellige hovedkategorier i henhold til hvilke typer af reaktion, de katalyserer: 1) Oxidoreductaser: katalyserer udveksling af elektroner mellem substrater 2) Transferaser: katalyserer overførelse af funktionelle grupper mellem molekyler 3) Hydrolaser: katalyserer brydningen af en kemisk binding ved tilføjelse af vand (H 2 O) 4) Lyaser: katalyserer brydninger af kemiske bindinger ved at tilføje eller fjerne kemiske grupper 5) Isomeraser: katalyserer ændringer i substratets intramolekylære orden 6) Ligaser: katalyserer den kemiske binding af to substrater Disse seks kategorier opdeles desuden yderligere hver især i mellem fire og ni underkategorier, der definerer deres funktion i henhold til hvilke kemiske grupper, de påvirker. Selv disse underkategorier bliver opdelt. I PDB refereres de seks enzymkategorier som E.C.1 E.C.6 (Enzyme Classification), og såfremt der refereres til en af underkategorierne angives dette blot ved brug af endnu et suffiks, således at underkategori 5 til enzymkategori 1 får betegnelsen E.C.1.5. Nedenstående Tabel 2 giver en oversigt over antallet af kendte enzymer registreret i PDB. Hver enzymkategori havde ved dette projekts start mellem 5 og 18 underkategorier: Antal kendte strukturer i PDB 2 Undergruppebetegnelse Hovedkategori E.C.1 1395 E.C.1.1 - E.C.1.18 Hovedkategori E.C.2 1825 E.C.2.1 - E.C.2.8 Hovedkategori E.C.3 3965 E.C.3.1 - E.C.3.8 Hovedkategori E.C.4 609 Hovedkategori E.C.5 373 E.C.4.1 - E.C.4.4, E.C.4.6, E.C.4.99 E.C.5.1 - E.C.5.5, E.C.5.99 Hovedkategori E.C.6 223 E.C.6.1 - E.C.6.5 Tabel 2 Undergrupperinger under de seks enzymkategorier. Der eksisterer flere undergrupper end dem der er angivet her, men jeg har her valgt kun at medtage dem, hvor der findes kendte strukturer i PDB. 2 Tallene er hentet den 7. Juli 2002 10

2.2 Kravspecifikation På baggrund af om hvilket sekundære strukturer, der forekommer i et protein, og hvor i proteinet de forekommer, skal systemet kunne klassificere proteinet enten som et enzym eller som et ikke-enzym. Såfremt det er et enzym, skal enzymet kunne klassificeres blandt de seks enzymkategorier E.C.1 E.C.6. Det skal være forholdsvist enkelt at angive de sekundære strukturer, idet de skal angives med strukturtype, samt hvilket sekvensinterval de spænder over. Systemet skal tage højde for eventuelle udvidelser i form af mere specifik information såsom andre sekundære strukturer. Ligeledes skal der være mulighed for at kunne opdatere systemet med nye data, i forbindelse med identifikation af nyfundne enzymer. Sammen med resultaterne, skal systemet angive, hvor sikkert resultatet er i form af procentmæssige sandsynligheder. Systemet vil herefter gå under navnet EnzIC, der står for Enzyme Identification and Classification. 11

3 Metode Der findes flere metoder, der kan anvendes til at konstruere et system, der overholder kravene fremsat i kravspecifikationen i forrige kapitel, og såfremt opgaven var valgt af kommerciel interesse, ville en gennemgang og vurdering af alle disse metoder være et naturligt næste skridt. Min årsag, for at vælge et projekt som dette, er dog hovedsageligt min faglige interesse i anvendelsen af neurale netværk, som er én af de mulige metoder, der kan benyttes i denne forbindelse. Jeg vil således i dette projekt kun se nærmere på neurale netværk, idet jeg har valgt at afgrænse mig fra alle øvrige metoder. Hensigten med dette kapitel er at give en kort generel introduktion til neurale netværk i form at en beskrivelse af den biologiske baggrund og anvendte terminologi samt et hurtigt overblik over grundelementerne i neurale netværk. Næste kapitel går i detaljer med de enkelte elementer i forbindelse med det konkrete systemdesign. 3.1 Neurale netværk Udviklingen og brugen af kunstige neurale netværk 3 betragtes som det første arbejde indenfor det område, der i dag kaldes for kunstig intelligens. De første neurale netværk blev designet i 1943 af Warren McCulloch og Walter Pitts, der indså, at det var muligt at repræsentere basale logiske funktioner ved at kombinerer knuder og kanter i samme stil som logiske kredsløb. Senere i 1949 demonstrerede psykologen Donald Hebb, at neurale netværk ikke blot var i stand til at løse matematiske funktioner, men at de endvidere var i stand til at lære. Op gennem 50'erne og 60'erne var der generelt store forventninger til udviklingen af kunstig intelligens, og neurale netværk blev intenst studeret. Langt de fleste kræfter blev brugt på de mest simple netværk, der kaldes for perceptroner, hvilket desværre viste sig at blive en af årsagerne til, at forskningsområdet mere eller mindre blev nedlagt 1969, da Marvin Minsky 4 sammen med Papert viste, at en perceptron ikke kunne beregne den boolske funktion, eksklusiv-eller (XOR). Herefter kom forskningsområdet først rigtig op og stå igen i 1980'erne, hvor man begyndte at fokusere på de mere komplekse netværk [6]. Siden hen er det bevist, at komplekse neurale netværk ikke blot er i stand til at repræsentere XOR-funktionen, men reelt kan repræsentere enhver beregnelig matematisk funktion [5][6]. Neurale netværk er dog især kendte for deres evne til at klassificere inddata og genkende mønstre, og de anvendes derfor oftest til at løse den slags opgaver. Eksempelvis kan og bliver neurale netværk brugt til visse former for billedbehandling samt talegenkendelse, og indenfor biokemien bliver de med relativ stor succes brugt til at identificere sekundære strukturer ud fra et proteins aminosyresekvens. 3.1.1 Biologisk baggrund og terminologi Neurale netværk indenfor datalogien benævnes ofte kunstige neurale netværk for at understrege modsætningen til de biologiske neurale netværk, der eksempelvis findes i menneskets hjerne. Selvom biologiske neurale netværk er noget mere komplekse end kunstige neurale netværk, er der ingen tvivl om, at kunstige neurale netværk imiterer de 3 Kunstige neurale netværk forkortes under tiden til ANN, der står for Artificial Neural Networks. 4 Marvin Minsky byggede ironisk nok knap 20 år tidligere i 1951 den første neurale netværkscomputer 12

overordnede neurologiske principper, både når det gælder organisering og funktion. Terminologien, der anvendes til at beskrive kunstige neurale netværk, er derfor også lånt fra biologien. Figur 3 herunder viser et eksempel på et simpelt biologisk neuralt netværk. Figur 3 Biologisk neuralt netværk. En neuron, som en enkelt nervecelle kaldes, kan forbinde til flere tusinde andre neuroner, ligesom mange tusinde forskellige neuroner kan forbinde til den samme neuron. De såkaldte Pukinje-celler i hjernen modtager eksempelvis hver især ikke færre end ca.150.000 forbindelser fra andre neuroner [17]. Hver enkel neuron er i stand til både at udsende og modtage elektriske signaler 5. Når en neuron starter genereringen af et elektrisk signal, siger man, at neuronen fyrer, og signalet, der udsendes som resultat af fyringen, opfattes af alle de neuroner, som neuronen forbinder til. Samtlige neuroner har en tærskelværdi for hvor kraftig en stimulering (elektrisk signal), der skal til, før de begynder at fyre. Når denne tærskelværdi overskrides, fyres én gang, uanset om stimuleringen var langt over tærskelværdien eller kun lige akkurat over tærskelværdien. Såfremt en neuron modtager et signal, der ligger under tærskelværdien, forbliver neuronen inaktiv og sender ikke signalet videre. Hvorvidt tærskelværdien nås eller ej afhænger for det første af hvor solid en forbindelse, der er mellem neuronerne. Neuroner, der aktiveres ofte, vokser og danner nye samt stærkere forbindelser til omkringlæggende neuroner, og de signaler, de efterfølgende udsender, bliver derfor kraftigere end ellers. For det andet har antallet af neuroner, der forbinder til en enkelt neuron, betydning, idet signaler, der modtages samtidig fra flere neuroner, bliver summeret og dermed opfattet som et kraftigere signal. I biologiske neuroner har frekvensen af signalerne også en vigtig betydning. Pga. den måde nerveceller transporterer elektriske signaler på, kan en neuron højst fyre 500 gange i sekundet uanset hvor kraftigt et signal, der modtages. Sædvanligvis aktiveres de dog højst op til 100 gange i sekundet [18]. Forskere har endnu ikke fastlagt betydningen af fyringsfrekvensen, men man har formodninger om, at det mønster, en fyringsfrekvens danner, også spiller en afgørende rolle i indlæringsprocesser. 5 Det elektriske signal dannes pga. koncentrationsforskelle af bestemte kemiske stoffer på hhv. yder- og indersiden af cellerne. 13

Forbindelser og kommunikation, som netop beskrevet, mellem neuronerne i hjernen giver (tilsyneladende) mennesket evnen til at løse mange komplekse opgaver. En af de vigtigste egenskaber er bl.a. hjernens evne til at generalisere og kunne se sammenhænge selv ud fra mangelfulde informationer. Det er disse evner, som kunstige neurale netværk ønsker at indfange. 3.1.2 Oversigt over grundelementerne Dette afsnit beskriver kort, hvordan hovedelementerne i kunstige neurale netværk hænger sammen med, og er inspireret fra, biologien beskrevet i forrige afsnit. I næste kapitel behandles disse elementer ud fra et datalogisk synspunkt i forbindelse med selve designet af EnzIC-systemet. Biologisk set er de tre vigtigste egenskaber ved et biologisk neuralt netværk, i forbindelse med indlæring, formentlig topologien, måden neuroner aktiveres på, samt neuronernes evne til at justere signalintensiteten over tid, som beskrevet i forrige afsnit. Det er antageligt også derfor, at alle kunstige neurale netværk, der skal lære, inkluderer netop disse tre elementer, i form af netværkets arkitektur, aktiveringsfunktion og optræning 6. I datalogisk terminologi svarer en neuron til en knude med tilhørende orienterede kanter, mens elektriske signaler svarer til vægten af disse kanter. Et kunstigt neuralt netværk er således essentielt blot en vægtet orienteret graf, og det ligner som sådan, med sine knuder og kanter, også et hvilket som helst andet datalogisk netværk. Fra biologien ved man, at topologien af en hjerne er vigtig for, hvor godt den fungerer, og man ved også, at topologien varierer i de forskellige områder af hjernen, alt afhængig af hvilke opgaver det pågældende område varetager. Forbindelser mellem neuroner i kunstige neurale netværk er ligeledes vigtig for, hvor godt det præsterer, og topologien varierer efter hvilke typer af opgaver, man ønsker at anvende dem til. Som beskrevet i forrige afsnit har en biologisk neuron to tilstande den er enten aktiv eller inaktiv. Hvis den er aktiv, bliver den ikke mere aktiv af at blive yderligere stimuleret. Dette princip simuleres ligeledes i mange men ikke alle kunstige neurale netværk. Som regel summeres vægtene fra de indgående kanter, hvorefter en aktiveringsfunktion beregner om neuronen aktiveres eller ej på baggrund af det samlede inddata. Undertiden har det vist sig hensigtsmæssigt at undlade princippet om en tærskelværdi, og dermed tillade at kunstige neuroner har forskellige grader af aktivitet, og aktiveringsfunktionen beregner i denne forbindelse snarere en aktiveringsværdi. Under alle omstændigheder udgør aktiveringsfunktionen endnu et essentielt element i kunstige neurale netværk. For neurale netværk forløber indlæringen eller træningen, som det kaldes meget på samme måde, som når en biologisk neuron aktiveres ofte og dermed vokser sig større og stærkere, eller omvendt sjældent aktiveres og dermed skrumper ind og bliver svagere. I modsætning til den menneskelige hjerne, der kontinuerligt lærer nye ting (og glemmer gamle), trænes kunstige neurale netværk som regel kun indledningsvist, hvorefter det fastfryses. 6 For simple netværk, der anvendes til at repræsentere forskellige matematiske funktioner, er optræning ikke nødvendigvis påkrævet. 14

Den store fordel ved neurale netværk, er, at de, ligesom menneskets hjerne, er tolerante overfor "støj" i inddata, således at inddata ikke nødvendigvis skal være identisk med et eksempel fra træningsdata for at kunne genkendes, men kan nøjes med blot at have dele tilfælles med træningsdata. Figur 4 herunder viser et eksempel på, hvordan forvrænget inddata kan klassificeres af et neuralt netværk: Træningssæt æt...#......#.....#.#...#...#.#.. #.#..###.. ###.#...#. #.#.#...#. #.# #...# #...# Afprøvning..@#.@..@.#@.. @.#@#.@.#...o.#@. #.#.@##o.. ### @#.@.#@ #.#.#@..o. #.# #@..@.# o..@..o #####.. #...#. #...# ##. #...#. #.# #####.. ##. #...#. #.# #...# ##. #...#. #####.. o##o#.. #.@..o. #@..@.# ##. o..@.o. #.# ##o##@. ##. #@..@o. #.# o..@..o ##. #.@..o. #o##o....###...#...#. #...# ### #... #.. #... #.. #... #.. #...# ###.#...#...###.. @.#o#.@.#@..o. #@..@.# ### o..@..@ #.. #.@..@. #.. #@..@.. #.. o..@..o ###.#@..o..@##o.. Figur 4 Illustration af neurale netværks tolerance overfor støj i input. Øverst ses træningssættet, og nederst vises hvordan netværket er i stand til at klassificere input hvor en ⅓ af felterne er sat forkert. @ angiver at et tegn er tilføjet, mens O angiver at et tegn mangler. Da neurale netværk er kendetegnet ved disse grundelementer, skal de(t) netværk, der skal bruges til at løse min problemstilling, indeholde alle grundelementerne. Det efterfølgende kapitel præsenterer yderligere detaljer om disse grundelementer. 15

4 Design Designet indeholder tre hoveddele; nemlig design af de(t) neurale netværk der skal anvendes af systemet, design af applikationer der skal anvendes til at interagere med de(t) neurale netværk samt et konkret implementationsdesign, der skal anvendes til under implementationsfasen. Jeg er opmærksom på, at der findes standard-implementationer af neurale netværk, men jeg har valgt selv at implementere dem. Dette skyldes dels, at jeg ønsker at opnå en dybdegående forståelse af neurale netværk, som jeg mener bedst erhverves ved at implementere dem fra bunden, og dels ønsker jeg de faglige erfaringer, der ligger i såvel designet som implementationen af neurale netværk. Designet af de(t) neurale netværk behandles i afsnit 4.2 til og med 4.4. Da datarepræsentationen har betydning for arkitekturen, behandles dette indledningsvist i afsnit 4.1. Afsnit 4.5 behandler designet af brugerapplikationerne, mens afsnit 4.6 præsenterer et objekt-orienteret implementationsdesign. Som det blev beskrevet i afsnit 3.1.2, findes der nogle grundelementer, der er kendetegnende for neurale netværk, og i behandlingen af disse vil jeg se nærmere på, hvordan grundelementerne kan realiseres på en måde, der er hensigtsmæssig for den valgte problemstilling, og således finde frem til det endelige design. Der findes for alle grundelementerne flere forskellige standardmetoder, der kan anvendes til realiseringen, og det skal understreges, at det ikke er mit mål at finde nye realiseringsmetoder, men snarere at vurdere hvilke af de allerede eksisterende metoder, der vil passe bedst. Jeg vil lade det fremgå klart, hvorfor jeg vælger en standardmetode over andre. Det er ikke lykkedes mig at finde litteratur, der beskriver eventuelle tidligere forsøg på at løse min problemstilling ud fra sekundære strukturer ved brug af neurale netværk, mender forelægger en del artikler om anvendelsen af neurale netværk til at løse andre og til dels lignende biokemiske problemstillinger. Undervejs i kapitlet vil jeg inddrage disse artikler og bruge dem som inspirationskilde og som baggrund for mine valg. 4.1 Datarepræsentation Der er nogle naturlige begrænsninger for selve datastrukturen for inddata, da inddata traditionelt altid repræsenteres som en talvektor, hvor hvert tal i vektoren svarer til inddata for én knude. Inddata kan angives enten som binære, bipolære eller kontinuere værdier (eng. continues numbers). Fordelen ved kontinuere værdier, i forhold til de to andre, er, at de kan indeholde mere information, men ulempen er til gengæld, at det kan være vanskeligere at træne netværket. Hvordan inddata repræsenteres for et givet problemstilling er særdeles vigtig, idet man skal sikre sig, at alle de egenskaber, der optræder i problemstillingen, og som man ønsker at netværket skal tage højde for, er indkodet på en hensigtsmæssig måde i inddata. Transformation af egenskaber til passende talværdier er for mange problemstillinger, heriblandt den problemstilling jeg har valgt, ikke triviel. Nogle af transformationsproblem- 16

erne genfindes dog i anden form for biokemisk klassificering vha. neurale netværk, og der er derfor nærliggende at kigge nærmere på, hvordan andre har valgt at løse disse problemer. 4.1.1 Detaljeret design af datarepræsentation Information om sekundære strukturer samt disses placering i proteinet giver anledning til at udlede forskellige egenskaber ved proteinet, som kunne formodes at være relevante i forbindelse med såvel identificering samt klassificering af proteinet; nemlig typer af strukturer, der forekommer, antallet af strukturer, rækkefølgen af strukturer samt evt. afstanden mellem strukturerne og længden af de enkelte strukturer. Datarepræsentationen skal derfor kunne indfange disse informationer. 4.1.1.1 Struktur-typen Til at repræsentere typen af strukturer, kunne en oplagt løsning være at bruge positive heltal, idet et 1-tal eksempelvis kunne betegne en α-helix, mens et 2-tal kunne betegne et β-sheet. Denne repræsentation gør det nemt at inkludere andre typer af strukturer, idet tallene 4, 5, 6..etc. blot kan tages i brug. Der er imidlertid et problem med denne repræsentation, som hænger nøje sammen med en naturlig egenskab ved tal. To tal kan nemlig ligge tæt på hinanden som f.eks. 1 og 2 eller langt fra hinanden som f.eks. 1 og 1000, mens det ikke giver mening at tale om at to forskellige struktur-typer kan være tættere eller længere fra hinanden. En α-helix er således ikke tættere på et β-sheet end på nogen andre strukturer. Det er således nødvendigt at finde en måde at repræsentere typerne på, som afspejler at alle typer af strukturer er lige forskellige. Da der umiddelbart er der to typer af strukturer, α-helicer og β-sheets, kunne en mulig løsning til dette problem være at bruge hhv. positive og negative tal til at angive typen. I henhold til kravspecifikationen skal designet dog være fleksible overfor ændringer i, hvor mange forskellige typer af sekundære strukturer klassificeringen skal baseres på, og løsningen med positive og negative tal er derfor ikke brugbar. Problemet med at finde en tal-repræsentation for forskellige mønstre, der er hverken mere eller mindre forskellige fra hinanden men blot forskellige, genfindes imidlertid også i forbindelse med anvendelsen af neurale netværk til forudsigelse af proteinstrukturer på baggrund af aminosyresekvens (herefter omtalt som proteinstruktur-klassificeringer). De 20 aminosyrer, der kan indgå i proteinet, er også blot forskellige fra hinanden og skal derfor repræsenteres på en måde, der ikke favoriserer en aminosyre med én talværdi over en aminosyre med en anden talværdi, blot fordi talværdierne er tættere på hinanden. For alle de proteinstruktur-klassificeringer som jeg har læst om, benyttes samme metode til at overkomme problemet. Inddata-laget til selve klassificeringsnetværket opbygges af flere mindre netværk, idet hvert af de mindre netværk repræsenterer én aminosyre. Da der er 20 forskellige aminosyrer, har hvert af de mindre netværk 20 inddata-knuder, og inddata gives som en binær vektor bestående af 19 nuller og ét ettal. Ettallets placering angiver, hvilken aminosyre, der repræsenteres. De mindre netværk, der hver repræsenterer én aminosyre, forbindes i et større netværk, der håndterer selve klassificeringen af en længere aminosyresekvens. Denne løsning, med at lade flere tal i vektoren angive typen i form af et binært mønster, er særdeles attraktiv, og et naturligt valg for EnzIC-systemet. En α-helix vil således blive angivet af vektoren [0, 1], mens et β-sheet angives som [1, 0]. Såfremt man ønsker at tilføje 17

en tredje strukturtype, kan man blot udvide talvektoren, således at en α-helix angives af [0,0,1], mens β-sheet angives af [0,1,0], og den nye type kunne angives af [1,0,0]. En del af struktur-mønstret for et protein omfatter imidlertid også de sektioner, der er mellem strukturerne, og som i sig selv kan opfattes som en slags struktur - nemlig en ustruktureret struktur. Jeg vælger derfor at behandle disse segmenter på lige fod med andre strukturer, idet jeg anser det for passende at repræsentere denne "struktur" ved vektoren [0,0]. Tabel 3 herunder opsummerer tal-repræsentationen for struktur-typerne. Repræsentation α-helix 0,1 β-sheet 1,0 Andet 0,0 Tabel 3 Binær tal-repræsentation af struktur-typerne En af årsagerne,til at neurale netværk er anvendelige indenfor biokemisk klassificering, er,at der pga. mutationer forekommer en del "støj" i inddata. Selv om neurale netværk er tolerante overfor støj, præsterer de imidlertid bedre, hvis støjen minimeres. I forbindelse med proteinstruktur-klassificeringer vælger mange derfor at lave en forarbejdende analyse, der kan få netværket til at klare sig bedre. Dette sker typisk ved, at man opstiller aminosyresekvensen for det protein, der skal have identificeret strukturer, ved siden af andre kendte aminosyresekvenser, hvormed det har store sekvensligheder. For hver aminosyrer undersøges det, hvilken aminosyre de lignende sekvenser har på samme sted, og i stedet for at bruge en binær vektor som inddata, dannes der i stedet en vektor, der angiver den procentmæssige sandsynlighed for at de enkelte aminosyrer optræder på netop dette sted. Processen kaldes for sekvensgruppering (eng. sequence alignment), og gør det muligt at eliminere en del af støjen. Idéen om sekvensgruppering vil godt kunne overføres og benyttes til EnzIC-systemet, og det ville bestemt være interessant at undersøge. Det vil dog kræve et relativt omfattende manuelt analyse arbejde af, hvilke proteiner der har sekvens- og strukturligheder, og det ligger således udenfor dette projekts omfang. 4.1.1.2 Rækkefølgen af strukturerne Rækkefølgen af strukturer kan i modsætning til typen af strukturer vanskeligt indfanges i et tal, men det kan til gengæld afspejles i talværdiernes rækkefølge i vektoren, hvilket jeg derfor vælger at gøre. Hvis en α-helix således er den første struktur, man støder på, når man betragter et proteins struktursekvens, vil den første talværdi i vektoren angive en α-helix (se Figur 5 herunder). Nogle strukturer af samme type forekommer umiddelbart efter hinanden uden at være adskilt af en anden struktur. Selv om der strengt taget er tale om to separate strukturer, skyldes det som regel blot mindre punkt-mutationer og kan derfor snarere betragtes som støj. I forbindelse med brugen af neurale netværk kan det derfor være en fordel at behandle disse strukturer som én struktur for at mindske støjen. Da det er en relativ simpel måde at mindske noget af støjen i data, vælger jeg at gøre dette. 18

4.1.1.3 Længden af strukturerne Efter at have inspiceret nogle udvalgte enzymer finder jeg det tvivlsomt, at længden af de sekundære strukturer har en væsentlig betydning, og umiddelbart er det min vurdering, at det formentlig blot vil tilføje støj til data. Jeg vil derfor som udgangspunkt ikke medtage længde. Såfremt man senere ville forsøge at eksperimentere med dette, vil det imidlertid være enkelt at udvide repræsentationen, da længden i sig selv er et tal, og således ikke kræver en speciel transformation. En α-helix med længde 12 kan således repræsenteres som [0,1,12]. Figur 5 herunder illustrerer, hvordan data transformeres til vektorer, der kan benyttes af netværkene. Tallene er grupperet i vektorerne for at vise, hvilke tal der knytter sig til en enkelt struktur. Figur 5 Transformation af relevant data til en inddata-vektor, der kan benyttes af netværkene. Over de enkelte aminosyrer er det angivet hvilken en struktur de indgår i, idet H står for Helix og S står for Sheet. Den øverste vektor ekskluderer længden af strukturerne mens den nederste inkluderer længden. 4.1.2 Håndtering af variabel inddata-længde Et alvorligt problem, for såvel EnzIC-systemet som proteinstruktur-klassificering, er, at inddata kan have variabel længde. Det endelige system vil imidlertid have et bestemt og fastlåst antal af inddataknuder, og er dermed ikke umiddelbart i stand til at håndtere denne påkrævede fleksibilitet. Der findes forskellige løsningsmodeller, der kan anvendes for at imødekomme problemet, om end de alle har mere eller mindre signifikante ulemper. En mulighed er at lave inddatavektoren så stor, at alle proteiner kan repræsenteres, men denne løsning giver anledning til andre problemer. For et netværk med et bestemt antal inddata-knuder forventes det nemlig, at inddata-vektoren har samme antal indgange. Hvis der således var 100 inddata-knuder, men et protein kun gav anledning til en inddata-vektor på 45, ville det være nødvendigt at udvide vektoren med 55 neutrale værdier (null-værdier), som ikke måtte påvirke netværkets resultat i den ene eller anden retning. Ud over at eksekveringen af netværket skulle være i stand til at håndtere null-værdier, hvilket i sig selv vil være vanskeligt, er næste problem, hvor disse null-værdier skal placeres. Hvis de blot blev indsat til sidst i vektoren, ville netværket kun forsøge at genkende proteinet blandt de første 45 knuder. Dette er uhensigtsmæssigt, da proteinet måske ville være bedre genkendt af de sidste 45 inddata-knuder, eller måske de midterste. 19

Hvis man således ønsker at benytte ovenstående model (herefter omtalt som udvidelsesmodellen) vil det være nødvendigt at prøve samtlige kombinationer af null-værdiernes placeringer hhv. forrest og bagest i vektoren, som illustreret på Figur 6 herunder. Figur 6 Udvidelsesmodellen kræver brugen af null-værdier, placeret i henhold til samtlige mulige kombinationer. En anden mulighed er omvendt at mindske antallet af inddata-knuder, svarende til proteinet med det færrest antal sekundære strukturer. I modsætning til udvidelsesmodellen vil det i stedet være nødvendigt at tage højde for proteiner, der indeholder flere strukturer. Indeholder netværket eksempelvis kun 10 inddata-knuder, mens proteinet giver anledning til en inddatavektor med en længde på 25, vil netværket måske kunne genkende proteinet ud fra de første 10 indgange i vektoren, men det kunne også tænkes, at det ikke genkendte de første 10, men derimod de 10 midterste indgange i vektoren. For at tage højde for dette, vil man således skulle lade netværket beregne uddata for alle de 10 efterfølgende strukturer, der kan dannes ud fra inddata-vektoren. Modellen med at mindske antallet af inddata-knuder, kalder jeg for begrænsningsmodellen, da den begrænser inddata-vektoren og kun kigge på mindre dele ad gangen (se Figur 7 herunder). Hvor det for udvidelsesmodellen kunne siges, at mindre proteiner udgjorde et vindue inde i inddata-vektoren, kan man for begrænsningsmodellen omvendt sige at inddatavektoren udgør et vindue af proteinet. Figur 7 Begræsningsmodellen. Inddata bestå af små "vinduer" fra den inddata-vektor som proteinet giver anledning til. Ulempen ved begrænsningsmodellen er, at proteinet ikke betragtes som helhed, og størrelsen af vinduet kan få afgørende betydning for netværkets præstationsevne. Nogle proteiner har kun ganske få strukturer og vil derfor kun give anledning til ganske få inddata-knuder og dermed også et meget lille vindue. Dette vil dog ikke være hensigtsmæssigt, da et mønster af eksempelvis kun to strukturer, vil kunne genfindes i næste alle proteiner, og en succesfuld klassificering vil dermed ikke kunne finde sted. Størrelsen af vinduet skal således vælges omhyggeligt, om end der ikke findes nogle generelle retningslinier. 20

Der er en tredje løsning, som bør nævnes, selv om den indtil videre vil være uladsiggørlig i praksis. Man kunne forestille sig, at der ganske enkelt blev lavet ét netværk for hver mulig længde af inddata. Indtil videre foreligger der ikke information nok til at kunne træne disse netværk succesfuldt, men som informationsmængden vokser, kunne man måske forestille sig en sådan løsning. Der er imidlertid et mere subtilt problem med denne løsning, der skyldes egenskaber ved relaterede proteiner (se afsnit 2.1.3). Nogle proteiner kan nemlig godt være i familie med hinanden og således have store sektioner til fælles uden at have den samme længde. Selv hvis de havde samme længde, kan de fælles sektioner være placeret forskellige steder i proteinet, hvilket vil vanskeliggøre genkendelsen i det neurale netværk. Som nævnt er problemet med variabel størrelse af inddata ikke enestående for EnzICsystemet, men det findes også for proteinstruktur-klassificering. Her har man tilsyneladende vurderet, at problemet bedst løses vha. begrænsningsmodellen, for samtlige i artikler, som jeg har læst, er det denne løsningsmodel, der er valgt. Vinduet dækker her typisk mellem 13 og 21 aminosyrer [12][13][15], der nogenlunde svarer til længden på en typisk α-helix. Jeg vælger ligeledes at benytte mig af begrænsningsmodellen, og jeg er således nødsaget til at finde en hensigtsmæssig vinduesstørrelse. De fleste enzymer har mellem 30 og 130 strukturer, og jeg vælger derfor en vinduesstørrelse svarende til 30 strukturer. Sandsynligheden for at 30 strukturer forekommer i et bestemt mønster bør være ret lille (4,9 x 10-15 ), med mindre proteinerne er i familie og har store sekvensligheder. Der findes dog fortsat proteiner med langt færre sekundære strukturer, men som omtalt under afsnit 1.3 har jeg valgt at acceptere denne begrænsning i EnzIC-systemet. Begrænsningen påvirker dog ikke de centrale dele af systemet, og en løsning med udvidelsesmodellen vil godt kunne tilføjes i en eventuel udvidelse af systemet. 4.1.3 Afgørelse af kategori i forbindelse med begrænsningsmodellen For hvert ryk af vinduet afgøres, hvilken enzymkategori hvis nogen strukturerne i vinduet med størst sandsynlighed tilhører. Resultaterne opsamles, og først når vinduet er flyttet ned over hele den inddata-vektor, som proteinet gav anledning til, kan der meldes en samlet konklusion om, hvilken en kategori proteinet med tilhører. Antallet af nødvendige ryk af vinduet afhænger af proteinets antal af sekundære strukturer. Netværkene vil forsøge at genkende struktur-ligheder for hvert vindue, og den endelige klassifikation af proteinet, som tilhørende én af de seks kategorier, baseres på gennemsnittet af uddata-værdierne for hver af vinduerne, hvilket herefter omtales som den samlede uddataværdi. Jeg har valgt at baserer klassificeringen på gennemsnittet, da jeg ikke umiddelbart har anledning til at beregne den samlede uddata-værdi ud fra noget andet end gennemsnittet. Jeg vil dog studere resultaterne for vinduerne nærmere og undersøge, om der er en tendens til, at uddata-værdierne for de enkelte vinduer eksempelvis grupperer sig på en måde, der giver anledning til at ændre beregningen af den samlede uddata-værdi. Iht. relaterede proteiner som beskrevet i afsnit 2.1.3, kunne man eksempelvis forestille sig, at der er en tendens til, at et enzym, der tilhører en bestemt kategori, giver anledning til, at de 21

vinduer, der klassificere det korrekt i den pågældende kategori, forekommer umiddelbart efter hinanden frem for spredt. 4.2 Arkitektur Som nævnt tidligere kan topologien variere i forskellige neurale netværk. Et netværks specifikke organisering af knuder og kanter kaldes for netværkets arkitektur. Indenfor neurale netværk findes der to helt overordnede forskellige typer af arkitekturer, som jeg indledningsvist vil beskrive. I de efterfølgende afsnit vil jeg først diskutere valget af overordnet arkitektur til EnzIC-systemet og derefter finde frem til et detaljeret arkitekturdesign. 4.2.1 Overordnede arkitekturdesign Det eneste krav, der sættes til arkitekturen for neurale netværk, er, at alle knuder i netværket skal være forbundet til mindst én anden knude i netværket, men bort set fra dette kan neuronerne principielt forbindes på enhver tænkelig måde. De fleste neurale netværk har dog en lag-delt arkitektur, idet neuronerne sædvanligvis arrangeres i lag som illustreret på Figur 8 herunder. Figur 8 Eksempler på lag-delte neurale netværk [5] Som det fremgår af figuren kan selv lag-delte arkitekturer variere en del fra netværk til netværk, men overordnet skelnes der mellem såkaldte fremadkoblede (eng. feedforward) netværk og tilbagekoblede (eng. recurrent) netværk. De to netværk længst til venstre er eksempler på fremadkoblede netværk, mens det længst til højre er et eksempel på et tilbagekoblet netværk. 4.2.1.1 Fremadkoblede netværk Et fremadkoblet netværk henviser til en arkitektur, hvor neuronerne i ét lag alle har koblinger til neuroner i et lag længere fremme. Der findes ingen neuroner, der forbinder til neuroner i samme lag eller et forudgående lag. Desuden findes der i lagdelte fremadkoblede netværk heller ingen neuroner, der springer et lag over [6]. De fremadkoblede netværk er den hyppigst anvendte topologi for neurale netværk [15]. Lagene i et fremadkoblet netværk opdeles normalt i hhv. et inddata-lag (eng. input layer), skjulte lag (eng. hidden layers) og et uddata-lag (eng. output layer). Inddata, som gives til inddata-laget, leveres fra omgivelserne, mens data til såvel de skjulte lag som til uddata-laget leveres af neuroner fra det umiddelbart forudgående lag i netværket. Normalt sker der ingen beregninger i inddata-laget, og inddata sendes direkte via neuronerne i inddata-laget til 22

neuronerne i næste lag. Neuronerne i inddata-laget aktiveres med andre ord altid. Inddatalaget tælles derfor ofte ikke med som et egentligt lag [5][6]. Netværket længst til venstre på Figur 8 siges derfor kun at have ét lag, mens de to andre begge har to lag. De simpleste netværk indeholder ingen skjulte lag men kun et inddata-lag og et uddata-lag. Sådanne netværk kaldes for perceptroner eller måske mere sigende for enkeltlagsnetværk (eng. single layer networks). Netværk, der derimod indeholder et eller flere skjulte lag, kaldes for flerlags-netværk (eng. multi-layer networks). Netværket til venstre på Figur 8 er således et eksempel på et fremadkoblet enkeltlags-netværk, mens netværket i midten er et eksempel på et fremadkoblet flerlags-netværk. Enkeltlags-netværk kan anvendes til en række ting, såsom til at repræsentere visse logiske funktioner men også til simpel mønster-klassificering. De er dog generelt ret begrænsede i, hvad de kan repræsentere, hvilket nok må betegnes som deres største ulempe. Fordelen ved dem er til gengæld, at de er forholdsvis nemme at overskue, og det kan bevises matematisk, at hvis der findes en løsning for det problem, de repræsenterer, så vil de finde løsningen. Indenfor dette området hører beviselighed til blandt sjældenhederne, og denne egenskab skal således ikke undervurderes. Fremadkoblede flerlags-netværk må nok betegnes som det område indenfor neurale netværk, der er størst fokus på i dag. Det er bevist, at sådanne netværk med blot ét skjult lag er i stand til repræsentere enhver kontinuert funktion [10][5], og med to skjulte lag kan selv diskontinuerte funktioner repræsenteres [5]. Disse netværk er således anvendelige indenfor en lang række områder heriblandt relativt vanskelige klassificeringsopgaver. Dog er de bedst egnede til klassificeringsopgaver, hvor inddata skal angives som tilhørende en bestemt og på forhånd kendt gruppering[13]. 4.2.1.2 Tilbagekoblede netværk Tilbagekoblede netværk ligner i sin arkitektur i langt højere grad den menneskelige hjerne, idet neuroner i et lag kan forbinde til neuroner i alle lag; også dem i samme lag eller forudgående lag. Selv om der er områder i den menneskelige hjerne, hvor forbindelserne mellem neuronerne er overvejende fremadkoblede, er hjernen et eksempel på et massivt tilbagekoblet netværk. Især neuroner i de områder af hjernen, der er forbundet med hukommelse (som eksempelvis hippocampus) har et stort antal tilbagekoblede forbindelser [17]. I modsætning til fremadkoblede netværk er det ikke nødvendigvis indlysende, hvilket lag der er inddata-laget, og hvilket der er uddata-laget, i et tilbagekoblet netværk. For tilbagekoblede netværk kan alle lag derfor ofte fungere som begge. Tilbagekoblede netværk er i stand til implicit at gemme interne tilstande, og kan derfor bl.a. modelere systemer med intern tilstand, og har vist sig specielt egnede til mønstergenkendelse. Et af de formentlig bedst forståede former af tilbagekoblede netværk er de såkaldte Hopfield netværk, der er opkaldt efter fysikeren John Hopfield, som introducerede dem [6]. Et trænet Hopfield netværk vil ud fra inddata producere det mønster i træningssættet, der minder mest om inddata. Netværket er eksempelvis i stand til at genkende en større sammenhæng (eller mønster), som et fotografi, ud fra et lille brudstykke, som eksempelvis et hjørne af fotografiet. 23