Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Bioinformatica ., Appunti di Bioinformatica

sono appunti riguardanti la prima parte del corso

Tipologia: Appunti

2025/2026

Caricato il 29/01/2026

rixberga04
rixberga04 🇮🇹

1 documento

1 / 7

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
02/10/25
Algoritmi e computational thinking fondamenti di
Bioinformatica
Un algoritmo è un procedimento che mi permette di risolvere un dato problema in
modo automatizzato, il computer deve svolgere il procedimento.
Però poiché il computer è in grado di analizzare solamente i dati, noi dobbiamo
trasformare le istruzioni in modo che il computer possa svolgere o elaborare i dati.
I miei dati corrispondono al mio input, mentre il risultato il mio output
I miei dati devono essere trasformati in input e il mio algoritmo, utilizzando i dati del
problema, arriva ad una conclusione (output)
Anché si svolga questo procedimento passaggi devono essere in una sequenza ben
specifica ed inoltre devono essere passaggi chiari.
Esempio: se devo fare una somma tra due numeri (2+2), il problema è la risoluzione
mentre il risultato è l’eettiva risposta
2+2 problema 4
Nella quotidianità:
DATI PROBLEMA RISULTATO
In Informatica parliamo di
INPUTALGORITMOOUTPUT
I problemi di cui si occupa la Bioinformatica:
Sequenze genomiche
Sequenziamento e mappatura di genomi e ricerca di geni con la stessa funzione in
organismi diversi
Analisi di sequenze e strutture proteiche
Prevedere la funzione di una proteina poco nota e ricerca di proteine omologhe in
organismi diversi Analisi di sequenze e strutture proteiche (sequenze
amminoacidiche)
Un classico esempio di algoritmo in biotecnologie è un algoritmo di allineamento di
sequenze amminoacidiche che serve per vedere se due sequenze amminoacidiche
sono uguali tra loro.
I ricercatori, prima degli algoritmi, analizzavano a mano le sequenze
amminoacidiche. Ciò rendeva il processo estremamente lungo e con costi elevati.
pf3
pf4
pf5

Anteprima parziale del testo

Scarica Bioinformatica . e più Appunti in PDF di Bioinformatica solo su Docsity!

Algoritmi e computational thinking fondamenti di

Bioinformatica

Un algoritmo è un procedimento che mi permette di risolvere un dato problema in modo automatizzato, il computer deve svolgere il procedimento. Però poiché il computer è in grado di analizzare solamente i dati, noi dobbiamo trasformare le istruzioni in modo che il computer possa svolgere o elaborare i dati. I miei dati corrispondono al mio input, mentre il risultato il mio output I miei dati devono essere trasformati in input e il mio algoritmo, utilizzando i dati del problema, arriva ad una conclusione (output) Affinché si svolga questo procedimento passaggi devono essere in una sequenza ben specifica ed inoltre devono essere passaggi chiari. Esempio: se devo fare una somma tra due numeri (2+2), il problema è la risoluzione mentre il risultato è l’effettiva risposta 2+2 problema 4 Nella quotidianità: DATI  PROBLEMA  RISULTATO In Informatica parliamo di INPUTALGORITMOOUTPUT

I problemi di cui si occupa la Bioinformatica:

 Sequenze genomiche Sequenziamento e mappatura di genomi e ricerca di geni con la stessa funzione in organismi diversi  Analisi di sequenze e strutture proteiche Prevedere la funzione di una proteina poco nota e ricerca di proteine omologhe in organismi diversi Analisi di sequenze e strutture proteiche (sequenze amminoacidiche) Un classico esempio di algoritmo in biotecnologie è un algoritmo di allineamento di sequenze amminoacidiche che serve per vedere se due sequenze amminoacidiche sono uguali tra loro. I ricercatori, prima degli algoritmi, analizzavano a mano le sequenze amminoacidiche. Ciò rendeva il processo estremamente lungo e con costi elevati.

Inoltre, il sequenziamento a mano prevedeva solo piccole porzioni di amminoacidi, mentre oggi con gli algoritmi siamo in grado di sequenziare interi genomi In particolare, un algoritmo ci permette di prevedere la struttura tridimensionale della proteina. Struttura tridimensionale fondamentale per come si comporta nei vari organismi  Evoluzione di organismi Ricostruire l’albero filogenetico di un insieme di organismi e capire le relazioni evolutive fra proteine (e geni)  Sviluppo di farmaci e terapie mediche Progettazione di farmaci specifici per una certa patologia, e analisi di tossicità/ assorbimento del farmaco (tecniche sperimentali permettono lo studio delle caratteristiche del singolo paziente) Previsione e prevenzione di malattie e ottimizzazione delle terapie mediche (utilizzo di biomarcatori) Es: Normalmente lo studio per la produzione di farmaci viene fatto attraverso studi di natura media. I farmaci in commercio si basano su caratteristiche medie della popolazione; dunque, potranno essere o non essere efficaci per certi individui. L’obiettivo è la creazione di farmaci specifici per la determinata persona [precision medicine].  Risanamento ambientale (bioremediation) Uso di biotecnologie per la «progettazione» (ingegnerizzazione) di microrganismi in grado di degradare contaminanti ambienta Reingegnerizzare batteri (cambiare il comportamento dei batteri) che vadano a degradare sostanze nocive Questa ricerca sfrutta metodi computazionali che si basano sulle reti metaboliche che reingegnerizzare il comportamento dei batteri  Comportamento di sistemi multicellulari Comprensione dei meccanismi di interazione fra cellula e cellula (in un tessuto, in una colonia di microrganismi) Studio di metodi per intervenire «positivamente» o «negativamente» sul sistema multicellulare Es: colonia di batteri patogeni (biofilm), resistenza agli antibiotici  Funzionamento di processi cellulari Comprensione dei meccanismi di interazione fra le varie specie molecolari presenti nella cellula e ciò comporta all’attivazione e disattivazione di geni che regolano il nostro organismo

No, è possibile che l’algoritmo non ti dia un Output e nemmeno che te ne dia uno adeguato, quindi la cosa più importante è la creazione di un algoritmo in grado di fornirci una soluzione

Definizione algoritmo

Un algoritmo è un insieme ordinato di istruzioni eseguibili e non ambigue, che definiscono un processo che termina dandomi un risultato Algoritmo: ordinato, eseguibile, non ambiguo e finito  Insieme ordinato di istruzioni = istruzioni devono avere una sequenza ben specifica [concetto di sequenzialità].  Istruzione eseguibile = il computer Debra essere in grado di svolgere quello che è stato descritto nell’istruzione stessa.  istruzione non ambigua = ogni istruzione deve essere univocamente determinata, non è possibile che queste abbiano interpretazioni alternative.  Il processo dell’algoritmo deve essere finito (terminazione) = l’ algoritmo arriverà alla soluzione con un numero finito di passi ( parliamo di tempo di attesa che varia). Il risultato di un algoritmo che analizza come cambiano le conformazioni di una molecola nello spazio può durare anche settimane Algoritmi di tutti i giorni -> parliamo più che altro di procedimenti e non di algoritmi Es: seguire la ricetta per la creazione di una torta È importante distinguere il concetto tra algoritmo da quello di procedura Es: sale (q.b) non è un’istruzione precisa e quindi stiamo parlano di una procedura

Le proprietà fondamentali di un algoritmo

  1. Input specificato Bisogna sapere quali dati utilizzare
  2. Output specificato Bisogna aver chiaro quali dati risulteranno al termine dell’esecuzione dell’algoritmo
  3. Sequenzialità
  4. Eseguibilità
  5. Determinatezza
  6. Terminazione

Algoritmi e programmi

Un programma è un algoritmo espresso in un linguaggio di programmazione (questi linguaggi possono essere differenti) Possono esistere più algoritmi per risolvere lo stesso problema Problema e algoritmo sono espressi in linguaggio naturale -> sono soggetti ad interpretazione perché diversa modalità di ragionamento Codice di alto livello espresso in un linguaggio formale (C, C++) -> univocamente interpretabili Un algoritmo funziona tramite azioni ripetute - ripetizione informatica= iterazione La ripetizione di un’azione dipende da condizioni- avviene un numero definito di volte Es: Trovare una parola sul dizionario “qual è il processo mentale” che segui per trovare una parola nel dizionario? Alcuni modi, dunque algoritmi sono migliori per risolvere determinati problemi. Bisogna definire delle misure quantitative che ci permettono di determinare se un algoritmo è migliore per quel problema. Es: hai delle monete e devi prendere un cafè alle macchinette (Costa 50 cents e la macchinetta da resto).

  • Una volta se le monete sono di taglia più grande.
  • Più di una volta se le monete sono minori. Anche nella nostra quotidianità ripetiamo determinate azioni a seconda di condizioni che ci imponiamo oppure ci impongono

Come si può trovare un algoritmo per risolvere un certo

problema?

  1. Comprendere il problema da risolvere (finché non capisco cosa mi chiedono NON vado avanti)
  2. Se ho un problema da risolvere vuol dire che ho dei dati (il mio input), non sempre tutte le cose sono dati Es: il problema di quanti biscotti mangio sono i biscotti Es: il problema per il caffè sono le monete mentre il mio output è il caffè Le variabili (Es: la fame per i biscotti) potrebbe non essere considerato un dato mentre in alti casi si Per quanto riguarda (guardo quanti biscotti rimangono nel sacchetto e poi decido) allora si, questo è un dato
  3. Adesso dal mio input devo arrivare all’output. Se non riesco a trovare inizialmente il mio algoritmo mi baso su esempi numerici (es: lavoro con il numero 5, 3 e poi 37) così facendo capisco il meccanismo che sta alla base
  4. Controllo che tutti i passaggi siano in ordine giusto, inoltre non scrivo robe ambigue