De Taal van DNA. Piter Dykstra. 23 januari 2004



Vergelijkbare documenten
Bioinformatica en Systeembiologie (BIS)

DAR Approximate string matching Casus: biological sequence alignment

Introductie tot de cursus

Onderwijs- en examenregeling van de masteropleiding

Inhoud. Introductie tot de cursus

Automaten & Complexiteit (X )

Taaltechnologie. Januari/februari Inhoud

Zelftest Informatica-terminologie

Algoritmiek. 8 uur college, zelfwerkzaamheid. Doel. Hoe te realiseren

Studentnummer: Inleiding Taalkunde 2013 Eindtoets Zet op ieder vel je naam en studentnummer!

Programma Bachelor- en Masteropleiding Informatica

Inhoud eindtoets. Eindtoets. Introductie 2. Opgaven 3. Terugkoppeling 6

Knowledge

Model Driven Software Development: Geen toekomst maar realiteit. 4 juni 2009, WTC, Amsterdam.

Body of Knowledge and Skills (BoKS) van de opleidingen Bio-informatica / /

Relationele Databases 2002/2003

Relationele Databases 2002/2003

Curriculum Afkortingen Bachelor Informatica Propedeuse Postpropedeuse Start Vervolg Afsluiting 60,0 Gebonden keuze (8,6 EC) Afsluiting

Informatica kiezen. Informatica: iets met computers? Informatie over het vak informatica in de Tweede Fase van havo en vwo

Capita selecta thema Software Technologie

Het omzetten van reguliere expressies naar eindige automaten, zie de vakken Fundamentele Informatica 1 en 2.

Opmerkingen en vragen aan Ultieme vraag: Hoe beïnvloedt dit de winstkansen?

Neurale Netwerken en Deep Learning. Tijmen Blankevoort

2. Syntaxis en semantiek

Kleine cursus PHP5. Auteur: Raymond Moesker

High Performance Computing

Bioinformatica tentamen D1 voor 2MNW, 3I, 3PHAR op vrijdag 31 maart 2006 van uur in zaal Q105

Tentamen in2205 Kennissystemen

Curriculum Afkortingen Bachelor Informatica Propedeuse Postpropedeuse Start Vervolg Afsluiting 60,0 Gebonden keuze (8,6 EC) Afsluiting

De indeling van de sector Natuur

ECTS fiche. Module info. Evaluatie. Gespreide evaluatie OPLEIDING. Handelswetenschappen en bedrijfskunde HBO Informatica

Digitale Systeem Engineering 2

tot oplevering (thuis e maken met ondersteuning via forum) Cursus Moodle, boek, internet

Hoe AI kan ingezet worden voor de analyse van asbesthoudende daken

Onderwijs- en examenregeling van de bacheloropleiding

HOGESCHOOL ROTTERDAM / CMI

SHICO: SHIFTING CONCEPTS OVER TIME

Zelftest Java concepten

UBC op Microsoft Windows 64-bits

Probleem met dobbelspel. 2IP05: Programmeren Blok A. 5 spelers,2 dobbelstenen. wstomv/edu/2ip05/ Per ronde werpt elke speler 1

Nieuw Curriculum Bachelor Technische Informatica 2013

Master Wiskundige Ingenieurstechnieken

Digitale Systeem Engineering 2

3HUIRUPDQFH0HDVXUHPHQW RI'\QDPLFDOO\&RPSLOHG -DYD([HFXWLRQV

Relatie Algebra in een Intelligent Tutoring Systeem

Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat

Minder Big data Meer AI.

Plan van aanpak. 1 Inleiding. 2 Onderzoek. 3 Taken. Kwaliteitswaarborging van webapplicaties. Rachid Ben Moussa

Introductie in flowcharts

Hertentamen Bioinformatic Data Analysis (1/3 deel van de cursus Systems Biology) July 2 nd 2015, 9:00-12:00, Educatorium Alfa

Reguliere Expressies

Program overview. Year 2013/2014 Electrical Engineering, Mathematics and Computer Science

Het computationeel denken van een informaticus Maarten van Steen Center for Telematics and Information Technology (CTIT)

Waarmaken van Leibniz s droom

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010

IN2505 II Berekenbaarheidstheorie Tentamen Maandag 2 juli 2007, uur

Dat zoeken we op! NIOC

Tentamen Bioinformatic Data Analysis (1/3 deel van de cursus Systems Biology) April 9 th 2015, 17:00-20:00, Educatorium Gamma

Dynamisch Programmeren. Het Rugzakprobleem

Vereiste kennis. 1 Java-editor. 2 Het compileren van een programma

Wie? Advanced Databases blok DB vs IR. Wat? Canonical application (DB) Canonical application (DB)

Algoritmen abstract bezien

Wat is JAVA? Peter van Rijn

Opdracht 1 Topics on Parsing and Formal Languages - fall 2010

High Performance Computing

Modulewijzer InfPbs00DT

Uitgebreid voorstel Masterproef Informatica. Titel van het project : Ontwikkeling van remote controlled Alert & Task Agent

Thinking of development

Modulewijzer tirprog02/infprg01, programmeren in Java 2

start -> id (k (f c s) (g s c)) -> k (f c s) (g s c) -> f c s -> s c

Waarmaken van Leibniz s droom

Voorbereiding onderwijsvisitatie: Bachelor Opleidingsonderdelen J. Broeckhove

Tentamen Object Georiënteerd Programmeren TI januari 2013, Afdeling SCT, Faculteit EWI, TU Delft

Parse and Corpus-based Machine Translation. STEVIN Programmadag

Installatie SQL: Server 2008R2

Software Mobiliteit. UAMS - 6 maart Theo D'Hondt Lab voor Pogrammeerkunde Vrije Universiteit Brussel

Installatie Solid Edge ST5

Cover Page. The handle holds various files of this Leiden University dissertation.

Oriëntatie Kunstmatige Intelligentie. Inleidend College Niels Taatgen

B.Sc. Informatica Module 4: Data & Informatie

slides2.pdf 2 nov

Zelftest Inleiding Programmeren

Sectie TCS (Theory of Computer Science)

Modulewijzer Tirdat01

AI Kaleidoscoop. College 9: Natuurlijke taal. Natuurlijke taal: het probleem. Fases in de analyse van natuurlijke taal.

De plug-in is heel eenvoudig te installeren met een setup-programma. Waarna je een aantal menu opties in het tools menu er bij krijgt.

Inhoud. Introductie tot de cursus

Datastructuren en algoritmen

Halma Bot: Monte Carlo versus Alpha-Beta

Algoritmiek. 12 uur college, werkgroep, zelfwerkzaamheid. Doel. Eindniveau. Hoe te realiseren

MODULEBESCHRIJVING Databases DBS1

Abstraheren van modellen

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET

Bijlage 1 Indeling programma s volgens onderdeel 7 van de TU/e Richtlijn Bachelor College

Equivalentie tussen: vormingen georganiseerd door het ministerie van Defensie en opleidingen van het volwassenenonderwijs

DNAQL Simulator. Presentatie Bachelorproef. Tom Desair. Universiteit Hasselt. Academiejaar

De combinatie van verrijkingen, machine learning en crowd sourcing

Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht

Cover Page. The handle holds various files of this Leiden University dissertation

Applicatie-Architecturen

Transcriptie:

De Taal van DNA Piter Dykstra 23 januari 2004 1 Biologie en Informatica 1.1 Talen, problemen en automaten Er zijn duizenden programmeertalen. Het lijkt wel alsof informatici beter in staat zijn om programmeertalen te maken dan er problemen mee op te lossen. En in zekere zin is dat ook zo. In de automatentheorie worden problemen en talen zelfs gelijk gesteld: ieder probleem heeft een specifieke taal en alle oplossingen voor een probleem zijn de syntactisch correcte zinnen/expressies van die taal. Met een aantal voorbeelden wil ik laten zien dat problemen kunnen worden opgelost door ze enkel te formuleren d.m.v. een taal of -wat op hetzelfde neerkomt- een automaat. De oplossing kan dan eenvoudig worden uitgerekend. Deze methode is juist geschikt voor bioinformatica, omdat daar problemen zich al als taalproblemen aandienen. De eerste twee voorbeelden hebben eenvoudige talen (reguliere expressies) een machines (eindige automaten) als object. Het algemene en het biologische probleem staan naast elkaar om de verwantschap te benadrukken. Dat thema wordt nog een keer herhaald met een contextvrije taal, waarin een algemeen en een biologisch voorbeeld worden gegeven. Voorbeeld 1: Het aap-banaan-probleem Een aap zit in een kooi waarin in het midden aan het plafond een banaan hangt. De aap kan niet bij de banaan tenzijn zij een kist, die in een hoek staat, naar het midden van de kooi schuift. Na op de kist te zijn geklommen kan de aap de banaan grijpen. We kunnen de handelingen van de aap met de volgende symbolen coderen: 1

Code l r L R k g Aktie Aap loopt naar links Aap loopt naar rechts Aap schuift de kist naar links Aap schuift de kist naar rechts Aap klimt op de kist Aap grijpt de banaan Als we aannemen dat er drie posities zijn (links, midden, rechts) en in de beginsituatie zit de aap links en staat de kist rechts, dan zijn de volgende strings oplossingen voor het probleem: Hoe krijgt de aap de banaan? rrlkg rlrrlkg rrllrrlkg... Figuur 1 laat zien hoe deze zinnen kunnen worden geproduceerd als signalen bij toestandsovergangen van een automaat. Een automaat die toestandsovergangen maakt als het bijbehorende teken wordt gelezen, herkent een zin als correct als de automaat eindigt in een dubbel omcirkelde toestand. a op kist k al kist l r am r l ar L R k a op kist g grijp! al l r am kist r l ar L R al l r am r l ar kist k a op kist Fig. 1: Eindige automaat voor het aap-banaan-probleem. al = aap links; am = aap midden; ar = aap rechts. Er zijn drie toestanden waarin de aap op de kist kan zijn (a op kist) links (links-boven) midden(midden) en rechts (rechts-onder) 2

Een automaat die in meerdere toestanden tegelijk kan zijn, b.v. alle toestanden met de tekst al, omdat de aap wel links zit, maar de positie van de kist onbekend is, heet een indeterministische automaat. Dit principe is ook met vrucht toegepast op biologische problemen. Heel veel vragen m.b.t. sequenties kunnen m.b.v. reguliere expressies worden opgelost. Voorbeeld 2: Reguliere Expressies. Het vinden van het patroon atg kan met de RE: /atg/. En de RE: /atg(...)*[(taa)(tag)(tga)]/ levert zelfs de posities van genen. In dit verband is elke RE een taal; de eerste expressie heeft maar één correcte zin. Maar van de tweede zijn alle orf s in een bepaald bestand syntactisch correcte zinnen. RE s beschrijven dus talen. De categorie van de RE s is een taalfamilie. RE s worden geëvalueerd met eindige automaten. Dat zijn mentale constructies bestaande uit een eindig aantal toestanden met toestandsovergangen (zie fig 1). Overgangen treden op bij het lezen van tekens en in een eindtoestand stopt de automaat. a Start cg a a a t at g Eind atg cgt ct Fig. 2: Eindige automaat die het patroon atg herkent. En de vraag is: Kunnen alle bioinformatica problemen nu met RE s worden opgelost? Het antwoord is: Wel veel, maar niet alle. Maar gelukkig zijn er meer taalfamilies dan alleen de RE. Eén van de vragen die niet met RE s beantwoord kan worden, is de vraag naar de secundaire struktuur van eiwitten en RNA, maar dat kan weer met uitbreidingen van RE s. Een uitbreiding op de RE s zijn de contextvrije talen. I.p.v. een expressie wordt er een grammatica gegeven (productieregels). 3

Voorbeeld 3: Nederlands grammatica-fragment. Een heel klein fragment van de nederlandse grammatica wordt met de volgende regels weergegeven: Zin Onderwerp, Gezegde Onderwerp Jan Gezegde eet Gezegde eet LijdendV oorwerp LijdendV oorwerp een appel Met deze grammatica kan de zin Jan eet een appel ontleed (geparsed) worden. Contexvrije talen draaien op stapelautomaten; eindige automaten maar elke toestand heeft ook nog een eigen geheugen in de vorm van een stapel (stack). Voorbeeld 4: Secundaire struktuur van RNA Figuur 3 geeft een voorbeeld van een contextvrije taal voor de secundaire structuur van RNA. Er zijn productieregels die vastleggen wat hairpins, stems en pseudoknots zijn en een stapelautomaat genereert vervolgens de sucundaire struktuur bij het lezen van de sequentie. Stapelautomaten die in meer dan één toestand tegelijk kunnen verkeren, om onbekende parameters te kunnen representeren, zijn er ook: dat zijn indeterministische stapelautomaten. Onbekendheid moet niet worden verward met onzekerheid. Onzekerheid ontstaat wanneer een toevalsproces een rol speelt bij het ontstaan van de data. Zo is er een zekere kans dat een nucleotide muteert in één van de anderen. Dat is wat anders dan dat het onbekend is welk nucleotide zich op een bepaalde basepositie bevindt. Kansmachines bestaan ook: een stochastische eindige automaat, beter bekend als HMM, heeft voor elke overgang een kansparameter. En stochastische stapelautomaten evalueren stochastische contextvrije grammatica s en daarbij hebben de productieregels een mate van waarschijnlijkheid. 4

Fig. 3: Uit: Sakakibara e.a. (94) Stochastic Contextfree Grammars for trna Modeling.[Sak94] 1.2 Vertalen Het formuleren en herkennen van talen is één ding. Een compiler controleert in eerste instantie of een programma syntactisch correct is. Daarna moet er wel executable of vertaling komen. Een.java is een Java-programma, maar alleen een.class -file leidt tot aktie. Dit heeft zijn analogon in de moleculaire genetica. Alles draait om de vraag: Wat betekent deze sequentie? Nu herkennen stapelautomaten wel een syntactische structuur, maar eigenlijk willen we verder. We willen in een automaat ook de betekenis, de semantische struktuur, vastleggen. Dan ontstaan de compilers, zoals we die dagelijks gebruiken - formeel gezegd: een compiler is een automaat die bij herkende string een semantische struktuur produceert. Talen van die klasse zijn b.v. van-wijngaarden grammatica s en attribuutgrammatica s. Aan de productieregels worden attributen - de betekenis - gehecht (gedecoreerd). Die decoraties kunnen variëren in rijkdom en dat bepaalt dan weer hun soort. Zo kunnen er bij biologische sequenties ook semantische strukturen gegenereerd worden, die je ook weer als filter in een database kunt 5

gebruiken: Geef alle genen betrokken bij de...glycolyse. Wat we dus eigenlijk nodig hebben, zijn: compilers voor DNA! Voorbeeld 5: Funktie als semantische struktuur Komt nog. 2 Bioinformatica 2.1 Visie De vorige sectie mag illustreren dat informatica een veel centralere plaats inneemt in bioinformatica dan alleen de leverancier zijn van een aantal algemene onderzoekstools zoals Perl-filters en databases. Het nut van informatica gaat ook verder dan het aanleveren voor het domein speciale tools, zoals interfaces voor biologische databases: Sequence Query Language, String QL en ook Alignment QL. [P.B95, KH94, KH99, JAC01] De voorbeelden laten zien dat de biologische vragen op dezelfde wijze als de andere algemene problemen kunnen worden opgelost, als het probleem één keer in termen van talen en vertalen is geformuleerd. DNA is een programma en de uitvoering van dat programma kan door biologen bestudeerd en door computers gesimuleerd worden. De theorie is daardoor beter toetsbaar. DNA = computerprogramma Het concept dat (programmeer-)talen een (executeerbare) semantiek hebben, is rechtsstreeks toe te passen op moleculaire genetica, zelfs met de universele tools zoals grep, lex, bison: het DNA is een taal en de betekenis vinden we in een aantal vertaalslagen. funktie = compileren De theorie voor het modelleren van funktie op een mechanistisch niveau bestaat al binnen het informatica-vakgebied. Het moet alleen nog op de biologische kennis te worden toegepast. Dat is de kracht van de bioinformatica! 6

2.2 What s in a name? Een studierichting moleculaire genetica, die ook een aantal informatica - modulen heeft, zoals programmeren (Java, Perl) en SQL (in 24 uur), zou niet de naam bioinformatica moeten dragen. Er zijn talloze opleidingen met informatica-modulen (welke niet?); civiele techniek kan niet zonder geografische databases; bouwkunde niet zonder tekenprogramma s waarop materiaaldatabases zijn aangesloten. Zelfs kunstopleidingen zonder computeronderdelen zijn niet meer van deze tijd. Toch hebben ze (terecht) niet het woord informatica aan hun naam toegevoegd en moleculaire genetica zou dat ook niet moeten doen. Alleen als beide vakgebieden op een ingrijpender manier aan elkaar gekoppeld worden, -het biologisch onderzoeksobject met de mechanistische methode van informatica b.v.- lijkt mij zo n naam gerechtvaardigd. Overigens is het gebruik van 24-uurscursussen een riskante onderneming. Door het onbesproken of onderbelicht laten van de achtergronden (wat immers tijd vraagt) is de student veel moeilijker in staat om aan te sluiten bij nieuwe ontwikkelingen. Als je alleen Perl hebt geleerd en niet taalonafhankelijk hebt leren programmeren (b.v. in de O-O-stijl), is de overgang naar een andere taal (Python ligt voor de hand) moeilijk. Je bent niet in staat om de nieuwe zaken in een aanwezig kader te plaatsen. Perl moet daarom geen doel op-zich zijn, maar de programmeervaardigheid moet zich ook tot scripting uitstrekken. Als slechts het gebruik van SQL een doel is, ben je niet in staat om de ODBC-package 1 van Java te gebruiken. Bovendien zie je het nut van SQL niet in vanaf het moment dat je een RAD-tool 2 gaat gebruiken. Daarmee maak je n.l. in minuten 3 databases en webapplicaties. SQL op-zichzelf is van een betrekkelijk belang, maar kennis van de mogelijkheden van relationele databases (dat houdt querying in) en hun verhouding tot andere opslagmogelijkheden, is van fundamenteler belang. 1 Open Database Connectivity; een standaard waarmee bijna alle hogeren programmeertalen communiceren met een relationele database. 2 Rapid Application Development tool 3 Volgens de makers van die pakketten tenminste - Raining Data is de leverancier van Omnis Studio 7

Hoofdmenu Omnis Studio 3.3 Database-applicatie bouwdoos voor veel platforms en veel databases. 2.3 Curriculum-modules Het zich eigen maken van een mechanistische denktrant, zoals die in de informatica ontwikkeld wordt, vereist de actieve beheersing van tamelijk abstracte concepten als relatie, object, grammatica, enz. en is zeker niet minder complex dan het verwerven van inzicht in de problematiek van het biologisch onderzoeksterrein. 4 De tijd en studiepunten die daarmee gemoeid zijn, dienen dan ook van dezelfde omvang te zijn. Als de stiefmoederlijke behandeling van de informatica- componenten in het tweede jaar (6 studiepunten (9 EC s) 5 van de 14 in 4 Zeker in aanmerking nemend dat we geen speciale toelatingseisen m.b.t. wiskunde hanteren. 5 Algoritmen en Datastrukturen I 2sp, Algoritmen en Datastrukturen II 2sp, waarvan een deel 8

de aanvankelijke opzet) ook in het derde jaar wordt voortgezet, kan informatica onmogelijk boven MBO-niveau uitkomen. Dit ondanks de goede aanzetten in het eerste jaar. We zetten de zaak eens op een rijtje. De informaticaonderdelen kunnen worden ingedeeld in drie hoofdcomponenten: Software engineering. Kernactiviteit, zoals biologie. Het programmeeronderwijs Java, Perl,, Smalltalk, logica, algoritmen, (alignment, dynamisch programmeren) Datastrukturen, parallel programmeren, automaten. Er is een goede basis gelegd in het eerste jaar, maar er is geen voortzetting van programmeerervaring met engineeringsconcepten die niet rechtsstreeks in de taal zijn geprogrammeerd (stacks, queues, tree s b.v. maar ook de biologische datastrukturen van BioJava, BioPerl). Daardoor is de basis nu onvoldoende voor technieken die meer op het domein zijn gericht, zoals: stringalgoritmen (substrings - superstrings), datamining (clustering - classificatie), neurale netwerken, Machine learning, kansmachines, stochastische grammatica s. Het is echt van belang dat er een thema is, waarin deze technieken centraal staan. 6 Databases. Interfacing tussen dataproducerende software enerzijds en de verwerkende systemen anderzijds, zoals rapportgeneratoren en relationele databases, kan op verschillende niveaus, van Perlscriptjes en piping via XML-streams, waarin al wat meer controle op de dataïntegriteit voorkomt, tot volledige protocollen als CORBA en ODBC en speciale querytalen als AQL (Alignment Query Language) StringQL en SequenceQL. Op een aantal uiteenlopende niveaus zou, voor het verkrijgen van overzicht, ervaring moeten worden opgedaan. Computersystemen. Een component met voornamelijk praktische kanten. te gebruiken voor lapwerk. En Databases 2 sp.. Uit het tweede jaar zijn verdwenen: Digitale Techniek en OS 2sp, Netwerken en datacommunicatie 2sp. De ondersteunende wiskunde voor datastrukturen en Databases II, 2sp 6 En is er nog aandacht voor grafisch programmeren (OpenGL, b.v)? Het programmeren met GUI s (zoals vorig jaar - applets) is inmiddels uit het eerste jaar verdwenen. 9

Enig benul van wat een computer is, is noodzakelijk. Weten waar een operating systeem voor dient en welk os waar geschikt voor is, is redelijk relevant. Wat blijft er over van de trits: digitale techniek-os - netwerkendatacom - client/server, die ooit goed waren voor 6 sp.? Om maar te zwijgen van wat (bio-) praktijkgerichte Unix-orientatie (commandlineprogramma s, jobstreaming, scheduling, de makefaciliteit, sed, grep, lex, bison, het opzetten/ installeren van een pakket, C++, MPI, PVM). Aanvankelijk hadden we zelfs het inrichten van server en een subnet als leerdoel; met de inrichting van het binlokaal is er rekening mee gehouden. 2.4 Conclusie De overeenkomst tussen DNA en computerprogramma s is meer dan oppervlakkig. Het informatica-framework past precies op de moleculair genetische vraagstelling. Het is ook al 10 jaar een goudmijn voor onderzoek. Kan een opleiding Bioinformatica daar om heen? Het is de vraag of de student of het bedrijfsleven gediend zijn met studieonderdelen van de formule xxx-in-24-uur. Wanneer de student op de arbeidsmarkt komt zijn die al gauw 4 jaar verouderd. Bovendien is het HBO-niveau ook twijfelachtig: een HBO-er moet een keuze kunnen maken uit relevante beschikbare methoden voor een bepaalde taak. Zou er niet meer ruimte moeten zijn voor het verwerven van in- /over-zicht van de informaticamogelijkheden? ooo 10

Index algoritmen, 9 alignment, 9 Alignment Query Language, 9 attribuutgrammatica, 5 automaat, 2, 9 stapel-, 4, 5 stochastische eindige, 4 automatentheorie, 1 bioinformatica, 7 classificatie, 9 client/server, 10 clustering, 9 commando s bison, 10 grep, 10 lex, 10 make, 10 sed, 10 contextvrij, 4 contextvrije talen, 3 CORBA, 9 databases, 9 geografische, 7 materiaal, 7 decoratie, 5 digitale techniek, 10 grammatica, 8 GUI, 9 hairpins, 4 HMM, 4 indeterministische, 4 Java, 9 logica, 9 mechanistisch, 6 moleculaire genetica, 6, 7 MPI, 10 netwerken, 10 object, 8 ODBC, 9 onbekendheid, 4 onzekerheid, 4 OpenGL, 9 Perl, 9 probleem, 1 productieregels, 3 programmeren dynamisch, 9 parallel, 9 pseudoknots, 4 PVM, 10 querying, 7 RAD-tool, 7 reguliere expressie, 3 relatie, 8 RNA, 4 scripting, 7 secundaire struktuur, 3 semantiek, 6 SequenceQL, 9 Smalltalk, 9 SQL, 7 stems, 4 stochastische, 4 stochastische grammatica, 9 StringQL, 9 taal, 1 11

taalfamilie, 3 toestandsovergang, 2 Unix-orientatie, 10 waarschijnlijkheid, 4 Wijngaarden, 5 XML-stream, 9 12

Referenties [AS] [BD] R. Alquézar and A. Sanfeliu. An algebraic framework to represent finite state machines in single-layer recurrent neural networks. Ewan Birney and Richard Durbin. Dynamite: A flexible code generating language for dynamic programming methods used in sequence comparison. pages 56 64. [BDH + 95] P. Buneman, S. B. Davidson, K. Hart, C. Overton, and L. Wong. A data transformation system for biological data sources. In Proceedings of the Twenty-first International Conference on Very Large Databases, Zurich, Switzerland, 1995. VLDB Endowment, Saratoga, Calif. [Bla01] Mathieu Blanchette. Algorithms for phylogenetic footprinting. In RECOMB, pages 49 58, 2001. [BLSS01] [BW95] [CH94] [Cla97] [CSR + ] [DHP97] Michael Benedikt, Leonid Libkin, Thomas Schwentick, and Luc Segoufin. A model-theoretic approach to regular string relations. In Logic in Computer Science, pages 431+, 2001. M. Brown and C. Wilson. Rna pseudoknot modeling using intersections of stochastic context free grammars with applications to database search, 1995. C. Chen and V. Honavar. Neural network automata. In Proceedings of World Congress on Neural Networks, volume 4, pages 470 477, 1994. J. Claverie. Computational methods for the identification of genes in vertebrate genomic sequences, 1997. John A. Crow, Rodney A. Staggs, Shalini Raghavan, James E. Johnson, Kevin A. T. Silverstein, Margaret A. Mayer, Timothy M. Kunau, and Ernest F. Retzel. Design and implementation of a simple relational database for genbank-derived data. S. Davidson, C. Hara, and L. Popa. Querying an objectoriented databases using cpl, 1997. 13

[DMS96] [DS94] Jürgen Dassow, Victor Mitrana, and Arto Salomaa. Context-free evolutionary grammars and structural language of nucleic acids. Technical Report TUCS-TR-68, 2, 1996. S. Dong and D. Searls. Gene structure prediction by linguistic methods, 1994. [EG] S. Embury and P. Gray. The declarative expression of semantic integrity in a database of protein structure. [Elm90] Jeffrey L. Elman. Finding structure in time. Cognitive Science, 14(2):179 211, 1990. [GHNU98] G. Grahne, R. Hakli, M. Nykänen, and E. Ukkonen. Aql: An alignment based language for querying string databases, 1998. [Gie98] [Gie00] [GJP99] [GKW99] R. Giegerich. Declarative approach to the development of dynamic programming algorithms. Technical Report 98-02, 1998. Giegerich. A systematic approach to dynamic programming in bioinformatics. BIOINF: Bioinformatics, 16, 2000. Vineet Gupta, Radha Jagadeesan, and Prakash Panangaden. Stochastic processes as concurrent constraint programs. In Symposium on Principles of Programming Languages, pages 189 202, 1999. R. Giegerich, S. Kurtz, and G. Weiller. An algebraic dynamic programming approach to the analysis of recombinant dna sequences, 1999. [GN] Gösta Grahne and Matti Nykänen. Safety, translation and evaluation of alignment calculus. [GNU94] [HSO] [HW] Gösta Grahne, Matti Nykänen, and Esko Ukkonen. Reasoning about strings in databases. pages 303 312, 1994. Kyle W. Hart, David B. Searls, and G. Christian Overton. Sortez: A relational translator for ncbi s asn.1 database. Kyle Hart and Limsoon Wong. Cpl as a query language for genetic databases. 14

[JAC01] Rodney A. Staggs et. al. John A. Crow. Design and implementation of a simple relational database for genbankderived data. Technical report, NCBI, 2001. [KBM + 93] Anders Krogh, Michael Brown, I. Saira Mian, Kimmen Sjolander, and David Haussler. HIDDEN MARKOV MODELS IN COMPUTATIONAL BIOLOGY: APPLI- CATIONS TO PROTEIN MODELING. Technical Report UCSC-CRL-93-32, 1993. [KH99] [KH94] [Lan] [Lee02] [Nyk97a] [Nyk97b] G.C. Overton Kyle Hart, David B.Searls. Sortez: A relational translator for ncbi s asn.1 database. National Library of Medicine, Bethesda??, 199? Limsoon Wong Kyle Hart. Cpl as a query language for genetic databases. National Library of Medicine, Bethesda, 1994. Collection Programming Language. About cpl. Lillian Lee. Fast context-free grammar parsing requires fast boolean matrix multiplication. Journal of the ACM, 49(1):1 15, 2002. M. Nykanen. Querying string databases with modal logic, 1997. Matti Nykänen. Querying String Databases with Modal Logic. PhD thesis, University of Helsinki, 1997. [OAHA94] G. Overton, J. Aaronson, J. Haas, and J. Adams. Qgb : A system for querying sequence database fields and features, 1994. [OTG96] C. W. Omlin, K. K. Thornber, and C. L. Giles. Fuzzy finite-state automata can be deterministically encoded into recurrent neural networks. Technical Report UMIACS-TR-96-12 and CS-TR-3599, College Park, MD 20742, 1996. [P.B95] P.Buneman. A data transformation system for biological data sources. In Proceedings of the 21st VLDB Conference, 1995. 15

[Pol91] [Pos03] [Rai] [RE] [Run00] Jordan B. Pollack. The induction of dynamical recognizers. Machine Learning, 7:227 252, 1991. Kjell Post. Bottom-up evaluation of attribute grammars. Dep of Comp. Eng., University of Mälardalen, 2003. Raining Data. Omnis Studio 3.3 Tutorial. Elena Rivas and Sean R. Eddy. The language of RNA: a formal grammar that includes pseudoknots, journal = Bioinformatics, volume = 16, number = 4, year = 2000, pages = 334 340, url = citeseer.nj.nec.com/261334.html. Rune.B.Lyngsø. Computational Biology. PhD thesis, University of Aarhus, 2000. [Sak94] Sakakibara. Stochastic contextfree grammars for trna modeling JOSL, 1994. [SBH + 94] [Sea95] [Sea99] Yasubumi Sakakibara, Michael Brown, Richard Hughey, I. Saira Mian, Kimmen Sjölander, Rebecca C. Underwood, and David Haussler. Stochastic context-free grammars for trna modeling. Nucleic Acids Research, 22:5112 5120, 1994. David B. Searls. String variable grammar: A logic grammar formalism for the biological language of DNA. Journal of Logic Programming, 24(1 and 2):73 102, 1995. D. Searls. Formal language theory and biological macromolecules, 1999. [Shu93] J. Shutt. Recursive adaptable grammars, 1993. [Slo92] D. Searls and l of. American scientist, 1992. [SM95] [Sto94] D. B. Searls and K. P. Murphy. Automata theoretic models of mutation and alignment. In Proc. Third Int. Symp. on Int. Sys. for Molec. Biol., pages 341 349, 1995. Andreas Stolcke. Bayesian Learning of Probabilistic Language Models. PhD thesis, Berkeley, CA, 1994. [Wad88] P. Wadler. Deforestation: Transforming programs to eliminate trees. In ESOP 88. European Symposium on Programming, Nancy, France, 1988 (Lecture Notes 16

in Computer Science, vol. 300), pages 344 358. Berlin: Springer-Verlag, 1988. [Won95] L. Wong. The collection programming language reference manual, 1995. 17