Bio-informatica Computers and networks Peter De Rijk 2
Operating/Besturings - systemen Windows / Mac Dikwijls gebruikt voor client software - betalen per PC Commerciele software Unix Meeste bioinformatica software is oorspronkelijk geschreven voor Unix Servers: dure speciale hardware In vele groepen ontbreekt de expertise Linux Gratis en vrij alternatief voor Unix op standaard pc's Vele programma's zijn geporteerd Clustering: meerdere PC's verzameld voor hogere rekenkracht Veel webservers, google,...
Interfaces Graphical User Interface: GUI Windows met menus, knoppen, invulvelden,... Bediend met muis/touch Gemakkelijk gebruik Commando lijn tekstuele commandos met parameters Unix achtergrond Zeer flexibele mogelijkheden voor glueing WWW interfaces grafische interfaces Roepen dikwijls onderliggend commando lijn commandos op
Data opslag: in een File/bestand File Een file bestaat uit een opeenvolging van bytes met een bepaalde lengte 1 byte = 8 bits 1 bit = 1 of 0 Dit geeft 256 verschillende combinaties: elke combinatie is genummerd van 0-255 Metadata beschrijven de gegevens over de reeks bytes waaruit de file bestaat Filenaam Datum, grootte,... welke soort en wat voor gegevens (file formaat)
Data opslag: in een File/bestand File formaat Bepaalt wat deze reeks bytes betekenen Elk programma verwacht de gegevens in een bepaald formaat (sommige kennen wel meerdere formaten) In Windows aangegeven door de extensie van de filenaam, bv..doc voor word files Het veranderen van de naam/extensie verandert niet de data
Text vs. binary Tekst Files (flatfile) Extensie.txt Meestal 1 op 1 overeenkomst tussen bytes en karakters (letters, cijfers,...) vb. Byte 65= A Geen gegevens over fonts, formattering, tenzij via markup Voorbeelden Programma sources Email Readme Data Binaire Files Al wat geen tekst bestand is volgens definitie tekst file bv. getallen binair opgeslagen in 4 bytes Beelden, geluid, Word bestanden!!...
Tekst files ASCII American Standard Code for Information Interchange 1 byte komt overeen met 1 karakter De eerste bit is steeds een '0' met de andere 7 bites wordt het karakter gevormd = 7 bit codering (enkel mogelijkheden 0-127 worden gebruikt) speciale controle karakters carriage return (cr), line feed (lf), beep,... (oorsprong teleprinter) Extra karakters (accenten, e.d.) in 128-255 Verschillen in bv. aanduiden van een nieuwe lijn in DOS (cr+lf), oudere Mac OS (cr) en Unix (lf)
Tekst files Unicode Multilinguaal: kan coderen voor 1114112 karakters Encodering UTF-32: 32bits (=4 bytes) per karakter UTF-8: variabele lengte (dus zonder speciale karakters is dit hetzelfde als ASCII)
Geformatteerde tekst files Het formaat van de tekst wordt bepaald door: Syntax Structuur / formaat van de gegevens Afspraken over hoe gegevens in een file staan Plaatsing, spatiëring, karakters gebruikt voor scheiding van velden, Semantiek Welke gegevens staan in een bepaald type van file Wat betekenen deze gegevens Welke restricties op bv. vocabulaire
Voorbeelden geformatteerde tekst files Comma separated value:.csv Tabel gegevens Een lijn = een rij Kolommen gescheiden door komma's (Engelstalige landen) Syntax soms afhankelijk van land/taal, bv. ; in België Ook vaak TAB characters als scheiding van kolommen (tsv of tab separated value)
Voorbeelden geformatteerde tekst files Markup languages extra gegevens over de tekst (formattering, betekenis,...) verwerkt in de tekst door elementen met specifieke syntax (tags, markup) bv. html, xml, TeX,...
Html (hyper text markup language) <html> <head> <title> Another simple HTML example </title> </head> <body> <h1> This is a level-one heading </h1> Welcome to the world of HTML. <p> This is one paragraph. </p> <p> This is a <b>second paragraph</b>. </p> </body> </html> Speciale vastgelegde codes om eigenschappen aan te geven van de tekst, bv.: <h1> voor een level1 titeltje, <b> voor bold De codes zie je niet in de uiteindelijke weergave van de tekst Tags beginnend met een / in de code geven het einde van de eigenschap aan
XML (extensible Markup Language) Syntax lijkt op HTML, maar de mogelijke tags zijn niet vastgelegd Je kan eigen codes bijmaken/definieren Hierarchisch georganiseerde elementen Tags tags hebben de vorm <tagname>element</tagname> definitie van het element kunnen eventueel parameters hebben Beschrijving van wat de beperkingen zijn en welke mogelijke elementen in een bepaald type XML mogen worden beschreven in: DTD (Document Type Description) XML schemas Verschillende soorten XML files naar gelang het soort gegevens bv. BSML (Bioinformatic Sequence Markup Language) <Sequence molecule="aa" length="8"> <Seq-data> akffglkl </Seq-data> </Sequence>
Formaten gebruikt in biologie Formaten Vaak tekst files Vele verschillende formaten voor gelijkende gegevens The beauty of standards is that there are so many to choose from Definities van formaat niet altijd extensief / afhankelijk van programma Formaat conversie Probleem: Gegevens in een formaat, dat het programma dat we willen gebruiken niet begrijpt Oplossing: Programma's voor omzetting Readseq Converteert tussen vele sequentie formaten Verlies van bv. annotatie informatie Sequence Manipulation Suite Manueel in tekst editor: macro's!
Formaten gebruikt in biologie Voorbeelden FASTA file Sequentie gegevens Lijn beginnend met > start van een nieuwe entry Naam staat achter het > karakter Volgende lijnen bevatten de sequentie (IUPAC codes) Genbank (zie verder) Sequenties met annotatie gegevens EMBL (zie verder) DCSE Sequenties met annotatie gegevens Gealigneerde sequenties eventueel met structuur gegevens
FASTA formaat >Lamprey GLOBIN V (SEA LAMPREY) PIVDTGSVAPLSAAEKTKIRSAWAPVYSTYETSGVDILVKFFTSTPAAQEFFPKFKGL TTADQLKKSADVRWHAERIINAVNDAVASMDDTEKMSMKLRDLSGKHAKSFQVDPQYFK VLAAVIADTVAAGDAGFEKLMSMICILLRSAY >Hagfish GLOBIN III (ATLANTIC HAGFISH) PITDHGQPPTLSEGDKKAIRESWPQIYKNFEQNSLAVLLEFLKKFPKAQDSFPKFSAK KSHLEQDPAVKLQAEVIINAVNHTIGLMDKEAAMKKYLKDLSTKHSTEFQVNPDMFK ELSAVFVSTMGGKAAYEKLFSIIATLLRSTYDA >Frog HEMOGLOBIN BETA CHAIN (EDIBLE FROG) GSDLVSGFWGKVDAHKIGGEALARLLVVYPWTQRYFTTFGNL GSADAICHNAKVLAHGEKVLAAIGEGLKHPENLKAHYAKLSEYHSNKLHVDPANFRLLGNVFIT VLARHFQHEFTPELQHALEAHFCAVGDALAKAYH >African Elephant HEMOGLOBIN BETA CHAIN (AFRICAN ELEPHANT) VNLTAAEKTQVTNLWGKVNVKELGGEALSRLLVVYPWTRRFFEHFGDL STAEAVLHNAKVLAHGEKVLTSFGEGLKHLDNLKGTFADLSELHCDKLHVDPENFRLLGNVLVI VLARHFGKEFTPDVQAAYEKVVAGVANALAHKYH
Programmeertalen Machine code Enige taal die de processor begrijpt Specifiek voor processor (vb. Intel) en PC architectuur Meest performant Rechtstreekse toegang tot hardware Zeer moeilijk om in te programmeren Gemakkelijk grote fouten met zware gevolgen Assembler: tussenvorm (woorden ipv bytes)
Gecompileerde talen hogere programmeertalen Eenvoudiger om in te programmeren De broncode (source) van het programma wordt door een ander programma (compiler) omgezet in machine code die uitvoerbaar is op de machine (binary) Portabiliteit Dezelfde broncode kan gecompileerd worden voor verschillende architecturen Enkele voorbeelden Fortran Oudere gecompileerde taal Vooral gebruikt (nu soms nog) in numerieke analyse C, C++ meest gebruikte talen Performant en flexibel Gevaar voor fouten
Java Object georiënteerde hogere programmeertaal Minder kans op programmeer fouten Meer controles dan C/C++ Automatisch geheugen beheer Virtual machine Compile once, run everywhere Java code wordt niet gecompileerd naar de architectuur specifieke machine code,maar naar een soort tussencode voor een virtuele machine. Deze wordt uitgevoerd door een programma (JVM) dat wel architectuur specifiek is (= platform onafhankelijk). JVM werd geïntegreerd in browsers: Java programma's kunnen lopen in een browser (platform onafhankelijk)
Scripting talen Very High Level Languages Vele constructies zitten in de taal ingebouwd Veel gemakkelijker om in te programmeren (dynamic typing,...) Voordelen Platform onafhankelijk Geïnterpreteerde talen: De broncode (source) wordt rechtstreeks uitgevoerd door een platform specifiek programma (interpreter) Byte-compilatie: o.w.v. performantie wordt de broncode op de moment dat ze geladen word omgezet in een efficiëntere tussencode (byte-code) Glue languages zeer gemakkelijk aan elkaar hangen van verschillende programma's Testen in interactief gebruik is mogelijk Perl, Tcl, Python worden veel gebruikt in Bio-informatica toepassingen
Internet Packet switching ('60) Subsidie door ARPA (U.S Defense Department's Advanced Research Projects Agency). Techniek Opdeling data in kleine pakketjes met adres Pakketjes worden doorgegeven tussen verschillende gateways en routers tot ze hun bestemming bereiken Voordelen Verchillende datastromen kunnen 1 lijn delen Uitval van deel netwerk kan omzeild worden Gemakkelijke connectiviteit Toepassingen email
Internet toepassingen Verschillende toepasingen email: oudste toepassing (nog altijd actueel) ftp: overbrengen van bestanden (~centrale naar server) telnet: werken op afstand (~commando's op server) Web Hyper text Verwijzingen/links in tekst naar andere teksten, figuren HTML: hyper text markup language URL: unified resource locator: protocol://hostname:port/path Client server Http: hyper text transfer protocol Integratie van andere protocols in de browsers ftp, gopher, Grafisch Eenvoudig te gebruiken Cross-platform, Open Dynamisch en interactief
Internet adressen Identificatie machines (hosts/servers) een 32 bit adres: 4 bytes, of 4 getallen (0-255) Netwerk en lokaal gedeelte (bv. Klasse A heeft eerste byte voor netwerk gedeelte Subnetting DNS (Domain Name System) hïerarchisch naamschema, gekend onder de naam 'domain naming scheme' bv..ua.ac.be,.com Overzetting tussen numerieke adressen en namen Gedistribueerd systeem, administratie per domain NAT (network address translation) Machines in subnetwerken die geen eigen internet adres krijgen, maar wel (beperkt) kunnen communiceren via een gateway die het locale netwerk verbindt met het Internet en de nodige omzettingen doet, bv. Meerder pcs thuis (router)
Network security Firewall Bescherming van interne netwerken Filtering van pakketten Op basis van herkomst, type,... Secure Socket Layers Encryptie van alle data connecties Toepassingen SSH (~ telnet) SFTP (~ ftp) Https (~ http/web)
Belangrijke Bio-informatica sites NCBI (http://www.ncbi.nlm.nih.gov/) National center for Biotechnology Information Amerikaans centrum voor bio-data en bio-informatica EBI (http://www.ebi.ac.uk/) European Bioinformatics Institute Europese tegenhanger NCBI EMBnet (http://www.embnet.org/) service sites in Europe Belgische node (http://www.be.embnet.org/) ExPASy (http://www.expasy.org/) Expert Protein Analysis System