79
BIOINFORMATICA La Bioinformatica si occupa, dell’acquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nell’ambito della biologia. 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 obiettivi della Bioinformatica:

BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

Embed Size (px)

Citation preview

Page 1: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

BIOINFORMATICA

La Bioinformatica si occupa, dell’acquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nell’ambito della biologia.

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 obiettivi della Bioinformatica:

Page 2: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

• Sviluppo di strumenti per la generazione ed il mantenimento dell’informazione proveniente alle varie fonti: mappa fisica, mappa genetica, mappa cromosomica, mappa citogenetica, polimorfismi, 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;

Page 3: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

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.• • Realizzazioni di sistemi per la correlazione

dell’informazione in sistemi biologici complessi.

Page 4: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

LOGICA

• LOGICA, i principi logici che collegano la scrittura sintattica delle frasi con la loro verità e falsità possono essere ampliamente trovati in Platone (428-348 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 1600-1700.

• 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.

Page 5: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

• 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.

Page 6: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

LINGUAGGIO

• 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.

Page 7: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

SEMANTICA• 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 (semantica).

Page 8: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

• 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à.

• 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.

Page 9: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

• 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.

Page 10: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

• 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.

Page 11: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

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. • 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

Page 12: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

Linguaggio macchina

• 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.

Page 13: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

linguaggi assemblatori

• Questo rendeva la programmazione un lavoro da specialisti. Il linguaggio macchina è il linguaggio programmativo della 1a generazione.

• Ben presto si passò ai linguaggi della 2a generazione, cioè ai cosiddetti "linguaggi simbolici".

• Ai byte si sostituirono dei codici convenzionali, diversi a seconda del ruolo svolto: ad esempio se il byte {01010101} denotava la somma, esso si indicò con il codice ADD, facile da ricordare.

• I linguaggi 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.

Page 14: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

linguaggi algebrici

• 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.

Page 15: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

La base di conoscenza

• 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:

Page 16: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

regola: soggetto + verbo + complemento

• Disporre le parole rispettando una regola non è sufficiente per dare loro un significato:

• 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)

• Le regole per la costruzione delle frasi di un linguaggio sono espresse come produzioni di un sistema formale denominato grammatica.

Page 17: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

• 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.

Page 18: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

Linguaggio

• 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:

• NATURALI• FORMALI

Page 19: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

ALFABETO

• 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".

• 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, 000111 • non appartengono a L1: 011, cane, a+b, etc.

Page 20: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

LINGUAGGI NATURALI

• 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.

Page 21: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

ALFABETI

• 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.

Page 22: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

• 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,..}.

Page 23: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

• 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.

Page 24: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

GRAMMATICA

• 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:• 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;

Page 25: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

AUTOMA

• 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,

• 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.

Page 26: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

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.

Page 27: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

AUTOMA• 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.

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.

Page 28: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

• 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,s0,F,T):

• alfabeto dei simboli input I = (i1, i2,…,in), cioè l’insieme finito dei simboli che l’automa è in grado di ricevere dall’esterno, riconoscendoli;

• insieme dei possibili stati S = (s1, s2,…,sn) che l’automa può assumere durante il suo funzionamento;

• stato iniziale s0S di partenza del funzionamento dell’automa;

Page 29: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

• insieme degli stati finali FS;• funzione di transizione T: (it, st-1) → (st,ot)

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.

Page 30: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

• Una stringa sarà riconosciuta dall’automa se, partendo dallo stato iniziale s0 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.

Page 31: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

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 cui rispondere e le risposte 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).

Page 32: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

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

Page 33: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

• 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.

Page 34: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

• 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.

Page 35: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

• 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.

Page 36: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

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)oppureinput (base, altezza);

b) per indicare l’istruzione di comunicazione di dati si usa il comando output (o scrivi);

output (A)output (B)oppureoutput (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.

Page 37: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

• 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

Page 38: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

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

Page 39: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

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;repeatinput (N); S S + N; C C + 1; until C <= 10output (S)end

Page 40: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito
Page 41: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

INFERENZA

• 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.

Page 42: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

INFERENZA

• 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.

Page 43: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

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.

Page 44: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

• Logiche speciali assumono assunzioni logiche superiori, ad esempio la logica temporale considera che il mondo sia ordinato da un insieme di punti di tempo.

• i sistemi che usano la teoria della probabilità possono avere gradi di credenza che possono variare da 0 (credenza nulla) a 1 (certezza).

Page 45: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

• 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à.

Page 46: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

LINGUAGGI O 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)

Page 47: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

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

Page 48: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

• Una formula può essere ottenuta combinando formule semplici con i connettivi logici.

(and). Una frase in cui il connettivo principale è (PQ) è chiamata congiunzione

(or). Una formula che usa , A (PQ) è una disgiunzione dei disgiunti (il simbolo deriva dal latino vel che significa o).

• Una formula come (PQ) R è chiamata implicazione. • La parte (PQ) rappresenta la premessa o antecedente,

mentre R costituisce la conclusione.• La formula (PQ) (QP) è una equivalenza • chiamata anche bicondizionale.• (not). Una formula come P è chiamata negazione.

Page 49: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

• 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 e 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

Page 50: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

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.

Page 51: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

OGGETTI Persone, animali, numeri ……

RELAZI ONI Fratello di, più piccolo di, possiede..

PROPRI ETÀ Rosso, primo, quadrato

FUNZI ONI Padre di, secondo tempo di, uno più di

Page 52: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

MODELLO

• 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.

Page 53: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

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à.

• 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.

Page 54: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

• 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.

Page 55: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

• La costruzione del modello passa attraverso quattro fasi:• 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

Page 56: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

Mondo reale Modello

interpreta

osservazione modifica

Mondo reale Modello

verifica

Rappresentazione attraverso un modello generico

Causa Effetto

COSA SI VEDE

Programma Osservazioni

Si crede Si vede

COSA SI CREDE

TEORIA

Rappresentazione di un modello statistico

Page 57: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

...dal bit al linguaggio R

Page 58: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

In principio era il bit…

…Per intenderci 0 e 1, il linguaggio macchina.

Tra gli anni '40 e gli anni '50, la programmazione degli elaboratori elettronici era destinata solamente a una ristrettissima cerchia di esperti.

Page 59: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

Progenitore di tutti i computer è l'ENIAC (Electronic Numerical Integrator And Calculator ), al cui progetto partecipò J. von Neumann.

Page 60: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

EVOLUZIONE STORICA DEL

CALCOLO •

ABACO

•1642 Blaise Pascal

Page 61: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

• 1822 C. Babbage

Page 62: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

Linguaggio Assembly

Page 63: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

PRIMO VERO LINGUAGGIO DI PROGRAMMAZIONE

FORTRAN (FORmula TRANslation)

L'ideatore fu John Backus. Lo scopo principale era quello di

automatizzare calcoli matematici e scientifici.

Sulla sua scia vennero progettati moltissimi altri linguaggi di alto livello.

Page 64: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

Linguaggio di programmazione di secondo livello:

Algol

Progettato da un comitato internazionale con l'obiettivo di creare un linguaggio universale.

La sua indipendenza dalla macchina concedeva maggiore creatività ai progettisti.

Page 65: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

Aree di applicazione

ALGOL è stato utilizzato in particolare da scienziati europei e americani interessati a ricerche sui computer. La sua applicazione in ambito commerciale è stata interdetta. ALGOL 60 divenne comunque lo standard per la pubblicazione di algoritmi.

Page 66: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

1960:COBOLCOmmon Business Oriented

Language

Utilizzato per sviluppare programmi gestionali.

La sua diffusione è dovuta alla facilità della sue istruzioni, molto simili a frasi inglesi.

Trovando una grandissima applicazione nelle aziende, ebbe molto successo.

Page 67: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

Per i programmatori pricipianti:BASIC

Beginner's All purpose Symbolic Instruction Code

Sviluppato a Dartmouth College, grazie al progetto di J. Kemeny e T. Kurtz (1964).

E’ tra i migliori linguaggi utilizzati nelle scuole a scopo didattico.

Realizza un'ampia gamma di applicazioni e dispone di molte versioni.

Dal BASIC discende il filone dei vari Visual BASIC, linguaggi visuali orientati agli oggetti, con l'interfaccia grafica (bottoni, finestre etc.).

Page 68: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

Chi è Pascal?

Sviluppato da Niklaus Wirth, membro dell'International Federation of Information Processing (IFIP).

La pubblicazione originale del linguaggio avvenne nel 1971, ma fu scelto per l’insegnamento dagli anni ’60 alla fine degli anni ’80.

Consente lo sviluppo di programmi ben strutturati e ben organizzati.

E’ diretto discendente di ALGOL 60.

Page 69: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

Il più basso tra i più alti:

il linguaggio C Linguaggio ad alto livello definito

come “il linguaggio di piu' basso livello tra i linguaggi ad alto livello”.

Dennis Ritchie realizzò la prima versione nel 1972 a Bell Laboratories.

I suoi principi erano presi dal precedente linguaggio B e il B aveva ereditato certe caratteristiche da BCPL e CPL.

Nasce per lo sviluppo di sistemi operativi, quindi per software di basso livello.

Page 70: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

…Combined Programming Language (CPL)

Problema: occupava troppo spazio per

poter girare in molte applicazioni.

Soluzione: 1967 venne creato il BCPL (Basic

CPL), versione ridotta che non perde le sue funzioni di base.

Page 71: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

La potenza e flessibilità del C apparve subito evidente e per questo il sistema operativo di Unix, scritto in assembly, venne riscritto immediatamente in C.

Riesce a mantenere semplicita' d'uso ma…

Page 72: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

…C’è un trucco…

Affida le funzioni più complesse a un'insieme di librerie esterne, esattamente come il MacOS.

Page 73: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

C++

E' un'estensione del C.

Fornisce una serie di funzioni che potenziano il C.

Software Engineering

Grafica

Page 74: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

Sviluppato nei primi anni '90 alla Sun Microsystem.

E' orientato agli oggetti.

E' indipendente dalla piattaforma.

Contiene strumenti per il networking.

E' progettato per eseguire codici in modo sicuro.

Il bytecode viene eseguito dalla JVM (Java Virtual Machine).

Page 75: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

LINGUAGGIO R

Nasce in Nuova Zelanda. Basato sulla probabilità e la

statistica. Usato per la progettazione

di software di biologia molecolare

Esistono diverse versioni. Progetto Bionconductor.

Page 76: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

Però…..

• I linguaggi si dividono infine in base alla modalità di esecuzione:

• Un file.exe è un file che è stato scritto in un certo linguaggio X e poi è stato tradotto nel linguaggio macchina (il linguaggio X è compilato).

• Un file.bat è un file che viene eseguito senza dover essere compilato di volta in volta (linguaggio interpretato).

Page 77: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

…Ora,resta solo un'ultima,fondamentale e

importante domanda…

Page 78: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

Perchè tutti questi linguaggi?

• Perchè col tempo sono cambiate le esigenze:• Negli anni '60 tutto era molto sperimentale;• Gli anni '70 hanno portato alla diffusione dei linguaggi procedurali.

Il software è artigianato;• Gli anni '80 portano alla diffusione dei primi pc e alla

pragrammazione ad oggetti. Il software è manifattura seriale;• Gli anni '90 portano alla programmazione ad aspetti. Il software è

commerciale;• Gli anni 2000 portano allo sviluppo complesso. Non esiste più il

concetto di software ma di servizio.

Page 79: BIOINFORMATICA La Bioinformatica si occupa, dellacquisizione, memorizzazione, distribuzione, analisi e interpretazione dei dati prevalentemente nellambito

Conclusioni…

Ciascun programmatore sceglierà sempre e comunque uno specifico linguaggio da utilizzare in base al problema da risolvere.