BIOINFOSTAT. L industria farmaceutica utilizza queste informazioni e metodologie e conoscenze al fine di

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "BIOINFOSTAT. L industria farmaceutica utilizza queste informazioni e metodologie e conoscenze al fine di"

Transcript

1 BIOINFORMATICA Gruppo di lavoro Bioinformatica Linee guida per la definizione di una strategia per lo sviluppo del settore della bioinformatica in Italia con particolare attenzione all ambito biomedico Componenti la Commissione Maria Teresa ANNECCA Ufficio del Garante per la protezione dei dati personali Francesco BELTRAME Dipartimento di Bioingegneria, Universita degli Studi di Genova Giovanni BELTRAMI Chiron Vaccines Giovanni BRIGANTI Ministero degli Affari Esteri Fabrizio GAGLIARDI CERN Giovanni GIOVANNINI Osservatorio Tuttimedia, Media duemila Luciano MILANESI Istituto Tecnologie Biomediche, Consiglio Nazionale delle Ricerche Giovanni PAOLELLA CEINGE, Universita degli Studi di Napoli Federico II Anna Maria RAVIOLA Marconi, Selenia Communications Fabrizio RICCI Istituto di Ricerca sulla Popolazione e le Politiche Sociali, Consiglio Nazionale delle Ricerche Leonardo SANTI Comitato Nazionale Biosicurezza e Biotecnologie Lorenzo SILENGO Dipartimento di Biologia Universita degli Studi di Torino Anna TRAMONTANO Dipartimento di Scienze Biochimiche "Rossi Fanelli", Universita degli Studi di Roma "La Sapienza" Settimio VINTI Dipartimento Innovazione Tecnologica, Presidenza del Consiglio dei Ministri Con i recenti progressi nell ambito biomedico, è diventato essenziale assicurare un supporto adeguato alle ricerche nell ambito della medicina e delle scienze della vita. Infatti una caratteristica dell era post-genomica dipenderà da nuove modalità di trattare l enorme mole di dati generata quotidianamente al fine di correlare le informazioni genotipiche con quelle fenotipiche e cliniche. In questo ambito la Bioinformatica si occupa dell acquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nell ambito della biologia molecolare, della genetica e della biochimica con collegamenti sempre più importanti con la medicina. Scopi della Bioinformatica sono quelli di fornire in tempi rapidi le informazioni e le metodologie d indagine, che consentano ad esempio di fornire alla scienza medica le necessarie informazioni per comprendere i meccanismi alla base di tutte le possibili disfunzioni. In quest ottica, i metodi e gli strumenti messi a disposizione dalla Bioinformatica giocano un ruolo fondamentale nello sviluppo delle biotecnologie. L investimento di Stati Uniti, Canada, Giappone e Russia nella Bioinformatica è mirato soprattutto alla creazione di centri, reali o virtuali, che provvedano servizi e conoscenza alla comunità mentre, allo stesso tempo, spingono in nuove direzioni grazie ad attività di ricerca avanzate. Lo sviluppo di piccole e medie aziende con finalità bioinformatiche in Europa è, come ci si può aspettare, proporzionale all investimento in ricerca dei vari Stati e quindi molto attivo in Inghilterra, Francia, Germania, in crescita in Spagna, Olanda e paesi nordici. L Italia è ben collocata nel panorama europeo dal punto di vista scientifico, anche se le risorse limitate rispetto soprattutto a Germania e Regno Unito hanno finora reso difficile l implementazione di progetti indipendenti a grande respiro e di risonanza internazionale. Oggi si è creata un enorme attesa, soprattutto negli Stati Uniti, in Canada e in Giappone per un impatto economico crescente della bioinformatica. Stime conservative fanno assumere che la Bioinformatica solo negli Stati Uniti permetterà di generare almeno 7 miliardi di dollari nei prossimi tre anni e che il mercato crescerà del 20% entro il L Italia per poter mantenere il passo in un settore altamente strategico deve prevedere misure di potenziamento della bioinformatica nel settore biotecnologico, biomedico e sanitario operando sui seguenti piani distinti: la ricerca, lo sviluppo dei sistemi, l infrastruttura operativa, le applicazioni bioinformatiche nella clinica quotidiana, 1

2 BIOINFOSTAT la formazione. L obiettivo è quello di creare le condizioni per uno sviluppo omogeneo del settore della bioinformatica ed e quindi necessario che le azioni che si intraprendono su questi piani siano a ricaduta immediata. Introduzione La biologia e la medicina hanno da sempre cercato di studiare l organismo umano a tutti i livelli sia morfologico e sia funzionale per il miglioramento della salute umana.. Con l introduzione delle più moderne tecnologie di biologia molecolare si sono iniziati a comprendere meglio le regole d espressione genetica ed i vari passaggi metabolici e sia la struttura del DNA, RNA e delle proteine. Questa enorme complesso d informazioni, consentirà di comprendere il flusso delle informazioni che governano il passaggio dal Genoma al Fenotipo di un organismo. Un utilizzo appropriato di questi dati associate ad appositi programmi d analisi, porterà nuove possibilità per la comprensione dell espressione dei geni, la loro regolazione e le malattie genetiche a loro correlate in caso di mutazioni o disfunzioni metaboliche. La disciplina che si occupa di queste problematichemper trattamento dell informazione biologica a tutti i livelli è la Bioinformatica. La Bioinformatica si occupa, quindi, dell acquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nell ambito della biologia molecolare con collegamenti sempre più importanti con la medicina. Questa nuova disciplina scientifica utilizza metodi di matematica, informatica, biologia, medicina, fisica allo scopo di migliorare la comprensione dei fenomeni biologici. Di seguito, si elenca a titolo alcuni dei principali obiettivimella Bioinformatica: Sviluppo di strumenti per la generazione ed il mantenimento dell informazione proveniente alle varie fonti: mappa fisica, mappa genetica, mappa cromosomica, mappa citogenetica, olimorfismi, e l informazione relativa alle sequenze genomiche e proteiche etc.; Raccolta e organizzazione delle informazioni genetiche associate alle patologie mediche; Sviluppo di programmi di calcolo per l'analisi delle sequenze; Sviluppo d interfacce grafiche in grado di visualizzare in maniera efficace l informazione richiesta; Sviluppo di metodi software che consentano di agevolare tutte le fasi dei progetti; Sviluppo di strutture per database specializzate ed integrate; Sviluppo di strumenti informatici, includendo software e hardware e algoritmi per l organizzazione e l analisi dei dati; Realizzazione di standard per lo scambio e la descrizione dei dati; Realizzazione di una rete dati per la raccolta la distribuzione e l aggiornamento costante di tutta informazione prodotta; Raccolta della bibliografia, brevetti e altri database di supporto all informazione specifica; Predizione dei geni nelle sequenze di DNA; Predizione delle strutture tridimensionali delle proteine partendo dalle sequenze primarie; Predizione delle funzioni biologiche e biofisiche sia dalle sequenze e sia dalle strutture; Simulazione dei processi metabolici e cellulari basati su queste funzioni. Relizzazioni di sistemi per la correlazione dell informazione in sistemi biologici complessi. Da questo elenco risulta evidente che uno dei principali scopi della Bioinformatica è di fornire in tempi rapidi le informazioni e le metodologie d indagine, che consentano ad esempio di fornire alla scienza medica le necessarie informazioni per comprendere i meccanismi alla base di tutte le possibili disfunzioni d origine genetica. Dalle mutazioni in regioni funzionali del DNA, alla ancata produzione di una certa proteina a causa di un anomalo funzionamento dei fattori di trascrizione, fino a comprendere il funzionamento d ogni singolo gene in relazione con gli altri geni nei diversi processi metabolici che continuamente avvengono nel corso dell intera vita. L industria farmaceutica utilizza queste informazioni e metodologie e conoscenze al fine di 2

3 BIOINFORMATICA produrre medicine, proteine specifiche e terapie geniche in grado di intervenire in maniera selettiva per risolvere le possibili cause di malattie. Inoltre la gran parte dei prodotti genici del genoma umano ha più di una funzione, in alcuni casi addirittura in antagonismo con altre. E per questo necessario identificare i modelli quantitativi che stanno alla base di questi processi. In quest ottica i metodi e i programmi messi a disposizione dalla Bioinformatica giocano un ruolo fondamentale nello sviluppo delle biotecnologie. Stato dell arte Cenni storici Già alla fine degli anni Settanta risultava chiaro che non ci poteva più affidare alla capacità dei singoli gruppi di ricerca per immagazzinare e organizzare i dati biologici e che occorreva uno sforzo informatico per sfruttarne le potenzialità. L Europa coglie quest occasione con grande tempismo e per prima: la banca dati dell EMBL nasce nel 1980, mentre gli Stati Uniti dovranno attendere il 1986 per fondare il National Center for Biotechnology Information, depositario della banca dati GenBank. Negli anni immediatamente successivi, anche il primo Dipartimento di Ricerca in Bioinformatica, il Biocomputing Group dell EMBL, nasce in Europa. Il programma di cui fanno parte Arthur Lesk, Chris Sander e Pat Argos sfocerà nel 1996 nella fondazione dell EBI (European Bioinformatics Institute di Hinxton, Cambridge) che è oggi tra i punti di riferimento più importanti della bioinformatica mondiale, ma soprattutto addestra giovani ricercatori in questa nuova disciplina. Al Biocomputing dell EMBL e ai gruppi di Bioinformatica strutturale di Cambridge, guidati, tra gli altri, da Sir Tom Blundell, Janet Thornton e Cyrus Chothia, devono il loro ingresso alla bioinformatica molti, se non tutti, i gruppi di riferimento europei. Le competenze dei gruppi pionieri di questa disciplina sono oggi affiancate da scuole più informatiche che le completano e rendono la bioinformatica un punto di forza della ricerca Europea che va assolutamente coltivata e incoraggiata. Situazione Internazionale L investimento di Stati Uniti, Canada e Giappone nella Bioinformatica è mirato soprattutto alla creazione di centri, reali o virtuali, che provvedano servizi e conoscenza alla comunità mentre, allo stesso tempo, spingono in nuove direzioni grazie ad attività di ricerca avanzate.gli Stati Uniti riconoscono che anche solo il mantenimento dei sistemi attualmente in uso richiede aumenti di investimenti. L NCBI (National Center for Biotechnology Information) è un esempio eclatante, un incremento degli investimenti di circa il 10% annuo è necessario solo per mantenere l attuale livello di servizi e ricerca. Il personale ad oggi impiegato presso l NCBI è vicino alle 400 unità. Negli Stati Uniti soltanto, l investimento economico nel settore della bioinformatica è valutato intorno ai 500 milioni di dollari all anno (la metà circa di quello mondiale) di cui i due terzi sono delle grandi industrie farmaceutiche che si aspettano di ridurre i costi e i tempi di sviluppo di un farmaco di circa il 30% grazie alle tecniche bioinformatiche. Questo ha evidentemente aperto la strada ad un gran numero di società che forniscono software e servizi alle grandi industrie farmaceutiche, tra cui per esempio Accelerys, Applied Biosystems, DNAStar, Informax, Genamix, Rosetta (poi acquisita dalla Merck), ecc. Situazione Europea L EBI European Bioinformatics Institute rimane oggi un punto focale della bioinformatica europea, ma gruppi di dimensioni e impatto notevole sono presenti in praticamente tutti i paesi dell Unione. Il Regno Unito ha per esempio tenuto alto il suo livello negli aspetti strutturali, con gruppi di grande competenza e fama all MRC di Cambridge, al King s College e allo University College di Londra, affiancati da gruppi che si occupano di analisi genomiche non solo in Inghilterra ma anche in Scozia ed Irlanda. Alcuni dei più noti gruppi di ricerca hanno dato vita a vari spin-off (vedi Inpharamatica). Lo sviluppo della bioinformatica in Inghilterra avviene anche grazie al regolare interesse dell agenzia di finanziamento Wellcome Trust 3

4 BIOINFOSTAT per la genomica che si traduce in sostanziali investimenti in bioinformatica ad esempio presso il Sanger Centre a Cambridge. La Germania sta dando vita ad un aggressivo programma di training con lauree di primo e secondo livello in Bioinformatica in varie città. Ad oggi sono stati attivati 34 nuovi cattedre universitari in Bioinformatica. Ci si aspetta che questo dia un grande impulso alla ricerca che, in questo paese, si sta concentrando sull analisi genomica, sulla genomica funzionale e sulla biologia dei sistemi. Esistono Max Planck Institut e grandi dipartimenti interamente dedicati alla Bioinformatica, per esempio il Max Planck di Berlino, Monaco e il Centro di Bioinformatica di Saarbrueken. In Spagna vi sono alcuni gruppi estremamente interessanti, soprattutto all interno del Consiglio Nazionale delle ricerche a Madrid e del Genome Informatics Research Laboratory di Barcellona, centro che si sta affermando come uno dei punti cardine per la ricerca e caratterizzazione dei geni umani per via bioinformatica. In Spagna è stato istituito un Istituto Virtuale di Bioinformatica che coinvolge la maggior parte dei gruppi spagnoli. L Istituto, pur essendo virtuale dal punto di vista logistico, è organizzato con Dipartimenti, direttori, progetti, ecc. e rappresenta un interessante esempio di cooperazione nazionale strutturata e gestita managerialmente. Anche il Portogallo ha iniziato un programma educativo in Bioinformatica, ancora agli inizi ma che sta coinvolgendo docenti da tutta Europa. In Francia, presso l Istituto Pasteur ed il CNRS, sono attivi diversi gruppi dedicati alla Bioinformatica. La Svizzera si è conquistata un posto centrale nel panorama bioinformatico grazie al SIB - Swiss Institute for Bioinformatics, iniziatore della lodevole iniziativa della banca dati SwissProt, e che oggi è un partner essenziale dell EBI nell area della banche dati nell area della proteomica. In Olanda, Svezia, Finlandia, Belgio operano gruppi di bioinformatica di ottimo livello scientifico, generalmente derivanti da quell iniziale gruppo dell EMBL di cui si è discusso precedentemente. Un discorso a parte merita la Danimarca che, avendo dato il via al Centre for Biological Sequence Analysis, è riuscita a conquistarsi un ruolo centrale nella bioinformatica europea partecipando alla maggior parte dei progetti di finanziamento comunitari nella disciplina, ancora una volta dimostrando l importanza di una sinergia di sforzi coordinati. Va inoltre menzionato quanto sta accadendo nei paesi dell est europeo (specialmente Polonia ma anche Lituania) il rientro di alcuni ricercatori formatisi negli Stati Uniti ha permesso di organizzare gruppi di ricerca che, nell arco di qualche anno, sono già entrati a far parte dell establishment scientifico in bioinformatica. Lo sviluppo di piccole e medie aziende con finalità bioinformatiche in Europa è, come ci si può aspettare, proporzionale all investimento in ricerca dei vari Stati e quindi molto attivo in Inghilterra e in Germania, e in crescita in Spagna. L Unione Europea con il Il VI PQ dell UE, nella linea Scienze della Vita, Genomica e Biotecnologie per la Salute - Genomica Avanzata e sue Applicazione per la Salute, ha come obiettivo migliorare la comprensione e la decifrazione delle informazioni genomiche, individuandone la funzione, la struttura e la relazione con la salute umana. In tale ambito, uno dei risultati più attesi è creare gli strumenti informatici che permettano alla comunità medico-scientifica e al mondo industriale di analizzare e utilizzare i dati sui genomi per lo sviluppo di nuove terapie, medicinali e diagnosi sanitarie sempre più accurate. Ciò rientra in un orientamento generale, che parla oramai di strumenti necessari a supportare la cosiddetta medicina personalizzata (personalized healthcare). Pertanto l Unione Europea sta attuando un programma di finanziamento della bioinformatica sia nel campo dello sviluppo di metodi (BioSapiens, IntAct, EMSD, ORIEL, EBIOSCIENCE, ecc. ), sia delle tecnologie di supporto (BIOINFOGRID, EMBRACE, EGEE), sia dell applicazione della bionformatica all area medica (INFOBIOMED, SYMBIOMATICS). Situazione Nazionale L Italia è ben collocata nel panorama europeo dal punto di vista scientifico, anche se le risorse limitate rispetto soprattutto a Germania e Regno Unito hanno finora reso difficile l implementazione di progetti indipendenti a grande respiro e di risonanza internazionale. 4

5 BIOINFORMATICA Poli molto attivi sia nella ricerca sia nello sviluppo in bioinformatica in Italia sono, per esempio, Napoli, Roma, Milano, Bologna, Genova, Bari, Palermo, Padova, Treno, Trieste e Cagliari. L aspetto forse più interessante del panorama italiano è che esso copre un largo spettro di attività bioinformatiche, che vanno dall analisi genomica alla genomica funzionale, dalla predizione di strutture tridimensionali, dall assegnazione funzionale alla predizione di proprietà di prodotti genici, dai sistemi basati su GRID a metodi di intelligenza artificiale, etc. In altre parole, dal punto di vista delle competenze, la bioinformatica italiana costituisce un opportunità forse unica per lo sviluppo di ricerca e tecnologia. Molti dei gruppi italiani sono coinvolti in iniziative internazionali di vasto respiro, come società internazionali, gruppi di lavoro, commissioni di valutazioni scientifiche, progetti europei, iniziative educative. Sarebbe impossibile elencarle tutte, e soprattutto difficile tenere traccia di tutte le attività in cui i bioinformatici italiani vengono coinvolti continuamente. Il MIUR ha investito negli ultimi tre anni risorse finanziarie per un valore complessivo di 32 Meuro destinate a iniziative scientifiche in ambito nazionale e internazionale strettamente connesse all area Bioinformatica. Queste iniziative attualmente in corso possono essere così strutturate: Realizzazione di due laboratori nazionali in Bioinformatica pubblico-privato (FIRB ) ai quali sono collegate unità di ricerca dislocate in varie località italiane. Il finanziamento pubblico per queste iniziative programmate per un quinquennio d attività è pari a 8, 404 Meuro. Il MIUR, nell ambito degli interventi CIPE per il Mezzogiorno ha destinato 10 Meuro per la realizzazione di Laboratori pubblico-privati. - Finanziamento di progetti di ricerca congiunti con centri e/o istituti di eccellenza di altri Paesi (USA, Canada, UK, India, Cina, Russia, Israele), con una previsione di finanziamento dell ordine di 8 Meuro. Realizzazione del laboratorio di Bioinformatica previsto dall accordo tra MIUR, Ministro per l Innovazione Tecnologica, Università degli Studi di Trento, Provincia di Trento e Microsoft. Per tale iniziativa si prevede un impegno finanziario del FIRB pari a circa 4 Meuro. Nonostante questo panorama interessante, le iniziative di trasferimento tecnologiche sono rimaste eccessivamente ristrette e non si è finora sfruttato appieno questo patrimonio per mancanza, a nostro parere, delle appropriate infrastrutture, di coordinazione e di adeguate risorse. Il patrimonio di conoscenze accumulato da questi gruppi di ricerca e i giovani ricercatori che sono impiegati e formati nei vari progetti, corre il rischio di essere completamente vanificato nel giro di poco tempo, in mancanza di un programma a medio lungo periodo. Le società che svolgono attività bioinformatiche in Italia sono infatti pochissime, fra cui: SharDNA a Cagliari (che si occupa principalmente di genomica e quindi necessita di un supporto bioinformatica per la gestione e l analisi dei dati provenienti dallo studio di popolazioni isolate). ProteoGenBio a Pisa. BioDec a Bologna. Alcune industrie e centri di eccellenza universitaria hanno poi sviluppato al loro interno delle competenze in Bioinformatica, tra queste la Chiron, l IRBM (Laboratorio Merck in Italia), la Glaxo, centri di eccellenza di ricerca CNR, Università, CISI, e poche altre realtà. L impatto economico prevedibile C è un enorme attesa, soprattutto negli Stati Uniti, in Canada, Giappone e Europa per un impatto economico crescente della bioinformatica, per esempio grazie all individuazione di nuovi agenti terapeutici e farmacologici ci si aspetta che la bioinformatica sia in grado di aumentare il numero di bersagli terapeutici da circa 400 a circa 4000 nei prossimi vent anni e quindi, già solo grazie a questo, ci si aspetta che i proventi dell industria farmaceutica aumentino di un fattore mille. Stime conservative fanno assumere che la Bioinformatica solo negli Stati Uniti permetterà digenerare almeno 7 miliardi di dollari nei prossimi tre anni e che il mercato crescerà del 20% entro il E questa è solo una 5

6 BIOINFOSTAT della possibili applicazioni della bioinformatica che ci si aspetta abbia un impatto anche sullo sviluppo di vaccini, nuove biotecnologie, nanotecnologie, etc.. Gli investimenti industriale in bioinformatica saranno almeno triplicati entro il 2010, prevalentemente nel settore che cresce più velocemente, cioè quello del software di analisi e banche dati specializzate. Le necessità italiane nel campo della bioinformatica Il mondo della bioinformatica italiana ha le seguenti necessità: rafforzare il collegamento dell industria con il mondo della ricerca sia universitaria che degli Enti Pubblici di Ricerca come il CNR; sviluppare nuove metodologie per la gestione delle biobanche fra loro integrate; consentire un costante aggiornamento delle conoscenze in un settore altamente innovativo come quello della System Biology applicata all analisi dei dati generati dalla Genomica e Proteomica di vari organismi; stimolare la crescita di nuove imprese nel settore della Bioinformatica applicata al settore Biomedicale e Biotecnologico; offrire una base strategica per agevolare la formazione interdisciplinare di nuovi profili, bioinformatici, biotecnologici e biomedici; stimolare l interazione e l integrazione delle iniziative già finanziate con i laboratori pubblico-privati finanziati dal FIRB, FAR e dalle infrastrutture finanziate ad hoc per la Bioinformatica; integrare le infrastrutture di calcolo adeguate alle esigenze che si stanno profilando nel campo della Biologia, delle Biotecnologie, della Genetica e della Medicina; finanziare l adesione dell Italia a iniziative internazionali; finanziare un progetto congiunto per l'accessibilità di banche dati bibliografiche di interesse internazionale; favorire l interazione dei laboratori pubblico-privati con iniziative per lo sviluppo delle applicazioni di GRID computing e calcolo avanzato nell ambito Biomedico e ospedaliero in Italia; Per ottenere i precedenti obbiettivi il mondo della bioinformatica italiana ha necessità di reperire personale giovane con un adeguata formazione scientifica. Si riscontra, infatti, un gap in biologia e informatica; la creazione di un percorso di studi che istruisca in entrambi gli aspetti darebbe una risposta concreta alle esigenze del comparto industriale. Le industrie operanti nel comparto delle biotecnologie hanno una forte dipendenza dalla ricerca e ed il settore della bioinformatica e l informatica medica non fanno eccezione. Un importante vantaggio competitivo sarebbe rappresentato dalla possibilità di incrementare in maniera sostanziale le collaborazioni sia a livello di ricerca di base che applicata. Aree di interesse sono, ad esempio, la ricerca di nuovi sistemi ed algoritmi per l identificazione funzionale di geni e proteine, l adozione di tecniche e strumenti per l estrazione automatica dell informazione da basi di dati testuali quali ad esempio letteratura scientifica, classificazione automatica delle proteine, sviluppo di strumenti per la definizione/esecuzioni di esperimenti in silico e la gestione automatica di flussi di lavoro soprattutto in collegamento a sistemi di calcolo distribuiti. Pertanto l industria ha necessità di luoghi dove imprese, laboratori universitari, istituzioni economiche e di ricerca operano a stretto contatto al fine di: Sviluppare ricerca fondamentale e a carattere applicativo; Mettere a punto nuove tecnologie, prodotti e processi; Valorizzare i risultati della ricerca e trasferire tecnologie e innovazioni al mondo produttivo; Creare reti di cooperazione nazionali e internazionali; Sviluppare attività economiche e imprenditoriali ad alta intensità di conoscenza. In parole povere, occorrono centri di eccellenza capillarmente distribuiti sul territorio con una serie di servizi (cataloghi del know-how e delle tecnologie pronte all uso, panel di esperti e consulenti, seminari e workshop, etc.) per estendere e sviluppare i cosiddetti CLUSTER e Reti tematiche. 6

7 BIOINFORMATICA Il sempre maggior costo per lo sviluppo di nuovi farmaci e le barriere economiche all accesso a tali prodotti per i paesi poveri stanno forzando la ricerca di nuove vie per risolvere questi problemi. Ad esempio, l adozione dei concetti alla base della Translational Medicine, dove tutti i processi industriali di ricerca, sviluppo, test e produzione sono orientati al paziente/gruppo/etnia oggetto del prodotto, necessitano in sempre maggior misura della integrazione fra dati genomici, proteomici e le informazioni contenute nelle biobanche. Inoltre sviluppare ed adottare considerazioni etiche volte a minimizzare ed ottimizzare l uso della sperimentazione sia sulla gestione dei dati sensibili nell uomo e sia nell utilizzo della sperimentazione animale. La presenza di infrastrutture operative di riferimento e l adozione di standard internazionali sono fondamentali sia per la ricerca che per l industria. Un ambiente di riferimento permette una pianificazione degli investimenti più precisa, facilita le collaborazioni sia tra industrie che con il mondo della ricerca accademica, assicura i necessari livelli di sicurezza nel trattamento ed accesso ai dati garantendo la sicurezza della Proprietà Intellettuale delle singole aziende. Infatti per mantenersi al livello presente non basta però più il lavoro di gruppi indipendenti: l aumento enorme dei dati disponibili rende oggi essenziale la presenza di infrastrutture e, soprattutto di risorse che oggi sono più carenti in Europa rispetto agli Stati Uniti e al Giappone. L industria ha necessità di reperire personale giovane con un adeguata formazione scientifica. Si riscontra, infatti, un gap tra biologia ed informatica; la creazione di un percorso di studi che cumuli entrambi gli aspetti darebbe una risposta concreta alle esigenze del comparto industriale. Nell ambito di una sanità Informata e Formata sulle specifiche ricerche di Bioinformatica e doveroso sensibilizzare i medici di medicina generale, biologi e altri operatori interessati alla materia, su argomenti che possano essere applicati alla pratica clinica. Da qui nasce la necessità di sviluppare un adeguato programma di formazione per gli operatori del Servizio Sanitario, che potrebbe essere collegata al sistema dell ECM Educazione Continua in Medicina programma voluto dal Ministero della Salute. Le possibili linee d intervento Al fine di potenziare il ruolo dell informatica nelle biotecnologie della salute occorre operare sui seguenti piani distinti: la ricerca, lo sviluppo dei sistemi, l infrastruttura operativa, le biotecnologie nella clinica quotidiana, la formazione. L obiettivo è quello di creare le condizioni per uno sviluppo omogeneo del settore della bioinformatica ed è quindi necessario che le azioni su questi piani siano quelle che abbiano una ricaduta immediata. Pertanto i temi prioritari riguardano: Stabilire un effettiva cooperazione pubblico-privato fra la comunità di ricercatori in ambito nazionale ed internazionale; La ricerca vista sia come sviluppo di sistemi software per la biologia computazionale che come messa a punto di metodologie innovative per l analisi e la ricerca di correlazioni tra i dati biologici. Lo studio di applicazioni legate alle metodologie per la realizzazione delle biobanche. La creazione di una infrastruttura per favorire la collaborazione e il coordinamento tra i vari centri. Favorire la realizzazione di ricerche basate su accordi internazionali al fine di agevolare lo scambio di ricercatori (Research HUB), e la creazione di laboratori congiunti (Joint Research LAB); Introdurre della Bioinformatica e le biotecnologie nella pratica clinica quotidiana. La formazione estesa all aggiornamento professionale. Va tenuto conto che le ricadute economiche di un investimento congruo nel comparto dovranno devono valutate in termini di profitti provenienti non solo dalla diretta 7

8 BIOINFOSTAT commercializzazione dell invenzione, ma anche da una maglie posizionamento del sistema paese nel contesto internazionale. La ricerca in Bioinformatica E in atto una progressiva raccolta, organica, in basi di dati, di informazioni genetiche e mappature del Genoma Umano, prodotte dai tanti gruppi di ricerca che, in regime di autonomia, cooperano al progredire dell analisi e dello sviluppo della Genomica. Obiettivo di tale raccolta è migliorare la comprensione e la decifrazione delle informazioni genomiche, individuandone la funzione, la struttura e la relazione con la salute umana. Pertanto si mira a creare strumenti informatici che permettano alla comunità medicoscientifica e al mondo industriale di: analizzare e utilizzare i dati sui genomi per lo sviluppo di nuove terapie, medicinali e diagnosi sanitarie sempre più accurate; raccogliere le informazioni al fine di analizzare e utilizzare i dati sui genomi per lo sviluppo di nuove terapie, medicinali e diagnosi sanitarie sempre più accurate. Sul piano della ricerca è necessario lo sviluppo di sistemi software per la Bioinformatica, diretti ad esempio: alla modellizzazione della struttura tridimensionale a livello atomico delle molecole biologiche; all analisi, lo studio e la predizione dei modi di interazione delle molecole biologiche; alla classificazione di dati basati su metodi di intelligenza artificiale quali le reti neurali, gli Hidden Markov Models, le Support Vector machines, etc. mirati all assegnazione di funzione o di caratteristiche funzionali ai prodotti genici di interesse; alla visualizzazione, l analisi, il confronto e la ricerca in banche dati di interazioni tra molecole biologiche e di pathway metabolici; alla correlazione dei dati di interazione con dati disponibili sulle basi genetiche di patologie complesse; all identificazione di elementi regolativi della trascrizione all'interno e nell'intorno di geni; all identificazione delle reti di regolazione genetica a partire da dati di espressione dalla conoscenza degli elementi regolativi. Questi algoritmi permetteranno di capire come i geni agiscono in maniera concertata e pertanto di ricostruire i pathway biologici in cui essi sono coinvolti e quindi capire la loro funzione. all'identificazione di siti di legame di fattori di trascrizione ha lo scopo di fornire un insieme di strumenti flessibili per prelevare i dati da sorgenti multiple. all identificazione di reti di regolazione genetica. Una rete genetica può essere rappresentata matematicamente utilizzando equazione differenziali ordinarie i cui parametri sono incognite che bisogna stimare utilizzando i dati sperimentali quali profili di espressione genetica per identificare le interazioni tra geni. all interpretazione automatica di letteratura scientifica e di divulgazione delle più note riviste internazionali. alla modellistica biomedica e all apprendimento automatico nella systems biology. A tal fine pccorre impiegare metodologie innovative per la generazione di ipotesi su reti di regolazione genica e per lo studio e la simulazione di particolari processi cellulari. allo sviluppo di metodi basati su modelli qualitativi e metodi probabilistici, in grado di tener conto di informazioni incerte e conoscenza imperfetta sul dominio allo studio. allo sviluppo di sistemi informativi sanitari correlati a dati genetici. In questa attività verranno utilizzati ed adattati metodi ed approcci sviluppati nell ambito dei sistemi nformativi sanitari per tener conto delle esigenze specifiche delle applicazioni che trattano dati genetici, genomici e di proteomica. allo sviluppo di cartelle cliniche elettroniche orientate alla gestione ed all integrazione dei dati clinici con dati genetici, di genomica funzionale e di proteomica. alla progettazione di sistemi informativi per la conduzione di studi di caratterizzazione enetico-clinica alla gestione di dati e database orientati agli aspetti di privacy e sicurezza informatica. a costruire workflow per il design e lo sviluppo di applicazioni di supporto al lavoro collaborativi in bioinformatica. 8

9 BIOINFORMATICA a sviluppare metodologie basate sul GRID computing e calcolo avanzato specifiche per la bioinformatica per fare fronte a calcoli di notevole complessità algoritmica. Lo sviluppo dei sistemi Oggi si è in presenza di una situazione dove il rapido avanzamento della ricerca e delle tcnologie applicate alla medicina ha portato ad un considerevole aumento di interesse verso le collezioni di materiali biologici umani. Le raccolte di campioni di tessuti e linee cellulari, da cui si ottengono acidi nucleici e proteine, sono definite biobanche e rappresentano un importante fonte di risorse per la diagnosi e per la ricerca da quella di base fino alla sperimentazione di terapie per le malattie genetiche. Il successo delle ricerche per l identificazione dei geni malattia, dei geni di suscettibilità e delle possibili applicazioni terapeutiche, compreso lo sviluppo di nuovi e specifici farmaci, si avvale della possibilità di disporre di campioni biologici di persone affette o portatrici o predisposte a patologie su base genetica, o che manifestano variabilità alla risposta dei farmaci. Il materiale biologico è diventato una risorsa molto preziosa e deve essere quindi favorito lo sviluppo e la organizzazione di tale attività e regolamentato l utilizzo, il mantenimento e l interazione tra varie biobanche. Queste collezioni sono numerose e di diversa entità ed è quasi impossibile quantificarle e avere informazioni sul loro stato di conservazione e sulla loro gestione. Pertanto di fronte al crescente aumento delle biobanche genetiche e degli interessi ad esse collegati, si ritiene necessario che in Italia si giunga rapidamente ad una regolamentazione per la loro istituzione ed utilizzo, e venga realizzato un censimento di quelle già esistenti. E da potenziare il coordinamento delle biobanche secondo le indicazioni fornite dall OCSE, provvedendo alle autorizzazioni e alle certificazioni. Sul piano dello sviluppo dei sistemi occorre studiare: Metodologie di progetto di una biobanca; Linee guida per la progettazione di una biobanca, interoperabile con le altre biobanche; Valutazione della qualita di una biobanca. Infatti, uno degli obiettivi perseguibili è la definizione del protocollo e delle modalità di popolamento delle biobanche e le specifiche per una progettazione orientata alla efficienza dell utilizzo. Occorre difatti, grazie all informatica, affrontare la multidisciplinarietà: in modo da rappresentare tutte le numerose tipologie di dati per la definizione del profilo genomico di un individuo che richiede spesso l'analisi simultanea di molti geni e lo studio della loro attività in modo parallelo (e.g. nell'uomo numerosi geni possono avere decine o centinaia di mutazioni diverse responsabili della stessa malattia); lo studio di queste mutazioni in parallelo sottolinea proprio la capacità di fornire informazioni su numerose alterazioni o stato di attività di geni nel medesimo istante. La tipologia dei dati deve permettere di modellare i seguenti dati: sequenze di DNA; SNP (Single Nuleotide Polymorphism), ovvero variazioni di singole basi di DNA (consentono di studiare a livello molecolare le differenze individuali tra individui e sviluppare profili genetici caratteristici per ogni persona o gruppi di persone); annotazioni manuali o automatiche (e.g. SNPs ); livelli di espressione genica, mappe proteomiche; interazioni tra geni e proteine; pathway metabolici; L infrastruttura operativa Lo sviluppo tecnologico ha reso sempre più semplice e rapida la possibilità di sequenziale genomi di organismi viventi, dai più semplici come i virus a quelli più complessi come l uomo. Nei prossimi anni sarà possibile ottenere sequenze genomiche in modo molto rapido e preciso. Questo fa nascere la necessità di definire i modi in cui memorizzare, trattare e sfruttare questa immensa quantità di dati. In analogia ad altri campi della scienza, come ad esempio la fisica delle particelle o l astronomia, la genomica e le biotecnologie dovranno affrontare il problema del sovraccarico di informazione. Diventa 9

10 BIOINFOSTAT quindi essenziale la creazione di schemi logici e di modalità di scambio tra le molteplici entità per sviluppare le basi di dati appropriate. Il primo passo è necessariamente costituito dalla definizione della semantica dei dati, ossia la definizione del significato delle entità che definiscono il dominio sotto osservazione e le relazioni che le legano. La definizione delle modalità di scambio delle informazioni rappresentano il secondo passo, infatti è fondamentale poter trasferire l informazione tra le varie entità che la trattano in maniera precisa e sicura. La crescita esponenziale della quantità di dati da trattare sta inoltre creando un problema di capacità di elaborazione. Saranno sempre di più necessari sistemi di calcolo potenti e veloci e quindi sarà sempre più indispensabile l impiego di sistemi distribuiti capaci di mettere assieme le risorse necessarie ovunque si trovino nel mondo, il tutto in maniera semplice e sicura. Tutto questo potrà permettere, ad esempio lo studio delle ragioni alla base della diversa efficacia di un farmaco nei vari pazienti o di capire le basi genetiche di malattie molto importanti. Oppure sarà più semplice studiare il comportamento dei microrganismi e comprenderne a pieno la loro interazione le cellule. Altrettanto importante è l osservanza e l adesione agli standard internazionali già definiti o in via di definizione in modo da facilitare sempre più l integrazione della bioinformatica italiana con il resto delle comunità scientifiche ed industriali. L infrastruttura informatica La quantità di dati attualmente disponibile non è che una minima parte di quella che è lecito attendersi nel prossimo futuro. Questo pone un problema di capacità di elaborazione e di gestione non banale che implica necessariamente l uso di sistemi distribuiti. Nel campo dell infrastruttura informatica per il supporto di attività scientifiche che richiedono accesso a grosse potenze di calcolo ed a risorse geograficamente distribuite si parla sempre piu spesso della GRID. Questo termine e stato coniato in USA alla fine degli anni 90 [ref. The Grid a Blue print for a new computing infrastructure. Foster and Kesselman ed.] per analogiacon la rete di distribuzione elettrica che e un ottimo esempio di un infrastruttura pervasiva ed altamente distribuita che ha generato a suo tempo una rivoluzione nei metodi di produzione industriale e nella società. Per GRID s intende un infrastruttura informatica, formata da risorse di calcolo (in genere centri di calcolo di piccole, medie e grosse dimensioni), altre risorse di tipo vario, banche dati, strumenti scientifici (sensori, satelliti, acceleratori di particelle), sistemi di visualizzazione e strumenti per il supporto di lavoro condiviso come video conferenze e librerie digitali interconnesse da una rete di comunicazione ad alte prestazioni ed alta affidabilità come in effetti Internet sta sempre più diventando ed un software adeguato a creare con tutti questi elementi un centro di calcolo virtuale che dia l impressione all utente finale in fronte del suo calcolatore personale di avere accesso alle stesse facilità e risorse come se si trattasse di un centro locale. Le funzioni di questo software si possono riassumere ad un sistema di identificazione dell utente che permetta un accesso a risorse distribuite senza il bisogno per l utente di essere riconosciuto ed autorizzato in tutte le risorse remote. Dietro queste funzioni c e un sistema molto complesso e distribuito implementato sempre piu spesso sotto forma di servizi Web (altra analogia con il Web) che permette di localizzare le risorse necessarie per l elaborazione del programma richiesto, ottimizzare il carico dei vari sistemi di calcolo coinvolti ed assicurare il buon funzionamento di tutta l infrastruttura di Grid. La bioinformatica ha molto in comune con altre scienze come la Fisica delle particelle elementari che hanno gia da qualche anno fatto ricorso ad un infrastruttura di Grid per il loro bisogni informatici. Gli elementi più importanti per consigliare l adozione di questo approccio informatico sono i seguenti: grandi mole di dati distribuite geograficamente e non necessariamente di tipo ed accesso uniforme; possibilità di parallellizzare il calcolo e distribuirlo in unità di elaborazione indipendenti; esistenza di collaborazioni organizzate a livello internazionale. Innumerevoli esempi di progetti che prevedono o stanno gia utilizzando tecnologia di Grid per applicazioni di bioinformatica sono disponibili tramite organizzazioni come Healthgrid. Il progetto europeo di e-infrastructure EGEE e BIOINFOGRID consentirà di supportare un notevole numero di applicazioni di biomedicina e bioinformatica. 10

11 BIOINFORMATICA Pertanto la bioinformatica è l area dove le tecnologie Grid possono dare il maggiore contributo. L obiettivo della bioinformatica è lo sviluppo ed il mantenimento di una infrastruttura per la conservazione, l accesso, il trasferimento e la simulazione di processi ed informazioni biomediche; gli attuali sforzi di estesa computazione su dati biologici rientrano, quindi, negli propositi generali delle tecnologie Grid. L infrastruttura concettuale Nei prossimi anni analizzando il corredo genetico di ogni individuo, si attendono passi in avanti nella ricerca sul perché alcuni si ammalano, altri sono suscettibili ad ammalarsi o a resistere a una infezione virale o batterica o, ancora, a reagire in un determinato modo a un preciso farmaco. Questo significa che i ricercatori sono chiamati a lavorare su un insieme vasto ed eterogeneo di dati disponibili in differenti basi di dati accessibili in rete. Tutto cio implica la possibilità di vedere tutti questi dati in un unico ambiente, sfruttando al massimo le possibilità offerte dall interoperabilita. I motivi sono tanti alla base dello sviluppo armonioso ed interoperabile delle basi di dati, legati principalmente all esigenza sempre sentita: da un lato di una normalizzazione concettuale e coerente di questi Repository (usare la stessa rappresentazione), dall altra di strumenti informatici pensati per consentire le indispensabili Modalità di Scambio e Cooperazione (parlare la stessa lingua). In tale situazione, è evidente la necessità di tool informatici in grado di: incrociare efficacemente in una Cooperazione Integrata le principali caratteristiche genetiche, epidemiologiche, etniche e sociali per identificare i geni-malattia (unico strumento di raccolta dati), attribuire a ciascuna sequenza genica uno score di Rischio Genomico Individuale (analisi statistiche). Questo implica enormi sforzi nell integrazione di informazioni cliniche e genomiche distribuite a livello geografico. Inoltre lo sviluppo di vocabolari standard facilità la condivisione di dati e risorse. Sul piano di questa infrastruttura gli aspetti da studiare riguardano: Il modello semantico dei processi associato ad analisi biomediche. Il modello di standardizzazione delle biobanche. Lo sviluppo dei sistemi informativi sanitari per tener conto delle esigenze specifiche delle applicazioni che trattano dati genetici, genomici e di proteomica. Lo sviluppo di Cartelle cliniche elettroniche orientate alla gestione ed all integrazione di dati clinici con dati genetici, di genomica funzionale e di proteomica. Il progetto di sistemi informativi per la conduzione di studi di caratterizzazione genetico clinica di particolari sottopopolazioni, anche in riferimento agli aspetti di privacy e sicurezza informatica. Utilizzo di sistemi formali di workflow per il design e lo sviluppo di applicazioni di supporto al lavoro collaborativi in bioinformatica. Semantica dei dati Il primo passo nello studio di un particolare dominio della conoscenza dovrebbe essere la definizione del significato stesso dei dati, delle entità che costituiscono il dominio in questione e delle relazioni che intercorrono tra esse. Questo consiste nella definizione di una normalizzazione concettuale delle banche dati, la definizione di ontologie che definiscano le entità (oggetti) e le relazioni tra esse basate su vocabolari condivisi e controllati, la definizione degli schemi delle basi dati derivati dagli schemi concettuali che rappresentano il dominio in esame. Il risultato di questo lavoro di definizione semantica è la possibilità di definire in maniera chiara e precisa il significato degli oggetti e dei dati che rappresentano l informazione eliminando alla base gli errori dovuti alla loro sbagliata interpretazione ovvero ad una rappresentazione incoerente tra le varie basi dati. In questo ambito dovranno essere definiti gli standard di 11

12 BIOINFOSTAT rappresentazione dei dati utilizzando il linguaggio di marcatura XML e sulla base di questo gli standard di descrizione dei dati quali BSML, MAGE-ML, ecc. Protocolli di scambio informazioni La definizione dei metodi di scambio dell informazione e di collaborazione tra diversi soggetti rappresenta il secondo passo fondamentale. E necessaria la definizione di protocolli di comunicazione che permettano la trasmissione dei dati in maniera definita e sicura. Sulla base di questi protocolli sarà quindi possibile definire servizi aggiuntivi quali ad esempio la sincronizzazione delle basi dati, la creazione di indici comuni delle basi dati disponibili e la loro ricerca, la pubblicazione delle caratteristiche delle singole basi dati e le modalità di accesso ed utilizzo, ecc. Tutti questi servizi devono avere il preciso obiettivo di facilitare la collaborazione e l integrazione sia tra le basi dati che tra i soggetti che vi operano. Un analogia nel mondoinformatico che ben si adatta a questo aspetto è rappresentata dall utilizzo dei Web Services. Basandosi su un protocollo di comunicazione ben definito come l HTTP, alla base del World Wide Web, sono state definite le modalità di pubblicazione, indicizzazione, ricerca, accesso ed utilizzo di servizi disponibili sulla rete Internet. Nell ambito dello sviluppo di standard in bioinformatica, si stanno perseguendo i seguenti obbiettivi: Creare un Domain Information Model (concetti, vocabolari, tipi di dato, etc.) per il dominio Clinical-Genomics; Derivare un R-MIM (modello concettuale informativo da cui costruire lo schema fisico del database della biobanca), ovvero un modello dal RIM (Reference Information Model) di HL7, un meta-modello astratto per rappresentare la semantica delle informazioni sanitarie; Specificare le tipologie di messaggi ed i documenti Clinical-Genomic (HL7 CDA di livello 3) per lo scambio e la condivisione di informazioni genetiche tra centri di ricerca; Rivisitare/utilizzare i seguenti standard emergenti in bio-informatica (XML) BSML (Bioinformatic Sequence Markup Language), MAGE-ML (Microarray and GeneExpression Markup Language). L adozione di tali metodologie consentirà una migliore integrazione fra i dati bioinformatici e i modelli adottati per scopi ospedalieri (dati medici, clinici, amministrativi, etc.); Bibliografia R. Maceratini, F.L. Ricci. Il Medico On-Line Manuale di Informatica Medica. Verduci Editore, Roma, F. Martin-Sanchez, V. Maojo e G. Lopez-Campos Integrating Genomics into Health Information Systems, Methods of Information in Medicine. Progetto europeo di e-infrastructure EGEE disponiile su L:M: Arthur. Introduzione alla Bioinformatica. Mcgraw-Hill Italia,

13 BIOINFORMATICA CALCOLATORI LINGUAGGIO L obiettivo ambizioso eppure caratteristico della scienza, formulato dall uomo occidentale sin dagli albori del pensiero scientifico, è di arrivare al massimo grado di conoscenza possibile dell oggetto investigato e delle relazioni di causa ed effetto di questo con la realtà (Wittgenstein). I fondamenti della ricerca scientifica hanno come già visto nell introduzione come base la logica. La logica ha avuto origine nella antica Grecia dallo studio dei filosofi e matematici, i principi logici che collegano la scrittura sintattica delle frasi con la loro verità e falsità possono essere ampliamente trovati in Platone ( a.c.). Il primo studio sistematico della logica è noto come il trattato di Organon, scritto dagli allievi di Aristotele. La scuola di Megera e quella stoica pongono le basi per lo studio sistematico delle implicazioni, mentre lo studio di un linguaggio formale artificiale basato sulla notazione matematica per chiarire le relazioni logiche e ridurre l inferenza logica ad un processo meccanico e formale si deve a Leibnz nel Solo con Boole nella metà dell ottocento si ha un sistema logico ragionevolmente completo; il sistema includeva le parti principali della logica aristotelica ed un sistema analogo alla logica proposizionale moderna. Le tavole della verità come metodo per la verifica della validità delle formule nel linguaggio proposizionale sono state introdotte simultaneamente ed indipendentemente da Wittgenstein (1922) e da Emil Post (1921). Nel 1982 Quine descrive un metodo per l analisi dei valori della verità che è molto efficiente basato su alberi di decisione. La base di conoscenza o KB (Knowledge Base) è un insieme di rappresentazioni del mondo, ogni singola rappresentazione è denominata come formula, le formule a loro volta sono espresse in un linguaggio denominato linguaggio di rappresentazione della conoscenza. Il linguaggio viene definito in un dizionario come "l'insieme di parole e metodi di combinazione di parole usate e comprese da una comunità di persone". L oggetto della rappresentazione della conoscenza è l espressione della conoscenza espressa in forma trattabile automaticamente. Alla base di tutta l informatica vi sono due concetti fondamentali, che risultano strettamente interconnessi tra loro: quello di automa e quello di linguaggio. Il concetto di automa può essere introdotto come segue: per automa si intende un dispositivo che stabilisce una precisa relazione tra un dato di ingresso e un dato di uscita, soddisfacendo ai seguenti vincoli di realizzabilità fisica: se l'automa è fatto di parti, queste sono in numero finito; l'ingresso e l'uscita sono denotabili attraverso un insieme finito di simboli. L'automa potrebbe essere realizzato da un insieme di dispositivi elettronici digitali, oppure da dispositivi meccanici o biologici. L'obiettivo è di astrarre dai singoli, specifici casi concreti enucleando le caratteristiche ritenute essenziali. Il risultato di questo processo di astrazione consiste nella definizione di opportuni modelli matematici, cioè di sistemi formali che definiscono di fatto il concetto stesso di computabilità, cioè costituiscono l'ossatura portante della teoria della computabilità. 13

14 BIOINFOSTAT Tra i più noti di questi sistemi formali vi è una gerarchia di macchine astratte (la gerarchia caratterizza la capacità di risolvere classi diverse di problemi) che parte dagli automi a stati finiti e termina alla macchina di Turing. Questo tipo di sistemi formali cattura il concetto di "macchina" intesa come un dispositivo che dispone di un proprio stato interno utilizzabile come memoria e caratterizzato da un insieme di mosse elementari. Altri formalismi partono invece da concetti completamente diversi. Ad esempio, l'approccio funzionale di Hilbert, Church, Kleene è fondato sul concetto di funzione matematica e ha come obiettivo caratterizzare il concetto di funzione computabile. I sistemi di produzione di Thue, Post, Markov partono invece dall'idea di automa come insieme di regole di riscrittura (dette anche produzioni o regole di inferenza) che trasformano frasi (insiemi di simboli) in altre frasi. I diversi formalismi si differenziano invece radicalmente per il modo con cui giungono ad esprimere la soluzione ad un problema. Verso la fine degli anni 30, Claude Shannon dimostrò che utilizzando un circuito elettrico dotato di un interruttore era possibile definire le condizioni VERO per il circuito aperto e FALSO per circuito chiuso. Era possibile dunque effettuare delle operazioni logiche associando il numero 1 a vero e il numero 0 a FALSO. Questo linguaggio venne chiamato linguaggio BINARIO. Il linguaggio binario è dunque il linguaggio che consente il funzionamento dei computer. Il bit significa binary digit, vale a dire 0 o 1. Quindi la più piccola unità informativa manipolabile. Possiamo associare sempre o quasi sempre le informazioni ad un codice binario ad esempio per la nascita di un vitello, possiamo associare 0 se nasce maschio, 1 se nasce femmina. Con un solo bit possiamo avere sia 1 che 0. Con due bit possiamo avere una combinazione di (2*2). Con tre bit 3 bits possiamo avere otto situazioni differenti (2*2*2). Un ottetto è una unità di informazione composta da 8 bits, e permette di rappresentare caratteri, intesi come numeri o lettere. Quando nacquero gli elaboratori, l'unico modo di far comprendere loro un programma era quello di specificarlo nel loro stesso linguaggio, cioè il "linguaggio macchina": un linguaggio fatto solo di bit e di byte, in cui ogni operazione aveva un codice binario di identificazione e in cui ogni quantità, numerica o alfabetica, doveva essere caratterizzata dall'indirizzo dei byte di memoria centrale che la contenevano. Questo rendeva la programmazione un lavoro da specialisti. Il linguaggio macchina è il linguaggio programmativo della 1 a generazione. Ben presto si passò ai linguaggi della 2 a generazione, cioè ai cosiddetti "linguaggi simbolici". Ai byte si sostituirono dei codici convenzionali, diversi a seconda del ruolo svolto: ad esempio se il byte { } denotava la somma, esso si indicò con il codice ADD, facile da ricordare. I linguaggi 14

15 BIOINFORMATICA simbolici snellirono di molto la programmazione ed in effetti sono talvolta usati ancora oggi; di solito sono detti "linguaggi assemblatori" ed essendo analoghi al linguaggio macchina permettono una programmazione particolarmente efficiente. Anche questi linguaggi sono comunque linguaggi da specialisti mentre gli elaboratori avevano sempre più l'esigenza di rivolgersi anche a persone non specialiste del settore. Si arrivò così ai linguaggi della terza generazione, detti "linguaggi algebrici", che possono essere utilizzati anche da persone senza una profonda conoscenza dell'informatica. Il nome di questi linguaggi deriva dal fatto che in essi è possibile scrivere un'espressione quasi come si scrive in algebra e che l'elaboratore è in grado di riconoscere e tradurre nel proprio linguaggio macchina. Rappresentazione, ragionamento e logica. L obiettivo ambizioso eppure caratteristico della scienza, formulato dall uomo occidentale sin dagli albori del pensiero scientifico, è di arrivare al massimo grado di conoscenza possibile dell oggetto investigato e delle relazioni di causa ed effetto di questo con la realtà (Wittgenstein). La logica ha avuto origine nella antica Grecia dallo studio dei filosofi e matematici, i principi logici che collegano la scrittura sintattica delle frasi con la loro verità e falsità possono essere ampliamente trovati in Platone ( a.c.). Il primo studio sistematico della logica è noto come il trattato di Organon, scritto dagli allievi di Aristotele. La scuola di Megera e quella stoica pongono le basi per lo studio sistematico delle implicazioni, mentre lo studio di un linguaggio formale artificiale basato sulla notazione matematica per chiarire le relazioni logiche e ridurre l inferenza logica ad un processo meccanico e formale si deve a Leibniz. Solo con Boole nella metà dell ottocento si ha un Aristotele Leibniz sistema logico ragionevolmente completo; il sistema includeva le parti principali della logica aristotelica ed un sistema analogo alla logica proposizionale moderna. Le tavole della verità come metodo per la verifica della validità delle formule nel linguaggio proposizionale sono state introdotte simultaneamente ed indipendentemente da Wittgenstein (1922) e da Emil Post (1921). Nel 1982 Quine descrive un metodo per l analisi dei valori della verità che risulta molto efficiente basato su alberi di decisione. La base di conoscenza o KB (Knowledge Base) è un insieme di rappresentazioni del mondo, ogni singola rappresentazione viene denominata formula, le formule a loro volta sono espresse in un linguaggio denominato linguaggio di rappresentazione della conoscenza. L oggetto della rappresentazione della conoscenza è l espressione della conoscenza espressa in forma trattabile automaticamente. Un linguaggio di rappresentazione della conoscenza è definito da due aspetti: La sintassi del linguaggio che descrive le possibili configurazioni che costituiscono le formule. Di solito rappresentiamo la sintassi in termini di formule per la carta stampata, in realtà la vera rappresentazione è all interno di un computer: ogni formula è implementata da una configurazione fisica. La semantica determina le realtà del mondo a cui si riferiscono le formule. Con la semantica ogni formula asserisce qualcosa al mondo. Ogni linguaggio, così come ogni lingua umana, è formato da parole che devono essere messe insieme secondo determinate regole (sintassi) al fine di ottenere un significato Formattati: Elenchi numerati "Più è facile, meglio è", dovrebbe essere il motto. Mentre 15 purtroppo per la maggior parte degli come hackers, smanettoni), (intesi vale sempre il pensiero che "più è difficile e più mi diverto".

16 BIOINFOSTAT (semantica). Disporre le parole rispettando una regola non è sufficiente per dare loro un significato: regola: soggetto + verbo + complemento es. 1: Il mio cane corre sul prato (sintassi corretta, significato valido) es. 2: Il tuo gatto salta sulla macchina (sintassi corretta, significato valido) es. 3: Il fiume beve sul mio cane (sintassi corretta ma priva di significato) es. 4: Il prato corre nella mia macchina (sintassi corretta ma priva di significato) In ambito più strettamente linguistico si intende per significato il contenuto semantico o senso di un segno linguistico. Il termine semantica (che indicava anticamente, in medicina, la scienza che valuta i sintomi delle malattie) fu introdotto da Locke in filosofia per indicare lo studio dei segni linguistici. Morris (1938 e 1946) ha introdotto la distinzione in: sintattica che studia le relazioni dei segni tra di loro; semantica, che studia le relazioni dei segni con gli oggetti cui sono applicabili. Le regole per la costruzione delle frasi di un linguaggio sono espresse come produzioni di un sistema formale denominato grammatica. Le regole grammaticali descrivono solo come sono fatte le frasi di un linguaggio, cioè la sintassi, e di norma non descrivono il significato delle frasi. Le regole grammaticali devono essere concepite in modo da garantire la decidibilità del linguaggio. Questo problema, essenziale per poter costruire traduttori ed interpreti, è oggi risolto attraverso l'uso di grammatiche generative libere da contesto. Per comprendere il significato di questa espressione, occorre caratterizzare formalmente il concetto di linguaggio ed introdurre la classificazione delle grammatiche data da Chomsky. Per quanto riguarda la caratterizzazione della semantica di un linguaggio di programmazione, il metodo che viene spontaneo alla mente è quello operazionale. Visto che un linguaggio di programmazione serve per descrivere azioni eseguibili da una macchina, la semantica del linguaggio può venire definita mostrando come si comporta un automa prescelto in corrispondenza di ogni classe di frasi del linguaggio. Ma le azioni dell'automa devono venire espresse a loro volta in modo formale, usando un linguaggio. Dunque come stabilire la semantica del linguaggio con cui descriviamo l'automa? Per evitare un regresso all'infinito si deve assumere un livello di formalizzazione primitivo il cui significato è lasciato all'accordo "intuitivo" (ammesso che ciò sia possibile) tra chi legge e chi scrive, facilitato dalla semplicità delle mosse dell'automa prescelto. L'approccio operazionale è tuttavia da molti criticato in quanto troppo di "basso livello", poiché consente di pervenire alla comprensione di un costrutto linguistico solo dopo una analisi spesso assai dettagliata e complicata. Molti preferiscono definire il significato di un costrutto stabilendo una funzione di interpretazione che associ a quel costrutto una funzione matematica che denota una specifica relazione ingresso-uscita. Questo approccio, detto denotazionale, consente di caratterizzare la semantica con un maggior livello di astrazione rispetto all'approccio operazionale in quanto astrae dalla nozione di stato. Una prospettiva ancora diversa è quella che imposta la semantica Chomsky di un linguaggio in termini di una teoria dei programmi scritti in quel linguaggio. Questo approccio, detto assiomatico, eleva ancora più il livello di astrazione in quanto si prefigge di costruire una teoria matematica per quel linguaggio, cioè un sistema formale nel quale è possibile esprimere fatti interessanti intorno ai programmi e dimostrarne o confutarne formalmente la verità. Il metodo assiomatico risulta particolarmente attraente dal punto di vista dell'ingegneria del software in quanto il 16

17 BIOINFORMATICA programmatore non è tanto interessato ad avere un modello formale dei programmi che scrive, quanto a ragionare sui programmi e provarne proprietà. Un modo più tecnico per definire il concetto di linguaggio è introdurre un insieme di simboli (detto alfabeto) e dire che "un linguaggio è un particolare insieme di frasi formate dai simboli dell alfabeto". Questa definizione sembra chiara, se non altro perché fa riferimento al concetto matematico di insieme. Tuttavia questa definizione contiene in sé un problema. Come si fa a descrivere un insieme? Se questo insieme è finito, la risposta è semplice: per denotare l'insieme basta scrivere (in modo più o meno ordinato) le frasi che lo compongono. Ma se il nostro intento è definire un linguaggio con un numero infinito di frasi, allora come si fa ad esprimere l'insieme in modo finito e non ambiguo?. Poiché stiamo già usando un linguaggio (l'italiano) possiamo pensare di usare il linguaggio naturale. Ad esempio, detto A l'insieme {0,1}, diciamo che L1 è il linguaggio le cui frasi sono formate da n simboli 0 seguiti da n simboli 1, con n che denota un qualunque numero intero positivo. In base a questa definizione, sono frasi di L1: 0011, 01, non appartengono a L1: 011, cane, a+b, etc. Ma questo modo di procedere si scontra subito con l'ambiguità tipica dei linguaggi naturali, che può facilmente portare a definizioni a prima vista chiare, ma a una lettura più attenta non complete o addirittura contraddittorie. Per ottenere definizioni non ambigue, occorre definire un dispositivo, un automa capace di produrre in modo sistematico e determinato le frasi del linguaggio. Certo questa "macchina" non potrà essere un dispositivo fisico, ma solo qualcosa di ancora puramente simbolico. Sarà dunque un altro linguaggio. Ma così facendo, sembra di cadere in un ciclo senza fine: per definire un linguaggio abbiamo bisogno di un linguaggio. Per evitare un regresso all'infinito si deve assumere un livello di formalizzazione primitivo il cui significato è lasciato all'accordo "intuitivo" tra chi legge e chi scrive, facilitato dalla semplicità delle mosse dell'automa prescelto. Un modo per definire un automa generatore delle frasi di un linguaggio è introdurre un insieme di regole "immediatamente comprensibili" a un lettore umano per comporre tra loro i simboli appartenenti ad un insieme finito prefissato detto alfabeto. L esistenza di regole di generazione permette di dare risposta alla domanda:quali sono le frasi lecite di un linguaggio? Le frasi lecite di un linguaggio sono tutte e sole quelle frasi che possono essere prodotte usando le regole di generazione stabilite. Ma dare risposta a questa domanda non basta.occorre anche rispondere a questi altri due quesiti: data una frase è possibile stabilire se essa appartiene a un linguaggio? come stabilire il significato di una frase? Uno dei risultati della teoria della computabilità è che un insieme è riconoscibile se e solo se sia per esso sia per il suo complemento esiste un automa generatore. Tecnicamente, un insieme (infinito) i cui elementi sono generabili da un automa si dice ricorsivamente enumerabile (r.e.). Quando anche il complemento di un insieme r.e. è r.e., allora l'insieme si dice ricorsivo. Un insieme ricorsivo è dunque decidibile, cioè esiste un automa che, data una qualunque frase, può dare in un tempo finito risposta "si" se la frase appartiene al linguaggio oppure risposta "no" se non vi appartiene. La descrizione dei linguaggi viene effettuata introducendo sistemi formali diversi per la descrizione della struttura superficiale delle frasi (sintassi) e per la descrizione del significato di una frase (semantica). 17

18 BIOINFOSTAT Ad esempio la sintassi del linguaggio delle espressioni aritmetiche dice che x e y sono espressioni che denotano numeri, quindi se x y è una formula sui numeri. La semantica dice che x y è falso quando y è maggiore di x, altrimenti è vero. Rappresentazione FRASI Deriva FRASE Mondo FATTI Segue FATTO Se la semantica e la sintassi sono definite con precisione possiamo derivare un meccanismo di inferenza. La connessione fra formule e fatti è fornita dalla semantica del linguaggio. La proprietà che un fatto segue altri fatti è rispecchiata dalla proprietà di una formula di essere derivata da un altra formula. L inferenza logica genera nuove formule che sono derivate da formule esistenti. A noi in generale interessa generare nuove formule che siano necessariamente vere, nel caso in cui le vecchie formule siano vere; questa relazione viene chiamata implicazione. Il termine di ragionamento ed inferenza sono solitamente sinonimi se usati per descrivere un procedimento che porta al raggiungimento di conclusioni. L inferenza logica è quindi un processo che realizza la relazione di implicazione fra formule. Una formula è valida o necessariamente vera se e solo se è vera secondo tutte le possibili interpretazioni in tutti i mondi possibili. C è un muro davanti a me e non c è un muro davanti a me è una formula insoddisfacibile. Un sistema formale di logica per la descrizione di cose consiste quindi in: sintassi semantica una teoria della dimostrazione. Esistono due tipi di logica logica proposizionale o logica booleana logica del primo ordine. Nella logica proposizionale i simboli rappresentano intere proposizioni e le proposizioni possono essere combinate usando i connettivi booleani. La logica di primo ordine affida la rappresentazione dei mondi in termini di oggetti e predicati su oggetti, cioè proprietà degli oggetti o relazione tra oggetti. Si utilizzano connettivi e quantificatori che consentono di scrivere in una unica formula asserzioni riguardanti tutti gli elementi dell universo. Dobbiamo ora considerare le logiche alla luce delle assunzioni che possono essere ontologiche o epistemologiche. Le assunzioni ontologiche hanno a che fare con la natura della realtà. I fatti della natura possono essere VERO o FALSO. Formattati: Elenchi numerati Formattati: Elenchi numerati 18

19 BIOINFORMATICA La logica del primo ordine assume che il mondo consiste di oggetti con certe relazioni tra loro che possono essere vere o false. Logiche speciali assumono assunzioni logiche superiori, ad esempio la logica temporale considera che il mondo sia ordinato da un insieme di punti di tempo. L assunzione epistemologica tratta i possibili stati della conoscenza, i sistemi che usano la teoria della probabilità possono avere gradi di credenza che possono variare da 0 (credenza nulla) a 1 (certezza). I sistemi basati sulla logica fuzzy possono avere gradi di credenza secondo gradi di verità. Un fatto non deve essere vero o falso, ma può essere vero fino ad un certo grado. Ad esempio l affermazione La Juventus è una grande squadra può essere vera con un certo grado di verità. Linguaggi formali e assunzioni ontologiche ed epistemologiche LINGUAGGIO Assunzioni Ontologiche Assunzioni Epistemologiche Logica preposizionale Fatti vero/falso/ignoto Logica del primo ordine Fatti, oggetti, relazioni vero/falso/ignoto Logica temporale Fatti, oggetti, relazioni, tempo vero/falso/ignoto Teoria della probabilità Fatti gradi di credenza (0.1) Logica fuzzy Gradi di verità gradi di credenza (0.1) LA LOGICA PROPOSIZIONALE. La sintassi della logica è molto semplice in quanto utilizza le costanti logiche, vero-falso, i simboli preposizionali P e Q e i connettivi logici. Tutte le formule sono costruite utilizzando i simboli secondo alcune regole Le costanti logiche Vero o Falso sono formule Un simbolo preposizionale come P o Q è una formula Mettere delle parentesi determina una formula Una formula può essere ottenuta combinando formule semplici con i connettivi logici. (and). Una frase in cui il connettivo principale è (P Q) è chiamata congiunzione (or). Una formula che usa, A (P Q) è una disgiunzione dei disgiunti (il simbolo deriva dal latino vel che significa o). (implica). Una formula come (P Q) R è chiamata implicazione. La parte (P Q) rappresenta la premessa o antecedente, mentre R costituisce la conclusione. Formattati: Elenchi numerati (equivalenza). La formula (P Q) (Q P) è una equivalenza chiamata anche bicondizionale. (not). Una formula come P è chiamata negazione. La logica preposizionale ha una ontologia molto limitata, con il solo vincolo che il mondo sia costituito da fatti. La semantica nella logica preposizionale è molto semplice quando tratta le costanti logiche; la formula vero, ha sempre come interpretazione un fatto vero. Una formula 19

20 BIOINFOSTAT complessa ha un significato derivato delle sue parti. La somma è una funzione che prende due numeri come interi e restituisce un numero, anche il termine and è una funzione che prende due valori di verità e restituisce un valore di verità. Date due proposizioni P e Q, si può creare una tabella della verità con i connettivi logici. P Q P P Q P Q P Q P Q Falso Falso V F F V V Falso Vero V F V V F Vero Falso F F V F F Vero Vero F V V V V Le tavole della verità definiscono la semantica delle formule come Vero Falso. Il connettivo di implicazione è il più importante, ma anche il più complicato in quanto possono presentarsi casi lontani dalla nostra intuizione. In molti casi la logica preposizionale non necessita di alcuna relazione per la rilevanza tra P e Q. Ad esempio la frase 5 è dispari implica Parigi è una capitale è un poco strana, ma corretta. Una confusione inoltre deriva dal fatto che qualsiasi implicazione è vera quando il suo antecedente è falso. Ad esempio posso avere 5 è pari (Falso) Giovanni è stupido (vero). In realtà dovrei dire P Q se P è vero, allora Q è vero, altrimenti non sostengo nulla. Qualsiasi mondo in cui una formula sia vera secondo una particolare interpretazione è chiamato modello. Infatti potremo definire il significato di una formula in termini di un insieme di operazioni su un insieme di modelli. Ad esempio l insieme dei modelli P Q è l intersezione dei modelli P e dei modelli di Q. Le grammatiche. Il mondo è costituito da oggetti, cioè identità individuali con proprietà e relazioni, se le relazioni sono tali per cui esiste un solo ingresso si parla di funzioni. Un linguaggio formale è definito come un insieme di stringhe in cui ogni stringa è una sequenza di simboli. Tutti i linguaggi sono quindi un insieme infinito di simboli che ha bisogno di un modo conciso di rappresentazione che è dato dalla grammatica. OGGETTI RELAZIONI PROPRIETÀ FUNZIONI Persone, animali, numeri Fratello di, più piccolo di, possiede.. Rosso, primo, quadrato Padre di, secondo tempo di, uno più di Esistono diversi formalismi per definire una grammatica, i più diffusi sono certamente la notazione estesa BNF (proposta da Backus et Naur) e i diagrammi sintattici. Nella grammatica BNF ci sono quattro componenti SIMBOLI TERMINALI: sono i simboli o le parole che compongono le stringhe del linguaggio. (esempio le lettere dell alfabeto, i numeri ) SIMBOLI NON TERMINALI: consentono la classificazione delle sottofrasi del linguaggio. Per esempio, il simbolo non terminale NounPhrase per l inglese denota un Formattati: Elenchi numerati 20

21 BIOINFORMATICA insieme infinito di stringhe che comprende you e the big slobbery dog (cane bavoso). SIMBOLO INIZIALE: è il simbolo non terminale che denota l insieme delle stringhe del linguaggio. In aritmetica potrebbe essere Exp. REGOLE DI SCRITTURA O PRODUZIONE: consentono di classificare le stringhe Ad esempio Cifra 7, significa che ogni volta che incontra il simbolo 7 lo classifica come cifra. ELEMENTI TERMINALI DEL LINGUAGGIO ELEMENTI CON SIMBOLI NON TERMINALI PERCORSO Elementi del diagramma sintattico Per leggere un diagramma sintattico si devono seguire alcune regole:h Si legge il diagramma da sinistra. Si opera una scelta quando si trova una biforcazione. Se si trova un elemento terminale lo si inserisce nella frase e si prosegue. Se si incontra un simbolo non terminale lo si sostituisce con il suo diagramma sintattico. Formattati: Elenchi numerati A B B c c Equivale ad una alternativa A, o B o C Alternativa B o C o niente Grazie alla sua espressività questo tipo di rappresentazione si è largamente diffusa soppiantando, in alcuni casi, la rappresentazione classica del BNF. Nel seguito del paragrafo vengono riportati alcuni esempi di grafi sintattici relativi al linguaggio Pascal. 21

22 BIOINFOSTAT INTERO SENZA SEGNO CIFRA Diagramma sintattico di intero senza segno La conoscenza e la comprensione di fenomeni complessi in ambito della ricerca sono rappresentate come modello. Il metodo scientifico è basato sulla creazione, verifica, modifica del modello di rappresentazione del mondo. La finalità del modello è quella di semplificare e di spiegare la complessità dei diversi fenomeni. Le scienze applicate usano i modelli per predire, controllare e comprendere la realtà del mondo. Il modello è una rappresentazione che contiene gli elementi essenziali degli oggetti o degli eventi che si realizzano nel mondo reale. La rappresentazione di un modello può avvenire secondo due modalità. q q FISICA. Come un modello di aeroplano o il modello di una costruzione. SIMBOLICA. Come nel linguaggio naturale, un programma al computer o una serie di equazioni matematiche. I modelli possono essere facilmente cambiati o manipolati: il cambiamento di un modello simbolico è certamente più facile rispetto al cambiamento in un modello fisico. I valori che si modificano in un modello sono chiamati parametri. La costruzione del modello passa attraverso quattro fasi: q q q q SEMPLIFICAZIONE e IDEALIZZAZIONE si identificano gli elementi essenziali della struttura (oggetti ed eventi). MANIPOLAZIONE e TRASFORMAZIONE rappresentano le implicazioni derivate dal modello. RAPPRESENTAZIONE e MISURA sono il formalismo che descrive gli oggetti, gli eventi e le loro relazioni. Questo è il processo di traduzione dalle parole all espressione algebrica; in statistica utilizziamo i simboli dell algebra (misure) per dare significato al processo chiamato misura. VERIFICA. Le implicazioni derivate sono confrontate con i risultati o le osservazioni nel mondo reale. 22

23 BIOINFORMATICA Mondo reale interpreta Modello osservazione modifica Mondo reale verifica Modello Rappresentazione attraverso un modello generico Causa COSA SI VEDE TEORIA Effetto Programma Osservazioni Si crede COSA SI CREDE Si vede Rappresentazione di un modello statistico I modelli a nostra disposizione sono in numero ragguardevole e dipendono dalla tipologia dei dati a nostra disposizione. Il modello per rappresentare la distribuzione di frequenza è ad esempio una espressione algebrica che descrive la frequenza relativa (altezza della curva). I modelli più utilizzati in ambito statistico sono quelli chiamati modelli di distribuzione probabilistica, generati dai processi stocastici che sia rappresentativo della POPOLAZIONE. Finalmente vogliamo confrontare gli effetti o la causa di interesse in relazione ad altre condizioni. Questo è un momento chiave perché dobbiamo individuare una strategia operativa o meglio pianificare un disegno sperimentale. ll ricercatore deve fornire una informazione di tipo sintetico sulla base dei dati di cui dispone; i dati quindi possono essere di diverso tipo e possono essere trattati secondo diverse modalità. La raccolta sistematica di osservazioni e misure rappresenta la base dell'attività di ricerca: dall'analisi delle osservazioni e delle misure effettuate il ricercatore cerca di trarre conclusioni che egli spera abbiano una più ampia validità. Il primo passo da compiere per effettuare una verifica sperimentale è la progettazione un'indagine definita attraverso la costruzione del "disegno sperimentale". Il disegno sperimentale consiste nella raccolta dei dati in modo tale che il rumore di fondo sia ridotto al minimo e che l'informazione sia ottenuta con precisione sufficiente per saggiare l'ipotesi di interesse sperimentale. Partendo da un'ipotesi generale, possiamo ricavare una "ipotesi 23

24 BIOINFOSTAT di lavoro o di ricerca", che deve essere ripetibile e verificabile da altri sperimentatori. Con essa ci poniamo un quesito su un evento futuro, o in ogni modo, su un avvenimento del quale possiamo solo supporre il risultato. Nell'ipotesi di lavoro i cardini fondamentali sono dati dall'espressione: "se... allora...". In termini statistici dopo il "se" si indica la variabile indipendente, e dopo "allora" quella dipendente. L informazione finale ottenuta sarà tanto più valida quanto maggiore e precisa sarà la definizione del disegno sperimentale. Una volta terminata la sperimentazione, l'ipotesi di lavoro potrà essere: q q q verificata e confermata: quando è possibile affermare che il suo contenuto risponde effettivamente ai dati raccolti; verificata e respinta: quando i dati raccolti nella sperimentazione non sono in accordo con la previsione; non verificata: quando i risultati della ricerca non permettono né di confermare né di respingere l'ipotesi di lavoro. 24

25 BIOINFORMATICA EVOLUZIONE STORICA DEL CALCOLO. L abaco rappresenta il capostipite degli strumenti di calcolo e ha costituito per molto tempo l unico ausilio per la risoluzione delle operazioni aritmetiche elementari. Abaco Blaise Pascal Le scoperte matematiche del XVI e XVII secolo permisero di affrontare il problema della ricerca di strumenti di calcolo più idonei. Nel 1642 Blaise Pascal concepì è costruì una macchina (pascalina) che eseguiva in modo meccanico le addizioni e le sottrazioni. Dopo quasi un secolo Leibnitz ne costruì una che era in grado di effettuare anche le moltiplicazioni e le divisioni. Queste macchine vennero costruite in pochi esemplari e le operazioni erano eseguite una alla volta e non era possibile realizzare un insieme di operazioni senza l intervento umano. Il primo calcolatore per applicazioni generali fu una calcolatrice meccanica progettata dal matematico C. Babbage ai primi del '800. Concettualmente tale macchina (macchina analitica) aveva la struttura dei moderni calcolatori, una unità di calcolo, una memoria, un dispositivo di ingresso e uscita. Charles Babbage può essere considerato il vero padre del computer; la sua idea iniziale era quella di risolvere il problema della stesura delle tavole dei logaritmi, con dispositivi meccanici. Il problema fu finanziato dal governo Inglese che mise a disposizione di Babbage ingenti somme di denaro considerando che tali sistemi si potevano applicare utilmente al calcolo delle rotte delle navi. Il problema era però tecnologico, infatti era molto difficile realizzare la miriade di ingranaggi e di rotelle necessarie al dispositivo. Il programma era decodificato su un nastro perforato, vi era una unità di calcolo chiamata "mill" (mulino) dove venivano eseguiti i calcoli, e la memoria centrale chiamata "store" (magazzino). Tale macchina era però in grado di svolgere un solo compito, quello di poter svolgere equazioni polinimiali. Babbage comprese però che un dispositivo così congegnato poteva essere usato per risolvere molti altri calcoli cambiando solo il programma. La calcolatrice era in grado di eseguire istruzioni di un programma preventivamente registrate su un nastro di carta perforato, prevedendo la possibilità di eseguire istruzioni in modo anche non sequenziale. Verso la fine del XIX secolo lo statistico americano H. Hollerith riprese il principio della scheda perforata ed attuò un sistema elettromeccanico che poteva interpretare ed elaborare i dati codificati con una perforazione del cartoncino della scheda. Questa invenzione permise di costruire le macchine meccanografiche per il censimento americano del Il risultato fu strabiliante, in soli due anni si elaborarono tutti i dati di 62 milioni di abitanti americani. Hollerith fonda IBM. Il tedesco Zuse realizzo il primo computer elettromeccanico a numerazione binaria che fu distrutto nel 1944 dai bombardamenti. Contemporaneamente però in America anche il computer di Aiken fu terminato e si chiamò Mark1, venne salutato come il sogno di Babbage. Questi calcolatori avevano scopi militari essendo utilizzati per calcolare le traiettorie delle bombe volanti che i tedeschi lanciavano su Londra. Con l E.N.I.A.C. (Electronic Numeric Integrator And Calculator) per la prima volta si parla di calcolatore elettronico. Infatti tale dispositivo impiegava circa valvole elettroniche. Le dimensioni erano notevoli: 18 metri di lunghezza e 2 di altezza; le operazioni venivano svolte con alte velocità per quei tempi( 25

26 BIOINFOSTAT dieci operazioni al secondo), le valvole avevano sostituito i mezzi meccanici, però il principio di funzionamento era ancora quello della macchina di Babbage. Nel 1940 Stibbitz fece funzionare una calcolatrice meccanica al Dormouth College; il primo calcolatore elettronico che rispondeva alle specifiche del progetto di Babbage. La macchina era di notevoli dimensioni (18 metri di lunghezza e circa 3 di altezza) ed era in grado di eseguire una moltiplicazione di due numeri di 23 cifre in circa 5 secondi. Questi computer verranno utilizzati inizialmente per scopi spaziali. ENIAC C. Babbage Nel 1944 Aiken costruì una calcolatrice elettromeccanica ad Harvard. Dopo la seconda Guerra mondiale comparvero i primi calcolatori a valvole (ENIAC). Il capostipite dei calcolatori di prima generazione richiedeva per il suo funzionamento un consumo di energia corrispondente a quello di una città di medie dimensioni. Si deve inoltre a Von Neumann il concetto di programma memorizzato. Sulla base di questo approccio il calcolatore tipico degli anni 50 disponeva di una memoria centrale composta da valvole termoioniche e relè, collegata a memorie ausiliarie. Questo fu un fatto straordinario, nasce l epoca dell elaborazione automatica. Infatti fino a quel momento i dati si immettevano da una parte della macchina, mentre il programma si metteva dall altra. Questo complicava molto le cose, infatti volendo cambiare il programma bisognava andare, fisicamente, a cambiare i collegamenti della macchina. Oggi, invece, dati e programmi si pongono entrambi nella memoria centrale della macchina. Inoltre con Von Neumann nel 1949, nascono i sistemi operativi, serie di comandi programmati per il funzionamento della macchina e residenti nella memoria del computer, utili sia per le operazioni di avvio della macchina, che per le fasi operative di trasferimento delle informazioni. Von Neumann Valvole termoioniche La struttura di base di questi primi calcolatori è nota come macchina di Von Neumann ed è rappresenta da 5 componenti: una unità logico-aritmetica, una memoria, una unità di controllo del programma, una unità di ingresso e una di uscita. Inoltre: 26

27 BIOINFORMATICA Tutti i dati e tutte le istruzioni sono rappresentate mediante un codice binario e sono registrati assieme nella memoria centrale. L elaboratore non fa distinzione tra dati e istruzioni. La seconda generazione ( ) è caratterizzata dall impiego dei transistor nelle unità di elaborazione che portarono innumerevoli vantaggi: Non si ha riscaldamento. Le informazioni vengono registrate in modo veloce. Le dimensioni dei calcolatori sono molto ridotte. Nella terza generazione ( ) vengono impiegati i micro-circuiti miniaturizzati e per la prima volta vengono adottati i circuiti integrati. I circuiti integrati vengono realizzati con delle tecniche di fotoincisioni su piastrine di silicio (chip) e permettano di raggiungere velocità di elaborazione prossime a quelle dei neuroni cerebrali. Nasce il primo microprocessore INTEL L inventore è Federico Faggin La quarta e la quinta generazione iniziano nel 1971 con la comparsa del primo microprocessore capace di elaborare dati sotto forma di sequenze costituite da 4 bit (parole dati di 4 bit) a cui fecero seguito i microprocessori a 8 bit immessi sul mercato nel 1980, nel 1990 vennero prodotti e si diffusero quelli a 32 bit. Attualmente sono in commercio microprocessori a 64 bit (Digital) dotati di una velocità di esecuzione molto elevata. La quinta generazione inizia con la possibilità di disporre di computer basati su una struttura multiprocessore ad architettura parallela, ovvero su più processori connessi tra di loro al fine di consentire l elaborazione simultanea di più istruzioni del programma. Le tendenze attuali di sviluppo dell informatica sono basate sull evoluzione dell architettura degli elaboratori elettronici e delle reti telematiche per la loro connessione, l altra fonte di sviluppo è rappresentata dall Intelligenza Artificiale (I.A.). L elaboratore può essere definito come una macchina elettronica per il trattamento delle informazioni. Dobbiamo quindi in via preliminare procedere alla definizione dei termini e alla caratterizzazione di un elaboratore o computer. q q q q Macchina. Indica che gli elaboratori appartengono alla stessa categoria generale delle lavatrici, delle locomotive, dei rasoi elettrici. Elettronica. Significa che il funzionamento è basato su un certo numero di componenti elettronici definiti come circuiti integrati. Automatica. Indica che un elaboratore è in grado di eseguire in modo autonomo tutte le fasi per lo svolgimento di un compito. Trattamento delle informazioni. Indica genericamente la tipologia del lavoro che un computer è in grado di eseguire. Le operazioni che i calcolatori sono in grado di eseguire possono essere suddivise in sette classi. Ingresso (input) corrisponde all introduzione di informazioni provenienti dall esterno. Queste operazioni si realizzano solitamente tramite tastiera. Uscita (output) permettono di prelevare le informazioni dal calcolatore, il modo più comune per visualizzare le informazioni è il video o la tastiera. Memorizzazione (storage) comporta la creazione di copie permanenti delle informazioni utilizzabili in un secondo momento dal calcolatore. Recupero (retrieval) consiste nella rilettura di informazioni precedentemente memorizzate. Formattati: Elenchi numerati Formattati: Elenchi numerati Eliminato: 27

28 BIOINFOSTAT Trasmissione (sending) consiste nella possibilità di trasmettere le informazioni da un elaboratore ad un altro per mezzo di una rete di comunicazione. Ricezione (receiving) consiste nel ricevere informazioni inviate da un altro calcolatore. Elaborazione (processing) comprende l ordinamento, la selezione, la combinazione e la riorganizzazione delle informazioni oltre che al calcolo. In generale, escludendo l intelligenza artificiale, un calcolatore non può prendere iniziative, fronteggiare circostanze impreviste o dare giudizi morali. Modello analogico. È un modello fisico, nel senso che utilizza le proprietà di un certo sistema (reale) per rappresentarne un altro. In particolare, in un modello analogico è possibile fare corrispondere ad una caratteristica del sistema originario espressa in una certa grandezza una caratteristica espressa in una grandezza diversa.(es: descrivere un circuito elettrico ricorrendo alle proprietà di un circuito idraulico). Eliminato: - Eliminato: p Modelli Fisici Simbolici Analogici Iconici Grafici Matematici Logici Modello iconico. Fa sempre parte della classe dei modelli fisici, riproduce le caratteristiche di un sistema in una scala diversa mantenendo un rapporto di proporzionalità con l originale (es:plastico di edifici). Modello simbolico. Rappresenta le relazioni tra le parti del sistema e il mondo esterno ricorrendo a simboli, cioè ad un linguaggio simbolico (es. linguaggio matematico). A seconda della scelta dei simboli si parla, in particolare, di modelli grafici, matematici o logici. Le informazioni: il concetto di informazione, non si deve confondere con quello di conoscenza che assume nel linguaggio comune. Le informazioni possono essere importanti, banali, vere o false; per noi questo non assume rilevanza. I dati al contrario hanno un significato molto preciso, sono informazioni codificate adatte per essere immesse e trattate da un sistema di elaborazione. In altre parole i dati sono una rappresentazione dell informazione. I dati non hanno alcun significato, lo assumono solo quando vengono interpretati. Si avrà in questo caso una informazione significativa. INFORMAZIONE SIGNIFICATIVA = DATI + INTERPRETAZIONE Il termine sistema di elaborazione definisce semplicemente un insieme di parti interagenti tra di loro. Questo tipo di approccio si applica allo studio di un elaboratore che può essere descritto come un sistema complesso costituito da un insieme di diversi sottoinsiemi. Per rappresentare le interazioni di un sistema tra le sue componenti ed il mondo esterno possiamo ricorrere ad un modello: esistono al riguardo diversi modelli e vari modi di classificarli. Linguaggio e alfabeto Per poter elaborare le informazioni, ovvero per eseguire tutte le operazioni che possono essere effettuate sulle informazioni (inserimento, archiviazione, modifica, ordinamento, calcolo, ecc.) è necessario definire un linguaggio, ossia uno strumento che sostituisca dei simboli particolari agli oggetti ed ai concetti. Esistono diversi tipi di linguaggi, in particolare si distinguono tra: Eliminato: Eliminato: - Eliminato: - linguaggi - NATURALI - FORMALI 28

29 BIOINFORMATICA I linguaggi naturali sono quelli utilizzati quotidianamente dagli uomini per comunicare tra loro (italiano, inglese, francese, ecc.); sono dotati in una notevole ricchezza espressiva e semantica, ma possono dar luogo ad ambiguità, imprecisione e difficoltà di interpretazione. I linguaggi formali sono quelli artificiali, creati dall uomo secondo regole ben definite e prive di eccezioni e di ambiguità (Pascal, Cobol, ecc.); sono dedicati a scopi precisi e circoscritti. Ogni tipo di linguaggio, in ogni caso, è costruito su un alfabeto. Un alfabeto è definito come un insieme finito e non vuoto di simboli convenzionali. Una stringa è costituita da una sequenza qualsiasi di simboli. La stringa vuota è una stringa priva di simboli, indicata con λ. La lunghezza di una stringa è il numero di simboli nella stringa, per esempio abc = 3. Un linguaggio su un alfabeto I è un insieme di stringhe costruite su I. Con I * si indica l insieme di tutte le stringhe su I, inclusa la stringa vuota. Con I + si indica l insieme di tutte le stringhe su I, esclusa la stringa vuota. Per esempio, se I = {0,1}, allora I + = {0,1,00,10,01,11,000,111,..}. Esempi di alfabeti per i linguaggi naturali possono essere: italiano, composto da 21 lettere; inglese, composto da 26 lettere. Esempi di alfabeti per i linguaggi artificiali possono essere: insieme {linea, punto} del linguaggio telegrafico; insieme dei colori {rosso,giallo,verde} del linguaggio semaforico; insieme delle cifre {0,1} utilizzato per il sistema di numerazione binaria. Dopo aver definito un linguaggio L su un alfabeto I, il primo problema che bisogna risolvere è la rappresentazione del linguaggio. Se L è finito, allora basta elencare le stringhe che compongono il linguaggio. Se L è infinito, allora bisogna trovare altre soluzioni: 1. un primo metodo consiste nell introduzione di un sistema generativo, denominato grammatica. In pratica, ogni stringa del linguaggio viene costruita e strutturata in modo preciso e non ambiguo utilizzando le regole di una grammatica. Il linguaggio generato dalla grammatica G si indica con L(G) e rappresenta l insieme delle stringhe generabili da G; 2. un secondo metodo consiste nell utilizzo di un sistema di riconoscimento, detto automa. In pratica, l automa accetta in input una qualsiasi stringa e risponde SI se la stringa appartiene al linguaggio associato, NO altrimenti. Il linguaggio riconosciuto dall automa A si indica con L(A) e rappresenta l insieme delle stringhe riconosciute da A. In generale, un automa è un dispositivo in grado di eseguire da solo, cioè in modo automatico, senza l intervento di una persona, una sequenza di azioni stabilite in precedenza. È dotato di particolari meccanismi per acquisire elementi in input e produrre elementi in output: durante il suo funzionamento, può assumere al suo interno stati diversi tra loro. Gli aspetti che caratterizzano il funzionamento di un automa sono: - i simboli forniti dall esterno, che l automa sa riconoscere nel loro significato; - i simboli prodotti all esterno come risultato del lavoro svolto; - l insieme di tutti i possibili stati che l automa può assumere; - l insieme di tutte le possibili transizioni di uno stato all altro. Il comportamento di un automa può essere descritto da un algoritmo che specifica le azioni da compiere e del quale l automa è l esecutore. Un automa è definito come una quintupla di elementi A = (I,S,s 0,F,T): 1. alfabeto dei simboli input I = (i 1, i 2,,i n), cioè l insieme finito dei simboli che l automa è in grado di ricevere dall esterno, riconoscendoli; 2. insieme dei possibili stati S = (s 1, s 2,,s n) che l automa può assumere durante il suo funzionamento; 3. stato iniziale s 0 S di partenza del funzionamento dell automa; 4. insieme degli stati finali F S; 29

30 BIOINFOSTAT 5. funzione di transizione T: (i t, s t-1) (s t,o t) cioè la funzione che indica lo stato successivo di transizione all istante t e il simbolo che viene emesso verso l esterno, in relazione di un determinato stato precedente all istante t-1 e di un determinato simbolo input. In generale, il funzionamento di un automa consiste nell accettare un simbolo dall esterno ed emettere un simbolo in uscita, producendo un cambiamento di stato. L automa non ha memoria, quindi la funzione di transizione T dipende solo dallo stato in cui si trova l automa e dal simbolo input in lettura in quel momento. Una stringa sarà riconosciuta dall automa se, partendo dallo stato iniziale s 0 e avendo come input la stringa, esso dopo un certo numero di transizioni di stato si troverà in uno stato finale di F; se alla fine l automa non si trova in uno stato finale, allora la stringa sarà rifiutata. Il funzionamento di un automa può essere descritto mediante un algoritmo, mediante un grafo di transizione oppure mediante la tabella della sua funzione. Esempio di automa che accetta tutte e solo le stringhe binarie con almeno due zeri consecutivi (accetta e rifiuta 10110). A = (I,S,s 0,F,T), dove: I={0,1} S={p,q,r} p è lo stato iniziale F={r} T è definita dalla seguente tabella T 0 1 p q p q r p r r r Lo stato iniziale è p. Lo stato p significa che due zeri consecutivi non sono ancora apparsi e il simbolo precedente non è uno 0. Lo stato q significa che due zeri consecutivi non sono ancora apparsi e il simbolo precedente era 0. Lo stato r significa che sono apparsi due zeri consecutivi. Quando A entra nello stato finale r, non ne esce più e rimane su questo stato sino alla fine dei simboli input. Supponiamo di avere in input la stringa L automa effettua le seguenti transizioni: (p,01001) (q,1001) (p,001) (q,01) (r,1) (r, λ) Poiché (r, λ) è una configurazione finale, la stringa input viene accettata dall automa. p 1 0 q 0 r 0,1 1 DAL PROBLEMA ALL ALGORITMO Problema Qualunque problema che ci troviamo a dover risolvere genera delle domande a cui dobbiamo trovare una risposta. Per la risoluzione di un problema si devono affrontare alcune fasi: la prima fase consiste nell individuare con precisione la domanda a 30

31 BIOINFORMATICA cui rispondere e le rispose da ottenere (dati del problema). La seconda fase consiste nella costruzione di uno schema che tenga conto solo degli aspetti importanti al fine della risoluzione del problema (modello del problema). La terza fase è quella più creativa e consiste nell individuare le operazioni da compiere per raggiungere il risultato stabilito del problema (algoritmo). Dati e Azioni Nella descrizione del problema occorre anzitutto definire i dati iniziali (dati di input) sui quali basare la soluzione del problema; essi non devono essere né sovrabbondanti né troppo ridotti. Poi bisogna definire i risultati che si vogliono ottenere (dati di output). In un problema i dati possono essere di tipo diverso: numerico (solo cifre: stipendio, importo, ecc.), alfabetico (solo lettere: nome, cognome, ecc.) o alfanumerico (insieme di cifre e lettere: codice fiscale, targa, ecc.). Le azioni rappresentano le attività che si compiono in un intervallo di tempo finito e che, mettendo i dati in relazione tra loro, consentono di ottenere il risultato del problema. Esse possono essere operazioni di tipo aritmetico quali i calcoli (somma, IVA 20%, ecc.) o di tipo logico (confronto tra due valori A>B, controllo per stabilire se è stata raggiunta la fine di un elenco, ecc.). Per descrivere le azioni è necessario disporre di un linguaggio; le descrizioni delle azioni sono dette istruzioni. Una regola pratica per individuare quali sono i dati e quali le azioni di un problema, consiste nel trattare i sostantivi come dati e i verbi come azioni. Modello: è una forma semplificata di rappresentazione della realtà che tiene conto di tutti e solo gli elementi determinanti per la risoluzione di un problema (per esempio, la carta stradale per la risoluzione del problema della determinazione del percorso più breve tra varie città). Algoritmo: successione ordinata e finita di tutte le operazioni che devono essere eseguite per raggiungere il risultato del problema stabilito in precedenza. Implementazione Per implementazione di un problema si intende il suo trasferimento su un sistema di elaborazione. Risolutore Il risolutore è colui che progetta prima il percorso di risoluzione di un problema e successivamente l algoritmo. Esecutore L esecutore è l ente, nel senso generico di umano o automatico, che esegue le azioni secondo le istruzioni dell algoritmo. Rappresentazione degli algoritmi Per rappresentare un algoritmo occorre seguire delle modalità e regole precise. Per quanto riguarda le modalità, possiamo dividere la sua rappresentazione in tre parti: 1) riga di intestazione: la prima riga contenente il nome che il risolutore decide di dare all algoritmo per ricordare l obiettivo del problema (Algoritmo Media, Algoritmo Ordina, ecc.); 2) sezione dichiarativa: una o più righe contenente la descrizione degli oggetti che vengono usati dall algoritmo, cioè nome e tipo di dati (base, altezza: numeri reali; pigreco:costante 3,14; ecc.); 3) sezione esecutiva: inizia con la parola begin (o inizio) e termina con end (o fine), e contiene l elenco ordinato delle istruzioni dell algoritmo che l esecutore deve eseguire. Vi sono poi delle regole per comunicare le istruzioni all esecutore: a) per indicare l istruzione di acquisizione di dati si usa il comando input (o leggi) seguito dal nome della variabile da leggere, messo fra parentesi; se le istruzioni di lettura sono più di una, si può utilizzare un elenco di variabili separandole con una virgola: input (base) input (altezza) oppure input (base, altezza); b) per indicare l istruzione di comunicazione di dati si usa il comando output (o scrivi); output (A) 31

32 BIOINFOSTAT output (B) oppure output (A, B); c) per indicare l attribuzione di un valore ad una variabile si usa l istruzione di assegnamento: A := B+C oppure A B+C. In generale, si utilizza la regola dell indentazione, ovvero si scrivono alcune righe più a destra per meglio evidenziare gruppi di istruzione. Sempre per una maggiore chiarezza espositiva, si indicano per convenzione in maiuscolo i nomi delle variabili e delle costanti, in minuscolo le parole proprie e riservate di ciascuna sezione, in modo da non confondere le due cose. L esecuzione di un algoritmo può essere simulata mediante una tabella di simulazione contenente i valori assunti dalle variabili, man mano che l algoritmo procede; ogni nuova attribuzione cancella quella precedente. Esempio 1 Calcoliamo la media di tre numeri reali assegnati. algoritmo MEDIA; variabili A,B,C,M : numeri reali; begin input (A,B,C); M (A+B+C) / 3; output (M) end Esempio 2 Dato un numero intero, calcolare il precedente e il successivo. algoritmo PREC_SUCC; variabili N,P,S : numeri interi; begin input (N); P N 1; S N + 1; output (P,S) end Esempio 3 Calcolare il punteggio totale attribuito da una giuria di 10 elementi ad un iscritto ad una gara. algoritmo SOMMA; variabili C,S,N : numeri interi; begin C 0; S 0; repeat input (N); S S + N; C C + 1; until C <= 10 output (S) end 32

33 BIOINFORMATICA Tabella di simulazione Valori Primo Secondo Terzo iniziali passaggio passaggio passaggio... C S N IL LIVELLO DEI LINGUAGGI Linguaggi di basso livello Sono tutti quelli che comunicano direttamente con il computer, utilizzando i codici operativi dello stesso processore, quindi in "linguaggio macchina". Questo modo di programmare dà al tecnico la più ampia libertà e potere, ma nello stesso tempo lo porta a scendere al più basso dei livelli dei linguaggi formali, ovvero deve parlare la stessa lingua operativa della macchina, adoperando una catena molto lunga di istruzioni elementari, quindi con molta difficoltà di scrittura e di verifica del corretto funzionamento. Prima della nascita dei linguaggi formali di alto livello (high-level languages) questa era l'unica maniera per fare compiere un lavoro ad un computer. Linguaggi di alto livello Sono invece tutti quelli che fanno uso di uno pseudo-linguaggio umano, utilizzando allo scopo parole-chiave o codici operativi ispirati quasi esclusivamente alla lingua inglese. Ovviamente ciò facilita molto sia la stesura che la rilettura di un programma, ma non mette il computer in condizione di capire direttamente cosa vogliamo. Per ottenere il risultato finale è dunque necessario applicare un "interprete" che traduca il nostro linguaggio simbolico e decisamente più sintetico, in reali istruzioni di macchina. Nel tempo l'interpretazione del linguaggio simbolico (programma "sorgente") ha messo in evidenza la lentezza causata dalla traduzione contemporanea durante lo svolgimento del calcolo e perciò si è pensato di creare dei "compilatori" che svolgessero un ruolo molto più completo e produttivo. Il compilatore è un programma (scritto in linguaggio macchina) in grado di leggere le istruzioni del sorgente, verificarne la correttezza linguistica, e sviluppare automaticamente le corrispondenti istruzioni in codice operativo di macchina (ottenendo così un programma "oggetto" o "eseguibile" che dir si voglia). In questo modo abbiamo ottenuto un valido compromesso, tra il parlare come la macchina e il parlare con la nostra lingua naturale. Ovviamente i linguaggi simbolici impongono nuove regole di grammatica e sintassi, per cui dobbiamo comunque fare uno sforzo iniziale per apprenderne le esigenze, ma dopo ci troviamo la vita più facile perchè con termini sintetici riusciamo a ottenere ciò che vogliamo dal computer. ATTRIBUTI DEI LINGUAGGI Generalmente si tende a suddividere i linguaggi ad alto livello in 3 categorie: - imperativi - funzionali - dichiarativi Però la classificazione può anche essere più ampia, e soprattutto comprendere alcuni attributi particolari che ne definiscono meglio le capacità. Linguaggi Imperativi: sono composti da una sequenza di istruzioni in grado di modificare il contenuto della memoria del computer o di determinare le modalità di esecuzione di altre istruzioni. Molto importante è l'istruzione di assegnazione. Quasi tutti i linguaggi più comuni (RPG, Pascal, Basic, Fortran, C, Cobol, ecc.) agiscono in questo modo. Linguaggi Funzionali: che servono a calcolare il valore di una funzione. In un linguaggio funzionale puro l'assegnazione esplicita risulta addirittura completamente assente (si 33

34 BIOINFOSTAT utilizza soltanto il passaggio dei parametri). In tale modello rivestono particolare importanza la ricorsione, in pratica l'utilizzo di funzioni che richiamano se stesse e, come struttura dati, la lista (sequenza ordinata di elementi) Il più importante rappresentante di questa categoria è senz'altro il Lisp (LISt Processing). Linguaggi Dichiarativi (o logici): dove il programma è considerato come la dimostrazione della verità di una asserzione. Il sorgente è costituito da una sequenza di asserzioni di fatti e regole. Non è necessario indicare esplicitamente il flusso di esecuzione, ma dato un obiettivo di partenza è il sistema che cerca di individuare i fatti e le regole rilevanti. Il fatto che vi sia una netta separazione tra la parte dichiarativa (il cosa fare) e la parte procedurale (il come) rende un programma scritto in un linguaggio logico particolarmente leggibile. I linguaggi logici risultano molto adatti a risolvere problemi che riguardano entità e le loro relazioni, mentre nelle normali applicazioni risultano essere di difficile utilizzo, anche perché, comportano un modo di programmare completamente diverso dal solito. Il linguaggio più famoso di questo tipo è il Prolog (PROgramming in LOGic). Altri attributi dei linguaggi Linguaggi Strutturati: la programmazione strutturata è una tecnica il cui scopo è di semplificare la stesura dei programmi, limitando l'uso dei controlli a pochi casi semplici, tutti con un solo ingresso e una sola uscita.tale metodo è stato adottato da molti linguaggi anche preesistenti. Ad esempio per evitare l'uso indiscriminato del famoso GOTO (salto incondizionato) sono state introdotte istruzioni di controllo strutturato del flusso, come i blocchi IF-THEN-ELSE, DO WHILE, CASE, FOR, ecc. L'adozione di nuove regole di strutturazione non impedisce, in casi in cui sia ritenuto veramente utile, l'utilizzo dei vecchi comandi di salto (GOTO), ancora in uso, per esempio, per uscire da una routine in caso di errore. Linguaggi Object-Oriented: il programma opera su insiemi di oggetti (insiemi di dati e regole che manipolano questi dati) che comunicano tra loro e verso l'esterno mediante messaggi. L'Object-Oriented ha adottato nuovi concetti come l'incapsulamento, l'ereditarietà e il polimorfismo. Oltre a linguaggi specializzati che implementano i principi di tale metodologia, come Smalltalk, ad esempio, sono nate delle estensioni dei linguaggi già esistenti, che li integrano (ad es. C++ per il C, il Visual BASIC, Visual RPG, ecc.). Linguaggi Event driven: per programmare in ambienti di tipo Windows è necessario provvedere alla gestione contemporanea del possibile verificarsi di tutta una serie di eventi (movimento del mouse, click, comandi da tastiera, ecc.). In un ambiente guidato da eventi non determinabili a priori, ma appunto "event driven" non esiste più una sequenza determinata di comandi da eseguire, ma ad ogni evento bisogna promuovere una determinata azione. Per questo motivo anche il linguaggio di programmazione deve poter essere in grado di gestire questi fatti segnalati dal sistema, ma non tutti i linguaggi lo sanno fare. Il grande successo che ha riscosso il Visual Basic della Microsoft, o MS Access, derivano anche da queste loro spiccate attitudini, che permettono di creare facilmente applicazioni sotto Windows, fornendo anche la capacità di governare un flusso di tipo event driven. LE CARATTERISTICHE DEI LINGUAGGI In queste poche righe non vi è la velleità di affrontare e risolvere il complesso problema dei linguaggi di programmazione e del loro utilizzo migliore, ma il contenuto può servire ai profani per comprendere e sensibilizzarsi sulla grandezza del problema, rimandando gli interessati ad altre fonti di approfondimento più qualificate. Ci sono due strade altrettanto importanti per valutare un linguaggio di programmazione: 34

35 BIOINFORMATICA - capire "cosa" sa fare il linguaggio, ovvero le motivazioni che ne hanno spinto la realizzazione, ma non alle sue origini, che magari si perdono nella notte dei tempi, bensì nel suo stato più recente di disponibilità - capire "come" lo sa fare, nel senso che molti linguaggi presentano strumenti di sviluppo analoghi tra loro, ma possono presentarsi con regole grammaticali o sintattiche anche molto diverse, oppure avere altri limiti, anche gravi, se valutati nel contesto delle nostre esigenze. Oggi la scelta di un linguaggio da adottare per una certa applicazione si presenta assai vasta e complessa. Sono finiti i tempi in cui un programmatore studiava e imparava un solo linguaggio e campava con quello per tutta la sua carriera. La conoscenza di differenti linguaggi è indispensabile perchè il mondo informatico tende ad ampliarsi sempre di più, integrando in una stessa applicazione problemi che possono essere di gestione dei dati di un database, di comunicazioni remote, di accesso a Internet, di gestione della sicurezza, di controllo dei processi, di collaborazione e scambio informazioni tra varie piattaforme o tra vari sistemi operativi e via dicendo. Un conto è dovere scegliere un linguaggio per sviluppare dei giochi al computer, ben diversa la scelta per l'insegnamento universitario ed ancora diversa quella per realizzare, invece, applicazioni in ambienti aziendali. Solo per citare tre differenti approcci al problema. Il più elevato numero di programmi e di righe di codice oggi è sicuramente legato al mondo aziendale, o commerciale o del business o del gestionale, che dir si voglia. E' per questo motivo che anche molti linguaggi "puri", nati semplicemente per lo studio o con scopi ben più teorici e nobili, hanno finito, prima o poi, per essere implementati e presentati anche sul mercato del "grande business". La domanda di sviluppatori competenti è quindi sempre più orientata a questa area di interesse, che non a tutte le altre. Allora nella marea di linguaggi proponibili per lo sviluppo di applicazioni aziendali dobbiamo essere in grado di fare scelte precise e vincenti. Chiariamo un altro concetto: imparare un nuovo linguaggio richiede tempo e fatica e soprattutto un buon periodo di esercitazione pratica, senza la quale non s'è imparato un bel niente! Sbagliare scelta, sia in termini di cultura personale che -a maggior ragione- in termini di scelta aziendale, può costare molto caro e condannarci a proseguire per quella strada nel nostro sviluppo di programmi, non potendo buttare via tutto il lavoro già fatto per ricominciare daccapo. Gli elementi più critici da valutare possono quindi riguardare: - la standardizzazione e diffusione del linguaggio e relativa tranquillità e fiducia nel fornitore, che deve offrire tutte le garanzie di proseguire nella sua evoluzione, adeguando di volta in volta il suo prodotto al rinnovarsi delle tecnologie, senza piantarci in asso, magari alla versione 0.1/beta, del suo prodotto - le caratteristiche strutturali del linguaggio, gli strumenti che mette a disposizione e le sue doti fondamentali, ovvero: elasticità, flessibilità, completezza, affidabilità, auto documentabilità, semplicità e chiarezza,manutenibilità, sicurezza, economicità (rendimento in termini di tempi di scrittura e debug), e via dicendo - la portabilità del codice su varie piattaforme hardware e sistemi operativi diversi. Ognuno dei suddetti punti è più o meno importante e siccome non esiste il linguaggio ideale, come non esistono tante altre cose ideali, bisogna dare pesi diversi ai vari attributi, in base alle nostre specifiche esigenze. Per esempio, in alcune circostanze la portabilità di un applicativo è fondamentale, mentre in altre situazioni può non essere un grave problema. Teniamo anche presente che molto spesso esistono tools che alla più disperata ci potrebbero aiutare molto a migrare da una soluzione ad un'altra. 35

36 BIOINFOSTAT Così pure la manutenibilità non è sempre un requisito primario. Tutti i programmi si possono manutere, ma chiaramente in un' applicazione rivolta a paghe e stipendi o a gestire una produzione assai variabile nel tempo, questo problema può essere cruciale, mentre in altri processi potrebbe passare in secondo ordine di importanza. Al di là, poi, delle caratteristiche intrinseche di ogni linguaggio di programmazione c'è una valutazione altrettanto importante che deve essere fatta: la conoscenza già acquisita. Se un linguaggio è già in uso da un certo team di lavoro, anche se non è il linguaggio migliore, probabilmente i risultati che loro riescono ad ottenere saranno ancora più validi di quelli conseguibili se passassero ad un nuovo linguaggio. Bisogna anche pensare che l'approccio al problema della scelta è radicalmente diverso se visto dal lato degli interessi aziendali piuttosto che da quello del giovane che vuole affrontare la sua carriera. L'azienda ha il dovere di scegliere strade sicure e soluzioni basate su linguaggi ben diffusi, in modo da non correre rischi di trovarsi in un vicolo cieco con l'investimento o di essere posta sotto ricatto dal fornitore di software esclusivo. Il tecnico, invece, può anche seguire i suoi gusti personali e fare scelte di specializzazioni di nicchia, rischiando qualcosa in più, ma giocando la carta della richiesta sul mercato. Oggi, per esempio, quanta gente al mondo sa programmare (o comunque dice di saper programmare) in codice HTML? Sicuramente in tantissimi. Mentre quanti tecnici si sono specializzati in Postscript? O conoscono bene l'asp o XML o Perl o Delphi o Visual RPG? Sicuramente molti di meno. Ma ciò non significa che non ci sia una domanda anche per quelle conoscenze. Un punto è fondamentale nell'area delle applicazioni aziendali è la scelta di un linguaggio che sia il più possibile "problem oriented", ovvero che non richieda grandi sforzi di stesura del codice, ma che lasci al programmatore il tempo e la mente libera per potersi concentrare molto di più sulle reali esigenze aziendali e la loro traduzione in programmi gestionali, piuttosto che arrovellarsi il cervello sul perchè una certa attività del programma non funzioni. Le applicazioni aziendali muovono un'infinità di dati e oggi sono tutte imperniate su database relazionali. Il programmatore in questo campo deve dunque essere più un fedele e sensibile interprete ed esecutore della volontà direzionale o della sua società di servizi, che non un tecnico che si diverta a fare cose sofisticate al computer. IL MODELLO LOGICO-FUNZIONALE DELL ELABORATORE. In termini di componenti, definiamo un elaboratore come un insieme di elementi raggruppabili in due grosse categorie: l hardware - insieme dei componenti fisici, allo stato solido o di altro genere, che costituiscono un elaboratore. il software - insieme dei programmi che controllano il funzionamento di un elaboratore. L hardware di un elaboratore può essere variamente costituito (come si vedrà nel seguito) ma rispecchia il modello concettuale ideato da John Von Neumann nel Von Neumann individuò i blocchi logici indispensabili a definire un elaboratore e le relazioni esistenti tra essi, definendo formalmente uno schema che rappresenta ancora oggi il modello a cui i moderni calcolatori fanno riferimento. Le unità di I/O e le memorie ausiliarie vengono di Eliminato: Eliminato: e Eliminato: 36

37 BIOINFORMATICA norma chiamate periferiche in quanto rappresentano il tramite tra il mondo esterno e il cuore di ogni calcolatore. Main Memory Input Output Central Processing Unit Elaboratore Le frecce dello schema indicano il sistema di trasmissione tra i vari blocchi che viene chiamato bus. Il personal computer Un computer è uno strumento per elaborare informazione. Il computer lavora partendo da informazioni in ingresso (l'input del processo di elaborazione), la elabora in base a una serie di regole (un programma), e restituisce informazione in uscita (l'output del processo). La quasi totalità dei computer oggi utilizzati è digitale, lavora cioè con informazioni "convertite in numeri" (digit=cifra). Di solito si considera il computer come l'insieme di due componenti: hardware e software entrambe indispensabili al corretto funzionamento del sistema. l'hardware rappresenta la "ferraglia", la macchina e le sue periferiche, i componenti elettronici e meccanici che costituiscono l'elaboratore, le cose del computer che si possono toccare. Costituiscono l'hardware: il processore, la memoria RAM, il disco rigido,le schede, il monitor o video, la tastiera, il mouse, ecc. ecc. Il software fa funzionare l'hardware: trasforma la macchina e le sue periferiche in un sistema funzionante. Software è anche sinonimo di programmi: applicazioni finalizzate alla soluzione di un determinato problema o alla realizzazione di una particolare attività. Sono software il sistema operativo, i programmi applicativi, i driver per il corretto funzionamento delle periferiche. Possiamo distinguere i computer in due grandi famiglie: i personal computer sono sistemi monoutente (Personal = per uso personale). i mainframe possono essere utilizzati contemporaneamente da diversi utenti attraverso i terminali. I terminali sono generalmente costituiti da un insieme di video e tastiera (a volte anche mouse) per colloquiare con il sistema centrale. I terminali non sono computer, sono periferiche di input/output. Prima di approfondire i vari blocchi funzionali dell elaboratore vediamo un esempio. Esempio. Per comprendere la struttura di un computer si può immaginare il comportamento di un cuoco nella sua cucina. Il cuoco prepara delle pietanze, o piatti, che gli sono stati ordinati, basandosi sulle indicazioni delle ricette corrispondenti. Le ordinazioni vengono effettuate dai clienti che si rivolgono al cuoco perché hanno appetito. Il computer è la cucina; Il cuoco è il microprocessore o CPU; L'appetito è il bisogno da soddisfare ovvero il problema da risolvere; La ricetta è il programma che il microprocessore deve eseguire; 37

38 BIOINFOSTAT Gli ingredienti sono l'input del programma; Le pietanze o i piatti sono l'output del programma. Il cuoco, per poter lavorare, appoggia tutto quanto, ingredienti e ricetta, sul tavolo di lavoro. Su una parte del tavolo sono incise alcune istruzioni che al cuoco servono sempre, e in particolare quelle che il cuoco deve eseguire ogni volta che la cucina viene aperta (pulire il tavolo, controllare tutti gli strumenti: pentole, tegami, coltelli, cucchiai ecc., e ricevere le ordinazioni assieme alle ricette); senza queste istruzioni di inizio, il cuoco non saprebbe nemmeno che deve accingersi a ricevere delle ordinazioni. Il tavolo di lavoro del cuoco rappresenta, dunque, la memoria centrale che si suddivide in ROM e RAM. La ROM è quella parte di memoria che non può essere alterata (nell'esempio del cuoco, si tratta delle istruzioni incise sul tavolo); la RAM è il resto della memoria che può essere alterata a piacimento dalla CPU (il resto del tavolo). Il computer è pertanto una macchina composta da una o più CPU che si avvalgono di una memoria centrale per trasformare l'input (i dati in ingresso) in output (i dati in uscita). Il computer, per poter ricevere l'input e per poter produrre all'esterno l'output, ha bisogno di dispositivi: la tastiera e il mouse sono dispositivi di solo input, lo schermo e la stampante sono in grado soltanto di emettere output. I dischi sono dispositivi che possono operare sia in input che in output. Il cuoco si avvale di dispense per conservare derrate alimentari (pietanze completate, ingredienti, prodotti intermedi) e anche ricette. Ciò perché il tavolo di lavoro ha una dimensione limitata e non si può lasciare nulla sul tavolo quando la cucina viene chiusa, altrimenti si perde tutto quello che c'è sopra (a eccezione di ciò che vi è stato inciso). I dischi sono le dispense del nostro cuoco e servono per immagazzinare dati elaborati completamente, dati da elaborare, dati già elaborati parzialmente e i programmi. Diverse cucine possono essere collegate tra loro in modo da poter condividere o trasmettere ricette, ingredienti, etc. Le interfacce di rete e i cavi che le collegano sono il mezzo fisico per collegare insieme diversi computer, allo scopo di poter condividere dati e servizi collegati a essi, e anche per permettere la comunicazione tra gli utenti dei vari computer connessi. COMPONENTI HARDWARE DI UN CALCOLATORE cabinet: è la scatola che contiene le parti elettroniche principali del personal computer come: alimentatore motherboard o scheda madre BIOS BUS processore o CPU memoria centrale disco rigido o hard disk unità a dischetto o floppy disk scheda video porte di comunicazione scheda di rete schede aggiuntive opzionali: scheda audio modem schede di input/output dati unità di memoria opzionali: lettore CD e DVD unità di backup a nastri ecc. Eliminato: interruzione pagina 38

39 BIOINFORMATICA CABINET involucro che ha all'esterno interruttori e led e all'interno sostegni per l'alloggiamento delle parti elettroniche. Può avere tre forme: tower (verticale) desk top (orizzontale) lap top (portatile) ALIMENTATORE Abbassa e rettifica la corrente elettrica, per alimentare le altre parti del computer. Necessita di raffreddamento, quindi la ventola deve sempre girare e non va ostruita La scheda madre (motherboard). La scheda madre è senza dubbio la componente più importante del computer: le funzioni della scheda madre sono moltissime, per primo consente il funzionamento del computer stesso. Le schede madri sono in commercio in due formati principali: il formato AT e quello ATX. Una scheda madre AT può essere montata solo ed esclusivamente in un apposito case (denominato appunto AT) e una ATX in un case ATX. Il formato AT è meno recente dell'atx ed e' stato introdotto verso la fine degli anni ottanta, mentre quello ATX verso a metà del Il formato ATX prevede delle porte di I/O integrate in piastra madre: una porta parallela (LPT1) femmina 25 pin di colore viola, 2 porte seriali maschi 9 pin di colore blu, 2 porte USB che possono collegare al PC qualsiasi tipo di periferica esterna (se la periferica non ha una porta USB sono in commercio degli adattatori con altri tipi di porte). Fornisce gli alloggiamenti sui quali si inseriscono numerose componenti: il processore (CPU), la memoria RAM, controller per unità a dischetti e dischi fissi, gli slot (alloggiamenti delle schede di espansione) a 16 e 32 bit. La scheda madre determina anche il tipo di processore utilizzabile. La scheda madre si occupa anche delle comunicazioni con le periferiche esterne attraverso le porte di comunicazione quali le porte seriali, parallele, joystick, PS/2 e USB. In pratica queste porte permettono di collegare al computer periferiche come stampanti, modem esterni, scanner. I dischi rigidi e i CD-ROM sono collegati solitamente con un controller EIDE. Sulla motherboard è anche presente un gruppo di elementi detto chipset che si incarica di gestire e coordinare il funzionamento di tutti gli altri componenti. Ad esso è delegato il controllo dell'i/o (Input/Output), dell'i/o del bus e, nelle schede più recenti, dell'elettronica di gestione dei dischi fissi e CD-ROM. Il chipset coordina anche le richieste di interrupt (IRQ) e gli accessi diretti alla memoria (DMA). Un altro componente presente sulla scheda madre è un chip contenente il BIOS (Basic Input Output System). Questo particolare tipo di memoria, di tipo PROM o Flash ROM sulle schede recenti, contiene un codice che viene eseguito all'accensione del PC e consente una procedura di autodiagnostica (POST, Power On Self Test) che esegue tutta una serie di controlli e verifiche sulla memoria RAM, tastiera, processore, drive, disco fisso, porte di comunicazione. Eliminato: Eliminato: il Eliminato: i Eliminato: 39

40 BIOINFOSTAT Eliminato: Un al componente pre scheda madre è contenente il BI Input Output Sy Questo particola memoria, di tipo Flash ROM sulle recenti, contiene che viene esegu all'accensione de consente una pr autodiagnostica Power On Self T esegue tutta una controlli e verific memoria RAM, t processore, driv fisso, porte di comunicazione. 1. Socket A: è il connettore della CPU sul quale viene montato il processore e bloccato per mezzo di una leva di bloccaggio. 2. North bridge del chipset: nelle nuove motherboards questo componente è raffreddato da un piccolo dissipatore di calore, in questo caso anche da una ventola, per via dell'elevata temperatura che raggiunge durante il funzionamento, in quanto deve gestire un elevata mole di dati da e per il processore, la memoria centrale e il bus AGP. 3. South bridge del chipset: gestisce tutte le parti della piastra madre dalle quali non transitano grandi quantità di dati come i bus PCI e ISA, le porte seriali e parallele, il controller IDE. 4. Generatore di clock: questo chip fornisce la frequenza di bus utilizzata dalla scheda madre. 5. Batteria per salvare il contenuto della memoria CMOS 6. Connettori per i due canali EIDE entrambi gestiti dal south bridge del chipset. 7. Connettore per due unità floppy disk. 8. Due connettori per canali EIDE supplementari, gestiti dal controller EIDE opzionale installato su questa scheda madre. Questi due canali dispongono di funzionalità RAID. 9. Slot AGP: connettore per l'adattatore grafico. 10.Slot PCI: connettore per differenti tipologie di periferiche (schede video, controller SCSI, schede audio, ecc..). 40

41 BIOINFORMATICA 11.Slot ISA: connettore per periferiche per il quale si sta assistendo ad un progressivo abbandono, nelle schede madri più recenti, in quanto non veloce e, pertanto, adatto all'impiego con le periferiche più moderne. 12.Bios della scheda madre, su zoccolo estraibile. 13.Slot memoria: come riferimento nell'immagine è stata presa una scheda madre Socket A per cpu AMD Athlon, Athlon XP e Duron. Gli Slot memoria sono del tipo Dimm tradizionale, per moduli memoria SDRAM Single Data Rate. 14.Porte parallela (sopra) e seriali (due, poste sotto). 15.Due porte USB per la connessione di periferiche esterne 16.Porte PS/2 per tastiera e mouse. 17.Connettore di alimentazione ATX. L Unità Centrale di Processo (Central Processing Unit). BREVE STORIA DEI MICROPROCESSORI Potremmo collocare l'inizio dell'era dei Personal Computer nel fatidico anno 1981, quando nacque il PC IBM, dotato di un processore denominato sviluppato nei laboratori Intel. Da allora in poi le CPU, con l'unica eccezione del Pentium, sono state sempre contraddistinte da una duplice serie di numeri: il primo è la sigla di progettazione ed è sinonimo della quantità di informazioni che il microprocessore è in grado di trattare in una sola volta; il secondo numero rappresenta i megahertz del processore ed indica la velocità con cui le informazioni vengono trasferite da e verso la CPU. Alcuni processori sono contraddistinti anche da lettere del tipo SX o DX, che indicano la versione del processore. Di seguito viene fornita una sintetica descrizione dei principali modelli di microprocessore: e Rappresentano la preistoria dei microprocessori ed hanno una velocità variabile da 4,7 a 10 MHz. I computer che utilizzano questi processori sono denominati XT e sono usciti di produzione verso la metà degli anni Nato nel 1985 dà inizio alla "storia infinita" dei computer denominati AT. La sua velocità varia dagli 8 ai 20 MHz. Non viene più prodotto dal Inseriti sul mercato a partire dal 1986, hanno una velocità dai 16 ai 40 MHz. Esistono due diversi modelli gli SX e i DX. Mentre i secondi sfruttano a pieno la tecnologia appena immessa sul mercato, gli SX rappresentano una sorta di compromesso nato per fattori economici, pur trattandosi di a tutti gli effetti sono montati su schede madre di precedente generazione che non riescono a sfruttare a pieno titolo le prestazioni del processore. Con questa generazione di processori è comparso anche il modello denominato SL, equivalente ad un SX ma a basso consumo di energia, particolarmente sfruttato soprattutto nei PC portatili Nel 1991 sono stati presentati i primi modelli della fortunata serie contraddistinta dalla caratteristica innovativa dell'incorporazione del coprocessore matematico direttamente all'interno della CPU. Esistono 4 diversi modelli dei processori 80486: gli SX, i DX, i DX2 e i DX4, più alcuni modelli a basso consumo energetico come gli SL. Anche il processore SX rappresenta una sorta di "anello di transizione" nato per fini economici, in quanto è l'unico dell'intera serie a non essere dotato di coprocessore matematico; la sua velocità varia da 25 a 33 MHz. I modelli DX raggiungono una velocità massima di 50 MHz e hanno rappresentato, unitamente ai loro "fratelli maggiori" la vera piattaforma di decollo per la grafica e la multimedialità. I DX2 e DX4 utilizzano una tecnologia conosciuta sotto il termine di "doppio orologio", in grado di raddoppiare o addirittura quadruplicare la velocità interna della CPU. Mentre un DX lavora in tutta la scheda madre a 50 MHz, un DX2 lavora a 25 MHz nel resto del computer e a 50 MHz all'interno della CPU. Le velocità dei DX2 variano da 50 a 66 MHz, mentre i DX4 raggiungono normalmente i 100 MHz. Eliminato: 41

42 BIOINFOSTAT PENTIUM Secondo la tradizione avrebbe dovuto chiamarsi 80586, ma è stato battezzato PENTIUM a causa delle leggi americane che non consentono di registrare un marchio di fabbrica composto di soli numeri. Il nome è figlio di una problematica legale nata quando sul mercato si sono affacciati i "cloni" dei processori della casa produttrice Intel. Lo stratagemma del nome è nato per garantire alla Intel l'univocità di denominazione. Si tratta di un processore immensamente potente la cui velocità varia dai 60 ai 200 MHz. La sua storia è macchiata da un "neo" che la Intel si è affrettata a correggere con tempestività: nelle sue primissime versioni in effetti restituiva un errore sul calcolo di una tipologia di equazioni neppure particolarmente complesse; ma tecnici e progettisti si sono messi immediatamente a lavoro, e ben presto l'azienda è stata in grado di sostituire gratuitamente il processore agli acquirenti della sfortunata versione. Ogni generazione di microprocessori sfoggia un numero di "piedini" superiore alla precedente. Questi piedini costituiscono l'unico veicolo di comunicazione tra il processore e le varie componenti presenti sulla scheda madre: ciascuno di essi assolve un ruolo unico ed insostituibile. I processori 80386, vero spartiacque dell'universo delle CPU in quanto i chip precedenti sono esclusi dalla prerogativa delle gestione avanzata della memoria, hanno 132 piedini. Con l'entrata nel mercato degli siamo arrivati a 168 piedini; cui ne è stato aggiunto un 169 nel caso dei processori dotati di Overdrive. I PENTIUM, per assicurare le prestazione a 64 bit, richiedono addirittura 273 piedini; che però possono scendere fino a 238 nel caso di Overdrive PENTIUM, funzionanti internamente a 64 bit ma in grado di comunicare con l'esterno a soli 32 bit! In aggiunta al microprocessore esistono anche i coprocessori matematici, progettati appositamente per utilizzare quei programmi che effettuano calcoli molto complicati in virgola mobile - come, ad esempio, i programmi di grafica, i programmi CAD... La presenza del coprocessore matematico è praticamente ininfluente per i programmi che richiedono calcoli particolarmente complessi: se ad esempio utilizzo un programma di videoscrittura non ottengo alcun vantaggio dalla presenza del coprocessore matematico. Tuttavia nell'ultima generazione di processori - a partire dal il coprocessore matematico è direttamente integrato nel processore, al fine di favorire le prestazioni multimediali. Ha la funzione di elaborare i dati e di controllare il sistema, rappresenta, quindi, il calcolatore vero e proprio. Si divide nei seguenti blocchi logico-funzionali: q q q Unità Aritmetico-Logica (Arithmetic-Logic Unit) Esegue le operazioni aritmetiche e logiche in algebra binaria, comandi come l'addizione, la sottrazione, la moltiplicazione e la divisione. I messaggi provenienti dall'unità di controllo indicano all'alu le operazioni da eseguire, quindi questa unità preleva i dati dai componenti più vicini, i registri, per completare l'attività. Unità di Governo (Central Unit) Controlla e gestisce tutte le altre componenti del calcolatore durante l esecuzione di un programma. Al suo interno si può individuare un particolare elemento, detto unità di decodifica, che si occupa di tradurre le complesse istruzioni dal linguaggio macchina in un semplice formato riconosciuto dall'unità ALU e dai registri. L unità di controllo, quindi, in base alle istruzioni provenienti dall'unità di decodifica, crea dei segnali di controllo che indicano all'unità ALU e ai registri come operare, su che cosa operare e che cosa fare con il risultato. In altre parole, l'unità di controllo garantisce che tutto avvenga nel posto giusto al momento giusto. Una memoria locale formata da registri, locazioni di memoria ad accesso privilegiato utilizzate dall ALU per memorizzare i dati necessari a completare le attività richieste dall'unità di controllo. In questo modo, l'unità ALU può recuperarli rapidamente e in modo efficiente. Alcuni di questi registri sono specializzati nel senso che vengono utilizzati per una funzione precisa, fra questi vi sono: Eliminato: - Eliminato: ; Eliminato: Eliminato: in Eliminato: Eliminato: ; Eliminato: u Eliminato: ; 42

43 BIOINFORMATICA Accumulatore utilizzato per salvare operandi e risultati intermedi dell elaborazione. La sua dimensione è un indicatore della potenza di calcolo del processore; Registro Istruzioni (Instruction Pointer) contiene l istruzione da eseguire; Registro Contatore di Programma (Program Counter) contiene l indirizzo della prossima istruzione da eseguire. La memoria centrale (Main Memory). La Central Processing Unit è il motore del computer, la parte che elabora le informazioni. Le caratteristiche principali dei processori sono il numero di informazioni che possono essere elaborate contemporaneamente, la quantità di istruzioni eseguibili (ad es. modelli Pentium) e la velocità di elaborazione (frequenza espressa in Mhz) Il microprocessore o CPU (acronimo inglese di Central Processing Unit) si incarica di dirigere tutte le operazioni e di trasferire le informazioni risultanti a tutti i componenti del computer: costituisce il "cervello" vero e proprio del nostro elaboratore. Un "cervello" infinitamente potente e non più grande di 10 cm quadrati. Rappresenta la grande area di memorizzazione per i dati e le istruzioni situata all'interno del computer principale e all'esterno della CPU. Più precisamente, la memoria centrale è un dispositivo in grado di conservare temporaneamente dati espressi in codice binario (sequenze di 0 e 1). La memoria centrale può essere vista come una grande tabella divisa in celle ognuna delle quali è individuabile attraverso un indirizzo univoco. Usando, quindi, l indirizzo è possibile accedere ad una qualsiasi di queste celle per eseguire una lettura o una scrittura di informazioni; questo è il motivo per cui questa memoria viene detta Random Access Memory. Eliminato: Eliminato: Eliminato: dato dato dato ALU CU... istruzione istruzione istruzione... Registri Unità di decodifica A IP PC... Memoria Centrale CPU clock L'unità di memorizzazione è il byte, la dimensione di una memoria è scelta tra le potenze di 2. Con un byte (8 bit) si possono rappresentare 256 diversi valori, con 1 kb si arriva a Nella tabella seguente sono riportati i multipli del byte. Eliminato: Eliminato: 43

44 BIOINFOSTAT Il processo di esecuzione delle istruzioni ed il movimento delle informazioni sia all'interno della CPU che con le altre componenti è regolato da un orologio (clock). Questo orologio è Prefisso Simbolo Valore Kilo Kb 2 10 semplicemente un segnale elettrico che può cambiare di stato tra alto e basso voltaggio Mega Mb 2 20 centinaia di volte al secondo. Giga Tera Gb Tb La velocità del clock viene misurata in milioni di Hertz (o cicli per secondo), comunemente indicata con MHz. L intervallo tra due segnali successivi del clock definisce un passo elementare di funzionamento (ciclo macchina). Definite le componenti di una macchina di Von Neumann, cosa succede quando questa deve eseguire un programma, inteso semplicemente come una sequenza di istruzioni scritte in un linguaggio riconoscibile dalla macchina. Intuitivamente si può pensare che la CPU per poter svolgere il suo compito di unità di processo deve conoscere, istante per istante: - l istruzione da eseguire; - i dati da elaborare e la loro posizione in memoria; - l indirizzo della prossima istruzione da eseguire. I passi sono: 1. La CU preleva l istruzione dalla memoria all indirizzo contenuto nel registro PC (Program Counter) e la memorizza nel registro IR (Instruction Register); 2. Il valore del PC viene aggiornato in modo che contenga l indirizzo della prossima istruzione da eseguire; 3. La CPU, grazie all unità di decodifica, interpreta l istruzione e la esegue con il supporto dell unità aritmetico-logica (ALU); Se l istruzione prevede l elaborazione di dati (es: una somma tra due valori in memoria), la CPU li preleva per salvarli temporaneamente nei suoi registri accumulatori. Dopo aver svolto l operazione il risultato viene spostato dalla CPU alla memoria. Naturalmente a seconda del comando contenuto nell istruzione la CPU si comporterà in modo diverso, ma, volendo tentare una generalizzazione, si può affermare che ogni ciclo macchina è idealmente diviso in tre fasi: fase di fetch comprende tutte le operazioni svolte dalla CU necessarie al reperimento dell istruzione; fase di decode interpretazione dell istruzione da parte dell unità di decodifica; fase di execute esecuzione vera e propria dell istruzione. Come accennato, le istruzioni sono composte da parole espresse in codice macchina. Immaginiamo di volere sommare due numeri 2 e 3. In codice macchina (attenzione! Il codice macchina dipende dal sistema hardware) questa operazione potrebbe diventare: Eliminato: interruzione pagina Eliminato: Eliminato: (cod macchina)? Eliminato: Eliminato: l Eliminato: Eliminato: Me Ce 44

45 BIOINFORMATICA Il numero 180 viene riconosciuto dalla CPU come l istruzione "copia il valore 2 nel registro AH"; il 176 indica di copiare il numero 3 nel registro AL. L'istruzione indica di sommare il contenuto del registro AH con quello del registro AL e di mettere poi il risultato in AH. Le memorie. Vi sono molti tipi di memoria ma le due principali categorie sono: RAM (Random Access Memory) e ROM (Read Only Memory). MEMORIA Veloce Costosa Volatile Interna (RAM) Eliminato: interruzione pagina Eliminato: MEMORIA Esterna (dischi) Lenta Economica Permanente La RAM equivale, da un punto di vista logico-funzionale, al blocco di Memoria Principale presente nel modello di Von Neumann. Grazie alla tecnologia e ai materiali utilizzati, le RAM hanno un alto grado di integrazione ed è, quindi, possibile integrare memorie da più megabytes su un singolo chip. Tale tecnologia ha però lo svantaggio di non permettere altissime velocità nel senso che il tempo di accesso è dell ordine di qualche decina di nanosecondi (10-9 sec). La ROM contiene solo piccole quantità di software di sistema, necessarie ad avviare il calcolatore; è una memoria a sola lettura. Nel campo dell hardware uno degli obiettivi è certamente quello di ridurre sempre più i tempi di accesso alla memoria e di trasferimento dei dati. In quest ottica è stata sviluppata la tecnica della memoria cache che fornisce un compromesso tra velocità e costi utilizzando una porzione di memoria veloce per contenere i dati acceduti più di frequente mantenendo l uso della RAM per consentire l uso economico di memorie di grandi dimensioni. La memoria cache si trova fisicamente vicino alla CPU e raggiunge la velocità dei nanosecondi. Quando è richiesto una lettura della memoria la cache è ricercata per prima. Una ulteriore possibilità è rappresentata dall'impiego del coprocessore al quale vengono demandate una classe particolare di operazioni. La FPU (Floating Point Unit) è una unità per il calcolo in virgola mobile. Un termine formale per indicare quello che più comunemente è conosciuto come coprocessore matematico (un altra denominazione è quella di Numeric Data Processor - NDP). Il processore primario nasce per eseguire unicamente calcoli sui numeri interi e quando deve affrontare calcoli più complessi diminuisce sensibilmente la propria efficienza. Il termine di virgola mobile si riferisce a un particolare tipo di notazione matematica che permette di rappresentare in modo sintetico anche numeri molto grandi. La notazione in virgola mobile riporta il segno del numero, il numero stesso (mantissa), la radice del sistema di numerazione in uso (10 nel caso di un sistema decimale) e l esponente da applicare a tale radice. Il coprocessore matematico è un chip dedicato ai calcoli matematici a virgola mobile (ad esempio il Motorola 68882), alcuni coprocessori sono dedicati al trasferimento dei dati al modem, alla stampante; nel caso si debba lavorare con grafici e colori ad alta risoluzione si deve considerare l'acquisto di coprocessori grafici come ad esempio l'amd Nel caso ci si interessi di audio si rendono necessari i chip DSP (processore digitale di segnale). 45

46 BIOINFOSTAT Al fine di guadagnare velocità esistono dei processori chiamati RISC (Reduced Instruction Set Computer) che dispongono di una serie semplificata di istruzioni nella decodifica e nella fase di preparazione degli argomenti di ogni singola istruzione. La velocità maggiore di questi processori viene ottenuta essenzialmente in quanto questi limitano l'accesso alla memoria operando direttamente tra un registro e l'altro. Per questo motivo i RISC dispongono di un numero più elevato di registri. SLOT DI ESPANSIONE. Sono gli alloggiamenti per la scheda grafica, il controller SCSI, la scheda audio, l'adattatore di rete e qualsiasi altro tipo di espansione. Sono di tipo PCI (32 bit a 33 MHz) e ISA (16 bit a 8 MHz). Nelle schede recenti esiste anche uno slot di tipo AGP (Accelerated Graphics Port) per l'interfacciamento con schede grafiche ad alta velocità (32 bit a 66 o 133 MHz) BUS. I componenti del computer ricevono e spediscono informazioni attraverso dei canali chiamati bus. Esistono diversi tipi di bus in ogni computer ma il più importante è il bus che consente il passaggio tra la memoria e il processore. La questione più importante è relativa alla velocità di passaggio dei dati e delle istruzioni. Due sono i fattori che governano questo passaggio la velocità del clock e la larghezza del bus. La velocità è rappresentata dalla quantità di dati che possono essere trasferiti con una operazione. I primi modelli di Pc disponevano di un bus con 8 bit, che può essere rappresentato da 8 linee parallele. Questo implica che l'informazione possa essere trasferita dalla memoria alla CPU un byte per volta. BUS AGP. L'unità attraverso la quale le istruzioni provenienti dalla memoria principale del computer vengono trasferite da e verso il microprocessore. Per assecondare l incremento della potenza di calcolo delle Cpu, Intel ha sviluppato una nuova architettura denominata Agp. In pratica, tutti i dati in ingresso/uscita dalla Cpu vengono smistati all AgpSet, che lo convoglia direttamente alla scheda video, alla Ram o al bus Pci. In questo modo si decongestiona il bus Pci, che non deve più trasferire i dati dalla Cpu al controller grafico. Un altro vantaggio dell Agp è la possibilità da parte della scheda video di utilizzare la Ram di sistema con un evidente vantaggio economico. CHIPSET. Come già accennato, il chipset si incarica di gestire tutti gli elementi presenti sulla scheda madre. I chipset più diffusi per processori Pentium sono contraddistinti dalle sigle: Hx con supporto della memoria Fast-Page e EDO Ram. Vx che supporta anche le veloci SDRAM e indirizza fino ad un massimo di 128 Mb Tx evoluzione del vecchiotto Vx, gestisce 6 banchi e indirizza fino a 512 Mb supporta anche il protocollo Dma/33 Eide per raddoppiare la velocità massima di trasferimento del controller Eide. Lx per Pentium II composto da 2 chip con supporto alla AGP, SDram, USB e Ultra DMA. Il CHIPSET si divide in NORTHBRIDGE e SOUTHBRIDGE il primo si occupa dei dati diretti alla memoria centrale e alla Cache, il secondo serve a controllare le porte seriali e tutte le periferiche. Cos'è: è un microprocessore integrato nella piastra madre. Che compito ha: al chipset sono affidati tutti i trasferimenti di dati tra le varie periferiche e tra loro e il microprocessore; è quindi opportuno scegliere un buon chipset nell'assemblare un computer di qualità. Come è strutturato: è composto da due differenti chip, il North Bridge e il South Bridge; il primo ha dimensioni maggiori rispetto al secondo, mentre il secondo è posto, generalmente, nella metà inferiore della motherboard, nelle vicinanze degli Slot PCI e ISA. Mentre i primi chipset per sistemi Pentium (quelli montati su motherboard dotate di Socket 5) erano formati da più di due chip, da un paio di anni a questa parte tutti i produttori si sono orientati verso una costruzione a due chip, il North Bridge e il South Bridge per l'appunto. In dettaglio, le funzioni di questi due chip sono: 46

47 BIOINFORMATICA North Bridge: controlla il funzionamento di tutti i bus e il corretto funzionamento del processore, della memoria centrale e del'adattatore video, installato su bus AGP o PCI; South Bridge: gestisce i dati che sono indirizzati a tutte le periferiche presenti che non sono indispensabili per il funzionamento del sistema, come il controller per sistemi di memorizzazione di massa, le porte seriali e parallela, le porte USB, PS/2 (Mouse e tastiera) le porte infrarossi, il controller Floppy Disk, i bus PCI e ISA. Le caratteristiche da tenere in considerazione nella scelta di un chipset sono diverse, e tutte hanno un ruolo di notevole importanza per quanto riguarda prestazioni e affidabilità. Le piu' importanti sono: tipologia cache L2: modalità di gestione della cache L2; dimensione massima cache L2: quantitativo massimo di memoria cache L2 che può essere gestita dal chipset; questo valore è interessante solo per le motherboard Socket 7 e Super 7, in quanto nelle cpu Slot 1 la cache L2 è direttamente integrata nella cpu stessa; memoria massima supportata: quantitativo massimo di memoria che il chipset può gestire; memoria massima cacheable: quantitativo massimo di memoria che può essere letta attraverso la cache L2; se la quantità di memoria installata eccede tale limite si ha un impatto negativo sulle prestazioni complessive; tipi di memoria supportata: FP (Fast Page); EDO (Extend Data Output); SDRAM (Synchronous Dynamic Random Access Memory); n^ cpu gestibili: indica quante cpu, dello stesso tipo, il chipset può gestire (configurazioni mono, bi, quadri processore); USB: supporto all'universal Serial Bus, bus di comunicazione tra scheda madre e periferiche di controllo e visualizzazione (tastiere, mouse, monitor, altoparlanti, ecc...) di recente implementazione; AGP: supporto all'advanced Graphic Port, standard di fatto per gli acceleratori video; plug & play: supporto al plug & play per il riconoscimento automatico delle periferiche installate da parte del sistema operativo; versione PCI: la specifica 2.0 ha quale frequenza massima i 33 Mhz per le periferiche PCI, mentre quella 2.1 i 66 Mhz; ACPI: l'acpi (Advanced Configuration and Power Interface) è un'interfaccia di programmazione che gestisce le modalità di risparmio energetico della motherboard; Presenza o meno di controller AUDIO o VIDEO integrati: per ridurre i costi di produzione di PC, alcuni chipset (intel serie 810 e 815, Via MVP4 e KM133) integrano schede audio e schede video. La memoria grafica delle schede video è una frazione (di quantitativo regolabile da bios) della memoria di sistema. Essendo questo tipo di memoria più lento, le prestazioni saranno ridotte rispetto allo stesso modello di scheda video su BUS 47

48 BIOINFOSTAT AGP o PCI. Un altra caratteristica dei chipset è il tipo di processori che esso può supportare. Questa caratteristica è definita dal tipo di collegamento del processore. CACHE DI ISTRUZIONI. La cache di istruzioni è un magazzino di istruzioni situato proprio sul chip, in modo tale che il microprocessore non deve fermarsi a cercarle nella memoria principale del computer. Questo accesso rapido velocizza l'elaborazione, in quanto le istruzioni vengono trasferite tramite 'fetching' nell'unità di prefetch, dove vengono disposte nell'ordine corretto per l'elaborazione. UNITÀ DI PREFETCH. L'unità di prefetch stabilisce quando ordinare i dati e le istruzioni provenienti dalla cache di istruzioni o dalla memoria principale del computer, in funzione dei comandi o dell'attività in corso. Quando arrivano le istruzioni, l'attività più importante dell'unità di prefetch consiste nell'assicurarsi che vengano tutte allineate correttamente per essere poi inviate all'unità di decodifica. UNITÀ DI DECODIFICA. L'unità di decodifica, come indica il nome, decodifica o traduce le complesse istruzioni in linguaggio macchina in un semplice formato riconosciuto dall'unità ALU (Arithmetic Logic Unit) e dai registri. In questo modo, l'elaborazione diventa più efficiente. UNITÀ DI CONTROLLO. L'unità di controllo è uno dei componenti più importanti del microprocessore, in quanto è responsabile dell'intero processo. In base alle istruzioni provenienti dall'unità di decodifica, crea dei segnali di controllo che indicano all'unità ALU (Arithmetic Logic Unit) e ai registri come operare, su che cosa operare e che cosa fare con il risultato. L'unità di controllo garantisce che tutto avvenga nel posto giusto al momento giusto. ALU (Arithmetic Logic Unit). L'unità ALU rappresenta l'ultima fase di elaborazione nel chip. Si tratta del componente intelligente del chip che esegue comandi come l'addizione, la sottrazione, la moltiplicazione e la divisione. Inoltre, sa leggere i comandi logici come OR, AND o NOT. I messaggi provenienti dall'unità di controllo indicano all'alu le operazioni da eseguire, quindi questa unità preleva i dati dai componenti più vicini, i registri, per completare l'attività. REGISTRI. I registri sono una piccola area di memorizzazione per i dati utilizzati dall'unità ALU per completare le attività richieste dall'unità di controllo. I dati possono provenire dalla cache di dati, dalla memoria principale o dall'unità di controllo e vengono tutti memorizzati in posizioni speciali all'interno dei registri. In questo modo, l'unità ALU può recuperarli rapidamente e in modo efficiente. CACHE DI DATI. La cache di dati opera a stretto contatto con i suoi "partner dell'elaborazione", vale a dire l'unità ALU, i registri e l'unità di decodifica. È qui che vengono memorizzati i dati con etichette speciali provenienti dall'unità di decodifica per essere poi utilizzati dall'unità ALU, ed è qui che vengono preparati i risultati finali prima della distribuzione ai diversi componenti del computer. MEMORIA PRINCIPALE. La grande area di memorizzazione per i dati situata all'interno del computer principale e all'esterno del microprocessore. Di volta in volta, la memoria principale può inviare dati o istruzioni per l'unità di prefetch, che spesso vengono memorizzati in un indirizzo della cache di istruzioni per essere utilizzati in seguito. MEMORIA CACHE. Una delle attività più lente in un elaboratore è il ricorso alla memoria, sovente l accesso alla memoria si effettua molte volte durante il ciclo di elaborazione, la velocità di accesso quindi può condizionare le prestazioni di un processore. Per migliorare le prestazioni si ricorre ad una memoria secondaria chiamata cache che viene posta tra la memoria principale e il resto del processore. L utilizzo di una memoria cache parte dal presupposto che i dati e le istruzioni siano poste in allocazioni vicine fra loro nella memoria principale. 48

49 BIOINFORMATICA I DISPOSITIVI Come già accennato, i dispositivi sono qualcosa che è separato dal computer inteso come l'insieme di CPU e memoria centrale. A seconda del tipo e della loro collocazione, questi possono essere interni o periferici, ma questo tipo di distinzione è quasi scomparso nel linguaggio normale, tanto che molti chiamano ancora periferiche tutti i dispositivi. Vale la pena di distinguere fra tre tipi di dispositivi fondamentali: dispositivi di memorizzazione; dispositivi per l'interazione tra l'utente e il computer; interfacce di rete. I dispositivi di memorizzazione sono qualunque cosa che sia in grado di conservare dati anche dopo lo spegnimento della macchina. Il supporto di memorizzazione vero e proprio potrebbe essere parte integrante del dispositivo stesso oppure essere rimovibile. I supporti di memorizzazione possono essere di qualunque tipo, anche se attualmente si è abituati ad avere a che fare prevalentemente con dischi (magnetici, ottici o magnetoottici). In passato si è usato di tutto e il primo tipo di supporto di memorizzazione sono state le schede di cartoncino perforate. Anche i dispositivi per l'interazione con l'utente possono avere qualunque forma possibile e immaginabile. Non è il caso di limitarsi all'idea che possa trattarsi solo di tastiera, schermo e mouse. Soprattutto non è il caso di supporre che un computer possa avere solo uno schermo, oppure che possa avere una sola stazione di lavoro. Le interfacce di rete sono i dispositivi che permettono la connessione tra diversi computer in modo da permettere la condivisione di risorse e la comunicazione in generale. Anche in questo caso, non si può semplificare e pensare che possa trattarsi esclusivamente di schede di rete: qualunque porta verso l'esterno può diventare una interfaccia di rete. DISPOSITIVI DI MEMORIZZAZIONE. I dispositivi di memorizzazione sono fondamentalmente di due tipi: ad accesso sequenziale e ad accesso diretto. Nel primo caso, i dati possono essere memorizzati e riletti solo in modo sequenziale, senza la possibilità di accedere rapidamente a un punto desiderato, come nel caso dei nastri magnetici usati ancora oggi come mezzo economico per archiviare dati. Nel secondo caso, i dati vengono registrati e riletti accedendovi direttamente, come nel caso dei dischi. I dispositivi di memorizzazione ad accesso diretto, per poter gestire effettivamente questa loro caratteristica, richiedono la presenza di un sistema che organizzi lo spazio disponibile al loro interno. Questa organizzazione si chiama filesystem. DISPOSITIVI DI MEMORIA SECONDARIA. Il disco fisso è quella parte del sistema che memorizza i file di dati. Uno dei primi e dei più importanti standard introdotti nell hardware del PC è costituito dallo IDE (Integrated Drive Electronics): uno standard che controlla il flusso dei dati tra il processore e il disco fisso. Un controller IDE può gestire due dischi e la velocità di trasferimento è di 1-4 Mbyte al secondo. L idea IDE è stata proposta inizialmente nel 1986 da Western Digital e da Compaq, per superare i limiti nelle prestazioni dei primi standard. Una delle principali innovazioni portate con sé dal sistema IDE è stata l integrazione delle funzioni del controller all interno del disco stesso. Il rendimento risulta influenzato in maniera determinante dal controller, cioè dalla scheda preposta al controllo del disco. Una seconda tipologia di controller è rappresentata dallo SCSI (Small Computer Interface), una tecnologia più complessa in grado di gestire fino a 7 unità con una velocità di trasferimento di circa 5 Mbyte al secondo. Un parametro per valutare le prestazioni di questi dispositivi è dato da il "tempo medio di accesso": si tratta del tempo impiegato dal disco per individuare la traccia nella quale è immagazzinato un dato, oltre che la sua posizione specifica all interno della traccia. Questo valore viene normalmente indicato in millisecondi (ms). 49

50 BIOINFOSTAT Oltre al tempo medio di accesso, è necessario prendere in considerazione il "transfer rate", cioè la velocità con la quale il disco è in grado di trasferire i dati dalla sua superficie verso la CPU. Questo valore viene in generale indicato in Mbyte al secondo (Mbps). Una unità a dischi magnetici è costituita da uno o più piatti (anche una decina) ricoperti da materiale magnetico. I dischi più piccoli sono chiamati floppy e sono formati da un solo piatto. Ciascuna delle superfici è fornita di una testina di lettura che si muove verso l'interno o l'esterno per leggere le informazioni che sono scritte a distanze differenti dal centro. L'unità disco ruota con una velocità di diverse migliaia di giri al minuto; in questo modo la testina passa circa 60 volte al secondo sulla stessa superficie. Le informazioni sono disposte sul disco in tracce, un dischetto a singola faccia usa una sola superficie del piatto e può avere da 40 a 80 tracce suddivise in sezioni o settori, mentre un hard disk può avere 10 piastre con venti superfici ed ogni superficie può avere 1000 tracce, ed ogni traccia contenere byte. del sistema nella RAM (questa operazione è chiamata boot-loader) Nelle altre zone circolari del dischetto (settori) vengono memorizzate le copie della tabella di allocazione dei file che si chiama FAT (File Allocation Table) e che costituisce una mappa dei settori utilizzati e di quelli liberi. Quindi ogni informazione viene individuata con un indirizzo fisico definito dal numero del settore, numero della traccia, numero del lato; a questo viene associato un indirizzo logico corrispondente al numero progressivo del settore. La tabella di allocazione dei file viene realizzata in più copie per reperire le informazioni corrette. FAT 1 BOOT DIR 1 Quando si effettua una cancellazione di un file, nella pratica si elimina solo il primo carattere dell indirizzario di appartenenza e rendendo disponibile lo spazio sul disco mappato. In questo momento i dati sono ancora residenti e vengono cancellati solo quando nel settore viene soprascritta. Di seguito vengono riportati alcuni esempi di DIR e di FAT. SCHEMA DIR SCHEMA FAT Nome Dimensioni Data Ora Indirizzo Attributi FILE :45 3 A FILE :12 4 A FILE :19 5 A 1 X 2 X EOF EOF EOF Il termine EOF indica la fine del file. I file del nucleo del sistema operativo risiedono nei primi settori del disco fisso e sono protetti dalle normali operazioni di cancellazione o modifica accidentale. 50

51 BIOINFORMATICA LE UNITÀ WROM. (Write Once, Read Many times) consentono di scrivere una sola volta, ma di leggere molte volte il disco; hanno una capacità variabile tra 400 e 800 Mb. Una tecnologia nuova sono le unità magneto-ottiche che consentono la riscrittura dei dischi. Hanno a seconda delle dimensioni una capacità da Mb nelle cartucce da 5" 1/4, mentre nel formato da 3"1/2 il contenuto é di 125 Mb, i tempi di accesso sono dell'ordine di 60 millisecondi. NASTRO MAGNETICO. Rappresenta il sistema più economico per l immagazzinamento di grandi quantità di dati, simile per struttura ai comuni tape per la registrazione delle musica. Le unità a nastro magnetico consentono di registrare e leggere su nastro e sono costituite da una testina di lettura e scrittura e nelle apparecchiature più complesse di colonne di depressione per mantenere in tensione il nastro e per consentire un arresto rapido del nastro. Il nastro magnetico presenta un accesso di tipo sequenziale. CD-ROM. Il CD-ROM, ormai uno standard su quasi tutti i nuovi PC, è in grado di memorizzare una quantità di dati più di 400 volte superiore rispetto ad un dischetto, vale a dire 650 MB. L'unità CD-ROM di un sistema da acquistare dovrebbe essere almeno di tipo 16x. Il numero che precede la "x" indica il numero per cui moltiplicare la velocità di trasferimento dati di un normale lettore di CD audio; si tenga presente che diversi lettori CD-ROM utilizzano la sigla max per indicare la massima velocità raggiungibile nella sezione più esterna del supporto CD-ROM. Il CD-ROM standard serve da dispositivo di memorizzazione per i dati. Un altro tipo di CD è il CD-R, che è scrivibile oltre che leggibile. Questo tipo di unità è particolarmente adatto per la memorizzazione di immagini, audio e file di dati. DVD. Si tratta dell'ultimo sviluppo nel campo della memorizzazione e del trasferimento di dati. Il DVD, acronimo di Digital Versatile Disk, consente di memorizzare una quantità di dati circa 10 volte superiore rispetto ad un'unità CD-ROM standard. Con questo tipo di capacità, è iniziata una nuova era ricca di opportunità per il software ad elevato contenuto multimediale. Attualmente, il DVD offre video di qualità e altri tipi di intrattenimento in una soluzione compatta e facile da utilizzare. La capacità dei dischi DVD varia da 4,7 GB (singola faccia, singola densità) a 15,9 GB (doppia faccia, doppia densità) e le unità sono anche in grado di leggere i CD-ROM tradizionali. Per il momento, il DVD non è scrivibile. DISPOSITIVI PER L'INTERAZIONE TRA L'UTENTE E LA MACCHINA. Se escludiamo il periodo delle schede perforate, si può dire che il primo tipo di strumento per l'interazione tra utente e macchina sia stato la telescrivente: una sorta di macchina da scrivere in grado di ricevere input dalla tastiera e di emettere output attraverso la stampante. In questo modo, l'input umano (da tastiera) era costituito da righe di testo che terminavano con un codice per il ritorno a capo (newline), e nello stesso modo era composto l'output che appariva su carta. La telescrivente era (ed è) un terminale del computer. Ormai, la stampante della telescrivente è stata sostituita da uno schermo, che però, spesso si comporta nello stesso modo: emette un flusso di testo dal basso verso l'alto, così come scorre la carta a modulo continuo attraverso una stampante. In questa situazione, la stampante ha preso un suo ruolo indipendente dal terminale originale e serve come mezzo di emissione di output finale, piuttosto che come mezzo per l'interazione. Il terminale, composto da tastiera e schermo, o comunque da una unità per ricevere l'input ed un'altra per emettere l'output, viene visto normalmente come una cosa sola. Quando si tratta di quello principale, si parla in particolare di console. TASTIERA. La tastiera è una tavoletta composta da un insieme di tasti, ognuno dei quali genera un impulso particolare. È il computer che si occupa di interpretare e tradurre gli impulsi della tastiera. Questo sistema permette poi di attribuire ai tasti particolari funzioni. Questo significa anche che non esiste uno standard generale di quello che una tastiera deve avere. Di solito si hanno a disposizione tasti che permettono di scrivere le lettere dell'alfabeto inglese, i simboli di punteggiatura consueti e i numeri; tutto il resto è opzionale. Tanto più opzionali sono i tasti a cui si attribuiscono solitamente funzioni particolari. Questa considerazione è importante soprattutto per chi non vuole rimanere 51

52 BIOINFOSTAT relegato a una particolare architettura di computer. Nell'ambito della ricerca è importante che nella tastiera sia riservato uno spazio per il tastierino numerico, necessario per accelerare l'immissione di dati numerici. SCHERMO. Il terminale più semplice è composto da una tastiera e uno schermo, ma questa non è l'unica possibilità. Infatti, ci possono essere terminali con più schermi, ognuno per un diverso tipo di output. Nel tempo, l'uso dello schermo si è evoluto, dalla semplice emissione sequenziale di output come emulazione di una stampante, a una sorta di guida di inserimento di dati attraverso modelli-tipo. Le maschere video sono questi modelli-tipo attraverso cui l'input della tastiera viene guidato da un campo all'altro. L'ultima fase dell'evoluzione degli schermi è quella grafica, nella quale si inserisce anche l'uso di un dispositivo di puntamento, solitamente il mouse, come una estensione della tastiera. STAMPANTE. Le stampanti tradizionali sono solo in grado di emettere un flusso di testo, come avveniva con le telescriventi. Più di recente, con l'introduzione delle stampanti ad aghi, si è aggiunta la possibilità di comandare direttamente gli aghi in modo da ottenere una stampa grafica. Ma quando la stampa diventa grafica, entrano in gioco le caratteristiche particolari della stampante. Per questo, l'ultima fase evolutiva della stampa è stata l'introduzione dei linguaggi di stampa, tra cui il più importante è stato ed è PostScript, come mezzo di definizione della stampa in modo indipendente dalle caratteristiche della stampante stessa. In questo modo, l'output ricevuto dalle stampanti può essere costruito sempre nello stesso modo, lasciando alle stampanti l'onere di trasformarlo in base alle loro caratteristiche e capacità. CODICI A BARRE. I codici a barre sono diventati attualmente uno standard per descrivere le informazioni sui prodotti. Un codice a barre è formato da una serie di righe verticali, scritte con un inchiostro nero. I caratteri sono rappresentati dallo spessore delle righe che si combinano tra di loro. Il codice che ha la maggior diffusione è l European Article Number (EAN) che associa ad ogni articolo un codice di dodici cifre, più una cifra di parità. Sistema operativo. Il sistema operativo di un computer è il programma più importante. È quello che viene attivato al momento dell'accensione del computer; esso esegue gli altri programmi. Sarebbe come se il cuoco eseguisse una ricetta (il sistema operativo) che gli da le istruzioni per poter eseguire le altre ricette. Il sistema operativo determina quindi il comportamento del computer. Cambiare sistema operativo in un computer è come cambiare il direttore di un ufficio: a seconda della sua professionalità e delle sue doti personali, l'ufficio funzionerà in modo più o meno efficiente rispetto a prima, e pur se non cambia niente altro, per gli impiegati potrebbe tradursi in un modo di lavorare completamente nuovo. UTENTE COMANDI Sistema Operativo PROGRAMMI APPLICATIVI INTERPRETE TRADUTTORE NUCLEO Sistema 52 Operativo

53 BIOINFORMATICA Un utente del computer ha la necessità di utilizzare le risorse della macchina e di programmarla a tale scopo il sistema operativo gli mette a disposizione diversi strumenti. 1-Comandi di lettura scrittura sui diversi supporti di memorizzazione senza che l utente debba conoscere le caratteristiche dei diversi dispositivi. 2-Gestore dei file (file System) è un sistema semplice ed efficiente di archiviazione e ricerca delle informazioni. 3-Traduttori una serie di traduttori che permettono di tradurre le istruzioni in un linguaggio simbolico (sorgente) in microistruzioni in linguaggio macchina. I traduttori di basso livello vengono definiti come assemblatori. I compilatori traducono un intero programma sorgente in un linguaggio macchina, mentre gli interpreti se viene interpretata ogni singola linea di programma e posta in esecuzione immediata. 4-Caricatore (loader) che prevede a copiare il programma dalla memoria di massa alla memoria centrale RAM affinché possa essere eseguito dal processore: 5-Editore di testi (text Editor) che consente di comporre testi in formato ASCII mediante tastiera. 6-Un analizzatore di errori di programma (debugger) che consente la correzione e la messa a punto dei programmi. 7-Una serie di programmi per la gestione della memoria e delle periferiche. 8-Programmi per l ordinamento dei dati (sortine) e la loro successiva ricerca. 9-Programmi di interfaccia sistema/utente, anche di tipo grafico per facilitare la comunicazione uomo/macchina. Ci sono sicuramente affinità tra un sistema operativo e l'altro, ma questo vuol sempre dire una marea di dettagli differenti e soprattutto l'impossibilità di fare funzionare lo stesso programma su due sistemi operativi differenti, a meno che ciò sia stato previsto e voluto da chi costruisce i sistemi operativi. Il Sistema operativo costituisce una piattaforma sulla quale sono appoggiati tutti i programmi che consentono il funzionamento del Computer. L adozione del sistema determina le applicazioni che possono funzionare ed essere utilizzate sul computer. Data la struttura dei sistemi operativi è evidente che i programmi devono essere costruiti per quel particolare sistema operativo. Il sistema operativo non si limita solo a rendere possibile l esecuzione dei programmi, regola il collegamento con tutte le periferiche. Attualmente la stragrande maggioranza dei computer utilizza i sistemi operativi derivati da Windows, ma esistono soluzioni alternative che possono presentare dei vantaggi. Un sistema operativo è costituito da una serie di programmi, logicamente separati tra loro, che assieme formano un software spesso di grandi dimensioni. Senza un sistema operativo un elaboratore personale è praticamente inutilizzabile. Nella pratica quindi un sistema operativo fornisce un metodo per poter interagire con l'utente. Un sistema operativo deve svolgere delle funzioni essenziali per il funzionamento di un elaboratore. Non è però chiaro quali siano esattamente le funzioni che devono appartenere al sistema operativo e quelle che possono essere considerate delle semplici applicazioni. Nel campo informatico sono stati sviluppati diversi sistemi operativi, che differiscono considerevolmente nelle funzionalità di base e nella filosofia che li anima nella gestione delle risorse. Si pensi all'enorme differenza che esiste tra alcuni sistemi operativi, da cui deriva anche una certa difficoltà al confronto in quanto si tratta di oggetti diversi, nati e cresciuti con obiettivi e finalità diverse. Negli anni '70 la scena del mercato dei computer era dominata dalla IBM che produceva macchine enormi destinate ai centri di calcolo; per effettuare un calcolo si doveva prendere appuntamento, programmare i calcoli, e successivamente si otteneva un listato chiamato output di stampa, sul quale si potevano leggere i risultati dei calcoli. Una piccola rivoluzione nacque con l'introduzione sul mercato dei minicomputer ed in particolare del 53

54 BIOINFOSTAT modello Pdp 10 della Digital. Su questa macchina iniziò a lavorare Bill Gates che di notte controllava gli errori dei programmi (debugging). In quel periodo non esisteva quello che noi conosciamo come il software, ma ogni macchina aveva dei programmi specifici. Nel 1974 sempre Bill Gates creò una versione particolare del Basic ed iniziò a commercializzarlo. Negli stessi anni una società americana la Altair inizia le vendite per corrispondenza del primo microcomputer, le capacità operative di questa macchina erano davvero limitate. Paul Allen e Bill Gates prepararono una versione Basic per l'altair che montava un processore Intel 8080, e contemporaneamente fondarono la Microsoft. Il successo fu enorme tanto da spingere la IBM a creare una task force dedicata allo sviluppo dei minicomputer; non si parlava ancora dei personal computer. Nel 1981 viene presentato il primo personal computer IBM con una struttura standard espandibile attraverso il bus Isa. Il computer montava un processore Intel in un ambiente Basic nella Rom e il nuovo sistema operativo chiamato DOS (Disk Operating System). In effetti il sistema DOS non è stato creato dalla Microsoft, ma bensì acquistato da una società di Seattle che aveva creato un clone del sistema Cp/M della Digital. La Digital stessa si rifiutò di sviluppare il DOS e la IBM ricorse all'aiuto di Gates ed Allen che fornirono il sistema. Si chiude in questo momento la prima fase dell'era informatica. Lo scopo di un sistema operativo è quello di nascondere la struttura intima di un calcolatore. Si ha una struttura a cipolla. All'interno della cipolla si ha l'hardware, nel primo strato esterno si impiega il linguaggio macchina e si trovano le procedure di gestione delle interruzioni e dei driver. Le procedure di interruzione mettono il computer in uno stato di attesa di un evento. Ad esempio attende che un tasto della tastiera venga premuto. Un driver (letteralmente autista) è generalmente una astrazione che consente di risparmiare molto tempo nelle operazioni di trasferimento. In pratica ogni dispositivo di ingresso/uscita possiede un suo proprio drive che ne regola direttamente la gestione senza disturbare il programma in esecuzione. Nel secondo strato troviamo i device, cioè dispositivi logici che sfruttano e comandano i vari dispositivi fisici; sono device ad esempio, il monitor, la tastiera, la stampante. Un device non comanda direttamente i dispositivi esterni, ma sfrutta i driver presenti al primo livello. Un device ha quindi una serie di procedure indispensabili per accedere alle funzioni dei dispositivi. Nel terzo livello troviamo lo strato file system, che rappresenta le modalità con cui viene interrogata la memoria di massa. Il file system consente ad esempio di conservare degli oggetti anche quando si spegne la macchina. Un file è una sequenza logica di informazioni che nelle memorie di massa sono necessarie per riconoscere un documento. L'accesso alle memorie di massa generalmente è casuale e frammentato, pertanto il file deve essere ricostruito prelevandolo dai diversi blocchi nei quali è stato posizionato. Si tratta quindi di dare tutte le informazioni di posizionamento alle testine di lettura per recuperare le informazioni richieste e trasformarle in codice binario. Nel terzo strato troviamo una specie di convertitore che trasforma ed ordina logicamente i file nelle cartelle. Il quarto stato effettua il collegamento con gli strati inferiori e le applicazioni finali, in alcuni sistemi l'intero strato è denominato User Interface Toolbox e risulta suddiviso in blocchi logici separati chiamati con il nome di Manager. Ciascun gruppo è rappresentato da una serie di procedure, che ogni applicazione può richiamare per ottenere dei servizi dal sistema operativo. L'insieme di tutte le procedure viene chiamata API (Application Program Interface). Esistono quindi diversi Manager; possiamo avere una Memory Manager che fornisce una serie di istruzioni per la gestione della memoria RAM, il Font Manger si occupa della gestione dei caratteri, il Window Manger, il Control Manger, il Dialog Manager, tutti manager che gestiscono la visualizzazione di oggetti tipici dell'interfaccia. L'ultimo strato del sistema è rappresentato dall'interfaccia utente. Una volta veniva chiamato semplicemente interprete comandi, in quanto l'utente interagiva direttamente con la macchina attraverso dei comandi. I compiti essenziali di un'interfaccia utente sono quelli di rendere visibile l'organizzazione dei file, di fornire assistenza al lancio di applicazioni. 54

55 BIOINFORMATICA IL SISTEMA OPERATIVO. Il sistema operativo è ciò che regola il funzionamento di tutto l'insieme di queste cose. Volendo schematizzare, si possono distinguere tre elementi il kernel la shell i programmi di utilità. KERNEL. Il kernel è il nocciolo del sistema. Idealmente, è una sorta di astrazione nei confronti delle caratteristiche fisiche della macchina ed è il livello a cui i programmi si rivolgono per qualunque operazione. Ciò significa, per esempio, che i programmi non devono (non dovrebbero) accedere direttamente ai dispositivi fisici, ma possono utilizzare dispositivi logici definiti dal kernel. Questa è la base su cui si fonda la portabilità di un sistema operativo su piattaforme fisiche differenti. Il kernel avvolge idealmente il computer e i suoi dispositivi fisici, ovvero tutto l'hardware, e si occupa di interagire con i programmi che ignorano il computer fisico. La portabilità è quindi la possibilità di trasferire dei programmi su piattaforme differenti, e ciò si attua normalmente in presenza di kernel che forniscono funzionalità compatibili. Formattati: Elenchi numerati PROGRAMMI SHELL KERNEL SHELL HARDWARE P R O G R A M M I KERNEL Kernel e Shell Naturalmente esistono sistemi operativi che non forniscono kernel tanto sofisticati e lasciano ai programmi l'onere di accedere direttamente alle unità fisiche del computer. Si tratta però di sistemi di serie "B'', anche se la loro nascita è derivata da evidenti necessità causate dalle limitazioni di risorse dei computer per i quali venivano progettati. SHELL. Il kernel offre i suoi servizi e l'accesso ai dispositivi attraverso chiamate di funzione. Però, mentre i programmi accedono direttamente a questi, perché l'utente possa accedere ai servizi del sistema occorre un programma particolare che si ponga come intermediario tra l'utente (attraverso il terminale) e il kernel. Questo tipo di programma è detto shell. Come suggerisce il nome (conchiglia), si tratta di qualcosa che avvolge il kernel, come se quest'ultimo fosse una perla. La shell è il programma che consente all'utente di accedere al sistema. I terminali attraverso cui si interagisce con la shell sono comunque parte dell'hardware controllato dal kernel. Un programma shell può essere qualunque cose, purché in grado di permettere all'utente di avviare, e possibilmente, controllare i programmi. La forma più semplice, e anche la più vecchia, è la riga di comando presentata da un invito, o prompt. Questo sistema ha il vantaggio di poter essere utilizzato in qualunque tipo di terminale, compresa la telescrivente. Nella sua forma più evoluta, può arrivare a un sistema grafico di icone o di oggetti grafici simili, oppure ancora a un sistema di riconoscimento di comandi in forma vocale. Si tratta sempre di shell. 55

56 BIOINFOSTAT MULTITASKING. Una componente del sistema operativo è responsabile delle risorse dei computer tra le diverse task, si definisce questo processo task schedular. Esistono due possibilità nella gestione delle task. Uno scheduling preventivo e uno cooperativo detto anche non preventivo. Con lo scheduling preventivo, il task scheduler é legato al battito interno del computer che regola le operazioni. Il task schedular assegna ad ogni task il controllo delle risorse del computer per un tempo determinato. Quando questo tempo è trascorso il sistema operativo mette in attesa l'applicazione e dedica il suo tempo all'applicazione successiva. Nello scheduling cooperativo non esiste un tempo di allocazione riservata. La divisione del tempo del microprocessore è divisa tra tutte le applicazioni in esecuzione. Una applicazione quindi deve cedere il controllo del microprocessore ad intervalli frequenti in modo che le altre applicazioni abbiano il tempo per l'esecuzione. Se un programma si impossessa del microprocessore per troppo tempo, l'esecuzione degli altri programmi rallenta vistosamente fino all'arresto. L'inconveniente di questo sistema è che se un programma si blocca, tutto il sistema resta bloccato. PROGRAMMI DI UTILITÀ. I programmi di utilità sono un insieme di piccole applicazioni utili per la gestione del sistema. Teoricamente, tutte le funzionalità amministrative per la gestione del sistema potrebbero essere incorporate in una shell, in pratica, questo solitamente non si fa. Dal momento che le shell tradizionali incorporano alcuni comandi di uso frequente, spesso si perde la cognizione della differenza che c'è tra le funzionalità fornite dalla shell e i programmi di utilità. PROGRAMMI APPLICATIVI. Il computer non può essere una macchina fine a se stessa. Deve servire a qualcosa, al limite a giocare. È importante ricordare che tutto nasce da un bisogno da soddisfare. I programmi applicativi sono quelli che (finalmente) servono a soddisfare i bisogni, e quindi, rappresentano l'unica motivazione per l'esistenza dei computer. IL SISTEMA OPERATIVO IN 5 PUNTI MULTIUTENTE = possono essere utilizzati da più utenti contemporaneamente. MULTITASKING = possono essere eseguite contemporaneamente più applicazioni. MULTIHREADING = possono essere eseguite in modo concorrente diverse componenti di una stessa applicazione. MULTIPROCESSING = possibilità di utilizzare più unità centrali contemporaneamente. SISTEMI REAL-TIME = dare la garanzia di risposta in tempi brevissimi. MS-DOS. Quando IBM introdusse il primo personal computer negli anni '80 si prevedeva la vendita di poche unità e la società non si preoccupò di renderli di facile utilizzo. La IBM si accordò con una piccola società; la Microsoft, per dotare i calcolatori di un sistema operativo. La Microsoft fornì un sistema chiamato MS-DOS che si rilevò un enorme successo commerciale, non si può dire che il sistema fosse facile in quanto richiede agli utenti di digitare parole chiave mnemoniche. Tale sistema è considerato un'interfaccia a linea di comando; i comandi devono essere digitati al prompt del DOS e non viene fornita nessuna indicazione del nome da immettere. Ad esempio compare c:/> Attualmente i computer sono diventati più potenti e più veloci, ma nessuno vuole abbandonare il sistema MS-DOS in quanto tutti i programmi costruiti in DOS potrebbero non essere più compatibili. WINDOW. Il progetto Windows nasce nel 1983 per sopperire ai limiti del DOS. Microsoft era consapevole che MS-DOS stesse invecchiando molto velocemente, gli utenti abituati ad esempio al telecomando non erano disponibili a digitare complicate istruzioni per eseguire qualsiasi operazione. Nasce da questa esigenza Window, che presentava sullo schermo 56

57 BIOINFORMATICA una serie di immagini chiamate icone; con le icone era necessario semplicemente puntare il mouse sulle icone stesse. Negli stessi anni nasce il fenomeno commerciale delle Compaq che tende ad imporre uno nuovo standard costruttivo, basato sull'architettura Microchannel dei Ps/2. Il sistema era proprietario e quindi costoso, il mercato in notevole fermento propose un sistema equivalente, la Pci. IBM voleva avere dei computer unici e superiori a quelli della concorrenza e che tali computer facessero riferimento sia per l'architettura che per il sistema operativo a quelli dei suoi grandi computer i mainframe. IBM, che aveva una alleanza con Microsoft dal 1985 voleva che Windows fosse destinato alla fascia bassa del mercato per un passaggio al sistema Os/2. Il mercato nella fase iniziale non offrì la rispondenza attesa. Nel frattempo si sviluppano versioni di programmi definiti di "produttività personale" o di office automation. Nel maggio 1990 viene presentato Windows 3.0 e Bill Gates conia la celebre frase "information at your fingertips" (informazioni sulla punta della dita) ed inizia il vero successo commerciale di Windows. Negli anni successivi la crescita dell'hardware ha guidato la crescita del software. Windows 3 non era un multitasking e non era in grado di sfruttare al meglio la modalità protetta e il codice era a 16 bit, la capacità di coesistenza delle applicazioni era demandata alle applicazioni stesse, piuttosto che al sistema operativo, si trattava sostanzialmente di un multitasking cooperativo. Negli anni '90 i rapporti con IBM si fanno tesi e nel 1992 la IBM presenta una prima versione autonoma del sistema a 32 bit del suo Os/2, le relazioni si rompono e la Microsoft annuncia il progetto NT, un sistema di fascia alta. Le successive versioni di Windows 3.x affinano sempre più le capacità di gestione, vengono rese pubbliche le librerie di programmazione del sistema operativo (sono chiamate API), successivamente vengono rese pubbliche anche le librerie Win 32, un set di API che dovrebbero essere comuni a Windows NT e al successore del 3.x che in codice viene chiamato Chicago. Si tratta dunque di un progetto che tende a far evolvere dai 16 bit ai 32 bit (il che permette di superare ogni limite di indirizzamento della memoria: 4 Gigabyte). Nasce da precise esigenze di mercato Windows 95 e la sua evoluzione Windows 98. Siamo di fronte a sistemi che adottano un codice misto a 16 e 32 bit, ad un multitasking in parte cooperativo e in parte preemptiv, con alcune tracce ancora del vecchio Dos. Con il termine Fat32 indichiamo la struttura della tabella di allocazione dei file e con il termine 32 i bit supportati per la definizione dei singoli campi. Uno dei grossi limiti di Windows 95 è stato quello di non prevedere una partizione di grandezza superiore ai 2 Giga byte. Con l'utilizzo della Fat32 viene drasticamente ridotta la dimensione dello spazio fisico occupato dai file di piccole dimensioni e pertanto sfruttiamo meglio lo spazio a disposizione sul disco rigido. Windows 98 eredita quindi da Windows 95 ed aggiunge dei componenti fondamentali per il passaggio a NT, attraverso un driver chiamato Win "Device Driver Model" ed uguale per i due sistemi. Per concludere questa breve rassegna possiamo dire che il sogno di IBM si è realizzato con un piccolo particolare che il sistema sul quale converge Windows non è OS/2 ma NT 4, o la prossima versione NT 5 attesa per il Window è stato un grosso successo, ma il problema di fondo rimaneva in quanto Window non sostituisce il DOS, ma funzionava sopra il DOS. Da un punto di vista commerciale era quindi necessario acquistare sia il DOS che Window per rendere operativo un Pc. UNIX. Il nome Unix deriva da MULTICS, acronimo di Multiuser Interactive Computer System, un progetto iniziato al M.I.T. verso la metà degli anni '60. In questo progetto vi era la finalità di definire uno standard per i sistemi operativi, attuabile da tutti i produttori. In questo modo i programmatori potevano elaborare pacchetti di software eseguibili in molti tipi di computer, inoltre gli utenti che avevano confidenza con una interfaccia avrebbero potuto utilizzare con più facilità computer differenti. Pur avendo deluso in parte queste attese UNIX rimane uno standard per i computer a livello superiore. Il sistema operativo UNIX è generalmente installato sui mini e microcalcolatori, tale sistema ha conosciuto un notevole sviluppo ed una diffusione negli anni recenti in quanto si adatta ad ambienti di lavoro diversi (editoria, elaborazione testi, applicazioni scientifiche). L'interesse é aumentato in quanto il grandi calcolatori interagiscono tra loro attraverso UNIX. Le caratteristiche di semplicità sono il risultato di un insieme ridotto di meccanismi ben 57

58 BIOINFOSTAT combinati tra di loro che lo rendono un sistema operativo adatto allo sviluppo di programmi. Il sistema UNIX nasce nei laboratori Bell, sviluppato da D. Ritchie e K. Thompson nel 1969, le prime versioni vennero distribuite gratuitamente alle scuole, College ed Università americane. Una delle prime scuole a ricevere UNIX fu l'università di Berkeley che in seguito commercializzò una versione chiamata UNIX BSD (Berkeley Software Distribution) giunta attualmente alla versione 4.3. Una delle principali versioni di Unix sviluppata nel periodo che va dal 1979 al 1993 presso il Computer System Research Group dell Università di Berkeley in California. Il BSD ha giocato un ruolo fondamentale nel favorire la crescita di Internet poiché è stata la prima versione di Unix a incorporare gratuitamente il protocollo TCP/IP oltre ad altre funzioni innovative come la commutazione dei task (task switching), l uso di 255 caratteri per i nomi dei file e la gestione della memoria virtuale (area su disco che viene vista come un estensione della memoria centrale, altrimenti detta RAM). Il gruppo incaricato di questo sviluppo fu capitanato da Bill Joy fino al 1982, anno in cui quest ultimo fondò la Sun Microsystems usando la versione 4.2 del BSD Unix come base per il proprio SunOS. Il BSD fu distribuito gratuitamente a centinaia di college e università americane e fu utilizzato da queste come ambiente di lavoro e di connessione in rete. Oggi l Università di Berkeley non è più impegnata direttamente nello sviluppo di Unix, tuttavia alcune delle componenti introdotte allora, come le socket, sono diventate uno standard per tutte le versioni di Unix in commercio. Molti dei laureati di Berkeley si impiegarono in società informatiche pertanto derivarono delle versioni UNIX particolari; Sun OS della Sun Microsystem, HP-UNIX della Hewelett-Pakard, AIX della IBM. La Bell successivamente sviluppò una versione conosciuta come System 5. A questo punto il Sistem V e l'unix BSD si fusero insieme creando una società la Open Software Foundation che iniziò a commercializzare un altro tipo di UNIX: OSF/1. Senza un sistema operativo sofisticato un computer può eseguire una sola unzione alla volta; con UNIX nasce il multitasking; cioè la possibilità di volgere più attività contemporaneamente, inoltre UNIX è multiutente, esiste la possibilità per diversi utenti di condividere lo stesso computer nello stesso arco di tempo. Il sistema è fornito di strumenti di elaborazione testi, programmi di utilità, un programma per la gestione della posta elettronica e un file system per memorizzare queste informazioni. Il Sistema UNIX si divide in tre parti: Il nucleo che gestisce ed organizza le operazioni tra le diverse unità. Il file system è la struttura che organizza i dati e rappresenta una parte molto importante. La shell è l'interprete dei comandi e costituisce il guscio esterno del sistema a diretto contatto con l'utente. Gli interpreti si dividono in due gruppi il Bourne ed è evidente quando al promt compare il simbolo $. L'interprete C attribuisce essenzialmente ai caratteri di punteggiatura un maggior numero di significati. Come MS-DOS, Unix è un sistema operativo, dice al computer come fare certe cose. Ora, anche se UNIX ha la reputazione di essere più complesso di MS-DOS, nella maggior parte dei casi pochi comandi semplici e basilari saranno sufficienti. A differenza di MS-DOS, UNIX è sensibile alle maiuscole, se si digitano i comandi o le directory nel modo sbagliato, si riceverà un messaggio d'errore. DOS UNIX Descrizione DIR 1s-al Lista dei file nella directory DIR/W 1s Semplice lista dei file DEL rm Elimina un file COPY cp Copia un file RENAME mv Rinomina un file 58

59 BIOINFORMATICA FIND grep Trova una stringa ASCI in un file Le directory di UNIX sono organizzate come i rami di un albero. Alla base è presente la directory "root", con sotto-directory che si ramificano da questa (e le sotto-directory possono avere delle altre sotto-directory). L'equivalente Mac di una sotto-directory UNIX è una cartella contenente un'altra cartella. 59

60 BIOINFOSTAT BASI DI DATI Al contrario dei dati utilizzati all'interno di un programma (come ad esempio le variabili, gli array, le strutture dati dinamiche, ecc.), archivi (o file) e basi di dati (database) memorizzano dati in maniera permanente (i dati rimangono in memoria anche in seguito alla terminazione di una data applicazione o allo spegnimento della macchina). Si definisce archivio l'insieme dei dati che vengono salvati su un supporto di memorizzazione (disco). Un database è un archivio con una particolare struttura. In particolare, i database sono formati da oggetti detti record. Un passo fondamentale (ma non l'unico) nella definizione di un database consiste nella descrizione di come sono formati i record, ovvero il numero, il nome e i tipi di dato che essi contengono, oltre ad altre informazioni complementari.in altri termini, definire un database significa sia descrivere i dati che lo compongono, sia fornire una definizione di questi dati (ad esempio, come sono organizzati, il loro significato, ecc.). La principale differenza tra archivio e database, dunque, è la seguente: Se si usano gli archivi, la definizione dei dati, del loro significato e del modo in cui sono organizzati è parte integrante dell'applicazione: Se si usano i database, la definizione della struttura dei dati è indipendente dall'applicazione: DataBase Management System Un DBMS è una collezione di file tra loro collegati ed un insieme di programmi che permettono accessi e modifiche ai dati. Lo scopo principale di un DBMS è di fornire un ambiente efficiente e conveniente per accedere e memorizzare grandi collezioni di dati. La gestione di questi dati implica la definizione di strutture fisiche per la memorizzazione e di meccanismi per la manipolazione delle informazioni. Un DBMS deve inoltre gestire e controllare l accesso concorrente degli utenti e le loro autorizzazioni. Un DBMS fornisce agli utenti una visione astratta dei dati, occupandosi dei dettagli riguardanti la memorizzazione e il mantenimento. 60

61 BIOINFORMATICA vista1 vista2... vistan Livello logico Livello fisico Un database è visto in base a tre livelli di astrazione: Livello fisico: è il livello più basso in cui si descrive come i dati sono effettivamente memorizzati (usando le strutture dati); Livello concettuale (o logico): è il livello in cui si descrive quali sono i dati memorizzati nel DB e le associazioni tra di essi. L intero DB è descritto da un numero limitato di strutture dati relativamente semplici sebbene la loro implementazione possa comportare l uso di strutture fisiche assai complesse. Livello esterno (view): è il livello più alto e mostra una porzione dell intero DB. Possono essere definiti più livelli esterni per lo stesso DB, ognuno di essi fornisce la visibilità di una parte dei dati. Un DBMS consente di realizzare DB e accedere ai dati attraverso uno schema logico, occupandosi di tradurre in modo efficiente le richieste dell utente in operazioni fisiche (come l accesso a file) con l ausilio di strategie ad-hoc e l apporto di informazioni di sistema. Il DBMS permette inoltre di: definire vincoli di integrità sui dati, definire utenti e privilegi con diversi livelli di visibilità per garantire la sicurezza dei dati, accedere in modo concorrente ai dati. Architettura di un DBMS All interno di un DBMS si possono individuare un certo numero di componenti funzionali ognuno dei quali ha un ruolo ben preciso e interviene a seconda dell operazione da svolgere: - query parser: controlla la correttezza sintattica dei comandi espressi nei linguaggi del DBMS e li traduce in un formato interno; - query optimizer: trasforma una richiesta utente in una equivalente ma più efficiente; - authorization and integrity manager: verifica i vincoli di integrità sui dati e controlla i diritti di accesso degli utenti; - recovery manager: assicura che il DB rimanga in uno stato consistente nel caso di cadute del sistema; - concurrency controller: gestisce e controlla l accesso concorrente ai dati. - buffer manager: si occupa del trasferimento dei dati da disco a memoria centrale e viceversa con l obiettivo di ridurre al minimo gli accessi al disco; 61

62 BIOINFOSTAT - file manager: stabilisce la strategia di mappatura delle strutture dati in file mentre il sistema operativo si occupa dell allocazione e dell organizzazione dello spazio su disco; Per poter svolgere queste funzioni il DBMS utilizza, oltre ai dati utente anche informazioni di sistema quali il dizionario dei dati, l elenco delle autorizzazioni, gli indici e alcuni dati statistici utili per le scelte strategiche. Modelli dei dati Un modello dei dati è un insieme di strumenti concettuali (cioè un formalismo) per descrivere i dati, le associazioni tra i dati e i vincoli (semantici) tra i dati. Il modello dei dati è la colonna vertebrale di un DBMS in quanto permette di rappresentare elementi del mondo reale mediante strutture di dati (artificiali) che il DBMS è in grado di trattare. I modelli dei dati possono essere suddivisi in: modelli semantici (modello E-R, modello binario, etc); modelli logici tradizionali (reticolare, gerarchico, relazionale); modelli orientati agli oggetti; modello deduttivo. Il modello Entity-Relationship. E un modello concettuale che fa uso dei componenti essenziali di entità, attributi e relazioni. Prima di implementare un'applicazione che fa uso di uno o più database, è bene scrivere ed aver chiaro in mente il modello dei dati che si intende utilizzare. Un modello dei dati consiste in una rappresentazione astratta delle strutture dei dati di un database. L'atto della creazione di un modello dei dati prende il nome di modellazione dei dati o data modeling. La stragrande maggioranza delle applicazioni esistenti che fanno uso dei database, esano un particolare tipo di modello per i dati, noto con il nome di modello Entità-Relazione (E-R). Il suo nome deriva dal fatto che permette di modellare il mondo reale utilizzando esclusivamente due concetti: entità e relazioni. Le entità sono gli oggetti principali su cui vengono raccolte informazioni. Ogni entità del modello E-R serve a rappresentare un concetto, concreto o astratto, del mondo reale. Quando si parla di entità, una nozione molto importante da capire è quella di istanza di una entità. L'istanza di una entità consiste in un singolo oggetto descritto dall'entità. Esempio: Una entità potrebbe essere uno studente. In questo caso, una istanza di questa entità potrebbe essere un particolare studente. Dal precedente esempio, risulta chiaro che, al fine di poter definire delle istanze, e quindi avere a disposizione degli oggetti precisi, occorre specificare in modo esatto come sono fatte le entità. In generale, una entità è composta da una serie di attributi. Una particolare istanza di un attributo è detta valore. I valori degli attributi devono permettere di distinguere tra le varie istanze delle entità. Esempio: Prendiamo di nuovo in considerazione l'esempio precedente. Al fine di poter usare il concetto di studente, e quindi poter caratterizzare particolari studenti, occorre specificare come vogliamo che sia definito uno studente nell'applicazione. Un esempio tipico è il seguente: uno studente è definito dalla seguente tripla: (nome, cognome, numero di matricola). A questo punto, una entità (ovvero un particolare studente!) potrà essere, ad esempio: (Paolo, Rossi, 87364). In questo esempio: (nome, cognome, numero di matricola) è ciò che rappresenta l'entità studente all'interno del programma. Si può anche dire che è l'entità studente. 62

63 BIOINFORMATICA (Paolo, Rossi, 87364) è un'istanza dell'entità studente. nome è un attributo. Paolo è un valore dell'attributo nome. Si dice dominio di un attributo la collezione di tutti i valori possibili di quell'attributo. Gli attributi possono essere classificati come chiavi o descrittori. Le chiavi identificano univocamente una istanza di una entità. I descrittori, invece, descrivono una caratteristica non unica di una entità. Un entità è un oggetto che esiste nella realtà e che è distinguibile dagli altri oggetti. Ogni entità è caratterizzata da un insieme di attributi che ne definiscono le proprietà. La combinazione di diversi valori degli attributi determinano le istanze di un entità. Ad esempio nel caso di un entità Persona con attributi codice_fiscale, cognome e nome, la tupla ( PRRSFN60J54Z679K, Pirra, Stefano ) rappresenta un istanza dell entità Persona. Se poi uno o più attributi distinguono un istanza da un altra questi vengono detti chiave. Ad esempio, nel caso dell entità Persona l attributo codice_fiscale è chiave. Un insieme di entità correlate, ovvero esistenti in una stessa porzione di realtà, costituiscono un set di entità e definiscono i confini del modello. Una relazione è un interconnessione tra entità. Esistono due tipi di relazioni, quelle tra attributi di entità e quelle tra entità nel loro complesso, anche chiamate associazioni. Es. Entità: cliente(nome, indirizzo) conto(numero, saldo) Associazione: cliente-conto, associa ad ogni cliente della banca il proprio conto. user query query parser strategy selector log user transaction recovery manager concurrency controller buffer manager buffer lock table file manager statistical data index disk storage User data System data Una associazione può essere una corrispondenza di tipo: 1:1 (uno a uno o biunivoca) quando ogni istanza della prima entità si associa ad un unica istanza della seconda entità (es. persona e passaporto nell ambito di una nazione). 63

64 BIOINFOSTAT 1:N (uno a molti) quando ogni istanza della prima entità si può associare ad una o più istanze della seconda entità mentre ogni istanza della seconda si deve associare ad un unica istanza della prima (es. persona e prestito nell ambito di una biblioteca). N:N (molti a molti) quando ogni istanza della prima entità si può associare ad una o più istanze della seconda e viceversa (es. docente e studente nell ambito di una scuola). Nella figura seguente viene riportato lo schema E-R di un DB su tesi, tesisti e relatori. Cognome Nome Matricola Codice Titolo TESISTA (1,n) TT (1,1) TESI Descrizione Codice (1,3) ARGT (1,1) (1,1) (1,3) REL COR ARGOMENTO (1,n) (1,n) Codice Cognome Nome Indirizzo Tel RELATORE/CORRELATORE Dipartimento INTERNO Ditta ESTERNO Qualifica I modelli logici Il modello logico discende da quello concettuale e disegna un architettura che dipende dal tipo di DBMS, ossia tiene conto delle strutture dati e delle operazioni eseguibili da quel DBMS. Tra i modelli logici quello di gran lunga più utilizzato è quello relazionale e, di conseguenza, i più diffusi DBMS sul mercato sono RDBMS, cioè relational DBMS. Il modello relazionale. La ragione principale della popolarità di questo modello è che ha permesso lo sviluppo di linguaggi semplici (dichiarativi) e potenti con cui esprimere richieste di accesso e manipolazione dei dati. Questo modello inoltre si basa sull algebra relazionale ed è quindi supportato da una solida base teorica che permette di dimostrare formalmente proprietà di dati e operazioni. Senza approfondire troppo l argomento assai vasto, vediamone i concetti fondamentali. I dati e le relazioni tra i dati sono rappresentati per mezzo di un insieme di tabelle bidimensionali ognuna delle quali è formata da righe e colonne con nomi unici (all interno della stessa tabella). Le colonne rappresentano gli attributi mentre le righe rappresentano le tuple della relazione. 64

65 BIOINFORMATICA Es.codicecitta (città, provincia, regione, CAP) CITTA PROVINCIA REGIONE CAP Sesto San Giovanni MI Lombardia Cinisello Balsamo MI Lombardia Il più piccolo insieme di attributi che distingue fra loro le tuple della relazione viene detto chiave. Nell esempio la chiave è definita dal solo attributo CAP, per definizione identificativo univoco di una città. Vi possono essere più chiavi per una stessa relazione, in questo caso normalmente ne viene selezionata una definita primaria. La chiave ha una funzione fondamentale nella fase di ricerca dei dati. Vi sono un certo numero di operazioni applicabili alle relazioni che definiscono completamente l algebra relazionale. Le cinque operazioni di base sono unione, differenza, prodotto cartesiano, proiezione e selezione a cui se ne aggiungono altre tra cui JOIN che, pur non aumentando la potenza espressiva del linguaggio, ne facilitano l uso. Il risultato dell esecuzione di queste operazioni tra relazioni è a sua volta una relazione e, quindi, può essere utilizzata per successive operazioni. I concetti del modello relazionale verranno ripresi nel seguito a proposito del linguaggio SQL. Linguaggi di un DBMS Si è già accennato come il DBMS funga da interfaccia tra utente e database nel senso che tutte le richieste di operazioni sui dati devono essere indirizzate al DBMS il quale si preoccupa di controllarle, tradurle in comandi interni ed eseguirle. Questa funzione il DBMS la svolge anche per le applicazioni che dovessero richiedere accessi ad un database. Infatti un DBMS può ricevere comandi direttamente dall utente in modo interattivo, tramite un linguaggio di interrogazione; oppure attraverso un linguaggio di manipolazione dei dati proprio del DBMS; o, infine, tramite un programma scritto in un linguaggio di programmazione. Ogni DBMS fornisce dei linguaggi ad-hoc, il cui scopo è descritto nel seguito. Data Definition Language (DDL) è il linguaggio che permette di definire lo schema (logico) di un DB. Il risultato della compilazione delle espressioni del DDL è un insieme di tabelle che sono memorizzate nel dizionario dei dati. Un dizionario dei dati contiene metadati, cioè dati che descrivono altri dati ed è consultato dal DBMS prima di accedere o modificare i dati. Storage Definition Language (SDL) è il linguaggio che permette di definire le strutture dati e i metodi di accesso. Il risultato della compilazione delle espressioni del SDL è un insieme di istruzioni che specificano i dettagli di implementazione degli schemi del DB. I DBMS attuali hanno solitamente un SDL molto limitato e svolgono autonomamente quasi tutti i compiti di definizione delle strutture dati. Data Manipulation Language (DML) fornisce le primitive per l inserimento, la modifica e la cancellazione di dati contenuti nel DB. Il DML permette, inoltre, il reperimento (o accesso) delle informazioni memorizzate nel DB. Solitamente tali primitive vengono indicate a parte con il nome di Query Language (QL). 65

66 BIOINFOSTAT Esistono due tipi di DML, procedurali e dichiarativi. Nel primo caso l utente deve specificare quali dati vuole e in che modo reperirli, nel secondo caso l utente indica solamente i dati che desidera. Fa parte di questa categoria il linguaggio SQL, certamente il più diffuso linguaggio di interrogazione esistente. Passi nell esecuzione di una interrogazione. Una volta che l utente formula la richiesta nell opportuno linguaggio, il DBMS svolge alcune operazioni e, infine, accede ai dati e restituisce il risultato. I passi sono: Parsing: viene controllata la correttezza sintattica della query e ne viene generata una rappresentazione interna; Controllo di esistenza: viene controllata l esistenza di tabelle e colonne specificate; Controllo autorizzazioni: vengono controllati i permessi di accesso al DB; Trasformazioni algebriche: rappresenta la prima fase di ottimizzazione, attraverso il calcolo relazionale si ottiene una query equivalente ma più efficiente in termini di accessi al DB; Selezione ed esecuzione della strategia: si determina in modo preciso come la query sarà eseguita e si eseguono gli accessi al disco. Naturalmente queste operazioni sono nascoste all utente il quale si deve solo preoccupare di esprimere in modo semanticamente corretto la propria interrogazione. Il linguaggio SQL Nel 1974 esce, dai laboratori di ricerca dell IBM, SEQUEL (Structured English Query Language), un linguaggio per la definizione delle caratteristiche dei database relazionali, successivamente contratto in SQL. Ha inizio così lo sviluppo di sistemi di gestione di database relazionali che porterà nei primi anni ottanta alla presentazione di prodotti commerciali, in particolare DB2 di IBM e Oracle della Relational Software. Nel corso degli anni ottanta altre compagnie, tra cui Informix, commercializzarono prodotti basati su SQL, che divenne così lo standard industriale di fatto per quanto riguarda i database relazionali. Nel 1986 arrivò anche il riconoscimento dell ANSI (American National Standard Institute) che adottò SQL come standard per i linguaggi relazionali e nel 1987 seguì anche lo standard ISO (International Standards Organization). Lo standard venne chiamato SQL/86; oggi, dopo aver subito varie revisioni, è arrivato alla versione SQL/92 ed è in corso, da parte degli organismi ANSI e ISO, lo studio di uno standard rinnovato che comprenda anche la gestione di tipi di dati multimediali. Nonostante esista uno standard, gli attuali RDBMS in commercio non implementano la versione completa del linguaggio preferendo l adozione di comandi proprietari. Il linguaggio SQL consente all utente di: - definire e modificare l architettura del DB (funzioni di DDL), - inserire e modificare i dati (funzioni di DML), - gestire utenti e permessi di accesso (funzioni di Data Control Language, DCL), - interrogare il DB (funzioni di QL). In realtà gli attuali DBMS forniscono interfacce grafiche che permettono di svolgere diverse attività senza utilizzare direttamente SQL. Questo però è l unico linguaggio riconosciuto da tutti gli RDBMS in commercio e, dunque, permette in linea teorica di essere indipendenti dal prodotto. 66

67 BIOINFORMATICA Ricordiamo che attualmente i DBMS relazionali più diffusi in commercio sono Oracle, IBM DB2, MS SQLServer, MySQL della MySQLAB e, per l home-computing, MS Access. Il resto di questo capitolo è dedicato all esplorazione dei principali comandi SQL. L esempio descritto di seguito sarà un utile ausilio a tale scopo e verrà arricchito di volta in volta. Docente(codice, cognome, nome, classe_concorso, tipo_contratto, anzianità_servizio, codiceistituto) Questa relazione potrebbe rappresentare la realtà degli insegnanti impiegati in una determinata provincia. Gli attributi individuano la materia insegnata, il tipo di contratto (tempo indeterminato/temporaneo), l anzianità di servizio calcolata in base al numero di anni di servizio e il codice dell istituto di appartenenza. Il tracciato della tabella risultante è il seguente dove il campo codice rappresenta la chiave primaria. Codice Cognome Nome C_concorso T_contratto A_servizio C_istituto Si supponga di aver definito la tabella e di aver inserito un certo numero di tuple, a questo punto è possibile interrogare il DB utilizzando la clausola SELECT di SQL. Nel caso più semplice in cui si vuole ottenere l intero contenuto della tabella si scriverà: SELECT * FROM DOCENTE; Il simbolo speciale * indica che si desiderano tutti gli attributi della relazione. Il risultato di tale interrogazione è: Codice Cognome Nome C_concorso T_contratto A_servizio C_istituto 1054 Agnoletti Antonio A050 I 12 MI Giotto Giacomo A042 T 15 MI Zanna Daniela A031 I 5 MI Andora Giuseppe A037 I 7 MI Boldi Luisa A042 T 2 MI Bianchi Andrea A037 I 11 MI Cerpi Elisa A048 T 1 MI Palo Anna A048 T 0 MI Torti Paolo A033 I 25 MI Delta Carlo A031 T 0 MI Gentili Angela A042 I 9 MI0902 La clausola WHERE del comando SELECT permette di specificare condizioni da applicare alle tuple. Es. Selezionare nome, cognome e classe di concorso di tutti i docenti impiegati nell istituto con codice MI

68 BIOINFOSTAT SELECT Cognome, Nome, C_concorso FROM DOCENTE WHERE C_istituto= MI0145 ; Risultato: Cognome Nome C_concorso Giotto Giacomo A042 Zanna Daniela A031 Torti Paolo A033 Delta Carlo A031 Operatori logici. Gli operatori logici permettono di specificare più condizioni all interno di una stessa clausola WHERE. Utilizzando l operatore logico AND si possono specificare più condizioni che devono essere tutte verificate. Es. Selezionare nome, cognome e classe di concorso dei docenti impiegati nell istituto MI0145 con anzianità superiore ai 10 anni. Risultato: SELECT Cognome, Nome, C_concorso FROM DOCENTE WHERE A_servizio>10 AND C_istituto= MI0145 ; Cognome Nome C_concorso Giotto Giacomo A042 Torti Paolo A033 Usando l operatore OR si ottengono, invece, tutte le tuple che soddisfano almeno una delle condizioni. Risultato: SELECT Cognome, Nome, C_concorso FROM DOCENTE WHERE A_servizio>10 OR C_istituto= MI0145 ; Cognome Nome C_concorso Agnoletti Antonio A050 Giotto Giacomo A042 Zanna Daniela A031 Bianchi Andrea A037 Torti Paolo A033 Delta Carlo A031 Usando l operatore NOT posso, ad esempio, selezionare tutti i docenti con servizio superiore ai 10 anni e non appartenenti all istituto MI0145. SELECT Cognome, Nome, C_concorso FROM DOCENTE 68

69 BIOINFORMATICA WHERE A_servizio>10 AND NOT C_istituto= MI0145 ; Risultato: Cognome Nome C_concorso Agnoletti Antonio A050 Bianchi Andrea A037 Ordinamento del risultato di una query. Usando la clausola ORDER BY si può indicare al DBMS di ordinare i risultati secondo una o più colonne. La parola chiave DESC indica un ordinamento decrescente. Es. Selezionare l elenco dei docenti impiegati nell istituto MI0145 ordinandolo per cognome. Risultato: SELECT Cognome, Nome, C_concorso FROM DOCENTE WHERE C_istituto= MI0145 ORDER BY Cognome; Cognome Nome C_concorso Delta Carlo A031 Giotto Giacomo A042 Torti Paolo A033 Zanna Daniela A031 Es. Selezionare l elenco dei docenti impiegati nell istituto MI0145 ordinandolo per classe di concorso e per anzianità in senso decrescente. Risultato: SELECT Cognome, Nome, C_concorso, A_servizio FROM DOCENTE ORDER BY C_concorso, A_servizio DESC; Cognome Nome C_concorso A_servizio Zanna Daniela A031 5 Delta Carlo A031 0 Torti Paolo A Bianchi Andrea A Andora Giuseppe A037 7 Giotto Giacomo A Gentili Angela A042 9 Boldi Luisa A042 2 Cerpi Elisa A048 1 Palo Anna A

70 BIOINFOSTAT Agnoletti Antonio A La clausola DISTINCT. Se volessi conoscere l elenco delle discipline presenti nella relazione DOCENTE potrei scrivere: SELECT C_concorso FROM DOCENTE; Così facendo però otterrei molti duplicati, uno per ogni docente appartenente alla medesima classe di concorso. Per eliminare questi duplicati si usa la clausola DISTINCT: Risultato: C_concorso A050 A042 A031 A037 A048 A033 SELECT DISTINCT C_concorso FROM DOCENTE; Funzioni di gruppo. Le funzioni di gruppo permettono di estrarre informazioni riassuntive da gruppi di tuple di una relazione. Es. Stabilire il numero di docenti per classe di concorso. Risultato: SELECT C_concorso, COUNT(*) FROM DOCENTE GROUP BY C_concorso; C_concorso COUNT(*) A050 1 A042 3 A031 2 A037 2 A048 2 A033 1 Es. Selezionare le classi di concorso con un numero di docenti inferiore a 2. SELECT C_concorso, COUNT(*) FROM DOCENTE GROUP BY C_concorso HAVING COUNT(*)<2; Risultato: C_concorso COUNT(*) 70

71 BIOINFORMATICA A050 1 A033 1 Oltre alla funzione COUNT(*) vi sono SUM (esegue la somma dei valori di una colonna), MAX (determina il massimo valore di una colonna), AVG (determina la media di una colonna). Interrogazioni su più relazioni. Supponiamo di aggiungere al modello l entità istituto con i suoi attributi. Istituto(codiceIstituto, nome, tipologia, preside,numero_utenti, indirizzo, città) La tabella risultante ha il seguente tracciato, dove C_istituto è chiave primaria: C_istituto Nome Tipo Preside N_utenti Indirizzo Citta Per visualizzarne l intero contenuto: SELECT * FROM ISTITUTO; Risultato: C_istituto Nome Tipo Preside N_utenti Indirizzo Citta MI0691 B. Croce ITI Membretti Bollate MI0145 L. da Vinci L.S. Giara Corsico MI0721 G. Leopardi ITC Paolini Sesto S.G. MI0902 G. d Arco ITI Rossi Milano MI0537 A. Manzoni L.S.T. Acerra Milano Per individuare gli istituti scolastici con un numero di utenti superiore a 500 scriverò: SELECT Nome, Tipo, N_utenti FROM ISTITUTO WHERE N_utenti>500; Risultato: Nome Tipo N_utenti B. Croce ITI 600 G. Leopardi ITC 900 Le tabelle DOCENTE e ISTITUTO sono legate da una relazione 1:N che individua le caratteristiche di un istituto e l elenco dei docenti impiegati presso di esso. A questo punto possiamo selezionare i nomi e i presidi degli istituti che hanno un numero di docenti inferiore a 20. SELECT Nome, Preside, COUNT(*) FROM ISTITUTO, DOCENTE WHERE ISTITUTO.C_istituto = DOCENTE.C_istituto GROUP BY C_istituto HAVING COUNT(*)<20; 71

72 BIOINFOSTAT Oppure possiamo estrapolare i dati dell istituto in cui è impiegata la prof.ssa Gentili Angela. Risultato: SELECT Nome, Tipo, Preside, N_utenti, Citta FROM ISTITUTO, DOCENTE WHERE ISTITUTO.C_istituto = DOCENTE.C_istituto AND DOCENTE.Cognome= Gentili AND DOCENTE.Nome= Angela ; Nome Tipo Preside N_utenti Citta G. d Arco ITI Rossi 400 Milano Le condizioni che specificano la relazione tra le due tabelle realizzano l operazione di join che, in questo caso, permette di concatenare informazioni provenienti da entrambe le tabelle grazie al campo C_istituto. Subquery. Una caratteristica che rende potente il linguaggio SQL è la possibilità di esprimere query complesse in termini di query più semplici. La clausola WHERE, infatti, può contenere al suo interno un altra query, chiamata subquery. Es. Si vogliono selezionare tutti i docenti che appartengono alla stessa classe di concorso di Gentili Angela. SELECT Cognome, Nome FROM DOCENTE WHERE C_concorso= (SELECT C_concorso FROM DOCENTE WHERE Cognome= Gentili AND Nome= Angela ); Il risultato della subquery viene utilizzato per creare dinamicamente la condizione C_concorso= A048 e svolgere la query principale. Risultato: Cognome Nome Giotto Boldi Gentili Giacomo Luisa Angela I quantificatori ALL e ANY. Se la subquery ritorna più di un valore è necessario specificare come questi debbano essere utilizzati all interno della clausola WHERE. Ad esempio, se volessimo conoscere i nomi degli istituti che hanno un numero di utenti maggiore di tutti gli Istituti Tecnici Industriali scriveremmo: Risultato: SELECT Nome, Tipo, N_utenti FROM ISTITUTO WHERE N_utenti > ALL (SELECT N_utenti FROM ISTITUTO WHERE Tipo= ITI ); 72

73 BIOINFORMATICA Nome Tipo N_utenti G. Leopardi ITC 900 Se sostituissimo il quantificatore ALL con ANY otterremmo i nomi di tutti gli istituti che hanno un numero di utenti superiore ad almeno un ITI. Subquery correlate. La subquery viene svolta ripetutamente, per ogni tupla candidata dell interrogazione principale. Es. Selezionare, per ogni tipo di istituto, quello col minor numero di utenti. SELECT Nome, Tipo, N_utenti FROM ISTITUTO X WHERE N_utenti < ALL (SELECT N_utenti FROM ISTITUTO WHERE X.Tipo=Tipo); X viene detto alias di relazione e quando appare in una subquery si riferisce ad una tupla candidata dell interrogazione principale. Risultato: Nome Tipo N_utenti B. Croce ITI 600 L. da Vinci L.S. 200 G. Leopardi ITC 900 A. Manzoni L.S.T. 300 SQL: funzioni di DDL SQL contiene anche i comandi per la creazione di tabelle. In realtà questa parte dipende molto dal DBMS, soprattutto per quanto riguarda i tipi di dati permessi e i loro nomi. Creazione tabelle. Es. Creare la tabella associata alla relazione Docente. CREATE TABLE DOCENTE(Codice Cognome Nome C_concorso T_contratto A_servizio C_istituto Decimal not null, Char(25), Char(20), Char(4) not null, Char(2), Decimal(2), Char(6)) not null; I valori tra parentesi indicano la dimensione massima della colonna, mentre not null specifica che la colonna non può contenere valori nulli. E il DBMS che, in fase di inserimento dati, controllerà che questi vincoli siano rispettati prima di procedere alla memorizzazione vera e propria. 73

74 BIOINFOSTAT Il comando CREATE TABLE può essere esteso per permettere la definizione di chiavi e vincoli di integrità referenziale. Questi vincoli stabiliscono il comportamento del DBMS in caso di cancellazione delle tuple. La sintassi estesa è la seguente: CREATE TABLE table-name ( Col-name-1 type-1 [NOT NULL] [,Col-name-2 type-2 [NOT NULL]..] [, PRIMARY KEY (col-name-list)] [, FOREIGN KEY (col-name-list) REFERENCES other-table-name [ON DELETE {RESTRICT CASCADE SET NULL}] [, FOREIGN KEY ]] ) dove le opzioni RESTRICT, CASCADE, SET NULL indicano rispettivamente: la cancellazione della tupla viene effettivamente eseguita solo se nella tabella referente non esiste alcuna tupla che abbia come chiave esterna la chiave della tupla (es. un istituto viene cancellato solo se nella tabella DOCENTE non vi sono tuple che abbiano nel campo C_istituto il codice dell istituto in questione); la cancellazione della tupla implica la cancellazione di tutte le tuple della tabella referente che abbiano come chiave esterna quella della tupla. (es. quando viene cancellato un istituto vengono eliminati anche tutti i docenti che hanno nel campo C_istituto quel codice); la cancellazione di una tupla comporta che in tutte le tuple della tabella referente con chiave esterna uguale a quella della tupla, tale chiave venga posta, se ammesso, a valore NULL (es. quando viene cancellato un istituto le tuple dei docenti ad esso legati vengono modificate ponendo a 0 il campo C_istituto). Comando DROP TABLE. Utilizzato per eliminare tabelle dal DB. Es: DROP TABLE ISTITUTO; Comando ALTER TABLE. Permette di modificare la struttura delle tabelle. Naturalmente è buona norma non modificare la struttura del DB dopo aver già eseguito degli inserimenti in quanto l operazione potrebbe comportare una perdita di dati. Vi sono due comandi di modifica: ALTER TABLE ADD permette di aggiungere una colonna alla tabella, ALTER TABLE MODIFY permette di modificare le proprietà di una colonna. Es. Aggiungere alla tabella DOCENTE la colonna Mailbox. ALTER TABLE DOCENTE ADD (Mailbox Char(20)); Es. Aumentare la lunghezza della colonna Cognome della tabella DOCENTE. ALTER TABLE DOCENTE MODIFY (Cognome Char(30)); Creazione di viste. Le viste sono relazioni virtuali attraverso cui è possibile vedere i dati memorizzati nel DB. Una vista, dunque, non contiene dati ma riferimenti alle tabelle di base. Il meccanismo delle viste è utile in quanto permette di semplificare l accesso ai dati 74

75 BIOINFORMATICA oltre a garantirne la privatezza. Su una vista si possono eseguire (un gruppo ristretto di) query e modifiche. Es. Creare una vista che raggruppi dati provenienti dalle due tabelle di base e metta in risalto nome e tipo di ogni istituto insieme al numero dei docenti. Risultato: CREATE VIEW Ist_Doc(Nome_Ist, Tipo, N_doc) AS SELECT ISTITUTO.Nome, ISTITUTO.Tipo, COUNT(*) FROM DOCENTE, ISTITUTO WHERE DOCENTE.C_istituto=ISTITUTO.C_istituto GROUP BY C_istituto; Nome_Ist Tipo N_doc B. Croce ITI 2 L. da Vinci L.S. 4 G. Leopardi ITC 1 G. d Arco ITI 2 A. Manzoni L.S.T. 2 Il valore della colonna N_doc viene ricalcolata a partire dalle relazioni di base ognivolta che la vista viene usata in modo da rispecchiare gli eventuali cambiamenti apportati alle tabelle di base. A questo punto posso svolgere interrogazioni sulla vista. Es. Selezionare l istituto col maggior numero di docenti. SELECT Nome_Ist FROM Ist_Doc WHERE N_doc = (SELECT MAX(N_doc) FROM Ist_Doc) L uso delle viste alleggerisce la scrittura delle interrogazioni e quindi facilita l accesso ai dati inoltre permette all amministratore del DBMS di definire modalità di accesso al DB diverse a seconda dei privilegi degli utenti. Comando DROP VIEW. Permette di cancellare una vista. Es: DROP VIEW Ist_Doc; SQL: Funzioni di DML SQL fornisce anche primitive per inserire e modificare i dati nel DB. Per queste operazioni i DBMS, generalmente, mettono a disposizione degli utenti anche strumenti come le maschere, speciali finestre che permettono di lavorare più agevolmente con i dati sia in fase di inserimento sia in fase di visualizzazione. Comando INSERT. Permette l inserimento di una tupla nel DB. Es: INSERT INTO DOCENTE VALUES (269, Antico, Giovanni, A053, I, 13, MI0256 ); 75

76 BIOINFOSTAT Va rispettato l ordine delle colonne così come impostato in fase di creazione della tabella. E possibile anche inserire in una relazione tuple provenienti da un altra relazione combinando i comandi INSERT e SELECT. Es. Supponiamo di voler creare una nuova relazione NUOVI_ASSUNTI che contenga solo i docenti con anzianità di servizio pari a zero. Una volta creata la nuova tabella, il comando di inserimento sarà: INSERT INTO NUOVI_ASSUNTI (Cognome, Nome, C_istituto) SELECT Cognome, Nome, C_istituto FROM DOCENTE WHERE A_servizio = 0; Comando UPDATE. Permette di modificare i dati contenuti nel DB. Ad esempio, si vuole incrementare di un unità gli anni di servizio di tutti i docenti registrati: UPDATE DOCENTE SET A_servizio = A_servizio+1; E possibile modificare più colonne con un unico comando usando la virgola come separatore. Comando DELETE. Permette di cancellare una o più tuple di una relazione. Es. Cancellare dal DB tutti i docenti impiegati nell istituto B. Croce: DELETE FROM DOCENTE WHERE C_istituto= 76

77 BIOINFORMATICA BANCHE DATI La necessità di reperire le informazioni scientifiche non è un problema nuovo, l'impossibilità di sfogliare le pagine dei periodici di settore (nel campo biomedico si pensa esistano oltre riviste) ha portato alla creazione dei primi repertori o indici bibliografici. L'Index Medicus ad esempio venne creato nel 1897 e continua ancora oggi. Negli anni '50 con la possibilità offerta dall'informatica diveniva possibile riordinare le informazioni e con un opportuno programma di ricerca estrarre una qualunque citazione. Nasceva in questo modo una Base di Dati. In seguito le possibilità offerte dalla telematica hanno consentito la trasmissione dei dati dal calcolatore ad un operatore remoto; inoltre la possibilità di lavorare con uno stesso collegamento ha consentito a molti utenti l utilizzo delle risorse di calcolo (time-sharing). Nel 1977 nasceva il sistema MEDLARS la prima banca dati che poteva essere interrogata da qualunque ricercatore che disponesse di un modem o di un telex. Si pensa che attualmente esistano oltre basi di dati su supporto elettronico generalmente online, e distribuite da 2500 produttori. Una Base Dati corrisponde ad un archivio di informazioni strutturate, vale a dire di dati che si ripetono secondo una struttura costante, a prescindere dal mezzo destinato alla loro conservazione e gestione, e può essere informatizzata ma anche cartacea. Gli archivi cartacei presentano limiti evidenti soprattutto dal punto di vista gestionale. Questi limiti sono sia di tipo operazionale, relativi cioè all aggiornamento (modifica, cancellazione, aggiunta di dati) che nella maggior parte dei casi non è possibile se non attraverso la sostituzione di singole unità dell archivio, sia di tipo funzionale quali ad esempio la duplicazione dei dati: l archivio cartaceo infatti non consente ordinamenti secondo criteri differenti se non attraverso la duplicazione dell archivio stesso. Tali archivi richiedono pertanto un lavoro più oneroso di quelli informatizzati, sia in termini di tempo che di risorse umane. L informatizzazione delle Basi Dati ha inizio intorno agli anni 60. La spinta innovativa nasce principalmente dall esigenza, sempre più sentita, di reperire informazioni estraendole, nel minor tempo possibile, dalla marea di quelle prodotte. 77

78 BIOINFOSTAT Tale esigenza porterà, in breve tempo, alla trasformazione delle versioni a stampa di repertori e indici bibliografici, quali ad es. Index Medicus, nato circa un secolo prima negli Stati Uniti, in versioni elettroniche, grazie soprattutto all impulso dato dallo sviluppo dell informatica e degli strumenti ad essa destinati. Una base di dati è una collezione di informazioni omogenee e strutturate che possono essere reperite rapidamente attraverso uno specifico software definito DBMS (Data Base Management System) in pratica sistema per la gestione delle basi di dati. È importante considerare che un data base contiene dei dati ma anche le relazioni che esistono tra essi. Un data base deve rispondere ad una serie di requisiti Non devono esserci dei dati duplicati (ridondanza). Formattati: Elenchi numerati Gestire velocemente i dati. Indipendenza dei dati rispetto ai programmi. Disponibilità di linguaggi di interrogazione. L informatica ha permesso di raccogliere enormi quantità di materiale strutturalmente organizzato, permettendone all occorrenza la reperibilità pressoché immediata e consentendone una maggiore diffusione e l utilizzo da parte di più utenti contemporaneamente. Ciò è stato possibile principalmente grazie a due innovazioni tecnologiche: La telematica, ossia la possibilità di trasmissione dati da un calcolatore ad un operatore remoto tramite linea telefonica Formattati: Elenchi numerati Il time-sharing (sistema multiutenza), capacità di tale calcolatore di lavorare contemporaneamente con più operatori remoti. Le basi dati possono essere classificate in base alla loro morfologia: q Numeriche = se contengono dati in forma numerica (proprietà chimiche, valori di tossicità). Formattati: Elenchi numerati q q q q q q q Basi dati fattuali o repertori elettronici: mettono a disposizione direttamente le informazioni. Possono essere di diverso tipo a seconda della informazione contenuta. Testuali = se prevalgono gli aspetti testuali (monografie, leggi). Grafiche = le informazioni sono espresse in forma grafica. Basi dati di riferimento: rimandano alla fonte primaria dove sono reperite le informazioni. Basi dati bibliografiche = sono una sottocategoria delle basi di riferimento in quanto le fonti primarie sono i periodici. Basi dati testuali o fulltext = non sempre possono essere considerate vere Banche Dati ma di fonti informative primarie. Base dati portatile = quando l'informazione è contenuta in un dischetto o CD-ROM e non necessita di un collegamento in linea. 78

79 BIOINFORMATICA MEDLARS (Index Medicus on-line) è la prima Base Dati con queste caratteristiche. Una Base Dati corrisponde quindi ad un archivio di informazioni in un certo campo del sapere, memorizzabile su diversi supporti o accessibile on-line, costruito ed aggiornato da un producer che provvede alla raccolta, selezione, indicizzazione e validazione delle informazioni. Un esempio è costituito dalla Base Dati Medline il cui producer è la National Library of Medicine. Possiamo distinguere alcune categorie tipo di Basi Dati: fattuali: che danno accesso direttamente all informazione, a loro volta distinguibili in numeriche, testuali e grafiche in base al tipo di dati contenuti (ad es. la Base Dati Hazardous Substances Data Bank - HSDB); Formattati: Elenchi numerati di riferimento: che rimandano alle fonti primarie delle informazioni, tra queste possiamo ricordare le basi dati bibliografiche che rimandano a monografie e periodici (ad es. Developmental And Reproductive Toxicology - DART); full-text: vere e proprie fonti primarie di informazione (ad es.: Core biomedical collection). Le Basi Dati vengono gestite da strutture, pubbliche o private che ne costituiscono i vendors dette Banche Dati o più genericamente Hosts, ad esempio la statunitense Dialog corporation. Le Banche Dati memorizzano e gestiscono le Basi Dati attraverso l Hostcomputer che costituisce l Hardware sul quale viene installato il Software di gestione e di dialogo con gli operatori remoti. Le reti permettono la connessione tra utenti e Banche Dati per mezzo di terminali e computers. I Software sviluppati per la gestione degli archivi rientrano fondamentalmente in due tipologie: Data Base Managment Systems (DBMS), soprattutto i relazionali (RDBMS) nel significato dato a questo termine dalla matematica moderna, nei quali le relazioni vengono rappresentate in tabelle opportunamente correlate a costituire il database, e associate agli indici; Information Retrieval Systems (IRS) che rendono possibile la gestione operazionale e la ricerca, il riordino ed il trasferimento dei dati stessi. Mentre gli RDBMS sono destinati più ad un impiego amministrativo-aziendale, per la rapidità con cui sono in grado di ricercare un elemento in una colonna di tabella, gli IRS trovano migliori applicazioni nel campo della documentazione in quanto orientati maggiormente, rispetto ai precedenti, alla ricerca delle informazioni in basi dati testuali, strutturate e non, nelle quali permettono di effettuare ricerche molto sofisticate attraverso la combinazione di termini. Un altra caratteristica che differenzia le due tipologie è che mentre nei primi la struttura dei campi si presenta a lunghezza fissa nei secondi tale lunghezza è variabile e non essendo vincolati alla struttura tabellare essi si prestano alla gestione di documenti anche eterogenei. I modelli più diffusi di programmi possono utilizzare le seguenti tipologie di strutturazione: Relazionali il legame viene stabilito da corrispondenze (relazioni) e quindi associati tra loro attraverso alcuni campi definiti campi chiave. Gerarchico è basato sulla struttura ad albero ed è caratteristico delle prime banche dati. Reticolare è basato su un modello a rete. Formattati: Elenchi numerati Formattati: Elenchi numerati 79

80 BIOINFOSTAT Il massimo rendimento nella gestione degli archivi è ottenibile qualora si utilizzino, per il trattamento dei dati, entrambe le tipologie: la prima per la produzione, la seconda per la ricerca, ma ciò è certamente svantaggioso dal punto di vista economico. La ricerca della localizzazione di una frase e di una parola nelle Banche dati ci si avvale di particolari programmi chiamati text-retrival-system che si basano sulla indicizzazione. La ricerca di una parola secondo lo schema adottato nei programmi di scrittura come ad esempio Word presenta alcune limitazioni. I Software di gestione utilizzati dalle Banche Dati, text-retrieval-systems, non utilizzano la ricerca sequenziale, che richiede la lettura dei dati dall inizio alla fine, ma si basano sul concetto di indicizzazione. La ricerca avviene in modo sequenziale, cioè il programma legge tutte le parole e le confronta con quella cercata e le segnala nel caso di perfetta equivalenza. Tale equivalenza viene riconosciuta solo se esiste una identità assoluta (maiuscola, minuscola). Per quanto attiene ai linguaggi per la creazione e la gestione di un data base possiamo avere DDL (Data Defintion Language) ovvero il linguaggio per la definizione della struttura dei dati che permette in sintesi di costruire lo schema del Data Base. Formattati: Elenchi numerati DML (Data Manipulation Language) è il linguaggio adottato per la manipolazione dei dati, consente di estrarre le informazioni di dati, la loro modifica (interfaccia utente). SQL (Sistem Query Language) è il linguaggio di manipolazione dei dati ed è costituito da un numero ristretto di istruzioni e regole. Affinché il software possa gestire efficacemente la Basi Dati è fondamentale che essa sia costruita secondo una organizzazione strutturale e uno standard costante. Rete dati Non è possibile effettuare ricerche che prevedano la presenza contemporanea di due o più parole. Come si può comprendere un tale sistema non può essere adottato nel caso di ricerche da effettuarsi su grandi basi dati con miliardi di parole. L'efficacia di una ricerca dipende dalla strutturazione dei dati. L'insieme della Base dei dati viene suddiviso in unità elementari definite records che rappresentano la singola citazione bibliografica. Ogni record viene suddiviso in parti omogenee che sono rappresentate dai 80

81 BIOINFORMATICA campi, tali campi offrono le informazioni sugli autori, la rivista, l'indirizzo degli autori, il titolo del lavoro il riassunto ect. Nella fase di archiviazione ogni campo è indicizzato in modo da consentire la creazione di un indice; un indice per autori, per il titolo ect. La suddivisione in campi e tanti indici separati consente di effettuare ricerche più precise. Ad esempio possiamo identificare gli articoli in cui Red è uno degli autori, ma non verranno evidenziati gli articoli in cui compare ad esempio red cells. Le Basi Dati bibliografiche coprono generalmente le pubblicazioni dagli anni 60 in poi. I produttori appartengono prevalentemente all area anglosassone e spesso, per questo motivo, selezionano una determinata letteratura scientifica tralasciandone altra di diversa appartenenza geografica. Alcune fonti poi, come ad esempio molti congressi e la letteratura grigia vengono spesso ignorate. Struttura Record Supponendo che una ricerca sia stata eseguita in modo corretto, esistono fondamentalmente due parametri per valutare dal punto di vista qualitativo e quantitativo Basi Dati confrontabili. Recall: numero di citazioni recuperate in una Base Dati in rapporto al numero totale di citazioni recuperabili, su un determinato argomento; Formattati: Elenchi numerati Precision: rapporto tra citazioni mirate reperite nella Base Dati e totale delle citazioni recuperate nella stessa Base Dati, su un dato argomento. Maggiore è il richiamo, minore è la precisione e viceversa. Ricerca verso diverse Banche dati Oltre l autorevolezza dell ente produttore, due sistemi di controllo permettono inoltre di valutare identità e qualità dei dati stessi, essi sono: Data control: sistemi che permettono di assicurare l identità fra dati memorizzati e dati presenti nelle fonti primarie Formattati: Elenchi numerati Peer review: valutazione delle informazioni da parte di esperti, che ne garantisce l affidabilità. I programmi text retrival consentono di effettuare ricerche complesse, in quanto permettono di effettuare selezioni utilizzando degli operatori logici come ad esempio AND, OR, NOT. Considerando di ricercare due termini, vengono create due liste con AND si crea una lista che comprende solo i records che contengono entrambi i termini. Con il termine NOT si ha una differenza logica creando un criterio di esclusione, cioè si selezionano tutti gli articoli che contengono la prima parola e non la seconda. Una somma 81

82 BIOINFOSTAT logica si ottiene con OR; si creano due liste e vengono confrontate e si crea una unica lista in cui compaiano entrambi i termini ricercati. Nel caso in cui i criteri di conoscenza fossero incompleti si può ricorrere a particolari operatori che consentono di ricercare semplicemente la radice della parola. Si possono utilizzare dei caratteri di troncatura o Wild-cards. Possiamo avere il simbolo * che ritrova l'insieme dei caratteri di qualunque lunghezza ed il simbolo? per un singolo carattere. Text retrival Esempio di troncatura DEPRESS* = DEPRESSION, DEPRESSIVE, DEPRESSED WART? = WARTH, WARTS, WART SM?TH = SMITH, SMYTH SM?TH* = SMITH, SMYTH, SMITHE SMYTHE Gli operatori di contiguità sono uno strumento che consente di selezionare con maggior efficacia la ricerca, infatti come nell'esempio precedente potremo trovare che i due termini della ricerca siano nel contesto distanti tra di loro, mentre nel nostro caso siamo interessati ad una associazione stretta tra i termini. Nel nostro caso la ricerca dovrebbe essere esplicitata come segue: CATTLE ADJ DAIRY Le basi dati possono contenere semplici citazioni bibliografiche, dati numerici, interi testi o periodici o anche immagini grafiche. Solitamente le basi dati di tipo scientifico contengono sono di tipo bibliografico e quindi la politica del produttore è quella di scegliere le riviste e gli aggiornamenti. É evidente che se cercassimo la stessa informazione nelle tre banche dati otterremmo dei risultati diversi; in pratica esiste una sovrapposizione del 30%. Il ricercatore è quindi invogliato per ottenere una ricerca completa a selezionare più banche dati. La qualità delle risorse fornite da una banca dati risiede in larga misura dal tipo di indexing adottato dal produttore, dalla precisione che possiedono i recensori. Particolare importanza riveste anche l'assegnazione di particolari descrittori che facilitano la ricerca. BANCHE ANNO FONTI RECORDS AGGIORNAMENTO MEDLINE settimanale EMBASE settimanale BIOSIS quindicinale BIOSIS possiede un programma di ricerca amichevole user friendly che consente di accedere ad alcune banche dati specializzate: q AIDS in Focus. Contiene riferimenti ad articoli e convegni sul tema dell AIDS. Formattati: Elenchi numerati q q q q Bioexpress. Riporta articoli di riviste di biomedicina. Biopatent. Riporta i brevetti nel settore della biotecnologia e biomedicina in USA. Biomeetings. Si riferisce ad interventi, manifestazioni nell ambito della biomedicina. Biotheses. Riporta le tesi e i master di biomedicina di oltre 500 Università. 82

83 BIOINFORMATICA q Forthcoming. Informazioni su seminari, meeting workshop del settore della medicina. In questo ambito si ha un sistema a tendina che facilita la ricerca:dmc (Dialog Medical Connection) nei seguenti data Base: Medical Reference Library (Medline, Clinical Abstract, Cancerlit.). Bioscience Reference Library (Biosis, Previews, Agricola, CAB, Food Science & Technology.). HGMP. (Human Genome Mapping Project). Permette di accedere alle banche dati del settore della genetica molecolare e di usufruire dei programmi con un collegamento Telnet. Servizio di Posta Elettronica. Permette lo scambio di messaggi da una lista del gruppo BIOSC, che si occupa di biologia molecolare. I partecipanti ricevono un bollettino con aggiornamenti su convegni e congressi. Analisi e manipolazione delle sequenze. Consente un collegamento alle banche dati delle sequenze nucleotidiche e proteiche (GenBank, EMBL Library NBRF, Swissprot). Genoma Data. È possibile usufruire delle informazioni della base di dati OMIN (McKusick s online Mendelian Iheritance in Man) che corrisponde a Human Gene Map and Molecular Defects List, inoltre è possibile accedere alla GDB (Human Genome Database) della J. Hopkins University di Baltimora che contiene informazioni sul mappaggio dei geni umani. Genetic Linkage Analysis. Comprende i pacchetti di alcuni programmi come Linkage di Lathrop e Lalouel, il programma CRIMAP, MAP per la concatenazione genetica. Nel campo chimico la ricerca di un prodotto sulla base della nomenclatura chimica può essere particolarmente difficile (l'index Guide del Chemical Abstracts dedica circa 200 pagine alle regole di nomenclatura) pertanto le ricerche si basano sulla formula di struttura che rappresenta un mezzo immediato per definire un prodotto e non sussistono diversità nelle convenzioni in quanto riflettono il linguaggio naturale dei chimici. La possibilità di ricercare una struttura risiede evidentemente nell'esistenza di una codificazione delle informazioni. CSD Cambridge Structural Database, Data base chimico inglese del Council for Central Laboratory of the Research Council Daresbury che fornisce informazioni sulla spettroscopia, cristallografia offre informazioni anche di biologia molecolare SEQNET. ccl.ac.uk Le banche dati nel settore biomedico sono particolarmente numerose: Banche dati di chimica ABDA-Pharma contiene cinque archivi con informazioni bibliografiche e testuali su circa sostanze farmaceutiche, per ogni sostanza vengono fornite le indicazioni sul dosaggio, gli effetti collaterali e le controindicazioni. 83

84 BIOINFOSTAT CCML (Comprensive Core Medical Library). Riporta il testo completo di alcune riviste mediche di rilievo internazionale (Lancet, Annals of Internal Medicine, British Medical Journal) e dei manuali di medicina. Telgen. Contiene i riferimenti bibliografici con gli Abstract della letteratura mondiale sulle biotecnologie e sull ingegneria genetica. Le fonti sono rappresentate da oltre riviste, libri atti di convegno. In questa banca dati possiamo utilizzare 15 descrittori per effettuare la ricerca. La postelaborazione. IntelliGenetic Suite è un particolare programma per l'interrogazione di dati di sequenze nucleotidiche o peptidiche che consente il confronto ragionato tra sequenze, la determinazione del grado di omologia, la generazione di mappe restrizione a partire dai dati concernenti i singoli frammenti. I DATA BASE ITERATIVI. Alcune Banche Dati consentono all'utente la possibilità di interagire con l'informazione contenuta in maniera molto spinta rispetto alle Banche Dati tradizionali. Queste Banche dati sono quelle che riportano archiviate le sequenze, i distributori di queste Banche hanno sviluppato dei software di interrogazione che consentono di ritrovare una sequenza anche quando esiste una parziale differenza rispetto a quella proposta dall'interrogante. PRODUTTORE DATA BASE DISTRIBUTORE CAS CASSEQ vari EMBL EMBL BioNet IntelliGenetics GENBANK IntelliGenetics Derwent GENESEQ IntelliGenetics NBRF NBRF BioNet NBRF PIR BioNet MEDLINE (Index Medicus Online). La ricerca comincia dalla scheda Search Formulation; che si avvale di un sistema chiamato Knowledge Finder per accedere all'archivio della National Library of Medicine del Dipartimento della Sanità americano che comprende gli articoli di circa riviste di medicina. Le specifiche della ricerca vanno poste nel campo Topic Search Logo della Medline Statement, in questo campo possiamo inserire frasi, concetti parole chiave per un massimo di caratteri. L'algoritmo individua tutti i termini specificati e successivamente tutte le schede che racchiudono il maggior numero di termini. Effettuando un settaggio con il Relevance Filter possiamo ottenere un maggior numero di schede ma con un minor grado di attinenza oppure un minor numero di schede ma con un grado di attinenza superiore. La ricerca può essere orientata utilizzando MeSH 84

85 BIOINFORMATICA (Medical Subject Heading) che è un tesaurus dei termini utilizzati nella composizione delle schede MEDLINE. La possibilità di utilizzare l'opzione Word Variant possiamo allargare la ricerca ai termini simili a quelli specificati. Indicate tutte le specifiche si attiva l'icona Search che consente di individuare le schede di interesse che appaiono attivando l'icona Eyes. La prima scheda è quella che presenta la maggior attinenza rispetto alle specifiche richieste. L'opzione Save File consente di salvare le schede in un file a cui è possibile accedere attraverso altre applicazioni o con applicazioni specifiche come Pro-cite. Medical Subject Headings (MeSH). Ogni record nel database di MEDLINE include un certo numero di termini che sono riportati in un tesaurus denominato MeSH. In MEDLINE ci sono circa termini raggruppati in una struttura da albero con appositi indici per un intercollegamento. La struttura ad albero è di tipo gerarchico per cui discendendo si aumenta la specificità. In aggiunta i termini MeSH sono accompagnati da uno o più sottoindici che indicano un particolare aspetto in discussione per esempio: therapeutic use, etiology, toxicology etc. MEDLINE utilizza i termini MeSH come testo. È possibile individuare i termini MeSH in diversi modi. Se si effettua un click verrà presentato un box nel quale si potranno ricercare i termini desiderati. Se ad esempio ricerchiamo diverticulitis noi troveremo 9 potenziali termini MeSH. Se clicchiamo il termine avremo delle informazioni più specifiche, introducendo i termini più appropriati nel Limit box del form di ricerca; tutte le ricerche verranno limitate al termine o ai termini inseriti in Evaluated TM MEDLINE. Visualizzazione della gerarchia MeSH. È possibile mostrare la struttura del tesaurus utilizzando il livello discendente e visualizzare ogni ramo per ogni specifico step. Esempio: diseases (C) digestive system diseases (C6) gastrointestinal diseases (C6.405) intestinal diseases (C ) enteritis (C ) Cliccando è possibile inserire ogni termine o gruppo di termini nel Limit box. Tutte le ricerche saranno limitate ai termini selezionati fintanto che saranno rimossi utilizzando l'opzione Clear Search. Selezione dei termini MeSH dai records. Il record full text di MEDLINE include una lista di termini MeSH. Tali termini possono essere ricopiati nel Search form. Cliccando sui termini the MeSH è possibile vedere i descrittori in forma gerarchica. Qualificatori MeSH. I qualificatori MeSH sono indicati per particolari record. Per esempio, servono per distinguere un particolare di un farmaco tra utilizzo terapeutico effetti negativi e impiego veterinario del farmaco. Esempio: 'enteritis *5 ve' si individuano i farmaci di utilizzo veterinario legati all'enterite. 85

86 BIOINFOSTAT Campo Codice Esempio Autore au 'smith a':au Autore Indirizzo ad 'new york':ad CAS Registry number rn ' ':rn Country of Journal cy Data di Pubblicazione dp 1995:dp Riassunto in Inglese ea a:ea Mese di ingresso em 9603:em Simbolo di Gene gs Nome della rivista ta 'am j med sci':ta MeSH Mh heart:mh MeSH qualificatori mhql tu:mhql Un certo numero di qualificatori possono essere applicati ad un singolo termine MeSH, ma è raccomandato non impiegare più di 5 qualificatori. Esempio: tu:mhql Non tutti i qualificatori possono essere utilizzati con tutti i termini MeSH. I qualificatori disponibili sono riportati nel MeSH term. Restrizione della ricerca. La ricerca può essere limitata utilizzando un campo di ricerca. Esempio: blood:ti In questa ricerca il termine 'blood' verrà ricercato solo nel titolo del lavoro. I seguenti campi possono essere utilizzati (lista non esaustiva). Restrizione per rivista. La ricerca può essere limitata ad una particolare rivista utilizzando il codice jc, nell'esempio si ottiene malaria and nsc:jc e vengono riportati solo gli articoli della rivista Nature. Restrizione per tipo di pubblicazione. Abstract Bibliography Classical-Article Clinical-Conference Clinical-Trial Clinical-Trial-Phase-I Clinical-Trial-Phase-II Clinical-Trial-Phase-III Esempio di ricerca in MEDLINE sui records della caffeina legati a prove cliniche caffeine and Clinical-Trial:pt 86

87 BIOINFORMATICA Restrizione per lingua. Ogni lingua possiede un codice come riportato nella tabella a titolo di esempio African afr Bulgaro bul Italiano ita Portoghese por Esempio selezioniamo tutti gli articoli in russo che parlano di polmonite rus:la and pneumonia Simboli speciali (wildcard) *include le lettere e i numeri. Esempio: sul*ur ricerca i termini sulphur e sulfur. Esempio: m*cclements trova i records che contengono "McClements" o "MacClements". I simboli wildcard possono essere utilizzati per trovare le parole che iniziano con una desinenza comune. Esempio: catheter* consente di trovare i termini catheters; catheterisation; catheterization; catheterise etc.? indica uno solo carattere Esempio: sulf?nyl ha come risultato sulfonyl or sulfinyl. Soundex matching. Svedese swe Ucraino ukr Se si utilizza il simbolo $ si ricorre ad una ricerca sulla fonetica, vengono riportati i termini che possiedono suoni simili. Esempio: stevenson$:au vengono riportati 'stevenson', 'stephenson' e 'stephens' CAB. Nell'ambito della medicina Veterinaria il CAB ha prodotto un CD chiamato VETCD, che include i record relativi a diversi aspetti della medicina veterinaria: patologia, fisiologia e biochimica degli animali domestici, ispezione degli alimenti, zootecnia. Informazioni sono disponibili anche per quanto concerne gli artropodi, i protozoi e i parassiti degli animali selvatici e domestici. Le micotossine e tutti gli aspetti dei funghi sono coperti da questo CD. Le informazioni riguardano: animali domestici, animali da compagnia, e tutti gli animali di interesse economico compresi i pesci, gli animali selvatici e degli zoo. Il VETCD database comprende i records ottenuti da riviste, monografie, Congressi realizzati in oltre 100 Paesi. Approssimativamente nuovi records si aggiungono ogni anno. Il CAB Thesaurus del 1990 contiene oltre descrittori. Gli articoli che possiamo individuare hanno dei descrittori principali che offrono utili indicazioni. Si consideri ad esempio l'indirizzo degli Autori, se scrivete agli Autori e richiedete il testo completo del loro lavoro al 95% avrete l'articolo che stavate ricercando. 87

88 BIOINFOSTAT TI Titolo del lavoro OT Titolo originale se non in inglese AU Autori CA Istituzione di appartenenza AD Indirizzo dell'autore SO Citazione bibliografica PY Anno di pubblicazione LA Lingua della pubblicazione LS Lingua del riassunto AB Riassunto DE Descrittori SU Soggetto principale GE Area geografica PT Tipo di pubblicazione AV Disponibilità CI Citazione secondaria IS Numerazione internazionale per i libri CAB Numero del CAB UD Codice AN Numero CAB Per esempio si vogliono trovare gli articoli in lingua inglese che riguardano l'impiego della salomicina nei suini. Ricerca con il CAB La prima operazione che dobbiamo compiere è quella di inserire la richiesta nel riquadro. Find Records: scriviamo english in la, che significa i lavori scritti in lingua inglese. Nella parte superiore comparirà l'informazione relativa ai record trovati. Nel nostro caso verranno individuati nel Search History articoli scritti in lingua inglese. Si pone la seconda domanda inserendo nel Find Records salinomycin and (pig* in de). Significa trovare i records che contengono la parola salinomycin e il suino o suini. In questo caso troviamo un numero di articoli relativi alla salinomicina 219 che evidentemente riguardano tutti gli animali domestici. Per i suini troviamo un numero di oltre articoli, nella selezione congiunta salomicina suino e suini troviamo un numero ridotto di articoli: 18. Passiamo alla fase finale che è quella di individuare gli articoli in lingua inglese. Dobbiamo allora porre le condizioni in #1 con quelle #4 ed otterremo la #5 che ci indica l'esistenza di 8 articoli che rispondono alle nostre esigenze. Considerate che il tempo di esecuzione di questa ricerca è estremamente rapido. Ricerca con CAB. dal programma di scrittura. Per visionare i record trovati dovremo fare click su Show Records button: per vedere tutti i record selezionati. I record possono essere salvati con l'opzione Save. In questo caso vengono salvati in formato testo, per recuperarli si deve aprire il file direttamente 88

89 BIOINFORMATICA Esempio di record relativo alla combinazione tra la ricerca 1 e 4, si riferisce al 3 record degli 8 trovati. Chiunque debba compiere una ricerca bibliografica su Internet troverà abbondanti risorse. Il nucleo storico della rete è costituito da Istituti di Ricerca Universitari ed è naturale che gli atenei abbiano provveduto a condividere le informazioni archiviate nelle rispettive biblioteche. L'Università degli Studi di Milano dispone di una serie numerosa di Risultati della ricerca. Banche dati consultabili attraverso il sistema Ovid, l'accesso a queste banche dati è riservato ai ricercatori muniti di password. 89

90 BIOINFOSTAT 90

91 BIOINFORMATICA INTELLIGENZA ARTIFICIALE L intelligenza artificiale è un ramo dell informatica interessato allo studio e allo sviluppo di sistemi computerizzati che esibiscano qualche forma di intelligenza: sistemi che apprendono nuovi concetti o compiti; sistemi che ragionano e traggono delle conclusioni; sistemi che comprendono un linguaggio naturale; sistemi che percepiscono e interpretano una scena visiva; sistemi che eseguono azioni che comportano forme di intelligenza umana. Nel secolo scorso alcuni filosofi avevano ipotizzato che una macchina in grado di effettuare calcoli sarebbe stata simile al cervello umano e di conseguenza avrebbe manifestato un comportamento intelligente. Quando nel dopoguerra vennero realizzati i primi computer ci si accorse che i computer non manifestavano un comportamento intelligente, anche se erano straordinariamente abili in matematica. Alla fine degli anni '40, alcuni scienziati pensarono di poter costruire computer le cui prestazioni fossero equiparabili all'opera dell'ingegno umano. Per realizzare un computer dotato di pensiero si deve da un lato cercare di capire la natura dell'apprendimento, del linguaggio e della percezione sensoriale e, dall'altro, comprendere il funzionamento dei miliardi di neuroni interconnessi che compongono il cervello umano. Molti ricercatori ritenevano fosse più difficile la comprensione del funzionamento della mente umana che non l'emulazione del suo comportamento. In verità, i ricercatori trovarono difficoltà a definire l'intelligenza; per alcuni consisteva nel risolvere problemi difficili, per altri nella capacità di confrontarsi ed adattarsi alla realtà e per altri, infine nell'apprendimento oppure nella formulazione di generalizzazioni o analogie. Molti ricercatori accettarono la prova di Turing secondo la quale un computer si poteva considerare intelligente se riusciva ad ingannare una persona, inducendola a credere che fosse un uomo. Dopo la seconda guerra mondiale, la tecnologia elettronica permise la realizzazione del primo computer digitale a semiconduttori, che sembrava poter raggiungere il traguardo utopistico di simulare il comportamento umano. Verso la fine degli anni 50 queste prime ricerche confluirono in un campo dell informatica conosciuta come Intelligenza Artificiale. Il termine Intelligenza Artificiale" (o A.I.) fu coniato nel 1956 da un gruppo di ricercatori americani tra i quali Marvin Minsky che la definì come quella branca dell'informatica che studia la metodologia e le tecniche di base per il progetto e la costruzione di sistemi elettronici capaci di fornire prestazioni generalmente considerate caratteristiche ed esclusive dell'intelligenza umana. Fin dall'inizio si vennero a creare due atteggiamenti o tendenze: - l A.I. cosiddetta forte con lo scopo di emulare di processi di percezione e pensiero umani e, quindi, di imitare l intelligenza (aspetti cognitivi); 91

92 BIOINFOSTAT - l A.I. cosiddetta debole con lo scopo di eseguire compiti intelligenti efficacemente ed efficientemente (tecniche operative). Il primo filone comprende i ricercatori interessati alla scienza pura e che usano il computer come strumento per sperimentare teorie riguardanti il modo di pensare dell'uomo; il secondo, invece, comprende i ricercatori interessati allo sviluppo di macchine intelligenti, in particolare programmi intelligenti. Esempio classico del volo: l uomo non è mai riuscito a volare finché ha tentato di farlo imitando il volo degli uccelli; lo ha fatto quando è riuscito a costruire una macchina intelligente in grado di volare. Queste due tendenze confluirono in due discipline, la cibernetica e la bionica. Naturalmente cibernetica e bionica continuano ad essere due discipline molto vicine ma, a differenza della cibernetica, la bionica (anche detta A.I. tradizionale) non è confinata a metodi che siano biologicamente osservabili. Cibernetica. La cibernetica è la scienza che si propone di studiare e creare sistemi in grado di simulare il comportamento umano, basandosi su modelli neurali e combinando principi biologici, matematici ed elettronici. Dagli anni '40 fino agli anni '60, un numero sempre maggiore di studiosi di cibernetica analizzò, sia nei centri di ricerca universitari, sia nell'industria, le facoltà più recondite del cervello per ricavare i corrispondenti modelli neurali. Questo modo cibernetico o di modellatura neurale di concepire una macchina intelligente fu presto battezzato bottom-up (dal basso verso l'alto). Tale metodo di procedere prevedeva di partire dall'esame del cervello di creature primitive contenenti pochi neuroni e di proseguire fino ad arrivare a livello umano, per analogia. Per raggiungere, però, risultati concreti non si doveva soltanto superare il problema tempo, ma anche quello dovuto all'eccessivo costo dell'hardware elettronico di tipo analogico. Se modellare, infatti, il sistema nervoso di una formica, che possiede "soltanto" ventimila neuroni, era già economicamente proibitivo, praticamente impossibile risultava per il cervello umano che ne ha ben 100 miliardi. Poiché nella sperimentazione cibernetica più sofisticata si potevano usare soltanto pochi neuroni, di fronte a questa limitazione molti dei primi ricercatori si scoraggiarono e abbandonarono il campo di ricerca. Un ricercatore che non si lasciò scoraggiare fu Frank Rosenblatt, il cui lavoro sembrava concretizzare le più alte aspirazioni della cibernetica. Infatti, verso la fine degli anni 50, il giovane scienziato presentò la simulazione al calcolatore del suo ''perceptrone'', un apparecchio elettronico sperimentale concepito per emulare i processi del pensiero umano. Per simulare i complicatissimi collegamenti elettrici del perceptrone utilizzò uno dei computer più potenti dell'epoca, l'ibm 704. I collegamenti erano così complicati che il computer impiegava circa mezz'ora per eseguire le funzioni che il perceptrone avrebbe eseguito in millesimi di secondo. Con il suo ''occhio'' formato da fotocellule il perceptrone di Rosenblatt avrebbe trasmesso dei segnali elettrici ad una serie di celle di memoria elettromeccaniche progettate per misurare l'intensità di tali segnali. Questi collegamenti erano disposti in modo casuale, in base alla teoria allora prevalente, che il cervello assorbe e reagisce ad informazioni nuove attraverso un sistema di collegamenti casuali tra i neuroni. Il perceptrone rappresentò un notevole sviluppo nel campo della cibenetica in quanto il comportamento del modello non era prestabilito ma poteva evolvere determinando i propri parametri in base ad un principio di apprendimento per esempi. Inoltre il perceptrone presentava la notevole capacità di generalizzare i concetti appresi e una sorta di rappresentazione interna della conoscenza 92

93 BIOINFORMATICA Durante la simulazione al calcolatore, alla presenza della stampa specializzata, il sistema esplorò due figure di quadrati, selezionò i segnali e li distinse dalle altre forme. Due anni dopo tale dimostrazione, Rosemblatt presentò il suo primo modello operativo di perceptrone, il MARK 1 in grado di identificare alcune lettere dell'alfabeto. Pochi anni dopo Marvin Minsky e Seymour Papert in una pubblicazione criticarono aspramente il lavoro di Rosenblatt affermando che il perceptrone aveva delle capacità molto limitate. In realtà Minsky e Papert non si resero conto subito, come invece fecero più tardi, che il perceptrone rappresentava solo il caso più semplice di una famiglia di sistemi in grado di risolvere anche problemi complessi. A seguito di tali critiche la cibernetica subì un rallentamento e buona parte degli sforzi e delle risorse vennero dirottati progressivamente sulla bionica. L interesse per le reti neurali si riaccese all inizio degli anni 80, in concomitanza con il diffondersi di nuove idee sui sistemi complessi e con il palesarsi degli insuccessi riportati in alcuni settori dell intelligenza artificiale tradizionale, ossia della bionica. Nel 1986 il PDP (Parallel Distributed Processing) research group dell Università della California, capeggiato dagli psicologi David Rumenhart e James McClelland, pubblicò due volumi in cui venivano riportati una serie di esperimenti riguardanti modelli di calcolo parallelo e un algoritmo di apprendimento detto backpropagation. Questa pubblicazione segnò l ingresso delle reti neurali nel campo della psicologia cognitiva. Bionica Vs Cibernetica. In contrapposizione alla teoria bottom-up (cibernetica), si sviluppò una scuola top-down (bionica) specializzata nella programmazione di computer digitali polivalenti, in grado di eseguire azioni che richiedevano una attività intelligente come, per esempio, giocare a scacchi. Per la maggior parte degli studiosi, l'ai sarebbe diventata sinonimo di metodo bionico. Tra i fautori della bionica c'erano i professori Minsky e Papert, del MIT. Minsky aveva incominciato la sua carriera con ricerche sulla macchina intelligente seguendo la scuola cibernetica di Rosenblatt e nel 1951 costruì una rete autodidatta di circuiti a valvole termoioniche. Quando Rosenblatt presentò il suo Perceptrone Minsky era già passato alla scuola top-down e, come si è visto, non mancò di criticare fortemente i risultati dell excollega. La differenza metodologica è profonda, nel caso della tradizione cognitiva l approccio è top-down, mentre è bottom-up per la scuola connessionista. La bionica iniziò ben presto ad incontrare dei grossi ostacoli in quanto l approccio simbolico si rivelò limitativo nella rappresentazione della realtà, cioè ci si accorse che la mente è immersa in un mondo in cui non tutto è simbolizzabile. La rivalità tra i sostenitori dell uno e dell altro approccio ha negli ultimi anni assunto toni abbastanza pacati, in quanto da entrambe le parti é stata ammessa la possibilità di una cooperazione. Questa cooperazione nasce con intenti pratici, quali quelli di realizzare automi capaci di apprendere dei compiti e di muoversi efficacemente in un ambiente reale, superando le difficoltà incontrate inizialmente dalla robotica con indirizzo simbolico. Quello che caratterizza questo settore, è appunto l'accento posto sulla necessità che il sistema sviluppi una propria implicita rappresentazione dell'ambiente, piuttosto che fornire ad esso il modello dell'ambiente che lo sperimentatore ritiene più opportuno. Applicazioni dell Intelligenza Artificiale. Le radici della A.I. possono essere rinvenute negli automi cellulari di John Von Neumann e Arthur W. Burks. Nelle parole di Burks, che fu il continuatore della sua opera, Von Neumann si chiedeva:"quale tipo di organizzazione logica è sufficiente ad un automa per riprodurre se stesso?" 93

94 BIOINFOSTAT Von Neumann pensava al fenomeno naturale dell'autoriproduzione quando la pose, ma non tentò di simulare l'autoriproduzione di un sistema naturale a livello genetico e biochimico. Egli voleva astrarre dal problema naturale dell'autoriproduzione la sua forma logica (Burks, 1970). Il formalismo che permise la realizzazione di un tale sistema, fu proposto da un suo collega, Stan Ulam, con il nome di Automa Cellulare (Ulam, 1962). Un automa cellulare è semplicemente un sistema che può avere un numero finito di stati ed il cui stato è determinato dallo stato di altri automi che lo circondano. Il comportamento degli automi cellulari diventa interessante proprio perché formano una rete di interazioni, il cui comportamento globale, nel tempo, non è prevedibile; anche se le leggi che governano i passaggi di stato per ogni singolo automa sono semplici e ben determinate. Lo stato di ogni automa di questa rete, in ogni istante di tempo, è determinato dallo stato posseduto, nell'istante precedente, dagli automi che lo circondano. Con gli automi cellulari, Von Neumann impostò un sistema capace di autoreplicarsi e stabilì che, qualunque sistema capace di fare ciò, doveva fare uso delle informazioni contenute nella sua descrizione in due modi fondamentalmente differenti: interpretandole, quindi svolgendo le azioni per realizzare il replicante; copiandole. Quando, in seguito, si scoprì la struttura ed il funzionamento del DNA emerse che erano proprio i modi in cui la cellula fa uso delle informazioni contenute in esso durante i suoi processi di trascrizione e traduzione da una parte e replicazione dall'altra. Gli automi cellulari si sono rivelati un valido modello nel campo dell Artificial Life, una disciplina della A.I. che studia la realizzazione di sistemi artificiali che esibiscano un comportamento caratteristico dei sistemi naturali. L Artificial Life (alife) complementa la biologia tradizionale il cui scopo fondante è l analisi dei sistemi viventi, tentando di sintetizzare i comportamenti life-like attraverso l uso di computer e altri strumenti artificiali. Nel settembre del 1987 si è tenuta a Santa Fe la prima conferenza sull'artificial Life (che è considerata l'atto di nascita ufficiale di questa nuova scienza), organizzata da Chris Langton del Santa Fe Institute. Ad essa parteciparono non solo scienziati che, con vari approcci, lavoravano alla costruzione di robot, o scienziati cognitivi, ma anche filosofi, chimici e biologi. Parlando generalmente di Intelligenza Artificiale oggi possiamo distinguere due grossi filoni che si intrecciano tra loro: quello della robotica e quello delle simulazioni. Vi sono, ovviamente, anche molti tentativi di integrare le due strategie. Uno fra tutti quello di un importante ricercatore nel campo della robotica, Rodney Brooks che suggerisce l uso di reti neurali con l ausilio di algoritmi genetici per l aspetto dell apprendimento, per superare le difficoltà di trasportare apprendimenti e tecniche dalle simulazioni al mondo reale. Un automa deve apprendere ad agire in un ambiente e, in linea di principio, non fa molta differenza se questo ambiente è reale o simulato. L'ambiente simulato, però, non deve essere progettato in modo da rendere il più semplice possibile "la vita" all'automa. Questa semplificazione spesso finisce per rendere ancora più difficile operare in tale ambiente. Nella vita reale quello che è riportato dai sensori è, infatti sempre molto incerto. Quell'imprecisione che, a prima vista, sembrerebbe un problema, in realtà porta ad apprendimenti più flessibili in partenza; fa si che non si creino conflitti di precedenza artificiali come in alcune simulazioni e soprattutto porta in maniera più naturale a prendere il punto di vista del robot, invece di fornirgli la propria visione dell'ambiente. Data la vastità dei temi che vanno sotto il nome di Intelligenza Artificiale si è tentato di definirne le competenze e di formalizzarne i confini e gli ambiti. Non si pretende di essere esaustivi. 94

95 BIOINFORMATICA AMBITO PERCEZIONE VISIVA COMPRENSIONE DEI LINGUAGGI NATURALI CAPACITA' DI APPRENDIMENTO CAPACITÀ DI RAGIONAMENTO, DEDUZIONE, INFERENZA CAPACITÀ DI MOVIMENTO APPLICAZIONI Visione e riconoscimento di forme grafiche, interpretazione di segnali Riconoscimento vocale, riconoscimento linguistico Robotica, Controllo di processi Sistemi di supporto alle decisioni, diagnostica, sistemi di previsione (es. in campo economico), problemi di ottimizzazione Robotica Percezione visiva. Nel campo della percezione visiva inizialmente sembrava che la difficoltà maggiore stesse nel poter analizzare un'immagine a partire da una sua rappresentazione su una matrice di pixel, allo scopo di evidenziare i contorni o alcune proprietà geometriche. Questo scoglio è stato superato avendo individuato opportuni algoritmi. La seconda difficoltà nasce dalla necessità di far comprendere al computer il significato dell'immagine. Distinguere un bicchiere da un elefante comporta una conoscenza del mondo e delle immagini che supera la semplice analisi geometrica. Si pensi che un oggetto deve essere riconosciuto anche se osservato da diversi punti di vista. In alcune situazioni è necessario riconoscere oggetti differenti rappresentati dalla stessa immagine (si consideri la lettera N che non è altro che una Z rovesciata). Quando esistono figure ambigue il problema della percezione visiva diventa quello di comprendere il significato delle immagini nel contesto in cui appaiono. Attualmente esistono programmi in ambito industriale capaci di percepire immagini con una gamma limitata di possibilità. Apprendimento. Per quanto riguarda l'apprendimento, possiamo distinguere un apprendimento genetico ed uno individuale, proprio come negli esseri viventi reali. In genere oggi si tende ad utilizzare o l'uno o l'altro, ma con un uso integrato di entrambe le forme di apprendimento si potrà fare, tra l'altro, ulteriore chiarezza su una questione che nel passato ha riempito molte pagine: quanta parte del comportamento di un organismo è attribuibile al suo patrimonio genetico e quanto all'apprendimento nella sua vita. La questione ormai ha raggiunto un sufficiente grado di chiarezza con il riconoscimento del contributo integrato di entrambe le componenti, ma si ripropone ogni volta la proporzione e, soprattutto, la natura delle predisposizioni genetiche quando si parla di comportamenti o di attività mentali. Nelle simulazioni che si fanno in questo campo, si utilizzano in genere alternativamente strategie che possiamo considerare ispirate all'apprendimento in vita (tramite backpropagation principalmente, ma anche con l'apprendimento competitivo, con la regola di Hopfield, o comunque apprendimenti basati sulla modifica dei valori delle connessioni tra neuroni); oppure all'apprendimento su base genetica, che si compie di generazione in generazione (algoritmi genetici). Ultimamente si sta diffondendo enormemente l'uso di questa ultima strategia. Ciò è logico, se si considera, al di là di un'analisi più circostanziata, che, in questa fase iniziale, potrebbe essere una buona strategia, quella di lasciare sviluppare le specie più adatte ai vari scopi che si propongono i ricercatori. Bisogna considerare che, in questi primi tentativi di realizzare automi in grado di modificare il proprio comportamento in modo da ottimizzare un certo risultato, 95

96 BIOINFOSTAT l'importanza che hanno i metodi di apprendimento effettivamente utilizzati è molto relativa. Infatti possiamo ottenere risultati piuttosto simili, sia utilizzando una strategia "filogenetica", come gli algoritmi genetici, che una "ontogenetica", come la modifica delle connessioni in base al risultato delle azioni. Quello che effettivamente si sta sperimentando, non sono tanto queste teorie "parziali" dall'apprendimento, quanto proprio la strategia globale di organizzazione del proprio comportamento da parte di questi sistemi. Anche tecniche non basate sulle reti neurali, ma su classificatori che rientrerebbero più propriamente nel campo dell'intelligenza artificiale, sono utilizzati in questo modo con risultati paragonabili a quelli delle altre tecniche. Riconoscitori di Linguaggi Naturali. Una applicazione notevole della AI è nei programmi di lettura (OCR, Optical Character Recognition). Le stesse difficoltà sono presenti nel campo della percezione del linguaggio naturale. A differenza dei linguaggi formali (BASIC, PASCAL, ecc), i linguaggi naturali sono per loro natura ambigui, nel senso che la medesima frase può assumere significati diversi in diversi contesti (Es. dare i numeri può voler significare anche essere matto). Ma oltre a quelle che sono le frasi idiomatiche, un linguaggio può essere ambiguo anche dal punto di vista sintattico. Quando fu annunciato uno dei primi traduttori dei linguaggi naturali (da inglese in russo), durante la presentazione venne proposta la seguente frase "la carne è stanca, ma lo spirito è vivo", il programma offrì una traduzione simile "la carne è putrida, ma la vodka è buona". Riconoscimento vocale. Nel caso del riconoscimento della voce il problema principale è quello di individuare le parole ed in caso di ambiguità scegliere la più pertinente nel contesto della frase. Il problema della conoscenza è ricorrente nel campo dell'intelligenza artificiale, in pratica si tratta di possedere delle informazioni che permettano di effettuare dei ragionamenti e delle deduzioni. SISTEMI ESPERTI. I sistemi esperti hanno rappresentato a partire dagli anni 80 una delle applicazioni di A.I. più di successo, anche se da un punto di vista teorico forse non sono il risultato più esaltante. Un sistema esperto è sostanzialmente un programma specializzato fornito di una base di conoscenza e in grado di rispondere a specifiche domande. Le informazioni di cui si avvale un sistema esperto possono derivare da una conoscenza empirica, non formalizzata, fondata esclusivamente sulla pratica e sull'esperienza, senza cognizioni teoriche e scientifiche (empirica deriva dalla parola greca empeirikos). Lo scopo di un sistema esperto è quello di fornire all'utente un certo risultato, vale a dire la soluzione di un determinato problema. Tale risultato viene ottenuto attraverso una ricerca euristica (dal greco eurisko = trovare, significa metodo di ricerca della verità basato sulla documentazione dei fatti). La ricerca euristica, contrapposta a quella algoritmica, consiste nel trovare una soluzione ipotizzando tutte le soluzioni possibili verosimili e cercando di verificarle attraverso una documentazione di cause e fonti. I metodi algoritmici sono più sicuri, in quanto effettuano una ricerca esaustiva senza venire influenzati da informazioni fuorvianti. Un Sistema Esperto si definisce trasparente quando gli utenti possono vedere il suo funzionamento e si capisce perché ha prodotto un certo risultato. Fin dagli anni 60 alcuni ricercatori di diverse discipline scientifiche si posero il problema di facilitare il processo ipotetico deduttivo e conseguentemente quali metodologie adottare. Inizialmente ci fu un grande entusiasmo per i programmi risolutori generali di problemi GPS (General Problem Solver) come quello di Newell e Simon, ma gli entusiasmi vennero notevolmente ridimensionati a partire dagli anni 70. I programmi non potevano dare una risposta generale, ma potevano offrire una risoluzione a problemi particolari e molto circoscritti. 96

97 BIOINFORMATICA Tradizionalmente un programma è definito passo passo in modo deterministico e la sua abilità risiede nei codici; nei sistemi esperti invece l'esperienza non è espressa con dei codici ma memorizzata in forma simbolica nella base di conoscenza, una struttura di dati facilmente dominabile e modificabile. L'aspetto più innovativo è il fatto che la conoscenza, o l'esperienza non deve necessariamente essere coerente e seguire uno schema predefinito, infatti può anche operare su una base di conoscenza contraddittoria, incompleta o incerta. Struttura di un Sistema Esperto. In generale l'architettura di un Sistema Esperto è formata da quattro elementi: La base di conoscenza I fatti noti Il motore inferenziale L'interfaccia utente o shell FRAME. Il frame rappresenta uno schema o meglio una struttura di dati da utilizzare con una struttura tipo, in generale ogni frame viene identificato con un nome e prevede la presenza di descrittori (slot) che possono contenere altri schemi o semplici identificatori; ad esempio il frame animale può contenere gli slot sesso, età, peso. Frame: ANIMALE Slot: sesso =<M or F> Slot: età = <less than or equal to 12 month> Questo tipo di struttura prende il nome di frame classe e consente ad esempio di avere o assegnare dei valori prestabiliti (default): quando si attribuisce uno specifico nome al frame questo diviene frame-membro ed erediterà le caratteristiche generali del frame di classe. Con questo sistema siamo in grado di costruire un albero che descrive le caratteristiche degli oggetti di conoscenza di un dato problema. BASE DI CONOSCENZA. Contiene l'esperienza del Sistema Esperto; è un'area di memoria in cui sono immagazzinate le frasi che costituiscono la "conoscenza" del campo di applicazione. Per rappresentare la conoscenza sono spesso utilizzati gli alberi di classificazione o di decisione. Infatti, essendo essi costituiti da diversi rami, con maggiore facilità è possibile ricavare la regola che corrisponde ad ogni ramo completo dell'albero di decisione. I fatti noti contengono informazioni temporanee attinenti al problema che il sistema esperto sta tentando di risolvere in quel momento, cioè i dati del problema. Queste informazioni sono utili al fine di risolvere il problema attuale, una volta ottenuta la soluzione si possono cancellare. Il motore inferenziale è un algoritmo che scandisce in ordine opportuno la base di conoscenza al fine di reperire documentazione, selezionare ipotesi e costruire la soluzione del problema. La selezione di una regola dalla base di conoscenza avviene in seguito a un'analisi dei fatti noti e a un colloquio con l'utente. In sostanza il motore inferenziale è quella parte di programma che, utilizzando l'esperienza contenuta nella base di conoscenza, effettua delle riduzioni e rende possibile un colloquio senz'altro pertinente. Ciò significa che le domande vengono poste all'utente solo se correlate ai fatti che fino a quel momento sono noti. L'esperienza di un Sistema Esperto può essere rappresentata in diversi modi, la più usata è quella che fa uso di regole di produzione. Una regola di produzione ha la seguente forma: 97

98 BIOINFOSTAT SE X ALLORA Y dove x e y sono stringhe di caratteri, ad esempio: SE è la ragazza del tuo migliore amico ALLORA devi dimenticarla. Le frasi comprese fra SE e ALLORA si chiamano antecedenti, quella che appare dopo allora si chiama conseguente. Il nome produzione è dovuto al fatto che il conseguente descrive lo stato di cose che viene prodotto se gli antecedenti sono soddisfatti. Quando in una regola compaiono più antecedenti, separati da una virgola, questi si intendono concatenati da una "e". Quando più regole hanno lo stesso conseguente, significa che i rispettivi antecedenti sono concatenati da una "o". Quando il conseguente di una regola è uguale all'antecedente di un'altra regola, queste si intendono concatenate da una deduzione. Una base di conoscenza formata da regole come quelle viste sopra viene detta sinergica (attività simultanee, più enti che collaborano per un medesimo effetto). Per riempire una base di conoscenza non è necessario analizzare il problema nella sua concretezza né avere una visione di insieme né tantomeno studiare reti a grafi che evidenzino le correlazioni fra varie regole. Basterà inserire regole sparse, preoccupandosi solo del fatto che abbiano un senso compiuto di per se e un significato nell'ambito del programma in questione. Il motore inferenziale, scandendo in modo opportuno tale base di conoscenza, darà all'utente l'impressione di dialogare con un sistema estremamente ordinato, in cui si segue un filo logico e ogni domanda è pertinente. In una base di conoscenza è possibile modificare una regola o aggiungerne altre senza dover conoscere le restanti, poiché le regole sono indipendenti una dall'altra. Questo è un enorme vantaggio, soprattutto quando il numero di regole è elevato. MOTORE INFERENZIALE. Il motore inferenziale è un programma costituito da: un interprete che decide quale regola applicare per poter aumentare la base di conoscenza; uno schedulatore che organizza le regole da sviluppare e il loro ordine di esecuzione. Il compito del motore è estrarre le regole utili alla soluzione del problema secondo un meccanismo di riconoscimento e attivazione delle stesse, eseguendo un esame delle regole nella base di conoscenza, selezionando la regola più appropriata, eseguendo la regola e registrando nella memoria di lavoro l'azione, ripetendo finché non trova la possibile soluzione. Il motore è organizzato in due parti: una memoria di lavoro (o lavagna) dove viene memorizzato il piano generale di soluzione ed un'agenda delle cose ancora da fare, oltre ad una descrizione della soluzione o delle soluzioni per ora ipotizzate. Nel motore inferenziale vi è inoltre il rafforzatore di consistenza; questo è un modulo che una volta che sia stata generata un'ipotesi di soluzione cerca, sfruttando specifiche sorgenti di conoscenza, evidenze che permettano di rafforzare o scartare l'ipotesi fatta. Quindi, se l'inferenza è una singola Sistema Esperto deduzione che il sistema è in grado di trarre dalle premesse (ad esempio un singolo calcolo), il motore inferenziale è lo strumento con cui il sistema determina, in maniera ordinata, il complesso delle inferenze. A tal proposito va ricordato che esistono due tipi di inferenza: 98

99 BIOINFORMATICA Inferenza deduttiva Inferenza induttiva La parola deduzione significa procedimento logico per ricavare una verità particolare a partire da una verità generale. In altre parole, data una regola generale, una deduzione consiste nell'applicare la regola a un caso particolare per ottenere un risultato. L induzione è un procedimento logico che, al contrario della deduzione, permette di ricavare una regola generale a partire da un insieme di esempi particolari. Un algoritmo di inferenza deduttiva applica le regole, contenute nella base di conoscenza, a un caso particolare, contenuto nei fatti noti, e ne trae alcune conclusioni. L'inferenza deduttiva viene chiamata forward chaining cioè concatenamento in avanti, perché partendo da fatti noti si applicano le regole in avanti allo scopo di dedurre altri fatti. In contrapposizione al forward chaining vi è il backward chaining, cioè il concatenamento all'indietro. Esempio di colloquio con un sistema esperto: Hai il naso otturato? Si Hai gli occhi arrossati? Si Quanto hai di febbre? Non lo so. Hai sudato? Perché? Perché il sudore e la sensazione di freddo sono indici della febbre. Hai sudato? Poco. Hai preso medicinali? Ho misurato la febbre. Quant'è la temperatura? 39,2 Hai preso freddo? Non tanto. Si tratta di influenza. Hai problemi a prendere l'aspirina? Non ho capito. L'aspirina è sconsigliata a chi soffre di ulcera. Allora? Nessun problema. La ricetta è: aspirina tre volte al giorno. Grazie Questo algoritmo parte da un possibile risultato e va a verificare l'esistenza di una regola capace di fornire un risultato simile; man mano che si applicano le regole, se ne rendono applicabili altre con un procedimento ciclico, fino a quando non si trova una regola i cui antecedenti siano fatti noti, quindi verificati per definizione. L'interazione tra l'utente e il sistema esperto avviene tramite un dialogo. Tale dialogo viene reso possibile con l'impiego di display grafici che sono in grado di mostrare immagini di varia natura, grafica sonora o linguaggio naturale. Il sistema consente all'utente di chiedere il "perché" dei quesiti che gli vengono proposti al terminale e, a conclusione della sessione di lavoro e cioè dopo aver visualizzato una particolare deduzione, "come" questa è stata ricavata da parte del sistema. Inoltre deve prevedere funzioni di salvataggio, stampa in vari formati ecc.. INTERFACCIA UTENTE. Nell'ambito dei Sistemi Esperti, lo Shell, (conchiglia, guscio, rivestimento), viene utilizzato per indicare il "rivestimento" della base di conoscenza, cioè tutto ciò che si trova tra quest'ultima e l'utente: il motore inferenziale è l'interfaccia 99

100 BIOINFOSTAT utente. Lo shell quindi è un Sistema Esperto privo di conoscenza, il programma privo di dati, e di conseguenza non eseguibile. Uno shell è uno strumento molto appetibile commercialmente perché mette in grado un utente di costruirsi il proprio Sistema Esperto con pochissimo sforzo. Sviluppare una base di conoscenza ben fatta e ben interpretabile dallo shell a disposizione non è un impresa facile. Per primo, ogni shell richiederà un certo qual formato per le regole di produzione, in secondo luogo ogni dominio di applicazione avrà le proprie regole correlate più o meno strettamente fra di loro. Al fine di facilitare lo sviluppo e la manutenzione delle basi di conoscenza, è utile definire un linguaggio di sviluppo che permette di esprimere le regole di produzione in maniera facilmente comprensibile e offra all'utente dei comandi per la gestione della base di conoscenza. La maggior parte degli shell in commercio è corredata di strumenti ausiliari per lo sviluppo incrementale della base di conoscenza (compilatori, interfacce, strumenti di verifica,...). Se volessimo trasformare il nostro Sistema Esperto in uno shell degno di tale nome dovremmo: memorizzare le regole di produzione su file; definire un linguaggio per esprimere le regole; implementare un programma di utilità che metta a disposizione dei comandi di accesso a tali file (aggiungi, togli, modifica,...). Nonostante l'esistenza di questi strumenti, lo sviluppo di una base di conoscenza rimane sempre il punto critico per la buona riuscita del Sistema Esperto. I Sistemi Esperti costituiscono uno dei tanti campi dell'intelligenza artificiale, ma si distinguono dagli altri poiché sono stati gli unici in cui si sono ottenuti risultati brillanti. Nonostante questi successi, non bisogna perdere di vista i limiti e le caratteristiche di un Sistema Esperto; essendo infatti il fondamento su cui esso si basa una conoscenza fornitagli dall'uomo, tutto ciò che può fare un Sistema Esperto può essere fatto da un uomo. A differenza dell uomo però, un Sistema Esperto è sempre cosciente delle deduzioni che fa e instancabilmente disposto a concedere spiegazioni. Nel seguito verrà riportata una breve descrizione di alcuni dei più conosciuti Sistemi Esperti. Dendral. Dendral è uno dei primi Sistemi Esperti, sviluppato nel 1965 ha il compito di identificare la formula strutturale di un composto chimico organico, partendo da dati di spettrometria di massa e da informazioni fornite dall'utente. Conoscendo quali sono gli atomi che compongono una molecola, esistono milioni e milioni di diversi disposizioni, che determinano a loro volta diverse proprietà chimiche, Dendral cerca di individuare tale disposizione. Il motore inferenziale è di tipo "plan-generate-test", ciò significa che dai dati di partenza si individua un insieme di molecole candidate, che viene via via ridotto per eliminazione, attraverso una serie di test. Le sue prestazioni sono eccellenti infatti in più di un caso il sistema ha risolto problemi che mettevano in difficoltà chimici di professione. Prospector. Prospector assiste il geologo nel valutare le potenzialità di un area quale possibile sede di un giacimento minerario. L'aspetto più spettacolare è costituito dalle capacità grafiche che giungono al punto di fornire la mappa geografica della più probabile dislocazione di nuovi filoni. La base di conoscenza è composta da una rete inferenziale, la cui struttura non differisce molto dalle regole di produzione; è inoltre corredata da una descrizione tassonomica dei dati. È il Sistema Esperto che ha dato finora i risultati più sensazionali, localizzando un giacimento di molibdeno del valore di molti milioni di dollari, di cui i geologi non sospettavano nemmeno l'esistenza. Mycin. Mycin, realizzato nel 1972, assiste il medico nelle decisioni riguardanti la scelta della terapia appropriata nella cura di malattie infettive che richiedono l impiego di una 100

101 BIOINFORMATICA terapia con antibiotici. La base di conoscenza del Mycin è formata da cinquecento regole di produzione dotate di fattore di certezza. Il motore inferenziale è di tipo backward chaining e ha capacità di ragionamento approssimato. EXAMPLE:MYCEN(SHORTLIFFE) An expert system for guiding bacterial infection therapy Premise:($and(same cntxt gram grampos) (same contxt morph coccus ) (same cntxt conform clumps)) Action: (conclude cntxt ident staphylococcus tally 0.7) IF(1)la colorazione dell organismo è gram-positivo,and (2) la morfologia dell organismo è coccus, and 3 la conformazione di crescita è fitta, c è una suggestiva evidenza (0.7) che l identificazione dell organismo sia staffilococco. Questo Sistema esperto è molto utilizzato soprattutto negli ospedali statunitensi grazie al fatto che la sua base di conoscenza contiene molti dettagli sulla sintomatologia di tutte le sindromi infettive conosciute. Logic Theorist è un particolare programma per calcolatore creato nel 1958 per la dimostrazione di teoremi di logica simbolica elementare con tecniche euristiche simili a quelle utilizzate dagli esseri umani. Appartiene al gruppo dei programmi di Problem Solving. Il Logic Theorist fu testato sulla dimostrazione di alcuni teoremi di logica formale tratti dal poderoso "Principia mathematica" di Whitehead e Russell. Il programma era in grado di dimostrare un teorema facendo delle congetture sulle possibili combinazioni di altri teoremi, dati dal programmatore come bagaglio informativo di base, per raggiungere la soluzione. In più di un caso il Logic Theorist ha trovato la dimostrazione più elegante, più corta, di un teorema rispetto a quella proposta dagli autori. In anni successivi alla prima pubblicazione, il programma è passato dall essere un dimostratore di teoremi a rappresentare una prima approssimativa spiegazione di alcuni processi umani. 101

102 BIOINFOSTAT RETI NEURALI Una rete neurale è un insieme di unità di calcolo elementari (generalmente adattabili) connesse fra di loro con struttura parallela, organizzate in maniera gerarchica e predisposte per interagire con gli oggetti del mondo reale secondo un comportamento analogo ai sistemi nervosi biologici. Come ricorda Hinton (1987) "uno degli scopi principali della ricerca sulle reti neurali è scoprire delle procedure di apprendimento efficienti che consentano alle reti di costruirsi complesse rappresentazioni interne del loro ambiente." Nonostante ciò gran parte delle ricerche utilizzano sistemi a classificatori con gli algoritmi genetici, sistemi quindi che rientrerebbero più propriamente nel campo dell'intelligenza artificiale. Questo a riprova del fatto che il campo è caratterizzato più da un atteggiamento e da una strategia comune che dalle tecniche utilizzate. Un esempio significativo di reti neurali fu presentato nel 1987 da Agree e Chapman sottoforma di un programma che apprende a giocare ad un comune videogioco, come se avesse una strategia, senza che gliene sia stata fornita alcuna e senza che gli sia stata fornita una esplicita rappresentazione dell'ambiente. Gli autori partirono dalla constatazione che, anche se molte delle nostre azioni sono pianificate, la maggior parte dei nostri comportamenti è una diretta reazione alla situazione ambientale. Inoltre, molte risposte alle sollecitazioni ambientali, devono essere date in tempi troppo rapidi perché si possa analizzare quale risposta darebbe i risultati migliori. La realtà è troppo imprevedibile, complessa, immediata perché la pianificazione possa avere un posto così centrale quale quello attribuitogli da modelli dell'attività. Ritennero, quindi, che la maggior parte dell'attività, derivi da un meccanismo di risposta immediato alla situazione presente. Questo meccanismo, fa tesoro delle regolarità riscontrate nel suo interagire con l'ambiente, così da dar luogo a comportamenti complessi ed apparentemente pianificati, senza aver bisogno di esplicite rappresentazioni del mondo. Per mettere alla prova la validità di queste valutazioni, avevano necessità di un ambiente più semplice di quello reale, ma comunque abbastanza complesso e imprevedibile: un videogioco in un ambiente bidimensionale e discretizzato. Il gioco originale consisteva nel muovere un pinguino, inseguito da api in grado di ucciderlo sotto una certa distanza. Sia il pinguino che le api possono modificare l'ambiente movendo dei blocchi di ghiaccio che sono distribuiti su tutto lo schermo e vengono a costituire un labirinto. Muovendo i blocchi, possono anche colpirsi vicendevolmente, eliminandosi. Il pinguino era fornito di un algoritmo di apprendimento che gli permetteva di muoversi efficacemente nell ambiente nonostante non avesse alcun esplicita rappresentazione dell ambiente né piani o strategie di gioco.. Il meccanismo su cui è basato il comportamento e l'apprendimento del pinguino è un'applicazione dei loro principi: delle routines che prevedono la messa in atto di un determinato comportamento (fuga, spinta di un blocco ecc.) nel momento in cui esso si trova in una data situazione (ad esempio: "quando stai per essere catturato, scappa"). La sua valutazione della situazione è basata sugli aspetti indicativo-funzionali dell'ambiente, cioè sugli oggetti individuati per la loro funzione in un particolare istante (il blocco che sto 102

103 BIOINFORMATICA spingendo, il passaggio attraverso il quale sto correndo) ed in base a queste applica le sue routines. In questo modo il comportamento tenuto con un oggetto potrebbe essere applicato ad un altro oggetto che, in un altro momento, si trovi nella stessa situazione funzionale. Un altro interessante lavoro che persegue la strategia di non fornire all'automa alcuna rappresentazione, ma fare il modo che ne sviluppi una sua è basato sui sistemi a classificatori sviluppati da Holland. I sistemi a classificatori sono progettati in modo da fornire l'automa di una base di conoscenza, che gli permetta di sopravvivere in un dato ambiente, modificando il proprio comportamento in base alle conseguenze delle proprie azioni. Le azioni sono valutate da un algoritmo (funzione di valutazione), che fornisce premi e punizioni a seconda della coerenza delle conseguenze con gli obiettivi. In base alle risposte che richiedono, le varie situazioni producono delle classi di equivalenza di stati ambientali (alla stessa classe appartengono le situazioni che, dato uno o più obiettivi, richiedono la stessa risposta). Bernard Windrow della Stanford University viene riconosciuto come un pioniere e il maggior studioso delle reti neurali. Si deve a lui il programma Adaline un programma basato sulle reti neurali che elimina gli eco dalle linee telefoniche. Gli stessi principi sono stati attualmente adottati per eliminare gli errori nei modem. Campi di applicazione delle reti neurali. Le potenzialità applicative delle reti neurali sono legate principalmente ad alcune loro capacità fondamentali: - riconoscimento di pattern - apprendimento da esempi - simulazione delle interazioni tra un ampio numero di parametri - resistenza ai guasti Quest ultima proprietà consiste nella capacità della rete di continuare a funzionare, con prestazioni leggermente inferiori, anche in caso di rottura di alcuni suoi elementi. Nel caso di implementazioni hardware in silicio ciò si traduce nella possibilità di utilizzare anche i dispositivi parzialmente difettosi. Si possono individuare 3 principali modalità d uso delle reti neurali: 1. Classificazione/trasformazione di pattern; rientrano in questo caso i sistemi per il riconoscimento di immagini, suoni, voci ed altri pattern, le memorie associative, i sistemi per la cancellazione del rumore e per la riduzione della ridondanza di informazioni; 2. Ottimizzazione; rientrano in questo caso i sistemi esperti basati su reti neurali. Un tipico problema di ottimizzazione é quello del "commesso viaggiatore": dato un certo numero di città, trovare il percorso più breve per visitarle tutte. 3. Previsione; rientrano in questo caso i sistemi di previsione meteorologica. Le applicazioni che consentono il maggiore impatto pratico sono quelle in cui la rete neuronale viene usata come classificatore, cioè per riconoscere una serie di pattern di ingresso nel campo dell automazione. Tali reti possono essere utilizzate per riconoscere immagini di oggetti migliorando le prestazioni dei sistemi di controllo della qualità come quelli di ispezione ottica nel campo della robotica; l applicazione delle reti neurali al riconoscimento delle immagini può portare notevoli miglioramenti sia sul piano delle capacità di movimento in ambienti complessi sia sul piano della acquisizione di informazioni. 103

104 BIOINFOSTAT Nel campo dell automazione d ufficio una applicazione tipica é quella della macchina da scrivere, implementata su PC, che scrive sotto dettatura; nel campo militare le applicazioni riguardano il riconoscimento di aerei, navi o sommergibili sulla base delle loro immagini radar o sonar; nel campo dell elettronica in generale le reti neurali possono essere utilizzate per ripulire o, addirittura, rigenerare segnali affetti da rumore; in particolare nel settore biomedicale questa possibilità può essere sfruttata per l elaborazione dei tracciati elettrocardiografici. Le memorie associative basate su reti neurali possono essere utilizzate per migliorare il funzionamento delle basi di dati, rendendo possibile il reperimento di informazioni a partire da riferimenti incompleti. Nel campo dei cosiddetti sistemi esperti istantanei, in cui le reti neurali possono apprendere dagli esempi e, quindi, possono utilizzare anche conoscenze non esprimibili sotto forma di regole <<se... allora>> nel campo finanziario per la valutazione dei rischi connessi alla concessione di prestiti, per la previsione degli andamenti del mercato, nel campo meteorologico le reti neurali possono essere utilizzate per realizzare sistemi di previsione. Il neurone biologico. Dal punto di vista computazionale possiamo rappresentare le funzioni utilizzando unità di calcolo elementari e modi di apprendere tali rappresentazioni a partire da semplici esempi. Questo modo di rappresentare è detto rete e risulta analogo ai circuiti costituiti da semplici porte logiche che rappresentano funzioni booleane. Dal punto di vista biologico possiamo considerare il cervello dotato di unità elementari chiamate neuroni. Una rete quindi corrisponde ad un gruppo di neuroni connessi tra di loro, da qui il termine di reti neurali. Il neurone biologico è l'unità fondamentale del sistema nervoso ed è costituito dalla cellula neurale o corpo cellulare e dai suoi prolungamenti. Il neurone biologico è l'unità fondamentale del sistema nervoso ed è costituito: dalla cellula neurale o corpo cellulare e dai suoi prolungamenti. Le immagini mostrano neuroni multipolari in cui si evidenzia la loro morfologia, in particolare si osservano i dendriti e degli assoni. Il metallo pesante, in questo caso l'argento, si deposita sugli elementi costituenti il citoscheletro del neurone, permettendone in tal modo lo studio. Risulta visibile il nucleo e, all'interno, il nucleolo. Essendo la sezione spessa, il dettaglio dei processi neuronali si perde allorché essi passano al di fuori del piano di osservazione. Notare le cellule gliali circostanti. Una prima classificazione dei neuroni viene compiuta in base alla morfologia dei prolungamenti; secondo questa classificazione i neuroni possono essere di tre distinti tipi: 1. I neuroni pseudounipolari 2. I neuroni bipolari 104

105 BIOINFORMATICA 3. I neuroni multipolari. Prolungamenti protoplasmatici o dendriti, sono rappresentati da un'arborizzazione, talvolta imponente, che nasce dal corpo cellulare. Essi sono piuttosto corti e sono forniti di spine o varicosità. Le fibre nervose sono prolungamenti che nascono per mezzo di un cono di origine o monticolo dal soma. Esso è molto lungo, non si arborizza, esce dalla sostanza grigia e corre in compagnia di altri neuriti in fasci di sostanza bianca. Può anche abbandonare il sistema nervoso centrale ed entrare nella costituzione dei nervi periferici. I neuroni possono essere classificati sulla base della natura dell'impulso che trasportano; secondo questa classificazione possono essere di due tipologie: neuroni motori o efferenti, caratterizzati dal fatto che trasmettono impulsi diretti alle periferie, ai muscoli ed alle ghiandole, quindi agli effettori; Cellula nervosa o neurone. neuroni sensitivi o afferenti, che provvedono a raccogliere gli stimoli e a trasmettere i relativi eccitamenti ai centri. Nel sistema nervoso centrale l'impulso percorre catene di neuroni che sono articolati tra loro in una particolare giunzione detta sinapsi o bottone sinaptico; essa rappresenta, in pratica, la terminazione dei neuriti che sono i fili di collegamento tra i neuroni. L'impulso si trasmette nelle sinapsi in una sola direzione. I segnali si propagano da neurone a neurone grazie ad una serie molto complessa di reazioni chimiche; alcune sostanze che fungono da trasmettitori chimici sono rilasciate dalle sinapsi ed entrano nel dendrite, questo ingresso provoca un abbassamento o un innalzamento del potenziale elettrico del corpo cellulare. Quando questo potenziale raggiunge una certa soglia si ha l invio di un segnale elettrico. Le sinapsi che aumentano il segnale sono dette eccitatorie mentre quelle che riducono il potenziale d azione sono dette inibitorie. Le connessioni sinaptiche sono interessanti in quanto mostrano una certa plasticità, cioè una capacità di modificare le connessioni in risposta a determinati schemi di stimolazione. Il cervello umano memorizza le informazioni attraverso sistemi che variano la forza dei collegamenti, aumentando o diminuendo il loro numero, variando il tipo di messaggio chimico, che li percorre trasportando i segnali, variando la soglia di risposta dei neuroni. Le connessioni sinaptiche sono interessanti in quanto mostrano una certa plasticità, cioè una capacità di modificare le connessioni in risposta a determinati schemi di stimolazione. Nell uomo l elaborazione dell informazione avviene nella corteccia cerebrale in strutture a forma di barile che contengono circa 2000 neuroni, ed è noto come certe aree del cervello possiedano delle specifiche funzioni; nel 1861 P.P. Broca dimostrò che nei soggetti incapaci di parlare (afasia) vi era un danno nella terza convulsione frontale sinistra della corteccia cerebrale. 105

106 BIOINFOSTAT Il cervello ed il computer hanno compiti piuttosto diversi e hanno proprietà differenti. Computer Workstation 106 Cervello Umano Unità di calcolo CPU 10 6 porte neuroni Unità di memoria 10 9 bit RAM, disco neuroni Tempo per un ciclo 10 8 sec 10 3 sec Lunghezza di banda 10 9 bit/sec bit/sec Aggiornamento neuroni/sec Attualmente non si conosce ancora bene come le funzioni di competenza di una zona cerebrale, in caso di danneggiamento, possano essere trasferite ad un altra zona, inoltre non è nota nessuna teoria che spieghi come venga immagazzinato un singolo ricordo. La neurobiologia è assai lontana da una teoria completa sulla coscienza, cioè alla capacità che hanno semplici cellule di condurre al pensiero, all azione e alla conoscenza. Il cervello ed il computer hanno compiti piuttosto diversi e hanno proprietà differenti e dobbiamo ritenere che il cervello umano migliorerà le sue prestazioni molto lentamente, mentre i computer potranno migliorare la loro capacità di immagazzinamento e la velocità di calcolo. Un computer è in grado di eseguire una istruzione in decine di nanosecondi, mentre i neuroni possono richiedere millisecondi per essere attivati. Il cervello umano ha però attualmente un enorme vantaggio in quanto tutti i neuroni possono lavorare contemporaneamente, mentre un computer può avere un numero limitato di CPU che lavorano congiuntamente. Quindi anche se un computer è un milione di volte più veloce nella commutazione rispetto al cervello, risulta più lento del cervello nel calcolo parallelo. Un compito complesso come quello del riconoscimento di una immagine, viene eseguito dal nostro cervello con un numero di cicli limitato ed in tempi dell ordine del secondo, mentre un calcolatore impiega miliardi di cicli e tempi di risposta non sempre accettabili. Inoltre non dobbiamo dimenticare alcuni aspetti non trascurabili: il cervello tollera meglio i guasti rispetto ad un computer; infatti un difetto dell hardware che altera un solo bit può fare fallire un intera operazione di calcolo; il cervello umano è in grado di funzionare per anni senza necessità di una sostituzione della memoria; il cervello ha una degradazione tendenzialmente dolce delle sue prestazioni. Il neurone elettronico. Una rete neurale é composta di elementi di elaborazione, detti neuroni elettronici ed ispirati ai neuroni biologici, connessi tra loro con collegamenti ispirati alle sinapsi, in modo da formare uno schema assimilabile ad un semplicissimo tessuto nervoso. Ciascun collegamento ha un peso numerico associato ad esso. I pesi sono il principale mezzo di memorizzazione a lungo termine nelle reti neurali e l apprendimento in genere avviene attraverso l aggiornamento dei pesi. Gli elementi di elaborazione (PE ossia Processing Elements) sono i neuroni elettronici, che con i loro schemi di interconnessione sono molto più semplici dei neuroni e dei tessuti biologici, ma conservano un grado elevato di analogia. L osservazione della struttura del cervello può, infatti, fornire importanti spunti per la ricerca sulle reti neurali, mentre queste ultime possono fornire modelli esplicativi del funzionamento del cervello. Il neurone biologico può essere rappresentato dal neurone elettronico o di Hopfield, che consiste in un dispositivo elettronico di sommatoria non lineare dotato di: - più ingressi, che corrispondono ai dendriti nel neurone biologico; - una sola uscita, che corrisponde all'assone nel neurone biologico. Ogni elemento di processo (neurone) riceve segnali diversi (normalmente da altri PE) e può inviare il suo segnale d'uscita a più PE. L interconnessione tra i vari PE non è un

107 BIOINFORMATICA semplice conduttore, poiché la sua funzione consiste nel "pesare" il segnale del neurone emittente moltiplicandolo per un opportuno valore detto peso di interconnessione, variabile tra 0 e 1, oppure tra 1 e +1. I pesi sono detti eccitatori se positivi, inibitori se negativi; un peso uguale a 0 rappresenta una non connessione. Il calcolo è basato sul valore di ciascun segnale ricevuto dai nodi vicini e dal peso assegnato a ciascun ingresso. Il numero di ingressi di eccitazione o inibizione non è soggetto a limitazioni. Architettura delle reti neurali. L'architettura è senza dubbio il principale carattere distintivo di una rete neurale. Le tipologie sono: il percettrone a singolo strato, che é il più semplice tipo di rete neurale in quanto composto da una o più PE disposti su un'unica fila. Questo tipo di rete è in grado di effettuare una semplice classificazione dei segnali presentati ai suoi ingressi, ad esempio realizzando una funzione AND. il percettrone multistrato, che è composto da più schiere di PE. Un percettrone a due strati è in grado di dividere il piano degli input disegnando regioni chiuse o aperte comuni, ciò che è necessario per effettuare la funzione XOR. Un percettrone a tre strati può dividere il piano degli input disegnando virtualmente qualunque forma e la sua capacità classificatoria è ancora superiore. Back-propagation. Il meccanismo con cui tutta questa struttura apprende è del tipo back-propagation (Propagazione all'indietro) ed è riassunto in queste fasi: Feed Forward: é la fase di propagazione diretta del segnale dall'ingresso all'uscita, in cui noti gli ingressi e i pesi viene calcolata l'uscita della rete. Error Back Propagation: é la fase di retro propagazione dell'errore dove l'errore calcolato dalla differenza tra l'uscita (calcolata al punto precedente) e il target viene trasmesso a tutti i neuroni della rete. Wheight Update: é la fase di modifica dei pesi, resa possibile dalle informazioni ottenute nelle prime due fasi. La tecnica di back-propagation è stata sviluppata da Rumelhart Hinton e Williams nel Essa costituisce, secondo stime prudenziali, almeno il 50% delle applicazioni sviluppate. Uno dei campi di applicazione è quello delle previsioni di mercato in ambito economico. Il principio di apprendimento è quello di lasciare che la rete impari dai suoi errori. Inizialmente, i valori dei pesi sono scelti a caso (in particolare vengono presi valori normalizzati, tra 0 e 1 o tra 0.5 e +0.5), a questo punto esistono diverse modalità per assegnare questi valori che possono essere definiti come metodi supervisionati e non supervisionati, cioè si attribuisce o meno il ruolo di un "insegnante" che corregge gli errori di output. I neuroni dello strato N ricevono gli output dallo strato I (che diventano ora gli input dello strato N) calcolano ognuno i loro output e li trasmettono allo strato U. I neuroni dello strato U calcolano i loro output sulla base degli input ricevuti e li confrontano con i dati reali storici. I neuroni dello strato U calcolano un errore che è funzione della differenza fra il loro output e il valore reale. A questo punto i neuroni dello strato U trasmettono i loro output ai neuroni dello strato N cambiando i pesi N-U di una piccola quantità nel senso di minimizzare l'errore calcolato. I neuroni dello strato N ricevono gli input dallo strato U (che sono gli output dello strato U) calcolano ognuno i loro output e li trasmettono allo strato I modificando i pesi I-N. I neuroni dello strato I ricevono un nuovo set di dati storici che vengono ognuno moltiplicato 107

108 BIOINFOSTAT per i nuovi pesi I-N modificati nella fase precedente e calcolano i loro output ripetendo il ciclo dall'inizio. Questo ciclo viene ripetuto fino a che l'errore tra l'output calcolato ed il dato reale soddisfa la condizione che l'utente impone, che può essere un errore minimo fra dato reale e calcolato tra i dati storici o un numero massimo di interazioni. A volte alcuni set di dati storici (di solito circa il 20%) non vengono usati nella fase di apprendimento, ma vengono usati periodicamente per confrontare l'output calcolato da tutta la struttura con il valore reale. Un modello di rete neurale del tipo Multi Layered Perceptron o Percettrone Multistrato è raffigurato nella seguente figura. Essa è costituita da: 3 neuroni in input; Un primo livello nascosto con 4 neuroni; Un secondo livello nascosto con 3 neuroni; Un neurone di output. In questo esempio, ogni neurone è collegato a tutti quelli del livello immediatamente inferiore in modo tale da potersi scambiare dei messaggi. Le regole di apprendimento sono le regole secondo cui si variano i pesi di interconnessione in funzione di determinati parametri dell'attività della rete. Esempi di tali regole sono: la regola di Hebb: stabilisce che il peso venga variato di una quantità proporzionale al prodotto dei valori di attivazione dei neuroni connessi dal peso in questione, tendendo così a rinforzare i pesi più forti e ad indebolire quelli più deboli. la regola di Windraw Haff: stabilisce che i pesi siano variati in una quantità proporzionale alla differenza tra i valori di uscita effettivi e i valori desiderati. La supervisione è necessaria solo nel secondo caso: la supervisione entra in gioco quando le prove prevedono la correzione delle risposte. Gli elementi del processo interagiscono tra di loro in funzione del tipo di interconnessione. Diversi sono i criteri con i quali si stabiliscono le interconnessioni e questo rappresenta l'architettura del sistema; il grado delle interconnessioni determina il livello di parallelismo. Mentre la memoria di un computer è misurata in byte, la memoria di una rete neurale viene misurata dalle interconnessioni. La velocità di un computer viene misurata dal numero di istruzioni eseguite per secondo, in una rete neurale la velocità viene misurata in interconnessioni per secondo. Molti dei processi mentali umani richiedono dei tempi di risposta di poche centinaia di millisecondi; un singolo neurone compie una operazione in un tempo superiore a quello di un computer. Il cervello umano sfrutta ampiamente il parallelismo utilizzando 10 bilioni di neuroni. Addestramento delle reti neurali. Per istruire una rete neurale vengono usati degli esempi reali, che si chiamano training set. Ogni esempio contiene sia gli input che gli output del problema. La rete agisce come un bambino che impara per tentativi: legge il training set per decine e decine di volte, finché non lo ha imparato ovvero fino a quando il suo output è simile a quello che le stiamo insegnando e quindi la rete ha capito il modello che trasforma gli input in output. 108

109 BIOINFORMATICA L addestramento, dunque, provoca a livello neuronale la modificazione dei pesi d'interconnessione. Il processo di apprendimento prevede due possibili regimi: - con pochi esempi la rete si comporta da memoria, senza ricorrere a nulla; - con molti esempi, la rete è in grado di generalizzare, ossia ricavare una regola che sia applicabile anche a nuovi casi. La rete neurale si comporta quindi come un esperto umano che basa i suoi ragionamenti solo sulla sua esperienza passata, senza aggiungere la creatività propria degli esseri umani. Le reti neurali non danno risultati completamente corretti o completamente sbagliati, ma solo approssimativamente corretti o sbagliati. Una rete se ha imparato a dare una risposta A quando si presenta una serie di dati A, se si presenta una serie A di dati molto simile ad A, la rete risponde in modo sensato, cioè B: questa capacità di estrapolare è una delle principali caratteristiche delle reti neurali rispetto ai sistemi simbolici tradizionali. ALGORITMI GENETICI. A partire dal 1975 John Holland dell Università del Michigan applicò per primo il processo della selezione naturale al problema dell apprendimento delle macchine sottoforma di un algoritmo genetico che genera soluzioni possibili ai problemi individuati dalla teoria darwiniana sull evoluzione naturale. Gli A.G. funzionano bene nell ambito dell Artificial Life in quanto simulano l evoluzione biologica naturale e producono organismi specializzati attraverso le operazioni di riproduzione, crossover e mutazione. Gli algoritmi genetici consistono sostanzialmente in varie tecniche, che portano alla selezione degli algoritmi che danno (in base ad un determinato criterio) i risultati migliori ed alla ricombinazione casuale di alcune loro porzioni e/o alla mutazione di alcune loro parti. In genere si parte con una certa popolazione di automi che hanno leggere differenze tra loro e si fanno agire in un ambiente per un certo numero di cicli. In seguito quelli che si saranno comportati meglio avranno la possibilità di riprodursi. Cioè si prenderà, ad esempio, il venti per cento della popolazione che si è comportato nel modo migliore e da questi, con mutazioni casuali e ricombinazioni, si otterrà anche il restante ottanta per cento di automi; con questa nuova popolazione si farà un'altra sessione di cicli, al termine dei quali, si ripeterà lo stesso procedimento. All'interno di questo schema generale, le effettive realizzazioni degli algoritmi possono essere molto diverse: da programmi in vari linguaggi, a valori di connessioni di reti neurali. La teoria di Holland si basa sui seguenti presupposti: 1. Gli algoritmi genetici generano una popolazione di cromosomi sempre migliori, manipolando quelli della generazione precedente. 2. Gli algoritmi genetici non conoscono nessuna caratteristica del problema finale che devono risolvere. 3. Gli algoritmi utilizzano la valutazione della fitness per far riprodurre i cromosomi con le migliori valutazioni e scartare quelli con le peggiori valutazioni. 109

110 BIOINFOSTAT Le frequenze dei geni e dei relativi caratteri ad esse associati possono essere cambiate attraverso la selezione. Selezionare significa scegliere gli animali ai quali è permesso avere dei discendenti. La selezione artificiale viene operata dall uomo che sceglie i geni (in realtà gli animali) in funzione del loro valore economico. La selezione naturale permette invece la sopravvivenza dei genotipi più adatti all ambiente naturale. La frequenza di un gene in una popolazione sottoposta a selezione dipende dalla fitness (adattamento, capacità di lasciare discendenti) dei genotipi nella popolazione. Con fitness si intende la proporzione del genotipo che si riproduce rispetto ad altri genotipi. Fitness pari ad 1 indica una completa capacità di riprodursi di quel genotipo, fitness inferiore ad 1 indica fitness ridotta per incompleta vitalità o fertilità o altro di un particolare genotipo. (G. Pagnacco in Genetica applicata alle produzioni animali. Città Studi Edizioni p.27). In natura, la valutazione della fitness è data direttamente dall interazione di un cromosoma con l ambiente circostante: se esso sopravvive bene in un dato ambiente, tenderà a riprodursi con più probabilità di un altro essere che ha difficoltà a sopravvivervi. In questo modo i cromosomi più validi tramanderanno il loro buon patrimonio genetico ai rispettivi figli, per generazioni e generazioni. Gli algoritmi genetici sono perciò dei semplici manipolatori di cromosomi, che generano popolazioni di cromosomi migliori di quelle da cui provengono. Gli algoritmi genetici artificiali, al contrario di tutte le precedenti generazioni dell informatica, possono creare situazioni nuove. Se però una situazione è nuova, si pone il problema di chi poi sia in grado di valutarla, ovvero di chi possa assegnare una fitness ai nuovi individui creati. A questo scopo ci vengono in aiuto le reti neurali, che sono in grado di valutare una stringa di dati mai visti direttamente in precedenza. Questo è valido solo quando ogni nuova situazione è assimilabile a qualcosa che la rete neurale ha già imparato. In presenza di situazioni completamente nuove e non generalizzabili da passate esperienze, è necessario ricorrere ad altre soluzioni. Gli operatori genetici più utilizzati in questo campo sono: Cross over; Mutazione; Inversione; Sostituzione; Mutazione percentuale; Inversione parziale. Roulette Wheel Parent Selection - RWPS - C D A F La maggioranza delle operazioni genetiche che si riscontrano in natura sono di tipo cross over, le mutazioni avvengono con scarsissima probabilità, mentre le inversioni non hanno un riscontro naturale. TECNICA DI SELEZIONE B E La selezione di un padre con fitness elevata non è eseguita su una pura base numerica. Si seleziona un padre con una probabilità che è proporzionale alla sua fitness: più la fitness è elevata più quel padre prolificherà; però anche un padre con bassa fitness avrà qualche probabilità di poter proliferare. Infatti anche da padri non ottimi si possono ottenere delle generazioni buone. 110

111 BIOINFORMATICA La tecnica utilizzata per selezionare i padri si chiama Roulette wheel parent selection (RWPS) che significa selezione del padre dalla ruota della roulette. Questa tecnica consiste nel generare una ruota di roulette, dove gli spicchi hanno una dimensione proporzionale alla fitness di ogni cromosoma e quindi la probabilità che la pallina si fermi su uno spicchio più grande sarà maggiore rispetto alla probabilità che si fermi su uno spicchio più piccolo. Si procede attraverso tre fasi: Esempio: 1. Sommare tutte le fitness in modo da ottenere la fitness totale. 2. Generare un numero casuale compreso tra 0 e la fitness totale. 3. Selezionare il primo cromosoma la cui fitness, sommata alle fitness dei precedenti cromosomi, è maggiore o uguale al numero casuale generato al passo precedente. Cromosoma A B C D E F Fitness Somma delle fitness Numero casuale Padre selezionato D E E E B Il cromosoma E viene selezionato con una probabilità superiore a quella degli altri cromosomi essendo contenuto in uno spicchio più ampio della ruota della nostra roulette virtuale. Per l eliminazione dei cromosomi non adatti alla selezione si procede invece attraverso altri tre passi: 1. Somma di tutte le fitness = Fitness totale 2. Fitness totale/numero di cromosomi = Fitness media 3. Fitness/fitness media = Fitness normalizzata Distinguiamo tre diversi obiettivi: a. Massimizzare la fitness: vengono eliminati tutti i cromosomi con fitness normalizzata inferiore ad un valore vicino ad uno. b. Minimizzare la fitness: vengono eliminati tutti i cromosomi con fitness normalizzata superiore ad un valore vicino ad uno. c. Far sopravvivere cromosomi che si avvicinano ad un valore predefinito: vengono selezionati solo i cromosomi che hanno una fitness vicina a quella voluta. L unione degli algoritmi genetici con le reti neurali rappresenta un ulteriore ampia possibilità di soluzione per problemi estremamente complessi. 111

112 BIOINFOSTAT Approfondimento. Le reti neurali sono costituite da molte parti e dovremo usare una semplice notazione matematica. Notazione Significato a i Valore di attivazione dell unità i. a i Vettore dei valori di attivazione per gli ingressi dell unità i. g Funzione di attivazione. g Derivata della funzione di attivazione. Err i Err e I i I I e in i N O O i O t T T e W j,i W i W i W Errore (differenza tra entrata ed uscita). Errore per l esempio e Attivazione di una unità i nello strato di ingresso Vettore delle attivazioni di tutte le unità di ingresso Vettore degli ingressi nell esempio e Somma pesata degli ingressi dell unità i Numero totale di unità nella rete Attivazione della singola unità di uscita di un percettrone Attivazione di una sola unità di uscita del percettrone Vettore delle attivazioni di tutte le unità di strato di uscita Soglia per la funzione di strato a gradino Uscita obiettivo per un percettrone Vettore obiettivo per l esempio e Peso di un collegamento dall unità j all unità i Peso dell unità i all uscita in un percettrone Vettore dei pesi diretti all unità i Vettore di tutti i pesi della rete Ogni elemento di processo (neurone) riceve quindi segnali diversi (normalmente da altri PE) e può inviare il suo segnale d'uscita U(x) a più PE. L interconnessione tra i vari PE non è un semplice conduttore, poiché la sua funzione consiste nel "pesare" il segnale del neurone emittente moltiplicandolo per un opportuno valore detto peso di interconnessione, variabile tra 0 e 1, oppure tra 1 e +1. I pesi sono detti: eccitatori se sono positivi inibitori se negativi un peso uguale a 0 rappresenta una non connessione. 112

113 BIOINFORMATICA INGRESSO Σ FUNZIONE DI ATTIVAZIONE USCITA Gli elementi di una rete sono i cosiddetti neuroni di Hopfield, dispositivi elettronici di sommatoria non lineare a più ingressi ed una sola uscita. Il dispositivo elettronico é costituito da 3 blocchi funzionali posti in cascata, ciascuna unità esegue una computazione semplice: riceve ad esempio i segnali di ingresso e calcola un livello di attivazione che invia lungo i collegamenti di uscita. Il calcolo è basato sul valore di ciascun segnale ricevuto dai nodi vicini e dal peso assegnato a ciascun ingresso. I calcoli che Unità di calcolo neurale elementare. vengono effettuati sono di due tipi, il primo è chiamato funzione di ingresso in i, che calcola la somma pesata dei valori di ingresso, si definisce anche Sommatore algebrico: effettua la sommatoria algebrica di segnali di ingresso, che possono essere eccitatori o inibitori; i primi vengono sommati direttamente mentre i secondi vengono invertiti, ossia moltiplicati per ( 1) prima della somma. a j W j, i in i g a i = g(in i ) Ingresso Funzione di ingresso Funzione di attivazione Uscita Il numero di ingressi di eccitazione o inibizione non è soggetto a limitazioni, come pure l'oscillazione positiva o negativa dell'uscita dell'elemento sommatore (Summer). ini = wj,iaj j = W i * a i con notazione vettoriale. In questa notazione i pesi sui collegamenti che entrano nel nodo i sono indicati con W i, l insieme dei valori di ingresso è indicato con a i e il prodotto scalare indica la somma dei prodotti componente per componente. Ad ogni passo elementare ciascuna unità calcola il suo valore di attivazione applicando la funzione di attivazione g al risultato ottenuto per la funzione di ingresso ai g (in i) = g ( wj,iaj) j Usando funzioni diverse come g, si possono avere modelli diversi. Le principali funzioni che possiamo utilizzare sono: funzione a gradino, funzione di segno e la sigmoide. 113

114 BIOINFOSTAT a i a i a i t in i in i in i -1 Funzione gradino Funzione segno Funzione sigmoide 1se x t gradino t x = 0se x t + 1se x 0 segno x = 1se x 0 1 sigmoide (x) = 1 + e x Amplificatore a guadagno G: la somma, che chiameremo x, eseguita dal 1 blocco viene inviata all ingresso di un 2 blocco che la moltiplica per una costante G. In particolare alti valori di G rendono i neuroni molto sensibili a piccole variazioni di x intorno allo 0, riducendo però la flessibilità dell'intero sistema che tende a comportarsi come un comparatore analogico, caratterizzato da 2 soli distinti livelli (VOH = 1 e VOL = 0) della sua uscita. Infatti, per G elevati (ad esempio G = 10) non ci sono "sfumature", cioè livelli intermedi, e, pertanto, l intera rete di neuroni perde la capacità di trovare soluzioni di compromesso. Dall'altro lato, se il guadagno G è troppo basso, tutti i neuroni oscilleranno intorno al medesimo valore e nessuno prevarrà sugli altri. Stadio d uscita non lineare: esegue una trasformazione non lineare sul segnale G*x, comprimendo il suo valore tra 0 ed 1. In pratica l uscita U(x) é una funzione di trasferimento sigmoidale, alla quale corrisponde una curva a forma di S, come illustrato che corrisponde a: U(x) = 1 va da zero, per valori negativi elevati di G*x va ad 1 per valori positivi elevati di G*x vale ½ per G*x = Gx e Tale tipo di curva si usa nei sistemi di compressione del segnale audio in cui si deve trovare un equilibrio tra fedeltà e gamma dinamica ampia. La caratteristica non lineare del neurone conferisce effettivamente ad una rete di neuroni, cioè all'insieme di n neuroni collegati tra loro, una gamma dinamica più estesa ed un grado maggiore di flessibilità. Risulta chiaro che la base cognitiva delle reti è proprio la teoria del connessionismo, la quale ritiene che i processi cognitivi siano basati sull'interazione di moduli elementari molto semplici e che il comportamento, estremamente complesso, di un sistema formato da molti di questi moduli derivi dall'interazione tra questi. Il connessionismo ha avuto un impatto enorme nello sviluppo di nuovi algoritmi per l'intelligenza artificiale; questi devono essere visti nell'ottica di una loro futura implementazione hardware basata sull interconnessione di molti PE (in generale più una rete è grande e ovviamente maggiori

115 BIOINFORMATICA sono le sue prestazioni). Inoltre dobbiamo considerare la notevole varietà delle strutture possibili per le reti, ciascuna delle quali conduce a proprietà computazionali molto diverse. Le reti nell ambito della connessione possono essere alimentate in avanti e ricorrenti, dal punto di vista informatico la rete può essere considerata come un grafo diretto aciclico o DAG (Directed Acyclic Graph); in generale questo tipo di reti sono organizzate in strati dove non ci sono collegamenti tra unità dello stesso strato, né all indietro tra uno strato e il precedente e inoltre non ci sono salti di strato. L assenza di cicli implica che il calcolo computazionale può procedere unicamente dall unità di ingresso verso l unità di uscita. Il cervello umano non può avere una rete alimentata unicamente in avanti; in questo caso non si avrebbe una memoria a breve. Alcune regioni del cervello sono largamente alimentate in avanti e stratificate, ma con evidenti connessioni all indietro. Il cervello è quindi una rete ricorrente, ed in generale le reti ricorrenti richiedono agenti complessi e l impiego di metodi matematici molto avanzati, poiché diventano instabili e tendono ad oscillare e comportarsi in modo caotico. Le reti di Hopfield sono una classe di reti ricorrenti molto utilizzata, dove le connessioni sono bidirezionali con pesi simmetrici, tutte le unità sono di ingresso e di uscita, e la funzione di attivazione g è la funzione segno e i livelli di attivazione possono essere solo ± 1. La rete di Hopfield funziona come una memoria associativa che dopo una serie di esempi porterà la rete a stabilizzarsi su una configurazione di attivazioni corrispondente all esempio nell insieme di addestramento che assomiglia maggiormente al nuovo stimolo. Le macchine di Boltzmann utilizzano pesi simmetrici, ma impiegano unità che non sono né di ingresso né di uscita: esse utilizzano una funzione di attivazione che è detta stocastica, tale che la probabilità che l output sia 1 è una qualche funzione di ingresso pesato complessivo. In questa rete a sinistra vi sono delle unità definite come unità di I 1 W 13 H 3 W 35 input, mentre alla destra vi è una unità di output, O 5 tra di esse i nodi etichettati come H, non I 2 H 4 hanno nessuna W 45 W 24 connessione diretta con l esterno per questo motivo vengono definiti nodi nascosti. Alcune reti Rete a due strati alimentata in avanti con due nodi nascosti. chiamate semplicemente percettroni non hanno nodi nascosti, questo implica che ci sia un apprendimento molto semplice, ma per converso possono rappresentare solo realtà molto limitate. Le reti che possiedono diversi starti di unità nascoste prendono il nome di reti multistrato. Con una struttura fissa e funzioni di attivazione g fissate le funzioni rappresentabili da una rete alimentata in avanti sono limitate ad avere una specifica struttura parametrizzata. I pesi che si utilizzano per la rete definiscono quale di queste funzioni è effettivamente rappresentata. Nel nostro esempio avremo a a 5 =g (W 3,5 a 3 + W 4, 5 a 4) ma dove in realtà avremo =g (W 3,5 g (W 1,3 a 1 + W 2, 3 a 2)+ W 4,5 g(w 1,4 a 1 + W 2, 4 a 2)) in cui il simbolo g indica la funzione di attivazione e ai è l output al nodo i. Le funzioni di attivazione g non sono lineari, quindi l intera rete rappresenta una complessa funzione non lineare. Se pensiamo ai pesi come a dei coefficienti questa funzione diventa una funzione di aggiustamento dei parametri in modo tale da farli corrispondere all insieme di addestramento, in altre parole adottiamo un procedimento che in statistica viene chiamato di regressione non lineare. Fino a questo punto si sono considerate reti con una struttura fissata, determinata a priori, se scegliamo una rete troppo piccola il modello potrebbe non 115

116 BIOINFOSTAT essere in grado di rappresentare la funzione desiderata, se al contrario opteremo per una rete troppo grande correremo il rischio che la rete non sia in grado di comportarsi correttamente per gli esempi che non ha incontrato. Come nella statistica, i modelli potrebbero essere sovradimensionate. Allo stato attuale non esiste un algoritmo che ci permetta di identificare la rete ottimale (NERF= Network Efficiently Representable Functions). GLOSSARIO Activation function: Una funzione per la quale le nuove output dell'unità base sono derivate da una combinazione degli input o dal livello dell'unità. Auto-associative: Un processo nel quale il sistema ha immagazzinato un set di informazioni. Successivamente al sistema viene sottoposto un set analogo. Axon: Parte di una cellula nervosa attraversata dall'impulso; parte elettricamente attiva della cellula nervosa. Back-propagation: Algoritmo di apprendimento nel quale i weights sono modificati nella propagazione di un segnale di errore backward dall'ouput all'input. Chaos: Lo studio delle dinamiche non lineari (disordine deterministico). Clonare: riprodurre per clonazione; in informatica, duplicare un elemento di hardware o software; nelle telecomunicazioni, duplicare un dato o un segnale (clonazione: riproduzione artificiale di una copia genetica identica ad una preesistente). Connetion: Collegamento tra gli elementi di processo, sia positivo che negativo, legami tra elementi di processo in una rete. Conoscenza deterministica: Sistema sufficientemente semplice e ben conosciuto da rendere inutile l'applicazione di tecniche per la trattazione di conoscenza incerta. Dendrite: Parte di una cellula nervosa che trasporta l'impulso. Parte elettricamente passiva della cellula nervosa. Euristica: Nell'ambito di una scienza, la metodologia di ricerca di fatti o verità, ovvero di fonti e documenti, preliminare allo studio specifico. Feedback loop: Un loop continuo di input nella rete fintanto che non si ottiene un risultato atteso. Fuzzy logic: Informazione incompleta o contraddittoria. Fuzzy: Col termine si intende il modo di ragionare tipicamente umano che porta a prendere decisioni ragionevoli anche in situazioni reali dominate dall'incertezza e dall'imprecisione. Intelligenza Artificiale (A.I.=Artificial Intelligence): Campo della scienza dei computer che studia il ragionamento simbolico e le metodologie di risoluzione dei problemi. Learning: La fase nella quale si istruisce la rete neurale. Modelli computazionali: Modelli di calcolo. Network paradigm: Architettura che specifica le interconnessioni e la struttura della rete. Neurone: Unità strutturale e funzionale del sistema nervoso. Perceptron: Una larga classe di reti neurali con un solo input layer e ouput layer. 116

117 BIOINFORMATICA Ragionamento monotonico: Fatti asseriti che restano validi nel tempo e non sono confutati da successive osservazioni. Ragionamento qualitativo: Costruzioni di modelli computazionali per il ragionamento automatico sul mondo fisico mediante l'uso di rappresentazioni qualitative. Robot: Sistema artificiale capace di interagire con il mondo; esso deriva dalla parola cecoslovacca "Robota" cioè lavoro, nome degli automi che agiscono come operai in un dramma di K. Capek. E' un automa controllato da un cervello elettronico usato per sostituire l'uomo in attività manuali faticose o pericolose o troppo costose nell'ottica del profitto. Simulazione: Generazione del comportamento. Soft computing: Settore di ricerca che si prefigge di integrare i sistemi fuzzy con altre tecniche. Fonda le sue basi sulla teoria dei fuzzy set, si avvale della teoria delle reti neurali e degli algoritmi genetici per ottenere un sistema integrato per lo sviluppo di applicazioni. Spreading activation: Processo di attivazione simultanea alle reti neurali. Stochastic: Che prevede una probabilità o di variabile random. Summation function: Una funzione che ingloba diversi input e si attiva con un solo output. Threshold: Livello minimo di eccitazione energetica. Training: Processo di apprendimento associato ad input con risposte corrette. 117

118 BIOINFOSTAT BIOINFORMATICA MOLECOLARE Le origini. Storicamente negli anni 60 Dayhoff e colleghi raccolsero tutte le informazioni relative alle sequenze degli aminoacidi e pubblicarono tali dati nell Atlas of Protein Sequences and Structure nel I dati allora noti potevano essere contenuti in un semplice dischetto e rappresentavano il lavoro di un anno di un piccolo gruppo di ricercatori. Oggi la stessa quantità di informazioni viene prodotta in un ora circa. Nel 1982 con l avvento delle tecnologia della PCR per il DNA, inizia il progetto sul genoma umano e il gruppo del Laboratorio Europeo di Biologia Molecolare inizia a creare un database trascrivendo le informazioni contenute nelle riviste. DATA BASE. Il DDBJ, il EMBL e la GenBank rappresentano i data base maggiormente utilizzati nello studio delle sequenze nucleotidiche o proteiche, sono dei pubblici repertori per avere informazioni di ordine biologicomolecolare. La conoscenza dei formati e della strutturazione dei dati è di importanza fondamentale per gli utilizzatori di queste informazioni. Allo stato attuale il formato dei file di DDBJ, EMBL, GenBank rimane il formato di elezione per lo scambio delle sequenze a livello internazionale. Si deve osservare comunque che a livello di utilizzazione informatica di questi data base è necessario il collegamento a suite di programmi specifici. È allo studio una versione di data base chiamata ASN.1 (ABSTRACT SYNTAX NOTATION) che dovrebbe sopperire ad alcune limitazioni per la manipolazione informatica delle sequenze offrendo una strutturazione analoga per i formati analoghi nei campi simili. Inizialmente gli inglesi stipulano un contratto di collaborazione con un gruppo americano (Los Alamos National Laboratory) da questa collaborazione nasce GenBanK. GENBANK è un database 118

119 BIOINFORMATICA sulle sequenze, sui nucleotidi e sulle proteine della NIH (National Institutes of Health di Bethesda nel Maryland). Ogni unità di record rappresenta una stringa di RNA o DNA con le relative annotazioni. Tutti i record nelle GENBANK sono generati dall immissione diretta delle sequenze da parte dei relativi autori. Questa banca dati di biologia molecolare è mantenuta dal National Center for Biotechnology Information (NCBI) al NIH. Questo data base rappresenta i risultati di una collaborazione con un centro giapponese (DNA Data base of Japan, DDBJ, che si trova a Mishana) e il Laboratorio Europeo di Biologia Molecolare (EMBL che si trova in Inghilterra a Hinxton ed è mantenuto dall European Bioinformatic Institute. Ognuno di questi centri rappresenta un punto di immissione dei dati relativi alle sequenze. Attualmente la GenBank viene considerata una banca DNA centrica, e rappresenta il punto di riferimento nell' ambito della biologia molecolare. Rappresentazione simbolica di sequenze. Si deve fare una importante distinzione sui data base possiamo avere DB Primari che sono detti anche ARCHIVAL, mentre i secondari sono detti CURATED. I data base primari rappresentano i risultati emersi dalla sperimentazione in laboratorio, sono quindi i risultati di un sequenziamento ottenuto a livello di DNA. Ogni annotazione del DNA e definita come CDS (coding sequence). In molti casi la sequenza di aminoacidi viene ricavata in quanto difficilmente si attua un sequenziamento a livello aminoacidico. Si deve comunque prestare molta attenzione nell uso e nell interpretazione dei risultati ottenuti da queste sequenze. La interpretazione della 119

120 BIOINFOSTAT sequenza di proteine da una sequenza di mrna non è difficile, ma è necessario determinare il corretto codone di inizializzzazione. COME RAPPRESENTARE UNA SEQUENZA DI DNA. Il modo più semplice di rappresentazione è quello di una stringa di nucleotidi con una serie di tag o identificatori. >LO4459 GCAGCCACGA TATAC analogamente potremo trovare per una proteina >P31373 MTLQESDKFA KQATN Il formato con il quale si utilizzano le informazioni di biologia molecolare è il FASTA, tale formato viene utilizzato nei principali programmi di analisi di biologia molecolare. > gb Lo4459 YSCCYS3A Saccaromicies cerevisiae cystathionine gammalyase (CYS3) gene, complete cds. GCAGCGA TATAC Un file FASTA contiene il carattere > che indica l inizio, un identificatore Lo4459 e una sequenza di lettere Maiuscole, o minuscole solitamente disposte in righe di 60 caratteri. Sono inoltre presenti altre informazioni per identificare e caratterizzare la sequenza. Il formato della GenBank. Il formato di scambio utilizzato per rappresentare la sequenza è il GBFF che significa GenBank FlatFile. Il file GBFF può essere scomposto in tre parti. Esempio di GENES. LOCUS HSAMCC DATE 07-JUN-1960 DEFINITION Human amphiphysin mrna, complete cds. CITATION YAMAR95 SEQUENCE 1 ccaggtgcct actgactcct tcagaaatgt cagttcctgt cccatgccct taatatttcc 61 cacatgcagg gctctgtgca caatgcgtga caatggcttt tagat // Esempio di REFLIST D YAMAR95 RA Yamamoto R., Li X., Winter S., Francke U., Kilimann M.W.; RT Primary structure of human amphiphysin, the dominant autoantigen RT of paraneoplastic Stiff-Man syndrome, and mapping of its gene RT (AMPH) to chromosome 7 RL Hum. Mol. Genet. 4: (1995). I // 120

121 BIOINFORMATICA HEADER. La parte iniziale è la più specifica del file, il primo elemento del file è LOCUS che indica il nome del locus, dal punto di vista storico il nome dovrebbe rappresentare anche il nome del record. Solitamente è un insieme di lettere e numeri (massimo 10) ad esempio HUMBB indica il locus della beta-globulina umana. LOCUS AF bp DNA INV 08-JUL-1999 Al fine di evitare errori o confusioni viene assegnato anche un numero di accesso indicato come un insieme di caratteri alfanumerici, questo numero è unico e specifico. La lunghezza della sequenza viene indicata con il numero di coppie (da 1 a 350,000), in pratica si trovano sequenze con oltre 50 bp. Il termine DNA indica il tipo di molecola utilizzata nella determinazione della sequenza, i tipi possono essere : DNA, RNA, trna, rrna, mrna e urna. Di seguito vengono riportate tre lettere che hanno il significato di facilitare la classificazione in termini tassonomici o di altre classificazioni, e costituisce un sistema di divisione funzionale. La data indica il giorno in cui la sequenza è stata resa disponibile. DEFINITION. Con questo termine si riportano le informazioni di tipo biologico relative al record. In generale esiste un certo accordo tra i diversi data base circa la strutturazione della definizione. Esempio : DEFINITION Genus species protein X (XXX) gene Con le seguenti possibilità nuclear gene encoding mitocondrial protein nuclear gene encoding chloroplast protein chloroplast gene encoding mitocondrial protein In ambito di collaborazione fra i diversi data base il nome completo del genere o della specie viene riportato nella linea di definizione (esempio H.sapiens per Homo sapiens). Solo un organismo sfugge a questa definizione si tratta del virus della immunodeficienza che è rappresentato nella definizione come HIV1 e HIV2. Il Numero di accesso, rappresenta la chiave primaria ed univoca di accesso a un determinato record. Questo numero viene anche citato nella pubblicazione relativa e anche se la sequenza viene aggiornata il numero non cambia. Le possibilità sono di avere una lettera Maiuscola e 5 numeri, oppure da due lettere e 6 numeri. Possiamo trovare anche un numero di accesso secondario, che costituisce il retaggio di un vecchio sistema di classificazione. Il NID rappresenta l identificatore genetico (gi) per i nucleotidi, il prefisso (d, e oppure g) indica il data base che viene utilizzato.semplicemente un numero di gi indica un unico identificatore associato ad una unica sequenza, se la sequenza cambia, si modifica anche il relativo gi, mentre il numero di accesso non si modifica. ACCESSION AF NID g VERSION AF GI: Al fine di facilitare la ricerca esiste anche la versione, nel nostro caso si ha la prima versione associata al NID g

122 BIOINFOSTAT KEYWORDS. Rappresentano un retaggio storico, attualmente l'uso è scoraggiato in quanto molti autori hanno inserito dei termini non contenuti nel vocabolario del data base; inoltre, l inserimento delle parole chiave non è stato applicato in modo uniforme all intero data base. SOURCE. Indica il nome comune o il nome scientifico dell organismo, in molti casi sono presenti anche informazioni relative alla tassonomia. In questo caso si prevede un collegamento con la pagina della Tassonomia del NCBI (National Center for Biotechnology Information). REFERENCES 1 (bases 1 to 3291) AUTHORS TITLE Morcillo, P., Rosen, C., Bayles, M.k CHIP, a widely expressed chromosal protein required for remote enchancer activity and segmentation in Drosophila. JOURNAL J.Biol.Chem (19), (1994) MEDLINE PUBMED Ogni records della GenBank riporta una referenza bibliografica, e un link alla pubblicazione di MEDLINE. Nella parte finale sono riportati i commenti e le note, nel passato si trovavano anche precise indicazioni sugli autori come ad esempio gli indirizzi di posta elettronica o specifiche URL, attualmente questa tendenza viene scoraggiata, in quanto gli indirizzi elettronici tendono a cambiare con una rapidità maggiore rispetto agli indirizzi postali. A livello scientifico MEDLINE rappresenta la banca dati bibliografica più importante, ogni articolo viene registrato con un codice di identificazione (MUID), attraverso questo numero è facile risalire all'articolo e alla rivista. Recentemente la NCBI, con MEDLINE e altri editori ha introdotto un nuovo identificatore chiamato PubMed (PMID) source /organism= Drosophila melanogaster /map= cm, 60B1- /clone= P1-Phage DS00543 /cromosome= 2 che contiene sia gli articoli pubblicati sia anche articoli non ancora pubblicati. È l unica rappresentazione comune a tutti i records della GenBank, contiene inoltre una serie di qualificatori legali e alcuni qualificatori obbligatori (esempio il tipo di organismo). FEATURE TABLE. Rappresenta la parte centrale del GBFF record, e costituisce la parte di maggior rilievo per la rappresentazione biologica del record. FEATURES Location/Qualifiers. Il qualificatore dell organismo può essere descritto come genere e specie, sovente l organismo viene descritto a livello di subspecie. CDS /gene=m-delta-3 /codon_start=1 /db_xref= PID:e /db_ref= PID:g /translation= MVSLQVSPLLSTQTL YAREA CDS. Le CDS costituiscono una serie di istruzioni per leggere e interpretare la sequenza. Leggendo si hanno informazioni, in questo caso della posizione degli aminoacidi. È da notare la presenza di indicazioni per avere un cross-references verso data base esterni, con l indicazione del PID (identificatore per le proteine) e con il relativo gi. Il prefisso e indica la banca dati EMBL, 122

123 BIOINFORMATICA mentre g porta alla GenBank. Questo avviene perché ogni banca dati mantiene un proprio identificatore. Nella GeneBank si trovano due PDI per CDS /protein_id = AAA indicare che record proviene da EMBL; questo sistema tende ad ingenerare una certa confusione. I sistemi tendono a /db_xref= GI: divenire meno ambigui come /db_ref= PID:e nell esempio riportato, ma attualmente convivono diversi modi di espressione /db_xref= PID:g dei records. Il termine protein id rappresenta l identificatore delle proteine o numero di accesso che nel caso deriva dal database delle sequenze nucleotidiche. L identificatore è costituito da tre lettere e cinque numeri, seguiti da un ulteriore numero che informa sulla versione. La versione incrementa di una unità quando viene aggiornata la sequenza; questo sistema permette di vedere l evoluzione osservando ad esempio i records precedenti. INFORMATION RETRIEVAL NEI DB. Attualmente la GenBank contiene 1.6 milioni di records che coprono circa 1 bilione di basi nucleotidiche. Uno sforzo è stato fatto quindi per permettere al ricercatore di accedere al data base e di interrogarlo direttamente. Il modo considerato più semplice per accedere alle informazioni è quello di formulare una interrogazione attraverso la posta elettronica. Con questa modalità si attiva un server chiamato RETRIVE. Il server quindi attiva la ricerca che può essere per singola parola chiave o una ricerca più complessa con l'utilizzo di molte parole chiave associate a operatori Booleani. L'invio di una richiesta ad un server di posta richiede che nella compilazione della richiesta si utilizzi un formato standard di interrogazione, come riportato nell'esempio. Per primo troviamo To: retrive@ncbi.nlm.nih.gov soggetto della richiesta non è strettamente indispensabile per il l'indirizzo dobbiamo di inviare posta la elettronica nostra a richiesta, cui il Subject: Complex Query DATALIB swissprot Begin histone H1 AND Saccharomicies OR Schizosaccaromicies server, ma ci viene Schema di richiesta con posta elettronica. chiesto generalmente dal nostro programma di posta elettronica. L'inizio del messaggio è DATALIB che rappresenta la richiesta di interrogazione verso uno specifico data base. Il termine BEGIN indica che non esistono altri parametri della ricerca e che i termini sotto riportati costituiscono le parole chiave da ricercare. Gli operatori Booleani sono AND, OR, NOT che possono essere usati singolarmente e congiuntamente. Le " " indicano che la frase deve essere letta congiuntamente. Chiaramente l'utilizzo di questo sistema di interrogazione pone dei limiti, primo fra tutti quello di dovere effettuare delle interrogazioni multiple alle diverse DATLIB, quindi un data base alla volta. La consapevolezza dell'esistenza di una serie numerosa di connessioni naturali ha indotto alla ricerca di un motore in grado di interrogare per una precisa entità biologica senza dover ricorrere ad un processo sequenziale e legato ai sistemi specifici di interrogazione del database. La risposta a queste esigenze è il sistema chiamato ENTREZ, creato e gestito dalla NCBI. Il vantaggio di questo sistema consiste nella possibilità di utilizzare diverse piattaforme di avere un accesso integrato ai records PubMed (Medline). Con una sola richiesta di interrogazione QUERY è possibile ottenere informazioni relative a: sequenze di Nucleotidi, proteine, struttura tridimensionale, mappaggio. 123

124 BIOINFOSTAT ENTREZ offre due possibilità di accedere e connettersi ad un data base: 1-neighbonring 2-hard links Neighbonring. Il primo sistema risponde alla interrogazione in base alle somiglianze o vicinanze ed è basato su un approccio statistico di similarità. I sistemi con i quali si può procedere sono diversi. BLAST (Basic Local Alignment Search Tool) è un algoritmo di ricerca introdotto nel 1990 da Altschul et al., che si basa sull'allineamento delle sequenze e determina un punteggio HSPs (High Scoring segment Pairs). Programma Database Query Note Blastp Proteine Protein Utilizza una matrice di sostituzione per trovare le relazioni di distanza. Blastn Nucleotidi Nucleotidi Crea lo scoring, ma non la distanza Blastx Nucleotidi Protein Utile per l analisi delle nuove sequenze di DNA Tblastn Proteine Nucleotidi Utile per trovare le regioni nelle sequenze del database Tblastx Nucleotidi Nucleotidi Utile per le analisi con EST VAST (Vector Alignment Search Tools). Creato nel 1995 da Madej et al. consente di confrontare le coordinate utilizzando un sistema di analisi complesso che prevede tre passaggi 1-Identifica le coordinate di tutte le catene alfa e beta della proteina e le trasforma in vettori. 2- Un algoritmo cerca di individuare gli allineamenti ottimali del vettore, analizzando le coppie di elementi strutturali dello stesso tipo, con medesima orientazione. Si ottengono quindi delle substrutture significative dal punto di vista statistico e successivamente si confrontano con delle proteine scelte casualmente. 3- Un affinamento viene dato impiegando la tecnica di Montecarlo per definire i residui tali da ottimizzare l'allineamento strutturale. Con questo approccio è possibile trovare delle relazioni di tipo strutturale e probabilmente anche funzionale che legano le proteine. Si deve ricordare comunque che il metodo VAST non è il miglior metodo per determinare le similarità strutturali. La riduzione ad una serie di vettori induce una perdita di informazioni che con i metodi di HOMOLOGY MODEL BUILDING al contrario vengono conservate. Si deve segnalare come sia molto importante Possibilità di collegamenti in MEDLINE l'uso corretto delle KEYWORDS, per dare un maggior peso ad un termine rispetto ad altri termini. Si definisce questa un tecnica di ponderazione delle parole, MEDLINE utilizza un testo libero dove la grammatica e la sintassi non sono sempre definite. ENTREZ impiega un 124

125 BIOINFORMATICA metodo di ricerca chiamato relevance pair model of retrieval che attribuisce un peso diverso alle parole. Consideriamo i seguenti titoli: BRCA1 as a Genetic Marker for Breast Cancer e Genetic Factors in the Familial Transmission of the BRCA1 Gene. Entrambi gli articoli contengono i termini BRCA1 e Genetic e quindi supponiamo che entrambi gli articoli trattino dello stesso argomento, ma nel primo articolo le informazioni contenute nel titolo del lavoro sono più specifiche (Breast Cancer). Le parole chiave che vengono reperite direttamente nel titolo hanno un punteggio maggiore rispetto a quelle ritrovate nel riassunto, le parole vicine assumono un valore più importante di non quando non siano separate o distanti all'interno di una frase. Inoltre il peso di una parola dipende anche dalla frequenza con cui compare in tutto MEDLINE. Categoria Medline Nucleotidi Proteine Struttura Genoma Testo OK OK OK OK OK Autore OK OK OK OK OK Rivista OK OK OK OK OK Accession Numb OK OK OK OK OK Data pubblicazione Medical Subject Index Nome Organismo Simbolo Gene OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK Nome proteina OK OK OK OK OK EC numero OK OK OK OK Nome chimico OK OK OK OK Key words sequenza CDS OK OK OK 125

126 BIOINFOSTAT Proprietà OK OK OK Hard Link. È un sistema basato sulla creazione di collegamenti con i data base con semplici connessioni. Lo schema illustra il meccanismo di funzionamento. Con questo sistema si ottiene una mole di informazioni notevole con una sola interrogazione, quindi con un risparmio di tempo. L'attuale versione disponibile è conosciuta come www Entrez e può essere interrogata direttamente in rete utilizzando sia Internet Explorer che Netscape. Il sistema o il modello di ricerca è definito dal NCBI come una classe di oggetti chiamata SeqID, questa necessità nasce dal dover integrare informazioni ed in particolare sequenze che sono contenute e archiviate in diversi data base. Come si è facilmente intuito PIR, SWISS-PROT e il data base delle sequenze nucleotidiche usano il termine accession number con lo stesso formato dei dati. Ad esempio A10234 di PIR, e A10234 di SWISS-PROT indicano sovente cose diverse, mentre all'interno di DDBJ, EMBL e GenBank il contenuto di A10234 è lo stesso anche se possono sussistere differenze riguardo al formato. Esiste quindi un sistema PDB SeqID che contiene il nome della molecola e la catena ID per identificare una solo ed unica sequenza. Esistono poi dei sistemi di identificazione delle sequenze che prevedono come ad esempio nelle mappe genetiche l'assegnazione di un ID generale (SeqID general), mentre nel processo di introduzione della sequenza nel data base viene inserito un ID locale (SeqID local). BIOSEQ. Bioseq letteralmente la sequenza biologica è l'elemento centrale del modello del NCBI. Per funzionare il Bioseq deve avere almeno un SeqID. Per utilizzare Bioseq non è necessario avere tutta la molecola sequenziata, è possibile avere sequenziato gli esoni e non gli introni. Il meccanismo di funzionamento è legato alla creazione di un sistema lineare di coordinate per la sequenza in esame. Si presentano quindi due possibilità quando si effettua una confronto tra due sequenze Le sequenze sono identiche Le sequenze sono diverse La possibilità di analizzare le sequenze utilizzando le relative coordinate può permettere di utilizzare le differenti classi di Bioseq. VIRTUAL BIOSEQ - Si utilizza quando conosciamo il tipo di molecola, la lunghezza e la tipologia (lineare o circolare) ma non la sequenza. La lunghezza viene ricavata dall'analisi delle bande sui gel elettroforetici. RAW BIOSEQ. La lunghezza è conosciuta si confrontano le diverse righe. SEGMENTED BIOSEQ. Non sono contenute sequenze delle righe, ma solo gli esoni sono conosciuti, gli esoni vengono rappresentati utilizzando un Formattati: Elenchi numerati 126

127 BIOINFORMATICA sistema Raw, mentre gli introni sono rappresentati con Virtual Bioseq. DELTA BIOSEQ. Si basa su confronti con SeqID. MAP BIOSEQ. È utilizzata per dare una rappresentazione fisica della mappa genetica. Per maggiori informazioni sui programmi si rimanda a: CLUSTAL ftp://ftp.ebi.ac.uk/pub/software/ DOTTER LALIGN BLAST SEG ftp://ftp.sanger.ac.ak/pub/dotter/ ftp://ftp.virginia.edu/pub/fasta/ ftp://ncbi.nlm.nhi.gov/blast/ ftp://ncbi.nlm.nhi.gov/pub/seg/ BLAST. Il programma introduce una serie importante di affinamenti per l'analisi dei dati, aumenta la velocità della ricerca e offre un importante supporto statistico alla valutazione delle risultanze. Il programma si basa sulla statistica di Altschul et al.,1990. Esistono diverse versioni del programma, la 1.4 e successive; dalla versione 2.0 si ha anche un esplicito trattamento per i gaps. Nel 1997 il programma è stato completamente riscritto e con un cambiamento dei parametri. Fare attenzione che la versione 2.0 può essere confusa con il programma WU-BLAST della Università di Washington che è chiamato BLAST2. In realtà in BLAST noi possiamo trovare 5 diversi programmi che interrogano banche dati diverse. Per ricerche di routine possiamo utilizzare un database nr che contiene la collezione di DNA e proteine che ha lo scopo di ridurre la ridondanza. Programma Database Interrogazione Note blastp Proteine Proteine blastn Nucleotidi Nucleotidi Utilizza una matrice di sostituzione per trovare le relazioni di distanza. È possibile usare anche filtri SEG. Non sono determinate le relazioni di distanza. blastx Nucleotidi Proteine Utile per l'analisi di nuove sequenze di DNA. tblastn Proteine Nucleotidi Utile per trovare regioni non annotate. tblastx Nucleotidi Nucleotidi Utile per le analisi EST. TERMINI E SIGLE UTILIZZATE IN BLAST nr month Non ridondante Subset di nr, modificata negli ultimi 30 giorni swissprot Data base Swiss-Prot 127

128 BIOINFOSTAT pdb yeast ecoli est sts htgs gss mito alu vector Sequenze di amino acidi descritte con le coordinate atomiche Set di proteine codificate dal genoma di S. cervisiae Set di proteine codificate dal genoma di E. coli Divisione della GenBank (espressed sequence tags) Divisione della GenBank (sequence tagged sites) Divisione della GenBank (high throughput genomic sequence) Divisione della GenBank (genome survey sequence) Set di proteine codificate dal genoma mitocondriali di vertebrati Collezione di sequenze ripetute Collezione di vettori di clonaggio Noi vogliamo determinare quante sequenze omologhe esistono in un database NR (non ridondante), molto semplicemente possiamo copiare la sequenza nel box di testo del NCBI BLAST se premere il bottone submit. La sequenza dei dati è riportata nel formato FASTA > Dictyostelium discoideum myosin (myoi) gene, exons 1 and 2. aatcaacaaa acttatcatt caatatctcg ccgcaagaac aaatcgtcat tcccaagtcg aacaaatgat tgttgaatct tctccaatct tggaagcttt tggtaatgca aaaacaatta gaaataataa ctcttctaga tttggtaaat ttattgaaat tcaatttaat agagaaggtc atatttctgg tgctagaatt ataaattgta agtttttcca gaaaaaaaag aaaaaaaaaa aaaaaaaaaa aaattgagta ttaatatttt tttatttcac tttttttttt catcaaccct cttgtcaaaa ttttttattt tttttatttc tacaaattct atcaaaccat accaaaaaaa aaaaagactt attagaaaaa tctagaattt cacatcaagc tagttca (L35321 nel nostro esempio) mentre il gi è il numero di formato NCBI, e nella nostra sequenza corrisponde a Analizziamo ora la tipologia dei risultati 128

129 BIOINFORMATICA osservando una pagina di BLAST. Successivamente possiamo inserire la parte di una sequenza, ad esempio possiamo inserire solo le ultime 82 basi di L A La prima linea indica dove l'algoritmo di BLAT è stato pubblicato B Nota di richiamo C Il nome della richiesta D Nota sul database richiesto (nr) L'High Score è un numero che viene calcolato seguendo uno schema : Se esiste una corrispondenza si aggiungere 5 Se non esiste una corrispondenza due caratteri adiacenti sottrarre 4 E due caratteri con una regione sottrarre 1 Il valore P(N) offre una indicazione sulla corrispondenza delle sequenze, quindi la probabilità di avere una buona o cattiva corrispondenza delle sequenze; il valore varia da 0 a 1. F TERMINOLOGIA E SIGLE gb sequenza ritrovata nel Database GenBank. L35321 numero di accesso in GenBank. DDIMYOIA è la sigla di Dictyostelium discoideum myosin (myoi) gene, exons 1 e 2. lo HighScore è 338 P(N) è un valore piccolo quindi un buon candidato. N è uno. emb sequenza ritrovata nel database EMBL. X07234 è il numero di accesso di EMBL. SASSV1XX è la sigla del provirus. Lo HighScore è 112 P(N) è un valore elevato quindi non è un buon candidato. N è uno. Le informazioni mostrate in F sono ripetute con delle ulteriori informazioni. La lunghezza completa viene riportato e nel nostro caso risulta 407. Lo score è di 338. Il valore Expect corrispondente a P(N) corrisponde a 4.0e -19 Ci sono 85% di Identities (in assoluto da 70 of 82). Formattati: Elenchi numerati G H Utilizzando una sequenza di DNA noi osserviamo lo stesso numero di Positivi e Identità. Solo se utilizziamo una sequenza di aminoacidi possono esistere differenze tra i due parametri. Valori positivi indicano che gli aminoacidi appartengono allo stesso gruppo. Per ultimo viene mostrata l'interrogazione. Notare che NNNNs è la sequenza della interrogazione. Questa regione viene identificata come regione a bassa complessità e viene quindi ignorata nella ricerca per la omologia della sequenza. Possiamo osservare come la sequenza di interrogazione sia parte della sequenza Sbjct. Questa sequenza parte a 326 e termina a 407. Le informazioni riportate in F sono ulteriormente completate: Ad esempio il nome è ora completo. La lunghezza della sequenza completa è di Lo Score è 112. Il valore atteso è Expect (2.5) e risulta maggiore del valore riportato per P(N): 0.92 Esistono il 60% di Identities (assoluto tra 32 di 53). Si trova lo stesso numero di Positives. Tutti i positivi provengono dallo stesso gruppo di aminoacidi. Questa regione viene identificata come regione a bassa complessità e viene quindi ignorata nella ricerca per la omologia della sequenza. Possiamo osservare come la sequenza di interrogazione NON sia parte della sequenza Sbjct. Questa sequenza parte da 326 e termina a 407. La sequenza di interrogazione corrisponde alle lettere da 3 a 55 collegata alle basi da 5789 a

130 BIOINFOSTAT I L In questa sezione appaiono una serie di parametri V-Informazioni relative al massimo numero di hits nel database che vengono forniti nel programma di output (vedi anche A). Il valore di default nel NCBI è 100. B-Numero massimo di hits nel database per i quali viene fornito un allineamento nel programma di output (vedi G e H). Il valore di default è 50. H-Se H è uguale a 1, viene stampato anche un istogramma. Il valore di default è 0 che non produce istogrammi. Lambda-Lambda è un parametro della statistica di Karlin-Altschul. Dipende dalla matrice usata per calcolare il punteggio (osserva anche K). K-K è un parametro di Karlin-Altschul che dipende dalla matrice di scoring utilizzata. Si osserva che nelle interrogazioni per i nucleotidi utilizzando il programma blastn i valori di K e Lambda non sono importanti in quanto dipendono dalla distribuzione dei residui nella sequenza che risulta equiprobabile 0.25/0.25/0.25/0.25 per A/C/G/T I valori dei parametri di Karlin-Altschul negli altri casi dipendono dal sistema di scoring utilizzato (parametri M e N). H-H rappresenta l'entropia e il rumore di fondo della frequenza dei residui, rappresenta un valore statistico riportato dal programma BLAST. E-Corrisponde al valore atteso, stabilisce il livello di significatività dell'allineamento. Nel modello di interrogazione di Karlin e Altschul, indica il numero di corrispondenze che ci si dovrebbe attendere sulla base di una estrazione randomizzata. Il valore di default è 10, il campo di variazione di E è 0 < E < = S-Il parametro rappresenta lo score al quale un singolo allineamento soddisfa il livello soglia di E. Il valore di default dipende dal valore E. T-Rappresenta il valore limite per la ricerca di parole di lunghezza W in un database. Se il valore T è 0, solo i matches con una distanza 0 vengono ricercati. X-X è un numero positivo che rappresenta il massimo di drop-off. Per blastn, il valore di default di X è il minimo score che rappresenta 20 bits di informazione, o una riduzione del livello statistico della significatività di un fattore 2. Alla fine di una ricerca Blast vengono fornite alcune ulteriori informazioni DATA BASE UTILIZZATI: Database: Non-redundant GenBank+EMBL+DDBJ+PDB sequences. QUANDO È STATA FATTA LA RICERCA: Posted date: May 25, :31 AM QUANTE LETTERE SONO CONTENUTE NEL DATABASE: # of letters in database: 709,610,471 QUANTE SEQUENZE SONO CONTENUTE NEL DATABASE: # of sequences in database: 342,388 QUANTI HITS SONO STATI EFFETTUATI (first stage): Number of Hits to DB: Si ripete il numero delle sequenze: Number of Sequences: Si ripete il numero di Hits (first stage): Number of Hits to DB: QUANTI HITS HANNO AVUTO SUCCESSO (second stage): Number of successful extensions: 3045 QUANTE SEQUENZE HANNO AVUTO UN VALORE SUPERIORE ALL'E(xpected): Number of sequences better than 10: 2 TECNICHE DI ALLINEAMENTO. Una caratteristica comune a tutte le discipline della biologia è l'analisi comparativa per mettere in luce delle differenze. È noto a molti come le intuizioni di Darwin nascessero dal confronto della morfologia degli animali presenti sulle isole Galapagos e come questi confronti consentissero di postulare la teoria della selezione. Sostanzialmente e concettualmente lo stesso tipo di analisi viene realizzato oggi per confrontare le sequenze dei geni e delle proteine. Questa analisi viene realizzata a livello di singola base o aminoacido con una finalità di inferire sulla struttura o sulla funzione di una determinata struttura. Il metodo maggiormente utilizzato è quello definito come allineamento delle sequenze. 130

131 BIOINFORMATICA Confronto di sequenze. Esistono due possibilità: si confrontano solo due sequenze (pairwise alignments), il confronto avviene con il confronto di diverse sequenze (multiple alignments); dobbiamo segnalare come negli ultimi 30 anni si è osservata una esplosione delle metodologie di analisi delle sequenze, tanto che si parla del fenomeno come " big bang of sequence information expansion". FINALITÀ. Le finalità dell'allineamento delle sequenze sono quelle di offrire ai ricercatori elementi sufficienti nella similarità per giustificare la similarità ed inferire sulla omologia o sull'esistenza di funzione È necessario precisare il significato di alcuni termini: Similarità (similarity)= rappresenta una quantità, solitamente espressa come % che indica la percentuale di identità tra due misure. Omologia (homology) = rappresenta la conclusione e consente di affermare ad esempio che due geni possiedono una storia ancestrale comune. Le differenze dell'allineamento possono essere dovute a 3 cause diverse: SOSTITUZIONE INSERIMENTO DELEZIONE In una situazione ideale il confronto di due geni con la tecnica dell'allineamento se non esiste identità significa che esiste una sostituzione. Le posizioni che vengono conservate hanno o possono avere un significato funzionale. L'allineamento consente di vedere come in certe regioni gli specifici aminoacidi siano altamente conservati, e come probabilmente questi residui Struttura modulare di due proteine. siano fondamentali per il mantenimento della funzione strutturale. Questa strategia di allineamento si definisce come global alignment. Sfortunatamente non tutte le proteine mostrano un allineamento di tipo globale, ma sembra esista un sistema definito come a mosaico o a dominio modulare. Formattati: Elenchi numerati Formattati: Elenchi numerati 131

132 BIOINFOSTAT Se analizziamo la struttura di due proteine coinvolte nel meccanismo di coagulazione: la prima F12 rappresenta il fattore di coagulazione XII, mentre il PLAT rappresenta l'attivatore del Plasminogeno. Queste proteine presentano una struttura modulare; F1 e F 2 sono moduli che si ripetono, E indica un modulo che è simile al Epidermal Growth Factor, mentre K è un modulo conosciuto come "kringle domain", la parte definita come catalitica contiene una serie di proteine coinvolte nel sistema di coagulazione. L'analisi di strutture proteiche di questo tipo avviene utilizzando un programma chiamato DOTTER che è utile per individuare complesse relazioni che interessano regioni multiple di similarità locale e sfrutta un meccanismo di confronto matriciale. I METODI PER LO STUDIO DELL'ALLINEAMENTO. I possibili e diversi allineamenti possono diventare estremamente elevati e quindi è molto importante trovare i metodi per identificare il migliore allineamento o la serie degli allineamenti migliori. A livello di calcolo computazionale si tratta semplicemente di individuare il miglior percorso possibile. Sono stati sviluppati in questo settore numerosi algoritmi che si basano sulla assegnazione di un punteggio (score) ad ogni possibile percorso (allineamento). Normalmente possiamo sommare l'incremento del contributo di ogni parte comune del percorso. Esistono anche sistemi molto sofisticati per assegnare un certo punteggio, ma consideriamo ora di dare un incremento positivo quando i residui sono identici e possiamo dare un punteggio negativo quando esiste una sostituzione o esiste un gap. In funzione di questa definizione il migliore allineamento è associato con un punteggio più elevato. Questo algoritmo è conosciuto come algoritmo di Needleman-Wunsch (1970) e si inserisce in una strategia definita come Dynamic Programming. Una modifica venne proposta nel 1981 da Smith e Waterman. Questo algoritmo ha avuto un ulteriore affinamento con Atschul e Erikson Finalmente Huang nel 1990 propone un algoritmo chiamato SIM, che viene nel 1996 inserito in un programma chiamato LALIGN (distribuito con il pacchetto FASTA). Il sistema di punteggio per le proteine è concettualmente molto semplice, prevede il confronto tra gli aminoacidi con una matrice, per aumentare la sensibilità possiamo introdurre una matrice di sostituzione. È noto come certi aminoacidi possano essere sostituiti facilmente in una proteina avendo delle proprietà fisiochimiche simili. Si parla in questo caso di sostituzione conservativa, come nel caso della valina con l'isoleucina (piccole e idrofobiche), la serina e la treonina (entrambe polari). Quando calcoliamo il punteggio dell'allineamento, diamo un punteggio maggiore agli aminoacidi identici, ma un punteggio proporzionalmente maggiore viene assegnato alle sostituzioni conservative rispetto a quelle non conservative. Possiamo anche attribuire un punteggio diverso per il confronto di sequenze molto simili in specie molto vicine, rispetto a sequenze divergenti di specie molto distanti tra di loro. Come intuiamo facilmente con questo approccio possiamo ottenere una matrice dello score che identifica i punteggi delle diverse combinazioni degli aminoacidi. La prima matrice di sostituzione fu quella basata sul concetto del modello PAM (point-accepted-mutation) di Dayhoff nel Una unità PAM viene definita come una unità di divergenza in cui 1% degli aminoacidi sono cambiati. Se il cambiamento degli aminoacidi è semplicemente casuale, la frequenza di ogni sostituzione viene determinata semplicemente come somma delle frequenze dei differenti aminoacidi. Tale frequenza è definita come BACKGROUND FREQUENCIES. 132

133 BIOINFORMATICA In alcune proteine è stato osservato come le sostituzioni avvenissero in alcune zone e che queste sostituzioni non compromettevano la funzionalità della proteina, queste mutazioni vengono quindi accettate durante il processo di evoluzione. Queste sostituzioni vengono chiamate A R N D C Q E G H TARGET FREQUENCIES. Dayhoff fu il primo A R N D C Q che impiegò una matrice in cui il punteggio è proporzionale al logaritmo naturale del rapporto tra TARGET e BACKGROUND. A livello operativo si è stabilita la distanza di 250 PAM. Quindi si è definita una matrice PAM250. Come al solito le cose sono complicate, infatti come possiamo immaginare siamo in grado di costruire diverse matrici di divergenza con valori di PAM più o meno elevati, esiste infatti la E possibilità di avere PAM200 che trovano impiego quando le sequenze sono supposte G H molto simili. La matrice di sostituzione BLOSUM è costruita nello stesso modo, ma con una diversa strategia nella determinazione della frequenza target. Queste matrici sono dovute a Henikoff nel 1991, e come nel caso delle matrici PAM si hanno delle numerazioni. Ad esempio una BLOSUM62, una BLOSUM30, BLOSUM90. A R N D C Q E G H Rimane ancora da risolvere una difficoltà, come valutiamo gli inserimenti e gli eventuali A R N D C GAP. Diverse sono le strategie che possono essere adottate per risolvere questa difficoltà e penalizzare l'esistenza di GAP. I diversi metodi tendono a penalizzare i GAP introducendo due parametri: il valore G, spesso chiamato gap opening penality e un parametro L definito come gap extension penality che tiene conto della lunghezza del Q GAP. I valori che si ottengono sono empirici e non esiste una teoria che consenta di E G H effettuare una scelta ragionata di questi valori solitamente G varia da 10-15, mentre L varia da 1-2 (valori per BLOSUM62). TECNICHE DI ALLINEAMENTO MULTIPLO. Le recenti scoperte nella genetica molecolare hanno portato alla individuazione di nuove proteine, e come conseguenza è nata la necessità di allineare le diverse proteine per cercare di comprenderne la funzionalità. La ricerca di allineamenti multipli scaturisce dalla necessità o dalla volontà di rispondere a molti quesiti biologici necessari nello sviluppo scientifico della medicina. Possiamo considerare ad esempio che lo studio degli allineamenti multipli possa offrire 133 Inversione di sequenza.

134 BIOINFOSTAT informazioni utili per lo studio evolutivo di una proteina analizzandone l'albero filogenetico. Se immaginiamo la struttura di una proteina come costituita da una serie di piccoli mattoni, ci è facile dire che le strutture riportate siano diverse, ma se osserviamo con maggiore attenzione percepiamo che le due sequenze sono speculari tra di loro. I biochimici hanno rilevato come in proteine simili ci possano essere delle regioni altamente conservate e possiamo allora comprendere come il mantenimento di una conformazione spaziale sia fondamentale per il mantenimento funzionale di una proteina. Un esempio molto appropriato sull'impiego della bioinformatica genetica è rappresentato dalla malattia molto nota come il diabete, malattia per la quale l'organismo umano non è in grado di produrre una quantità sufficiente di insulina. La cura più efficace è quindi quella di fornire al malato dell'insulina esogena. Questa insulina veniva prima estratta dal suino, attualmente possiamo utilizzare i batteri per produrre l'insulina in quantità e qualità soddisfacenti. Immagine dell'insulina umana realizzata con il programma RASMOL. Le due catene vengono colorate con colori diversi. Dati ricavati da Protein Data Bank, ID codes: 1HIU. Allineamento della sequenze dell insulina umana e animale. 134

135 BIOINFORMATICA Le immagini riportate indicano il motivo per cui si è scelto il suino per estrarre l'insulina. L'identità delle sequenze è per il 94% con il coniglio, 89% per il suino, e 87% per il bovino. La comprensione e la costruzione di programmi che consentano di definire l'allineamento di proteine o delle relative sequenze è una impresa complessa; i programmi attuali si basano su un concetto molto semplice chiamato progressive alignement, ideato da Sankoff nel L'idea dell'esistenza di un allineamento dipende dalla contemporanea esistenza di una relazione biologica fra le proteine, o meglio dall'esistenza di una relazione filogenetica tra le proteine. Esistono differenti algoritmi che risolvono il problema ma con approcci differenti e sviluppi nelle procedure di calcolo diversificati. Parliamo di allineamenti multipli quando confrontiamo più di due sequenze. La BSE (Bovine Spongiform Encephalopathy) conosciuta anche come malattia della mucca pazza, scrapie e CJD (Creutzfeldt-Jakob-Disease) sono tre malattie che sono relativamente simili e possono colpire i bovini, gli ovini e l'uomo (nel dicembre 1997, il premio Nobel venne conferito a Stanley Prusiner, per le ricerche sul prione). La malattia non sembra essere dovuta ad un virus, batterio, fungo ma ad una sorprendente proteina chiamata prione. Questa proteina corrisponde ad un gene che si trova nel genoma di tutti i vertebrati dall'uomo al pesce. Normalmente questa proteina agisce a livello del sistema nervoso con un meccanismo non completamente conosciuto. Il gene è piccolo, consiste in 771 nucleotidi che producono una proteina di 257 aminoacidi, tale proteina viene espressa in molti, ma non tutti i tessuti animali, solitamente all'esterno della membrana cellulare. Il gene è stato sequenziato in circa 70 specie per stabilire quali siano le differenze nella struttura al fine di comprendere l'esistenza di barriere tra le specie. Come possiamo ora conoscere le sequenze delle diverse specie. Colleghiamoci a GenBank Inseriamo il termine della ricerca 'prion'. Utilizziamo il bottone Clicchiamo next sul bottone Retrieve XXX Documents Possiamo selezionare le sequenze del bovino, della pecora, del topo e dell'uomo, che osserviamo ora riportate separatamente. >cow prion MVKSHIGSWILVLFVAMWSDVGLCKKRPKPGGGWNTGGSRYPGQ GSPGGNRYPPQGGGGWGQPHGGGWGQPHGGGWGQPHGGGWGQPHGGGGWGQGGSHSQWNKPSKPKTNMKHVAGAAA AGAVVGGLGGYMLGSAMSRPLIHFGNDYEDRYYRENMHRYPNQVYYRPVDQYSNQNNFVHDCVNITVKEHTVTTTT KGENFTETDIKMMERVVEQMC TQYQRESQAYYQRGASVILFSSPPVILLISFLIFLIVG >sheep prion MVKSHIGSWILVLFVAMWSDVGLCKKRPKPGGGWNTGGSRYPGQ GSPGGNRYPPQGGGGWGQPHGGGWGQPHGGGWGQPHGGGWGQPHGGGGWGQGGSHSQWNKPSKPKTNMKHVAGAAA AGAVVGGLGGYMLGSAMSRPLIHFGNDYEDRYYRENMYRYPNQVYYRPVDQYSNQNNFVHDCVNITVKQHTVTTTT KGENFTETDIKIMERVVEQMCI TQYQRESQAYYQRGASVILFSSPPVILLISFLIFLIVG >mouse prion MANLGYWLLALFVTMWTDVGLCKKRPKPGGWNTGGSRYPGQGSP GGNRYPPQGGTWGQPHGGGWGQPHGGSWGQPHGGSWGQPHGGGWGQGGGTHNQWNKPSKPKTNFKHVAGAAAAGAV VGGLGGYMLGSAMSRPMIHFGNDWEDRYYRENMYRYPNQVYYRPVDQYSNQNNFVHDCVNITIKQHTVVTTTKGEN FTETDVKMMERVVEQMCVTQYQKESQAYYDGRRSSSTVLFSSPPVILLISFLIFLIVG >human prion MANLGCWMLVLFVATWSDLGLCKKRPKPGGWNTGGSRYPGQGSPGGNRYP PQGGGGWGQPHGGGWGQPHGGGWGQPHGGGWGQGGGTHSQWNKPSKPKTNMKHMAGAAAAGAVVGGLGGYMLGSAM 135

136 BIOINFOSTAT SRPIIHFGSDYEDRYYRENMHRYPNQVYYRPMDEYSNQNNFVHDCVNITIKQHTVTTTTKGENFTETDVKMMERVV EQMCITQYERESQAYYQRGSSMVLFSSPPVILLISFLIFLIVG. Tali sequenze per essere confrontate devono essere allineate ed elaborate trasferendole ad un appropriato programma. I PROGRAMMI PER L'ALLINEAMENTO MULTIPLO. CLUSTAL W. Analizziamo ora alcuni dei programmi maggiormente utilizzati iniziando da CLUSTAL W, il programma è disponibile per molte piattaforme, si basa sull'allineamento progressivo, il programma prende una serie di sequenze e calcola per ogni coppia gli allineamenti. Sulla base di questi confronti si costruisce una matrice delle distanze basata sulla distanza di ogni coppia di sequenze. La matrice delle distanze costituisce la base per la costruzione di un albero filogenetico basandosi sul metodo della vicinanza o prossimità. Come si è visto in precedenza le difficoltà insorgono quando si introducono gaps per "accomodare" sequenze divergenti, in questo caso vengono introdotte delle penalità. CLUSTAL W nasce come programma UNIX, che può essere lanciato semplicemente digitando al prompt il comando clustalw. 136

137 BIOINFORMATICA **************************************************************************** CLUSTALW(1.60) Multiple Sequence Alignements **************************************************************************** 1-Sequence Input from disc 2-Multiple Alignements 3-Profile/Structure Alignements 4-Phylogenetic trees S. Execute a system command H. Help X. EXIT (leave program) Your choice: 1 ******************************************* Le sequenze possono essere allineate, selezionando l'opzione 1, e indicando il nome del file dove sono contenute le sequenze. Sequence should be in 1 file 6 formats accepted: NBRF/PIR, EMBL/SwissProt, Pearson (Fasta), GDE clustal, GCG/MSF Enter the name of the sequence file: PIPPO.seqs A questo punto si ritorna al menu principale e si selezione la seconda opzione Multiple Alignements. **************************************************************************** ******* Multiple Alignements MENU ********* **************************************************************************** 1-Do complete multiple alignements now (Slow/Accurate) 2-Produce guide tre file only 3-Do alignement using old guide tree file 4-Toggle Slow/Fast pairwise alignements= SLOW 5-Pairwise alignements parameters 6-Multiple alignements parameters 7-Reset gaps between alignments? = ON 8-Toggle screeb display = ON 9-Output format options S. Execute a system command H. Help or press (RETURN) to go back to main menu X. EXIT (leave program) Your choice: 1 ************************************************ 137

138 BIOINFOSTAT La serie numerosa delle opzioni che possiamo trovare influenza i risultati dell'analisi dell'allineamento multiplo delle sequenze. Alla opzione 6 possiamo indicare l'utilizzo di una matrice di scoring (BLOSUM o PAM) e possiamo ad esempio penalizzare in modo diverso la presenza o l'assenza di specifici residui e la loro eventuale sostituzione. Alla fine otteniamo una figura come quella riportata precedentemente, le posizioni nelle quali si ha una assoluta conservazione si indicano con un asterisco *, mente uno o due punti indicano la presenza di una zona conservata. MultAlign. Il programma venne ideato nel 1988 da Corpet, e si basa sulla stessa filosofia del programma Clustal W, si differenzia per il procedimento di calcolo del clustering, viene creata una prima matrice basata sullo score degli allineamenti e successivamente viene eseguito un processo di iterazione fino al momento in cui si ottiene il migliore cluster. È possibile utilizzare questo programma con un collegamento all'inra di Toulouse. Si possono utilizzare le sequenze nel formato FASTA, ed inserirle in un apposito box. Una serie di menu a tendina facilitano l'inserimento dei parametri del programma. In linea generale è preferibile modificare solamente i parametri relativi alla matrice dello scoring. Quando le sequenze vengono sottoposte al server, l'elaborazione dei dati comporta che in output venga proposta una sequenza definita come consensus. Se le sequenze vengono mantenute integralmente si adotta la lettera maiuscola, se nelle sequenze la conservazione è elevata ma non totale si utilizza la lettera minuscola. Il programma si differenzia dagli altri in quanto adotta nella riga del consesus una simbologia relativa alle sostituzioni conservative. I simboli utilizzati sono! % # $ Evidentemente, date le premesse, i risultati che si possono ottenere con i programmi menzionati sono differenti. ESEMPIO DI OUTPUT CON MULTALIGN Symbol comparison table: blosum62 Gap weight:12 Gap length weight: 2 Consensus levels: high=90% low= 50% Consensus symbols:! is anyone of IV $ is anyone of LM % is anyone of FY # is anyone of NDQEBZ MOTIVI E MODELLI. Numerosi altri metodi sono stati individuati per esaminare una singola sequenza, in particolare esistono dei metodi che consentono di valutare la presenza di un motivo e si rivelano particolarmente utili per costruire delle famiglie di proteine partendo da una sequenza anche molto piccola. Per queste finalità dei programmi specializzati sono attualmente disponibili, i principali sono: PROFILESCAN BLOCKS MOST 138

139 BIOINFORMATICA PROBE ProfileScan è un programma basato sull'algoritmo di Gribskov (1987), ed utilizza un metodo chiamato pfscan per trovare le similarità tra una proteina e una sequenza di interrogazione di una libreria di profili. Le librerie di profili sono contenuti in PROSITE che utilizza i motivi e il modello con una tecnica conosciuta come fingerprint. La seconda libreria è Pfam che differisce dalle altre librerie per il particolare che l'allineamento iniziale deve essere introdotto manualmente. L'utente può selezionare la sensibilità della ricerca e includerà anche i casi limite. Blocks utilizza il concetto del blocco per identificare una famiglia di proteine, piuttosto che utilizzare una sequenza individuale (Henikoffe Henikoff 1996). L'idea del blocco deriva dalla notazione del motivo, cioè alla presenza di una serie di aminoacidi che si conservano e conferiscono una specifica funzione o una particolare struttura alla proteina. Il termine blocco si riferisce all'allineamento non alla sequenza individuale. Una proteina può quindi contenere uno o più blocchi, che conferiscono funzioni o che caratterizzano funzionalmente la proteina. Quando una ricerca per blocchi viene iniziata utilizzando una sequenza di interesse, per ogni specifico allineamento viene utilizzata una particolare matrice dello scoring chiamata PSSM. Questa matrice di scoring differisce da quelle che si sono viste precedentemente, ad esempio BLOSUM. Se la sequenza di input da analizzare è il DNA si deve introdurre anche un numero di codice genetico nella ricerca. MOST è chiamato anche Motif Search Tool (Tatusov 1994), è un programma che solitamente gira su macchine Unix e viene impiegato per trovare la presenza di motivi conservati. Il programma utilizza una procedura chiamata alignement block per un numero qualsiasi di sequenze e per una lunghezza qualsiasi. Il programma non sopporta la presenza di gaps. I blocchi degli allineamenti vengono usati per generare una matrice pesata. Lo score viene calcolato per ogni segmento di lunghezza L, sommando in modo appropriato gli elementi nella matrice pesata. Una indicazione di tipo statistico viene fornita circa la bontà dell'allineamento dei blocchi e si utilizza una procedura di tipo iterativo per trovare la migliore soluzione. Un parametro importante da considerare in MOST è il rapporto R che rappresenta il numero dei falsi positivi diviso per il numero dei veri positivi. PROBE rappresenta una programma di ultima generazione (Neuwald et al. 1997) molto simile al MoST in quanto utilizza una strategia di tipo interattivo, ma con differenze nei meccanismi della ricerca. PROBE utilizza un ricerca per coppie di sequenze, ad esempio la sequenza A è in relazione con una sequenza B, la sequenza B viene messa in relazione con una sequenza C, questo implica per una proprietà transitiva che A sia in una certa relazione con C. Viene così costituita una prima collezione di sequenze, si inizia una nuova ricerca per trovare sequenze che potrebbero essere sfuggiti al primo passaggio; il programma PROBE continua fintanto che le collezioni non sono convergenti. Per maggiori informazioni sui programmi si rimanda a: 139

140 BIOINFOSTAT CLUSTAL MSA MultAlign PROSITE PROBE ftp://ncbi.nlm.nih.gov/pub/newwald/probe1.0/ ANALISI FILOGENETICA. La filogenesi è lo studio delle relazioni evolutive, l'analisi filogenetica è il modo con cui facciamo delle inferenze su queste relazioni. Nella storia dell'analisi filogenetica si ricorre spesso ad una rappresentazione grafica ad albero (treelike) che costituisce una sorta di albero genealogico o di pedigree. Numerosissimi algoritmi sono stati proposti, molti programmi per il calcolatore e sono a disposizione dei ricercatori per queste finalità, ma in ogni caso i risultati e la validità delle conclusioni dipendono dalla struttura e dalle dimensioni del database utilizzato. Il pericolo di ingenerare risultati non corretti è maggiormente elevato nell'analisi filogenetica rispetto alle altre discipline scientifiche. Nel nostro caso la maggior difficoltà nell'analisi filogenetica è quella di definire un modello in grado di costruire un certo albero. Esempio di albero filogenetico costruito con il programma CLUSTAL per sequenze di 5.8S DNA di piante funghi e protisti. I taxa e le sequenze corrispondono agli acronimi utilizzati in ambito filogentico. ELEMENTI DEI MODELLI FILOGENETICI. La costruzione di un albero filogenetico presuppone l'adozione di un modello particolare di evoluzione. I modelli filogenetici richiedono inoltre una serie di assunzioni di default. La sequenza è corretta e origina da una specificata sorgente. Le sequenze sono omologhe (discendono da una sequenza ancestrale). Ogni posizione in una sequenza è omolga con ogni altra nell'allineamento. Ogni sequenza multipla inclusa in una analisi comune possiede una storia genetica comune. Il campionamento dei taxa deve essere adeguato a risolvere il problema di interesse. Formattati: Elenchi numerati 140

141 BIOINFORMATICA La variabilità delle sequenze tra i campioni contiene un segnale filogenetico adeguato per risolvere il problema di nostro interesse. La sequenza nel campione evolve secondo un semplice modello stocastico. Tutte le posizioni nella sequenza evolvono secondo un processo stocastico. Ogni posizione nella sequenza evolve in modo indipendente. Errori nelle analisi filogenetiche possono essere spesso attribuiti alla violazione di uno o più dei requisiti, sfortunatamente i metodi in uso non offrono informazioni e indicano la violazione degli assunti. ANALISI FILOGENETICA DEI DATI. Possiamo indicare in quattro fasi lo studio filogenetico del DNA, che analizzeremo in modo indipendente ma che rappresentano una unica componente nell'analisi filogenetica. Le fasi sono: 1- COSTRUZIONE DEL MODELLO DI ALLINEAMENTO 2- MODELLO DI SOSTITUZIONE 3- COSTRUZIONE DELL'ALBERO 4- VALUTAZIONE DELL'ALBERO I metodi di analisi si possono utilizzare per il DNA, per le proteine data la grande diversità biochimica degli aminoacidi si devono porre maggiori parametri matematici. Vedremo poi che esistono diverse modalità con le quali possiamo costruire il nostro albero. 1- ALLINEAMENTO- L'analisi filogenetica è data da un allineamento multiplo delle sequenze, nella letteratura la base dell'allineamento individuale viene definito come SITES. Questi sites sono equivalenti a characters. Allineamenti strutturali di RNA. Unica eccezione è data dal programma STATALING che utilizza una notazione di diversa. La selezione delle procedure di allineamento rappresenta il primo passo per l'estrazione dei dati filogenetici da un data set. A questo punto è necessario considerare come vogliamo trattare le regioni definite nell'allineamento come ambigue ed in particolare le inserzioni, le delezioni o molto più semplicemente i gaps per la costruzione dell'albero filogenetico. Dall'analisi filogenetica possiamo ottenere due soluzioni alternative. 141

142 BIOINFOSTAT LE PROCEDURE DI ALLINEAMENTO. Le procedure di allineamento multiplo fanno ricorso solitamente a delle subroutine che costringono ad utilizzare degli attributi o delle opzioni. DIPENDENZA DAL COMPUTER RICHIESTA FILOGENICA PARAMETRI DI ALLINEAMENTO RAPPRESENTAZIONE OTTIMIZZAZIONE MATEMATICA NONE-PARTIAL-COMPLETE NONE-A PRIORI-RECURSIVE A PRIORI-DYNAMIC-RECURSIVE PRIMARY-HIGHER-OTHERS STATISTICAL- NON STATISTIC Una tipica procedura di analisi filogenetica implica inizialmente l'impiego del programma CLUSTAL W con un allineamento manuale ed il successivo impiego dei programmi di creazione dell'albero filogenetico. La procedura che dobbiamo seguire è riportata nello schema seguente, in questo schema facciamo riferimento alla nomenclatura anglosassone. Computer dependence - Il manuale indica le procedure adottate in forma implicita per la costruzione dell'albero filogenetico, queste procedure in generale sono ottimizzate per la costruzione di un albero secondo la procedura definita come MP. I criteri per la costruzione possono essere: 1-MP- Maximum parsimony 2-ML- Maximum likelihood 3-DISTANCE Questi sono definiti criteri di divergenza che determinano tre tipologie di alberi differenti. Abitualmente un approccio totalmente dipendente dal computer indica che assumiamo che il programma produca un allineamento "corretto". In realtà dovremo fare particolare attenzione nelle scelte in quanto i programmi e gli algoritmi che utilizziamo non sono ottimizzati per le analisi filogenetiche (Thomson 1994). Phylogenetic criteria. Molti programmi utilizzano una guida per la costruzione filogenetica dell'albero (guide tree) che consente sulla base di un esplicito criterio filogenetico di definire l'allineabilità delle sequenze. I programmi che consentono di utilizzare questa procedura sono CLUSTAL, PileUp, ALIGN. I programmi come SAM e MACAW sono esempi di programmi che non richiamano criteri filogenetici espliciti ma il processo filogenetico può essere mimato manualmente. Alcuni programmi sono stati concepiti per ottimizzare gli allineamenti ricorrendo a procedure di tipo ricorsivo e costruire un albero filogenetico (TreeAlign e MALIGN). Dal punto di vista teorico esiste il problema di valutare un set di soluzioni e definire quella "migliore". 142

143 BIOINFORMATICA Alignment Parameters Estimation. Dipendono da tutti gli elementi del modello evolutivo, i parametri sono dinamici e sono direttamente implementati nel programma CLUSTAL., mentre nel programma SAM si ricorre ad un sistema di pesi. Alignement of Primary Versus Higher Order Sequence Structure. In questo caso si tiene conto dell'importanza filogenetica del mantenimento di una certa omologia della struttura secondaria e terziaria della sequenza. Un approccio di tipo strutturale è molto importante in quanto consente di analizzare dal punto di vista funzionale le sequenze. I programmi sopra menzionati non sono in grado di effettuare questo tipo di analisi si deve quindi "forzare" per avere una evoluzione della struttura consistente con la filogenesi. Albero filogenetico evolutivo. Mathematical optimization. Alcuni programmi (SAM e MACAW), ma non tutti sono in grado di fornire una ottimizzazione in accordo con certo modello statistico. Rimane la difficoltà che non esiste nessun metodo che possa dirci quale modello di allineamento sia meglio di un altro (Morrison e Ellis 1997). DATI FILOGENETICI DELL'ALLINEAMENTO. Un allineamento che include variazioni nella lunghezza delle sequenze dipende dalle modalità di trattamento con cui vengono considerate le ambiguità. Il caso estremo può essere rappresentato dall'eliminazione dalla elaborazione delle zone che presentano un gap, in questo caso noi possiamo considerare un modello semplice che analizza gli allineamenti come un semplice modello di sostituzione. Lo svantaggio di questo approccio è che i metodi di MP e ML nella costruzione dell'albero interpretano i dati mancanti aventi una divergenza di 0, mentre i gaps riflettono una elevata divergenza. Il programma PAUP 4.0 (Swofford 1997) consente di estrapolare le elaborazioni delle distanze tra le regioni gap. Il metodo MP (massima parsimonia) è il solo metodo che consente di incorporare i gaps allineabili come caratteri. Questa possibilità consente due scelte: o di includere un carattere addizionale (un quinto nucleotide ad esempio), o creare un nuovo set di caratteri indipendenti per la sostituzione. La scelta della strategia da adottare è dipendente dalla lunghezza del gap e dalla conservazione delle basi nella sequenza. Le strategie per la valutazione dei gaps sono assai complicate ed esulano dalle finalità di questa rassegna, si ricorre a delle tecniche definite come tecniche di post allineamento. Il programma MALIGN (Wheeler e Gladstein 1994) non richiede il ricorso a tecniche di postallineamento, quando si presentano delle zone di ambiguità queste possono essere estrapolate ed analizzate separatamente con un altro programma. Il programma adotta una strategia di ottimizzazione ricorsiva in funzione del migliore albero filogenetico basandosi sul metodo della Massima Parsimonia. Il programma MALIGN consente di avere degli allineamenti concatenati ottimizzati sulla base di un range definito come gap cost. Nei sites delle regioni con allineamenti ambigui, probabilmente non esiste una completa 143

144 BIOINFOSTAT omologia pertanto il programma introduce un rumore o un errore di fondo nella costruzione dell'albero. MODELLO DI SOSTITUZIONE. I modelli con i quali valutiamo le sostituzioni possono assumere un significato fondamentale in quanto possono influenzare sia l'allineamento sia la costruzione stessa dell'albero filogenetico. Al momento attuale i modelli di sostituzione sono ritenuti validi per l'analisi dei nucleotidi, mentre per le proteine non possiamo utilizzare programmi affidabili. Il concetto di base è dato dall'osservazione che le sostituzioni sono maggiormente frequenti per le basi ritenute simili. A C G T Nel caso del DNA si possono osservare delle transizioni e delle transversioni come riportato nello schema seguente. Lo schema con il quale valutiamo le sostituzioni è una semplice matrice. A Come potete notare dall'analisi della matrice i valori riportati indicano il "costo" della sostituzione, pertanto una transversione C costa il doppio di una transizione. G Un approccio alternativo viene applicato nelle situazioni definite come non stazionarie, questo modello è chiamato log-det. Il T principio è sostanzialmente simile al precedente, si ricorre ad una matrice 4 x 4 ma la distanza viene misurata come logaritmo del determinante. Nell'esempio riportato vengono confrontati 1361 siti del DNA allineati tra gli spinaci e un fungo. Nelle caselle sono indicate la distribuzione delle basi allineate del fungo verso le basi allineate degli spinaci. SCLETOTINUM A C G T Totali Spinacia A Olearia C G T Totali I valori delle diagonali indicano i sites in cui esiste una perfetta identità. Notiamo che negli spinaci i siti che sono C e G sono A e T nel fungo ( ) = 83, per contrasto un numero ridotto di siti C e G nel fungo sono A e T negli spinaci ( ) = 47. Notare anche l'elevato numero delle transizioni ( ) = 96, mentre il numero delle transversioni è minore ( ) = 57, il numero totale delle differenze è di 153 ( ), di queste differenze le transizioni di C con T e di T con C rappresentano il 38% (58/153). METODI PER LA COSTRUZIONE DELL ALBERO FILOGENETICO. Esistono diversi metodi che possono essere raggruppati secondo due distinti criteri. Algoritmico. Si tratta di individuare una funzione di ottimizzazione che si genera attraverso una serie di passaggi. Il metodo più conosciuto è Neighbor Joining (NJ) che crea un albero che utilizza un approccio basato sulla distanza che viene ottimizzata contando sulla proprietà della addittività. Basato sui caratteri. Questo approccio consente di costruire un albero ottimizzando il pattern dei dati per ogni carattere, la distanza non è fissata ma viene determinata in base alla topologia dell albero. I più comuni metodi sono MP (Maximum Parsimony) e ML (Maximum Likelihood). 144

145 BIOINFORMATICA CALCOLO DELLA DISTANZA. I metodi basati sul calcolo della distanza impiegano l analisi della dissimilarità per derivare l albero. Il metodo della distanza consente di costruire il vero albero se tutti gli elementi del calcolo della divergenza vengono accuratamente misurati. Le difficoltà scaturiscono quando si hanno successive mutazioni che possono mascherare le precedenti mutazioni. In pratica, l impiego di una matrice indice delle mutazioni multiple presuppone che alcune coppie identifichino mutazioni multiple e che queste aumentino in proporzione con l aumento della divergenza delle sequenze. Il calcolo della distanza delle coppie è effettuato con la tecnica definita maximum-likelihood (massima verosimiglianza), il programma più popolare in questo ambito è PAUP 4.0. I metodi basati sulla distanza non richiedono in generale elevate capacità di calcolo. Il più comune pacchetto impiegato in questo settore è UPGMA (Unweighted Pair Group Method with Arithmetic Mean) che è un programma di clustering che congiunge tre rami con il criterio della più elevata similarità. Non viene considerato un metodo evolutivo sulle distanze e genera un una accurata topologia con la lunghezza dei rami solo in particolari condizioni (Swofford 1996). L algoritmo di Neighbor Joining (NJ) (unione del vicino) viene comunemente utilizzato come criterio di ottimizzazione nella costruzione dell albero. L albero completo viene decomposto in una serie di stelle che vengono risolte e successivamente inserite nell albero. Si tratta di un programma che risulta molto veloce. Scomposizione a stella. Il metodo Fitch-Morgolish (FM) utilizza una procedura che cerca di massimizzare il fit delle distanze osservate tra le coppie per costruire un albero basato sui quadrati degli scarti di tutti i possibili percorsi (lunghezze) nei rami dell albero. Alcune delle differenze nel calcolo della varianza possono essere pesate. La non completa indipendenza nella stima della varianza può ingenerare errori nella costruzione dei rami. L algoritmo ME (Minimum Evolution) è basato sullo steso principio del metodo di Fitch- Morgolish, ma lavora per individuare la minore distanza quadratica tra i dati osservati e quelli misurati sull albero, l inconveniente di questo metodo è che non utilizza tutte le possibili coppie di possibili percorsi. L impiego delle procedure ME e FM porta in generale agli stessi risultati negli studi di simulazione. Il metodo ME viene maggiormente proposto nei programmi come METREE e PHYLIP che offre un numero considerevole di modelli di sostituzione, ma non modelli per correggere l eterogeneità. Il pacchetto MEGA include una opzione per la correzione gamma delle proteine. Studi di simulazione indicano che la procedura UPGMA non offre buoni risultati, anche se è il più citato nelle pubblicazioni scientifiche. METODI BASTI SUI CARATTERI. Questi metodi sono basati sono basati sul calcolo della posizione di ogni singola base nell allineamento sulla base delle posizione di tutte le altre basi. I metodi che possiamo utilizzare sono sostanzialmente il metodo di massima parsimonia e quello di massima verosimiglianza. 145

146 BIOINFOSTAT Metodo MP (Maximum Parsimony) viene considerato un metodo molto semplice ed accurato in molte situazioni, esistono molte varianti al metodo originale proposto da Swoford et al Per ovviare ad uno dei maggiori inconvenienti del metodo, errori nelle sostituzioni, possono essere introdotti sistemi di ponderazione nella matrice di sostituzione, questo implica un forte rallentamento nella velocità di calcolo. Analisi e simulazioni hanno dimostrato che il metodo MP, non offre migliori risultati rispetto ai metodi ME e ML. Metodo ML (Maximum Likelihood). Il metodo ricerca l albero filogenetico che è in grado di offrire la massima verosimiglianza, calcolando la probabilità che un particolare pattern sia prodotto da un particolare processo di sostituzione. La somma totale delle probabilità è definita come likelihood of tree e rappresenta la probabilità complessiva dell albero. Al fine di comprendere i meccanismi che sono alla base dei metodi sopra menzionati è necessario offrire la lettore una spiegazione sui principi che sono alla base dei metodi sopra menzionati. Il metodo della matrice conta semplicemente il numero delle differenze tra due sequenze. Il numero si riferisce ad una distanza dell evoluzione, e la dimensione esatta dipende dal modello utilizzato per valutare l evoluzione. L albero filogenetico è calcolato sulla base della matrice delle distanze adottando un algoritmo di tipo iterativa che parte con la sequenza maggiormente simile o minimizzando la distanza dei rami. Il principio che è alla base del metodo di parsimonia è un algoritmo che ricerca l albero filogenetico che richiede il minor numero di cambiamenti per spiegare le differenze osservate nei taxa oggetto dello studio. Per contro il modello ML tende come si è visto a valutare in termini probabilistici il modello che è stato generato dai dati di base..inizialmente il modello assume che le probabilità di cambiamento siano le stesse per ogni nucleotide o per ogni aminoacido. Il numero di alberi filogentici possibili aumenta in modo esponenziale con il numero dei taxa e diviene astronomico già con sole 50 sequenze. In molti casi, le limitazioni computazionali permettono l analisi di un numero limitato di alberi. Gli algoritmi che i genetisti possono utilizzare variano da quelli che offrono tutti i possibili alberi (algoritmi esaustivi) a quelli che offrono solo le informazioni su un numero ristretto di alberi filogenetici con un numero ridotto di modificazioni. Esistono quindi due approcci diversi per l individuazione dell albero filogentico migliore. Il metodo esaustivo e il metodo definito branch-and-bound (BB). La scelta pratica d adottare dipende dal numero dei taxa e dalla struttura da analizzare, se il numero dei taxa è inferiore a 20 è da preferire il metodo BB. Molti metodi impiegano un approccio euristico, cioè utilizzano algoritmi per ricercare delle famiglie, chiamate anche isole, dove sono presenti alberi non ottimali per una soluzione ottimale definita come peaks. Come si è intuito esistono diversi algoritmi che permettono con gradi di rigore diverso di ottenere delle isole e dei picchi. Numerose sono quindi le strategie che possono essere impiegate per la costruzione di un albero filogenetico, molti analisti preferiscono ad esempio spendere molto tempo nell analisi delle isole; questo comporta che possono essere prodotti molti alberi di partenza. A livello di programmi da utilizzare molti Autori ritengono che il programma PAUP sia da considerarsi il miglior programma disponibile. VALUTAZIONE DEGLI ALBERI E DEI DATI. Diverse sono le procedure disponibili per valutare il segnale filogenetico e la robustezza dell albero. I più popolari test di valutazione sono il test di skewness e il test di permutazione. Programmi per l analisi filogenetica. PHYLIP creato da Joe Felsenstein dell Università di Washington, è in realtà è un raccolta di oltre 30 programmi che coprono tutti gli aspetti dell analisi; il programma è gratuito e disponibile per diverse piattaforme (Mac, Unix, Dos ) 146

147 BIOINFORMATICA PROTDIST è un programma dedicato al calcolo della matrice delle distanze delle proteine, dispone di tre modelli per la costruzione dell albero filogenetico, ed è un programma veloce e realistico. PROTPARS è un programma che utilizza il principio della parsimonia. DNADIST calcola la distanza in termini matriciali di una sequenza di nucleotidi. PAUP viene considerato nella versione 4 molto completo, esiste per molte piattaforme DOS, Mac, Win e Sun Sparc. Il programma utilizza uno stano formato chiamato NEXUS, ma è in grado di importare file da altri programmi come Phylip, NBRF-PIR. Esistono altri programmi che risultano più limitati nelle procedure e nella portabilità. Questi programmi sono: FastDNAml, MACCLADE, MEGA plus METREE, MOLPHY e PAML.. Per maggiori informazioni sui programmi si rimanda a: PHILIP TREE-OF-LIFE TreeWiew ReadSeq SEQUIO 147

148 BIOINFOSTAT GRAFICA MOLECOLARE Roger Sayle è stato il creatore di Rasmol, un programma vero e proprio di grafica molecolare concepito per la visualizzazione di proteine, acidi nucleici e piccole molecole. Il programma aiuta a visualizzare, insegnare e generare immagini pubblicabili di alta qualità. La peculiarità di questo programma è che opera su una vasta gamma di sistemi operativi. Prima di incominciare è necessario scaricare Rasmol da internet. Il programma funziona senz altro meglio con Netscape, ma anche con l ultima versione di internet Explorer. I siti per scaricare il programma sono molteplici, /getras.htm; per avere però pieno accesso al programma è necessario scaricare dei plug in, chime, per l esattezza, dal sito altrimenti non si riescono a visualizzare le molecole. Una volta scaricati i programmi si può procedere. Il programma legge file di coordinate molecolari e mostra in modo interattivo la molecola sullo schermo con la possibilità di operare svariate modifiche sia del tipo di rappresentazione che dei colori. I files supportati da questo programma sono principalmente i PDB (Protein Brookheaven Databank); Mol2 formats; MDL (Molecular Design Limited) e Mol file formats, per creare molecole in 3D. La molecola caricata può essere mostrata solo con legami, lineari, cilindrici, con sfere, con eliche solide o parallele, con legami ad idrogeno etc. E chiaro che l utilizzo del programma per costruire molecole da zero richieda una conoscenza di tipo chimico strutturale non indifferente; ma tale interfaccia può risultare molto utile anche a chi di chimica strutturistica mastica poco ma necessita un ausilio visivo veloce ed efficace per comprendere una molecola semplice o molecole complesse come le proteine. Perciò questo capitolo ha lo scopo di fornire sommariamente una guida semplice all utilizzo di questa interfaccia per capire le potenzialità di questo strumento, sfruttandolo anche per eventuali pubblicazioni che sicuramente si arricchiscono e si abbelliscono se posseggono immagini in 3d. Seguiranno adesso degli esempi esplicativi su come utilizzare il programma per la semplice visualizzazione. Si tratterà prima una molecola semplice, per la precisione la glicina; poi il DNA e infine una molecola complessa proteica, l emoglobina. ESEMPIO 1. Prendiamo ad esempio la glicina, che è l amminoacido più semplice. Questo rappresentazione, in codice chiamata ball and stick, (sinistra) non rappresenta in realtà la vera taglia molecolare e la forma della molecola. 148

149 BIOINFORMATICA A destra il modo di rappresentare la molecola viene chiamato spacefilling, dà un idea dell ingombro sterico reale della molecola ma nasconde la struttura dietro alla superficie. Infine, sotto a sinistra, in questa rappresentazione viene evidenziato solo lo scheletro del peptide (backbone). La visualizzazione solo in stick mostra solo i legami ed è la migliore per guardare i legami attraverso molecole complesse. ESEMPIO 2. Analizziamo ora le potenzialità che il programma offre per la comprensione e la visualizzazione tre D della molecola del DNA. Questo esempio in particolare è stato tratto da uno dei numerosi tutorial di rasmol che esistono on-line, infatti solitamente ci si trova l immagine da sola su sfondo nero e le modifiche si possono attuare solamente dal menù a cascata che si attiva con il tasto destro del mouse. 149

150 BIOINFOSTAT Cliccando sulle lettere si ottiene la legenda delle stesse, che poi è quella dei simboli della tavola periodica degli elementi, (C= carbonio, H idrogeno e così via) e quella dei colori utilizzati. CPK, così viene chiamato questa attribuzione cromatica acronimo che deriva da Corey, Pauling, Koltun. Premendo X spin si ottiene la rotazione della doppia elica intorno all asse delle ascisse; mentre con Y spin si ottiene la rotazione della stessa sull asse delle ordinate, ottenendo la situazione seguente: La funzione end dà una visione della doppia elica in sezione e la visione side la vista laterale, infine ½ e 2X permettono lo zoom o la visione ridotta dell intera molecola. Con backbone si evidenzia appunto lo scheletro che forma la doppia elica. Cliccando sul tasto bases invece si evidenziano (sempre in modalità sticks) le basi puriniche e pirimidiniche del DNA. H bonds invece permette ovviamente di evidenziare gli importantissimi legami ad idrogeno che permettono alla doppia elica di esistere in tale conformazione. ruotare la molecola nello spazio. Le funzioni thin e thick permettono di visualizzare l intera molecola senza spessore o con spessore tridimensionale; spacefill invece visualizza la molecola con il relativo reale ingombro sterico. Infine AT e GC permettono di visualizzare rispettivamente solo il legame tra le basi accoppiate, adenina timina/ guanina citosina. In qualsiasi momento, cliccando col tasto destro del mouse, è possibile modificare l aspetto della molecola, sia dal punto di vista colorimetrico che dal punto di vista grafico, nonché evidenziare determinati atomi o residui, colorarli in modo diverso, e vedere 150

151 BIOINFORMATICA ESEMPIO 3. L emoglobina è una proteina formata da quattro distinte catene polipetidiche, che con rasmol si possono facilmente distinguere per colore, Alfa 1, Beta 1, Alfa 2, BBeet ttaa Ci sono anche 4 complessi eminici (col ferro, evidenziati in rosso). Questo modo di colorare la struttura dell emoglobina si ottiene cliccando sempre col tasto di destra del mouse, dove viene mostrato il menù a cascata; si sceglie la modalità Van der Waals radii, per ottenere il reale ingombro sterico; dopodiché si colora per catena (chain). In rosso si evidenziano i gruppi eme. Un altro modo di visualizzare l emoglobina evidenziando le sue peculiarità strutturali è quello di rendere globosi, selezionandoli, i gruppi eme, e lasciando nella modalità stick e colorando per catene il resto della molecola. 151 Nella figura accanto invece si sono evidenziati solo i quattro gruppi eme con l atomo di ferro, oscurando il resto della molecola con l opzione change color to black dopo averla selezionata opportunamente. Infine si possono tra le altre opzioni visualizzare le eliche della strutture primarie: display cartoons, che con delle frecce dà anche l orientamento delle eliche; mentre ribbons dà le eliche senza le frecce. Altri modi di studiare una molecola d interesse con rasmol sono ad esempio evidenziare la carica e la sua distribuzione spaziale, oppure visualizzare tutti gli amminoacidi che la compongono. Per concludere questo breve excursus sul programma, è possibile esportare le immagini nella maniera in cui si sono elaborate con un formato gif. Se invece si salvano con l estensione PDB (Save Molecole As) o MOL format, si può accedere al file tramite il programma salvato rasmol, ma la molecola viene visualizzata nel formato standard originale, e non con le modificazione che eventualmente si sono operate. Inoltre è possibile trasferire molecole semplici, se si possiede un computer discreto, al programma ISIS DRAW (Transfer to ISIS DRAW dal menù a cascata) che è un programma freeware, in grado di costruire le molecole piane. Sculpt invece è un programma di accesso limitato (la versione demo dura circa tre mesi) e permette di ruotare solo parti della molecola in questione. Per accedere facilmente ai databases di proteine o di enzimi, basta andare sul ricchissimo sito cliccare su research groups, e poi su CATH (Protein Structure Classification & Prediction Group)

152 BIOINFOSTAT A questo punto si ottiene la seguente schermata: Dopodiché andando in alto a sinistra, nel riquadro rosa, si digita il nome della proteina che si desidera visualizzare (esempio lactoferrin) e quindi la chiave di ricerca è come general text, altrimenti Il PDB code (protein data base se si conosce o il cath code) e cliccando su Go! si visualizza la seguente pagina: Che dà una lista di tutte le proteine che sono state caricate sul database e cristallizzate in modi diversi, se ne sceglie una cliccando sul link prescelto (di solito la sigla è a tre lettere) e si ottiene la visualizzazione standard in rasmol della proteina prescelta. A questo punto la proteina può essere visualizzata nel modo che più interessa, tramite i canoni dettati prima. 152

Il servizio di registrazione contabile. che consente di azzerare i tempi di registrazione delle fatture e dei relativi movimenti contabili

Il servizio di registrazione contabile. che consente di azzerare i tempi di registrazione delle fatture e dei relativi movimenti contabili Il servizio di registrazione contabile che consente di azzerare i tempi di registrazione delle fatture e dei relativi movimenti contabili Chi siamo Imprese giovani e dinamiche ITCluster nasce a Torino

Dettagli

Progetto Atipico. Partners

Progetto Atipico. Partners Progetto Atipico Partners Imprese Arancia-ICT Arancia-ICT è una giovane società che nasce nel 2007 grazie ad un gruppo di professionisti che ha voluto capitalizzare le competenze multidisciplinari acquisite

Dettagli

EVOLUZIONE DELLE INIZIATIVE PER LA QUALITA : L APPROCCIO SIX SIGMA

EVOLUZIONE DELLE INIZIATIVE PER LA QUALITA : L APPROCCIO SIX SIGMA http://www.sinedi.com ARTICOLO 3 LUGLIO 2006 EVOLUZIONE DELLE INIZIATIVE PER LA QUALITA : L APPROCCIO SIX SIGMA A partire dal 1980 sono state sviluppate diverse metodologie per la gestione della qualità

Dettagli

LO STATO DELLA RICERCA SANITARIA IN ITALIA

LO STATO DELLA RICERCA SANITARIA IN ITALIA SAS Campus 2011 - Università di Milano-Bicocca, 22 novembre Business Intelligence e Analytics nell università, nel business e nel government per la crescita del Sistema Paese LO STATO DELLA RICERCA SANITARIA

Dettagli

MODELLO ORGANIZZATIVO REGIONALE PER LA GESTIONE DEL RISCHIO CLINICO.

MODELLO ORGANIZZATIVO REGIONALE PER LA GESTIONE DEL RISCHIO CLINICO. ALLEGATO A MODELLO ORGANIZZATIVO REGIONALE PER LA GESTIONE DEL RISCHIO CLINICO. il sistema organizzativo che governa le modalità di erogazione delle cure non è ancora rivolto al controllo in modo sistemico

Dettagli

RUOLO CENTRALE DEL DS NELL ACCOGLIENZA DEGLI ALUNNI DISABILI COME SENSIBILIZZARE E RESPONSABILIZZARE I DIRIGENTI

RUOLO CENTRALE DEL DS NELL ACCOGLIENZA DEGLI ALUNNI DISABILI COME SENSIBILIZZARE E RESPONSABILIZZARE I DIRIGENTI INTEGRAZIONE, ORIENTAMENTO E BUONE PRASSI RUOLO CENTRALE DEL DS NELL ACCOGLIENZA DEGLI ALUNNI DISABILI COME SENSIBILIZZARE E RESPONSABILIZZARE I DIRIGENTI L iscrizione degli alunni con certificazione L.104

Dettagli

COMITATO NAZIONALE PER LA BIOSICUREZZA E LE BIOTECNOLOGIE. Gruppo di lavoro Bioinformatica

COMITATO NAZIONALE PER LA BIOSICUREZZA E LE BIOTECNOLOGIE. Gruppo di lavoro Bioinformatica COMITATO NAZIONALE PER LA BIOSICUREZZA E LE BIOTECNOLOGIE Gruppo di lavoro Bioinformatica Linee guida per la definizione di una strategia per lo sviluppo del settore della bioinformatica in Italia con

Dettagli

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)

Dettagli

Settore Agricoltura Beni culturali e ambientali Turismo. X Gestione del territorio

Settore Agricoltura Beni culturali e ambientali Turismo. X Gestione del territorio REGIONANDO 2001 REGIONE LIGURIA Settore Assetto del territorio e Controllo Tecnico ATTIVITÀ REGIONALI PER LA QUALIFICAZIONE E SOSTEGNO DEGLI ENTI LOCALI LIGURI NELLA DIFESA DEL SUOLO E NELLA TUTELA DELLA

Dettagli

L ATI composta da Associazione Nuovi Lavori e BIC Puglia s.c.a.r.l., nell ambito del progetto URLO Una rete per le opportunità, PROMUOVE

L ATI composta da Associazione Nuovi Lavori e BIC Puglia s.c.a.r.l., nell ambito del progetto URLO Una rete per le opportunità, PROMUOVE L ATI composta da Associazione Nuovi Lavori e BIC Puglia s.c.a.r.l., nell ambito del progetto URLO Una rete per le opportunità, PROMUOVE un PROTOCOLLO D INTESA tra CONSIGLIERA PARITÀ PROVINCIALE DONNE

Dettagli

BERGAMO SMART CITY VERSO EXPO 2015. Parco Scientifico Tecnologico Kilometro Rosso - 26 novembre 2013

BERGAMO SMART CITY VERSO EXPO 2015. Parco Scientifico Tecnologico Kilometro Rosso - 26 novembre 2013 BERGAMO SMART CITY VERSO EXPO 2015 Start Up Innovative -Le imprese fanno sistema Parco Scientifico Tecnologico Kilometro Rosso - 26 novembre 2013 START UP E INCUBATORI Il Decreto Sviluppo (179/2012), introducendo

Dettagli

Diventa fondamentale che si verifichi una vera e propria rivoluzione copernicana, al fine di porre al centro il cliente e la sua piena soddisfazione.

Diventa fondamentale che si verifichi una vera e propria rivoluzione copernicana, al fine di porre al centro il cliente e la sua piena soddisfazione. ISO 9001 Con la sigla ISO 9001 si intende lo standard di riferimento internazionalmente riconosciuto per la Gestione della Qualità, che rappresenta quindi un precetto universale applicabile all interno

Dettagli

A.I.N.I. Associazione Imprenditoriale della Nazionalità Italiana Udruga Poduzetnika Talijanske Narodnosti

A.I.N.I. Associazione Imprenditoriale della Nazionalità Italiana Udruga Poduzetnika Talijanske Narodnosti L AINI ( ) è un Associazione di artigiani e di piccole e medie imprese appartenenti ai diversi settori merceologici i cui proprietari sono appartenenti alla Comunità Nazionale Italiana in Croazia (CNI),

Dettagli

Attività federale di marketing

Attività federale di marketing Attività federale di marketing Gestione e certificazione delle sponsorizzazioni Il Feedback Web Nel piano di sviluppo della propria attività di marketing, la FIS ha adottato il sistema Feedback Web realizzato

Dettagli

La tecnologia cloud computing a supporto della gestione delle risorse umane

La tecnologia cloud computing a supporto della gestione delle risorse umane La tecnologia cloud computing a supporto della gestione delle risorse umane L importanza delle risorse umane per il successo delle strategie aziendali Il mondo delle imprese in questi ultimi anni sta rivolgendo

Dettagli

TECNICO SUPERIORE PER L AUTOMAZIONE INDUSTRIALE

TECNICO SUPERIORE PER L AUTOMAZIONE INDUSTRIALE ISTRUZIONE E FORMAZIONE TECNICA SUPERIORE SETTORE INDUSTRIA E ARTIGIANATO TECNICO SUPERIORE PER L AUTOMAZIONE INDUSTRIALE STANDARD MINIMI DELLE COMPETENZE TECNICO PROFESSIONALI DESCRIZIONE DELLA FIGURA

Dettagli

La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati

La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati Affidabilità nel servizio precisione negli strumenti Chanda LPR Chanda LPR è una piattaforma

Dettagli

Lezione 1. Introduzione e Modellazione Concettuale

Lezione 1. Introduzione e Modellazione Concettuale Lezione 1 Introduzione e Modellazione Concettuale 1 Tipi di Database ed Applicazioni Database Numerici e Testuali Database Multimediali Geographic Information Systems (GIS) Data Warehouses Real-time and

Dettagli

Comune di San Martino Buon Albergo

Comune di San Martino Buon Albergo Comune di San Martino Buon Albergo Provincia di Verona - C.A.P. 37036 SISTEMA DI VALUTAZIONE DELLE POSIZIONI DIRIGENZIALI Approvato dalla Giunta Comunale il 31.07.2012 INDICE PREMESSA A) LA VALUTAZIONE

Dettagli

POLITICA DI COESIONE 2014-2020

POLITICA DI COESIONE 2014-2020 INVESTIMENTO TERRITORIALE INTEGRATO POLITICA DI COESIONE 2014-2020 A dicembre 2013, il Consiglio dell Unione europea ha formalmente adottato le nuove normative e le leggi che regolano il ciclo successivo

Dettagli

PROGETTO TAVOLO GIOVANI

PROGETTO TAVOLO GIOVANI PROGETTO TAVOLO GIOVANI Costituzione di un Tavolo di coordinamento con le associazioni di giovani di Cinisello Balsamo e le organizzazioni sociali che compongono il mondo delle realtà giovanili locali

Dettagli

UN SERVIZIO SANITARIO NAZIONALE MODERNO, EQUO, SOSTENIBILE E UNIVERSALE

UN SERVIZIO SANITARIO NAZIONALE MODERNO, EQUO, SOSTENIBILE E UNIVERSALE UN SERVIZIO SANITARIO NAZIONALE MODERNO, EQUO, SOSTENIBILE E UNIVERSALE - 1 - Il SSN è un valore per tutti gli italiani. Concorrere a migliorarlo continuamente è un impegno di tutti: Medici, Pazienti,

Dettagli

MANUALE DELLA QUALITÀ Pag. 1 di 6

MANUALE DELLA QUALITÀ Pag. 1 di 6 MANUALE DELLA QUALITÀ Pag. 1 di 6 INDICE GESTIONE DELLE RISORSE Messa a disposizione delle risorse Competenza, consapevolezza, addestramento Infrastrutture Ambiente di lavoro MANUALE DELLA QUALITÀ Pag.

Dettagli

Norme per l organizzazione - ISO serie 9000

Norme per l organizzazione - ISO serie 9000 Norme per l organizzazione - ISO serie 9000 Le norme cosiddette organizzative definiscono le caratteristiche ed i requisiti che sono stati definiti come necessari e qualificanti per le organizzazioni al

Dettagli

Corso di. Dott.ssa Donatella Cocca

Corso di. Dott.ssa Donatella Cocca Corso di Statistica medica e applicata Dott.ssa Donatella Cocca 1 a Lezione Cos'è la statistica? Come in tutta la ricerca scientifica sperimentale, anche nelle scienze mediche e biologiche è indispensabile

Dettagli

I NUOVI ISTITUTI TECNICI

I NUOVI ISTITUTI TECNICI Istituto Tecnico Industriale Statale Liceo Scientifico Tecnologico Ettore Molinari Via Crescenzago, 110/108-20132 Milano - Italia tel.: (02) 28.20.786/ 28.20.868 - fax: (02) 28.20.903/26.11.69.47 Sito

Dettagli

La Guida per l Organizzazione degli Studi professionali

La Guida per l Organizzazione degli Studi professionali La Guida per l Organizzazione degli Studi professionali Gianfranco Barbieri Senior Partner di Barbieri & Associati Dottori Commercialisti Presidente dell Associazione Culturale Economia e Finanza gianfranco.barbieri@barbierieassociati.it

Dettagli

Il rapporto tra Industria del Farmaco e le Società Medico Scientifiche

Il rapporto tra Industria del Farmaco e le Società Medico Scientifiche Conferenza 2008 - Farmindustria FISM Industria del Farmaco e Società Medico Scientifiche Il rapporto tra Industria del Farmaco e le Società Medico Scientifiche Sergio Dompé Milano, 17 ottobre 2008 Sinergie

Dettagli

Capitolato per la selezione di una cooperativa sociale di tipo b per la realizzazione di attività relative all ambito disabilità e protezione civile

Capitolato per la selezione di una cooperativa sociale di tipo b per la realizzazione di attività relative all ambito disabilità e protezione civile Capitolato per la selezione di una cooperativa sociale di tipo b per la realizzazione di attività relative all ambito disabilità e protezione civile Obiettivi specifici Per il generale, si individuano

Dettagli

SVILUPPO, CERTIFICAZIONE E MIGLIORAMENTO DEL SISTEMA DI GESTIONE PER LA SICUREZZA SECONDO LA NORMA BS OHSAS 18001:2007

SVILUPPO, CERTIFICAZIONE E MIGLIORAMENTO DEL SISTEMA DI GESTIONE PER LA SICUREZZA SECONDO LA NORMA BS OHSAS 18001:2007 Progettazione ed erogazione di servizi di consulenza e formazione M&IT Consulting s.r.l. Via Longhi 14/a 40128 Bologna tel. 051 6313773 - fax. 051 4154298 www.mitconsulting.it info@mitconsulting.it SVILUPPO,

Dettagli

AIBE ED EXPO 2015 S.p.A. Protocollo d intesa

AIBE ED EXPO 2015 S.p.A. Protocollo d intesa AIBE ED EXPO 2015 S.p.A. Protocollo d intesa Siglato a Milano il 17 Maggio 2010 PROTOCOLLO D INTESA TRA Associazione fra le Banche Estere in Italia (di seguito AIBE ), con sede in Milano in Piazzale Cadorna

Dettagli

PROTOCOLLO D INTESA TRA LA REGIONE TOSCANA, LE UNIVERSITA DI FIRENZE PISA E SIENA E LE AZIENDE OSPEDALIERO-UNIVERSITARIE

PROTOCOLLO D INTESA TRA LA REGIONE TOSCANA, LE UNIVERSITA DI FIRENZE PISA E SIENA E LE AZIENDE OSPEDALIERO-UNIVERSITARIE PROTOCOLLO D INTESA TRA LA REGIONE TOSCANA, LE UNIVERSITA DI FIRENZE PISA E SIENA E LE AZIENDE OSPEDALIERO-UNIVERSITARIE PER LA IMPLEMENTAZIONE DELL ATTIVITA DI DIDATTICA E DI RICERCA ALL INTERNO DELLE

Dettagli

HTA: FATTORE DI CFESCITA O OSTACOLO ALL INNOVAZIONE?

HTA: FATTORE DI CFESCITA O OSTACOLO ALL INNOVAZIONE? Dott. GEORGES PAIZIS Health Policy Director sanofi - aventis HTA: FATTORE DI CFESCITA O OSTACOLO ALL INNOVAZIONE? L Health Technology Assessment (HTA) è un processo multidisciplinare con ben documentate

Dettagli

Raccolta di domande di ogni tipo (partendo dalle iscrizioni alle scuole ed alle università);

Raccolta di domande di ogni tipo (partendo dalle iscrizioni alle scuole ed alle università); Protocollo Operativo d Intesa tra il Ministero dell Istruzione, dell Università e della Ricerca e Poste Italiane per il servizio di consegna dei libri di testo alle famiglie degli alunni della scuola secondaria

Dettagli

Nerviano Medical Sciences

Nerviano Medical Sciences Nerviano Medical Sciences Sinergie ROL-NMS 28 gennaio 2011 1 Sinergie ROL/NMS 1. Apertura sistemica della ricerca di NMS da un lato verso il mondo accademico, regionale in primis ma nazionale e internazionale

Dettagli

Comparazione dei Risultati dell Indagine

Comparazione dei Risultati dell Indagine Comparazione dei Risultati dell Indagine DOCTAE (Agr. nr. 2007-1983 001/001) Questo progetto è stato finanziato con il supporto della Commissione Europea. Questo documento riflette unicamente il punto

Dettagli

Biobanche e Centri di Risorse Biologiche per la Salute umana e degli animali

Biobanche e Centri di Risorse Biologiche per la Salute umana e degli animali Associazione Giuseppe Dossetti Biobanche e Centri di Risorse Biologiche per la Salute umana e degli animali Roma, 21 Marzo 2013 Leonardo Santi Presidente Comitato Scientifico CNRB Presidente Onorario Comitato

Dettagli

Dall evidenza all azione. Politiche di governance per una scuola sana

Dall evidenza all azione. Politiche di governance per una scuola sana Dall evidenza all azione Politiche di governance per una scuola sana Un mandato impegnativo Risulta ormai evidente che per conciliare e soddisfare i bisogni di salute nel contesto scolastico, gli orientamenti

Dettagli

FILIPPO MARIA CAILOTTO SOLDI DAGLI SPONSOR

FILIPPO MARIA CAILOTTO SOLDI DAGLI SPONSOR FILIPPO MARIA CAILOTTO SOLDI DAGLI SPONSOR Strategie di Marketing e Segreti per Negoziare con Successo le Sponsorizzazioni per i Tuoi Eventi 2 Titolo SOLDI DAGLI SPONSOR Autore Filippo Maria Cailotto Editore

Dettagli

Il modello veneto di Bilancio Sociale Avis

Il modello veneto di Bilancio Sociale Avis Il modello veneto di Bilancio Sociale Avis Le organizzazioni di volontariato ritengono essenziale la legalità e la trasparenza in tutta la loro attività e particolarmente nella raccolta e nell uso corretto

Dettagli

Linee guida per le Scuole 2.0

Linee guida per le Scuole 2.0 Linee guida per le Scuole 2.0 Premesse Il progetto Scuole 2.0 ha fra i suoi obiettivi principali quello di sperimentare e analizzare, in un numero limitato e controllabile di casi, come l introduzione

Dettagli

Dalla Pianificazione Energetica all attuazione degli interventi: il punto di vista delle PA e delle Imprese

Dalla Pianificazione Energetica all attuazione degli interventi: il punto di vista delle PA e delle Imprese Dalla Pianificazione Energetica all attuazione degli interventi: il punto di vista delle PA e delle Imprese Maria Paola Corona Presidente di Sardegna Ricerche Sardegna Ricerche: dove la ricerca diventa

Dettagli

L Istituto, in armonia con le attività e finalità del CNR di cui all art.2 del DL del 29-1-99:

L Istituto, in armonia con le attività e finalità del CNR di cui all art.2 del DL del 29-1-99: Proposta operativa DI COSTITUZIONE DELL ISTITUTO DI NEUROSCIENZE DEL CNR PREMESSA Nell ambito del riordino della rete scientifica del Consiglio Nazionale delle Ricerche (CNR), al fine di realizzare un

Dettagli

PROGRAMMAZIONE E GESTIONE DI UN PROGETTO DI SERVIZIO SOCIALE

PROGRAMMAZIONE E GESTIONE DI UN PROGETTO DI SERVIZIO SOCIALE PROGRAMMAZIONE E GESTIONE DI UN PROGETTO DI SERVIZIO SOCIALE A.S. Dott.ssa Carmen Prizzon Il progetto Operazione complessa unica e di durata limitata rivolta a produrre un risultato specifico attraverso

Dettagli

Comitato codau per il coordinamento degli uffici ricerca scientifica

Comitato codau per il coordinamento degli uffici ricerca scientifica Comitato CODAU per il Coordinamento degli Uffici di Supporto alla Ricerca Scientifica Promosso da dieci università: Università di Torino, Pavia, Modena e Reggio Emilia, Bologna, Roma La Sapienza, Palermo,

Dettagli

Strategia della Fondazione svizzera per la promozione dell allattamento al seno

Strategia della Fondazione svizzera per la promozione dell allattamento al seno Strategia della Fondazione svizzera per la promozione dell allattamento al seno Scopo della Fondazione La persegue quale scopo la promozione dell allattamento in Svizzera, in particolare mediante un informazione

Dettagli

Progetto Cluster. Sottoprogetto Bioinformatica

Progetto Cluster. Sottoprogetto Bioinformatica Progetto Cluster Sottoprogetto Bioinformatica CRS4 (Centro di Ricerca, Sviluppo e Studi Superiori in Sardegna) Società costituita nel 1990 svolge attività di ricerca e sviluppo basate sulle tecnologie

Dettagli

COME VIENE REALIZZATA UNA RICERCA SPERIMENTALE IN BIOLOGIA MOLECOLARE?

COME VIENE REALIZZATA UNA RICERCA SPERIMENTALE IN BIOLOGIA MOLECOLARE? COME VIENE REALIZZATA UNA RICERCA SPERIMENTALE IN BIOLOGIA MOLECOLARE? A Flusso di attività B - INPUT C Descrizione dell attività D RISULTATO E - SISTEMA PROFESSIONALE 0. RICHIESTA DI STUDIARE E/O INDIVIDUARE

Dettagli

PARTNER DI PROGETTO. Università degli Studi di Palermo Dipartimento di Ingegneria Industriale

PARTNER DI PROGETTO. Università degli Studi di Palermo Dipartimento di Ingegneria Industriale PARTNER DI PROGETTO Il raggruppamento dei soggetti attuatori è altamente qualificato. Da una parte, la presenza di quattro aziende del settore ICT garantirà, ognuna per le proprie aree di competenza, un

Dettagli

della manutenzione, includa i requisiti relativi ai sottosistemi strutturali all interno del loro contesto operativo.

della manutenzione, includa i requisiti relativi ai sottosistemi strutturali all interno del loro contesto operativo. L 320/8 Gazzetta ufficiale dell Unione europea IT 17.11.2012 REGOLAMENTO (UE) N. 1078/2012 DELLA COMMISSIONE del 16 novembre 2012 relativo a un metodo di sicurezza comune per il monitoraggio che devono

Dettagli

ANTONELLA LAVAGNINO COMUNICAZIONE & MARKETING

ANTONELLA LAVAGNINO COMUNICAZIONE & MARKETING ANTONELLA LAVAGNINO COMUNICAZIONE & MARKETING CREARE OPPORTUNITÀ PER COMPETERE Oggi le imprese di qualsiasi settore e dimensione devono saper affrontare, singolarmente o in rete, sfide impegnative sia

Dettagli

Il Test d ingresso per la Facoltà à di Scienze. PISA 3 dicembre 2008

Il Test d ingresso per la Facoltà à di Scienze. PISA 3 dicembre 2008 Il Test d ingresso per la Facoltà à di Scienze PISA 3 dicembre 2008 SOMMARIO Il documento ufficiale Esempio di test I punti del documento ufficiale della Conferenza delle Facoltà di Scienze Necessità di

Dettagli

INVENTION AND TECHNOLOGY DISCLOSURE FORM SCHEDA DI RICHIESTA PER L APERTURA DI UNA PRATICA DI BREVETTO

INVENTION AND TECHNOLOGY DISCLOSURE FORM SCHEDA DI RICHIESTA PER L APERTURA DI UNA PRATICA DI BREVETTO INVENTION AND TECHNOLOGY DISCLOSURE FORM UFFICIO TRASFERIMENTO TECNOLOGICO SCHEDA DI RICHIESTA PER L APERTURA DI UNA PRATICA DI BREVETTO Mittente: Prof./Dott Dipartimento di Via.. 4412. Ferrara Al Magnifico

Dettagli

Women In Development UN MODELLO EUROPEO PER LO SVILUPPO LOCALE GENDER ORIENTED PIANO DI COMUNICAZIONE

Women In Development UN MODELLO EUROPEO PER LO SVILUPPO LOCALE GENDER ORIENTED PIANO DI COMUNICAZIONE Women In Development UN MODELLO EUROPEO PER LO SVILUPPO LOCALE GENDER ORIENTED PIANO DI COMUNICAZIONE Introduzione Il progetto W.In D. (Women In Development) si inserisce nelle attività previste e finanziate

Dettagli

QUALITÀ E SICUREZZA PER I NOSTRI PAZIENTI

QUALITÀ E SICUREZZA PER I NOSTRI PAZIENTI QUALITÀ E SICUREZZA PER I NOSTRI PAZIENTI L ACCREDITAMENTO INTERNAZIONALE ALL ECCELLENZA Fondazione Poliambulanza ha ricevuto nel dicembre 2013 l accreditamento internazionale all eccellenza da parte di

Dettagli

REALIZZARE UN MODELLO DI IMPRESA

REALIZZARE UN MODELLO DI IMPRESA REALIZZARE UN MODELLO DI IMPRESA - organizzare e gestire l insieme delle attività, utilizzando una piattaforma per la gestione aziendale: integrata, completa, flessibile, coerente e con un grado di complessità

Dettagli

Direzione Centrale Audit e Sicurezza IL SISTEMA DELL INTERNAL AUDIT NELL AGENZIA DELLE ENTRATE

Direzione Centrale Audit e Sicurezza IL SISTEMA DELL INTERNAL AUDIT NELL AGENZIA DELLE ENTRATE IL SISTEMA DELL INTERNAL AUDIT NELL AGENZIA DELLE ENTRATE Maggio 2006 1 La costituzione dell Audit Interno La rivisitazione del modello per i controlli di regolarità amministrativa e contabile è stata

Dettagli

LA RESPONSABILITÀ SOCIALE DELLE IMPRESE CORPORATE SOCIAL RESPONSABILITY

LA RESPONSABILITÀ SOCIALE DELLE IMPRESE CORPORATE SOCIAL RESPONSABILITY Attenzione: la Guida che state stampando è aggiornata al 10/10/2007. I file allegati con estensione.doc,.xls,.pdf,.rtf, etc. non verranno stampati automaticamente; per averne copia cartacea è necessario

Dettagli

COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING

COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING Febbraio Inserto di Missione Impresa dedicato allo sviluppo pratico di progetti finalizzati ad aumentare la competitività delle imprese. COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING COS E UN

Dettagli

COMUNE DI RAVENNA GUIDA ALLA VALUTAZIONE DELLE POSIZIONI (FAMIGLIE, FATTORI, LIVELLI)

COMUNE DI RAVENNA GUIDA ALLA VALUTAZIONE DELLE POSIZIONI (FAMIGLIE, FATTORI, LIVELLI) COMUNE DI RAVENNA Il sistema di valutazione delle posizioni del personale dirigente GUIDA ALLA VALUTAZIONE DELLE POSIZIONI (FAMIGLIE, FATTORI, LIVELLI) Ravenna, Settembre 2004 SCHEMA DI SINTESI PER LA

Dettagli

Genova 28/11/2012. Avv. Tiziana Rumi

Genova 28/11/2012. Avv. Tiziana Rumi Genova 28/11/2012 Avv. Tiziana Rumi 1 Decreto Balduzzi: D.L. 13/09/12 n. 158 (C.5440 del 13.09.12) ART. 3-bis (Unità di risk management, osservatori per il monitoraggio dei contenziosi e istituzione dell'osservatorio

Dettagli

I SISTEMI DI GESTIONE DELLA SALUTE E SICUREZZA SUL LAVORO: OHSAS 18001 AV2/07/11 ARTEMIDE.

I SISTEMI DI GESTIONE DELLA SALUTE E SICUREZZA SUL LAVORO: OHSAS 18001 AV2/07/11 ARTEMIDE. I SISTEMI DI GESTIONE DELLA SALUTE E SICUREZZA SUL LAVORO: OHSAS 18001 AV2/07/11 ARTEMIDE. 1 Nel panorama legislativo italiano la Salute e la Sicurezza sul Lavoro sono regolamentate da un gran numero di

Dettagli

PROJECT MANAGEMENT SERVIZI DI PROJECT MANAGEMENT DI ELEVATA PROFESSIONALITÀ

PROJECT MANAGEMENT SERVIZI DI PROJECT MANAGEMENT DI ELEVATA PROFESSIONALITÀ PROJECT MANAGEMENT SERVIZI DI PROJECT MANAGEMENT DI ELEVATA PROFESSIONALITÀ SERVIZI DI PROJECT MANAGEMENT CENTRATE I VOSTRI OBIETTIVI LA MISSIONE In qualità di clienti Rockwell Automation, potete contare

Dettagli

UniCredit Banca a sostegno del fotovoltaico Stefano Rossetti Direttore Regionale Emilia Est e Romagna UniCredit Banca

UniCredit Banca a sostegno del fotovoltaico Stefano Rossetti Direttore Regionale Emilia Est e Romagna UniCredit Banca UniCredit Banca a sostegno del fotovoltaico Stefano Rossetti Direttore Regionale Emilia Est e Romagna UniCredit Banca 30 settembre 2007 Agenda La situazione della produzione di energia rinnovabile in Italia

Dettagli

Industrial Liaison Office Università di Sassari. Organizzazione dei servizi di Trasferimento Tecnologico e collegamento Università-Imprese

Industrial Liaison Office Università di Sassari. Organizzazione dei servizi di Trasferimento Tecnologico e collegamento Università-Imprese Industrial Liaison Office Università di Sassari Organizzazione dei servizi di Trasferimento Tecnologico e collegamento Università-Imprese In un'economia basata sulla conoscenza l Università, è chiamata

Dettagli

STRUTTURA UDA U.D.A. 4. Classe III A PRESENTAZIONE

STRUTTURA UDA U.D.A. 4. Classe III A PRESENTAZIONE STRUTTURA UDA UNITÀ DIDATTICA di APPRENDIMENTO di TECNOLOGIE ELETTRICO-ELETTRONICHE E APPLICAZIONI U.D.A. 4 Classe III A.S. 2015/2016 TITOLO: Componenti fondamentali di un impianto Strumenti di misura

Dettagli

Progetto Nazionale di Cure Palliative Pediatriche

Progetto Nazionale di Cure Palliative Pediatriche Progetto Nazionale di Cure Palliative Pediatriche Ecco la proposta della Fondazione Maruzza Lefebvre D Ovidio, della fondazione Livia Benini, di altre Fondazioni ed Associazioni Italiane e successivamente

Dettagli

Progetto 5. Formazione, discipline e continuità

Progetto 5. Formazione, discipline e continuità Istituto Comprensivo Statale Lorenzo Bartolini di Vaiano Piano dell Offerta Formativa Scheda di progetto Progetto 5 Formazione, discipline e continuità I momenti dedicati all aggiornamento e all autoaggiornamento

Dettagli

3.2 LICEO SCIENTIFICO DELLE SCIENZE APPLICATE

3.2 LICEO SCIENTIFICO DELLE SCIENZE APPLICATE 3.2 LICEO SCIENTIFICO DELLE SCIENZE APPLICATE Il Liceo Scientifico delle Scienze Applicate è un articolazione del Liceo Scientifico. Oltre agli obiettivi propri del Liceo Scientifico tradizionale, il Liceo

Dettagli

Corso: Sistemi di elaborazione delle informazioni 2. Anno Accademico: 2007/2008. Docente: Mauro Giacomini

Corso: Sistemi di elaborazione delle informazioni 2. Anno Accademico: 2007/2008. Docente: Mauro Giacomini Corso: Sistemi di elaborazione delle informazioni 2. Anno Accademico: 2007/2008. Docente: Mauro Giacomini Organizzazione no-profit per lo sviluppo di standard che fornisce linee guida per: lo scambio la

Dettagli

Training Formativo. Dr. Massimo Cristaldi IES Solutions aib-sicilia@jixel.eu

Training Formativo. Dr. Massimo Cristaldi IES Solutions aib-sicilia@jixel.eu Training Formativo Interoperabilità tra sale di emergenza: la tecnologia JIXEL per la creazione di una Sala Operativa Unificata Virtuale, per la gestione della campagna incendi in Sicilia Dr. Massimo Cristaldi

Dettagli

POLITICA DI COESIONE 2014-2020

POLITICA DI COESIONE 2014-2020 GARANTIRE LA VISIBILITÀ DELLA POLITICA DI COESIONE: NORME IN MATERIA DI INFORMAZIONE E COMUNICAZIONE PER IL PERIODO 2014-2020 POLITICA DI COESIONE 2014-2020 A dicembre 2013, il Consiglio dell Unione europea

Dettagli

INTERVENTO LE AZIONI DI SISTEMA TRA CAPACITY BUILDING E COOPERAZIONE A RETE (ROMA, 10 MAGGIO 2006)

INTERVENTO LE AZIONI DI SISTEMA TRA CAPACITY BUILDING E COOPERAZIONE A RETE (ROMA, 10 MAGGIO 2006) INTERVENTO LE AZIONI DI SISTEMA TRA CAPACITY BUILDING E COOPERAZIONE A RETE (ROMA, 10 MAGGIO 2006) Siamo nell ultimo anno di programmazione, per cui è normale fare un bilancio dell attività svolta e dell

Dettagli

Generazione Automatica di Asserzioni da Modelli di Specifica

Generazione Automatica di Asserzioni da Modelli di Specifica UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Generazione Automatica di Asserzioni da Modelli di Specifica Relatore:

Dettagli

La Pubblica Amministrazione consumatore di software Open Source

La Pubblica Amministrazione consumatore di software Open Source La Pubblica Amministrazione consumatore di software Open Source Dipartimento per l Innovazione e le Tecnologie Paola Tarquini Sommario Iniziative in atto Una possibile strategia per la diffusione del Software

Dettagli

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle

Dettagli

Manifesto IFLA Per la Biblioteca Multiculturale

Manifesto IFLA Per la Biblioteca Multiculturale Manifesto IFLA Per la Biblioteca Multiculturale La biblioteca multiculturale Porta di accesso a una società di culture diverse in dialogo Tutti viviamo in una società sempre più eterogenea. Nel mondo vi

Dettagli

REGIONE MARCHE GIUNTA REGIONALE

REGIONE MARCHE GIUNTA REGIONALE DELIBERAZIONE DELLA 2 L. 196/97 Art. 17. Approvazione del Regolamento istitutivo del Dispositivo di accreditamento delle strutture formative della Regione Marche (DAFORM). LA VISTO il documento istruttorio

Dettagli

La shared mobility, nuova frontiera della mobilità urbana: le prospettive per l area metropolitana di Roma

La shared mobility, nuova frontiera della mobilità urbana: le prospettive per l area metropolitana di Roma La shared mobility, nuova frontiera della mobilità urbana: le prospettive per l area metropolitana di Roma OBIETTIVI Da qualche anno a questa parte, le soluzioni di trasporto condivise stanno conoscendo

Dettagli

Associazione Italiana Corporate & Investment Banking. Presentazione Ricerca. Il risk management nelle imprese italiane

Associazione Italiana Corporate & Investment Banking. Presentazione Ricerca. Il risk management nelle imprese italiane Associazione Italiana Corporate & Investment Banking 02.36531506 www.aicib.it aicib@unicatt.it Presentazione Ricerca Il risk management nelle imprese italiane AICIB Associazione Italiana Corporate & Investment

Dettagli

Il modello di ottimizzazione SAM

Il modello di ottimizzazione SAM Il modello di ottimizzazione control, optimize, grow Il modello di ottimizzazione Il modello di ottimizzazione è allineato con il modello di ottimizzazione dell infrastruttura e fornisce un framework per

Dettagli

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone BASI DI DATI per la gestione dell informazione Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone Libro di Testo 22 Chianese, Moscato, Picariello e Sansone BASI DI DATI per la Gestione dell

Dettagli

L Outplacement. come supporto per la ricollocazione professionale PRESENTAZIONE CONVEGNO 19 NOVEMBRE 2013

L Outplacement. come supporto per la ricollocazione professionale PRESENTAZIONE CONVEGNO 19 NOVEMBRE 2013 L Outplacement come supporto per la ricollocazione professionale PRESENTAZIONE CONVEGNO 19 NOVEMBRE 2013 3 La spesa per le politiche del lavoro in Europa e INTOO in Italia Spesa per le politiche del mercato

Dettagli

Università degli Studi di Trieste Facoltà di Medicina e Chirurgia Facoltà di Scienze Matematiche, Fisiche e Naturali

Università degli Studi di Trieste Facoltà di Medicina e Chirurgia Facoltà di Scienze Matematiche, Fisiche e Naturali Università degli Studi di Trieste Facoltà di Medicina e Chirurgia Facoltà di Scienze Matematiche, Fisiche e Naturali Regolamento didattico del Corso di Laurea interclasse ed interfacoltà in Scienze e Tecnologie

Dettagli

La Dichiarazione di Verona sugli investimenti in salute (The Verona Declaration on Investment for Healt)

La Dichiarazione di Verona sugli investimenti in salute (The Verona Declaration on Investment for Healt) SCHEDA 8 La Dichiarazione di Verona sugli investimenti in salute (The Verona Declaration on Investment for Healt) Verona, Italia, 5-9 luglio 2000 LA SFIDA DI VERONA Investire in salute significa promuoverne

Dettagli

Vigilanza bancaria e finanziaria

Vigilanza bancaria e finanziaria Vigilanza bancaria e finanziaria DISPOSIZIONI DI VIGILANZA IN MATERIA DI POTERI DI DIREZIONE E COORDINAMENTO DELLA CAPOGRUPPO DI UN GRUPPO BANCARIO NEI CONFRONTI DELLE SOCIETÀ DI GESTIONE DEL RISPARMIO

Dettagli

Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC.

Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC. Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC. Avviso di mancata consegna L avviso, emesso dal sistema, per indicare l anomalia

Dettagli

ATTIVITÀ E Piano di informazione e comunicazione

ATTIVITÀ E Piano di informazione e comunicazione PROVINCIA DI POTENZA Ministero dell Ambiente e della Tutela del Territorio Home PIANO D AZIONE ENEPOLIS Indice ATTIVITÀ E Piano di informazione e comunicazione L attività E comprende tre azioni specifiche;

Dettagli

Piano Nazionale della Prevenzione 2005-2007 Relazione al 31.12.2008

Piano Nazionale della Prevenzione 2005-2007 Relazione al 31.12.2008 Piano Nazionale della Prevenzione 2005-2007 Relazione al 31.12.2008 Regione: Lazio Titolo del progetto: Sorveglianza e prevenzione degli infortuni nei luoghi di lavoro Referente: Elisa Romeo Negli ultimi

Dettagli

DIPARTIMENTO INFORMATIVO e TECNOLOGICO

DIPARTIMENTO INFORMATIVO e TECNOLOGICO DIPARTIMENTO INFORMATIVO e TECNOLOGICO ARTICOLAZIONE DEL DIPARTIMENTO Il Dipartimento Informativo e Tecnologico è composto dalle seguenti Strutture Complesse, Settori ed Uffici : Struttura Complessa Sistema

Dettagli

La politica Nestlé per la Salute e la Sicurezza sul Lavoro

La politica Nestlé per la Salute e la Sicurezza sul Lavoro La politica Nestlé per la Salute e la Sicurezza sul Lavoro La sicurezza non è negoziabile Nestlé è convinta che il successo a lungo termine possa essere raggiunto soltanto grazie alle sue persone. Nessun

Dettagli

Bachelor of Science in Ingegneria informatica

Bachelor of Science in Ingegneria informatica Scuola universitaria professionale della Svizzera italiana Dipartimento tecnologie innovative Bachelor of Science in Ingegneria informatica www.supsi.ch/dti Obiettivi e competenze La formazione apre le

Dettagli

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria ESAME DI STATO DI ABILITAZIONE ALL'ESERCIZIO DELLA PROFESSIONE DI INGEGNERE PRIMA PROVA SCRITTA DEL 22 giugno 2011 SETTORE DELL INFORMAZIONE Tema n. 1 Il candidato sviluppi un analisi critica e discuta

Dettagli

Thinkalize. Il nuovo creatore dell innovazione.

Thinkalize. Il nuovo creatore dell innovazione. Thinkalize. Il nuovo creatore dell innovazione. Come nasce il progetto? La necessita, il desiderio di cambiare le regole e di dettarne di nuove verso un modo contemporaneo di fare impresa, ha dato vita

Dettagli

CHE FARE? - Ruolo dei medici e delle sue organizzazioni - Centralità della Formazione - Una rivoluzione culturale

CHE FARE? - Ruolo dei medici e delle sue organizzazioni - Centralità della Formazione - Una rivoluzione culturale CHE FARE? - Ruolo dei medici e delle sue organizzazioni - Centralità della Formazione - Una rivoluzione culturale 1 I Medici come si inseriscono sui temi ambientali oggi? I medici rappresentano per la

Dettagli

Guido Guidi Head Pharma Region Europe Novartis Milano, 9 Dicembre 2013

Guido Guidi Head Pharma Region Europe Novartis Milano, 9 Dicembre 2013 La Ricerca in Italia La rilevanza della ricerca biomedica Guido Guidi Head Pharma Region Europe Novartis Milano, 9 Dicembre 2013 Ricerca e Sistema Paese Le innovazioni non seguono una sequenza lineare

Dettagli

Carpire il segreto della vita con l informatica Giosuè Lo Bosco Dipartimento di Matematica e Informatica, Università di Palermo, ITALY.

Carpire il segreto della vita con l informatica Giosuè Lo Bosco Dipartimento di Matematica e Informatica, Università di Palermo, ITALY. Carpire il segreto della vita con l informatica Giosuè Lo Bosco Dipartimento di Matematica e Informatica, Università di Palermo, ITALY. Lezioni Lincee Palermo, 26 Febbraio 2015 Alla base della vita degli

Dettagli

INNOVAZIONE, RICERCA E SPIN OFF IMPRENDITORIALE LE NUOVE STRADE DEL LAVORO PASSANO DI QUI

INNOVAZIONE, RICERCA E SPIN OFF IMPRENDITORIALE LE NUOVE STRADE DEL LAVORO PASSANO DI QUI INNOVAZIONE, RICERCA E SPIN OFF IMPRENDITORIALE LE NUOVE STRADE DEL LAVORO PASSANO DI QUI IL PROGETTO Il progetto DONNE E SCIENZA: ricerca, innovazione e spin-off imprenditoriale è un percorso integrato

Dettagli

Progetto EST. Educare alla Scienza e alla Tecnologia

Progetto EST. Educare alla Scienza e alla Tecnologia Progetto EST Educare alla Scienza e alla Tecnologia Educare alla Scienza e alla Tecnologia (EST) è un progetto educativo pluriennale che si rivolge ai bambini e ai ragazzi delle scuole elementari e medie

Dettagli

LE COMPETENZE CHE VALGONO UN LAVORO LE INDICAZIONI FORNITE DALLE IMPRESE ATTRAVERSO IL SISTEMA INFORMATIVO EXCELSIOR

LE COMPETENZE CHE VALGONO UN LAVORO LE INDICAZIONI FORNITE DALLE IMPRESE ATTRAVERSO IL SISTEMA INFORMATIVO EXCELSIOR Le sfide all'orizzonte 2020 e la domanda di competenze delle imprese LE COMPETENZE CHE VALGONO UN LAVORO LE INDICAZIONI FORNITE DALLE IMPRESE ATTRAVERSO IL SISTEMA INFORMATIVO EXCELSIOR Domenico Mauriello

Dettagli