COMPLEX BIOMOLECULAR NETWORKS

Obiettivi formativi

The course aims to provide basics concepts and tools for complex networks analysis. The attendee will be able to apply complex networks concepts to biological networks and explore the underlying process and molecular related issues.

Canale 1
IOANNIS CHATZIGIANNAKIS Scheda docente

Programmi - Frequenza - Esami

Programma
Modulo 1 – Algoritmi e Complessità in Bioinformatica - Introduzione all’analisi algoritmica - Notazione Big-O, Ω, Θ - Confronto tra algoritmi efficienti e non efficienti - Problemi trattabili e intrattabili - Problemi NP-completi in bioinformatica - Tecniche algoritmiche: greedy, brute-force, backtracking, branch-and-bound, euristiche Competenze sviluppate: analisi della complessità, basi della progettazione di algoritmi bioinformatici Modulo 2 – Grafi e Reti Molecolari - Strutture dati per grafi: liste di adiacenza, matrici - BFS, DFS, rilevamento di cicli - Cammini minimi (Dijkstra, Bellman-Ford) - Alberi filogenetici: definizioni e applicazioni - Introduzione alla scienza delle reti: reti proteina-proteina, reti metaboliche Competenze sviluppate: esplorazione e analisi di grafi biologici Modulo 3 – Assemblaggio del Genoma - Sequenziamento Shotgun e tecniche Next-Generation - Problema della superstringa più corta (Shortest Common Superstring) - Grafi di sovrapposizione (Overlap Graphs) - Approccio Overlap-Layout-Consensus - Grafi di De Bruijn: costruzione, utilizzo e vantaggi - Contig e scaffolding Competenze sviluppate: comprensione e implementazione di algoritmi di assemblaggio Modulo 4 – Alberi Filogenetici e Allineamento di Sequenze - Allineamento multiplo di sequenze - Ricostruzione di alberi filogenetici: principio di parsimonia - Problemi del piccolo e grande parsimonia - Approcci euristici e basati su data mining - Algoritmi di allineamento: Needleman-Wunsch, Smith-Waterman (cenni) Competenze sviluppate: costruzione e valutazione di alberi evolutivi Modulo 5 – Stringhe, Tries e Alberi di Suffissi - Pattern matching su stringhe biologiche - Trie e suffix trie: costruzione ed efficienza - Alberi di suffissi per ricerca di pattern e ripetizioni - Algoritmi per identificare stringhe uniche o ripetute Competenze sviluppate: manipolazione efficiente di stringhe genomiche Modulo 6 – Teoria della Probabilità e Modelli Statistici - Probabilità discreta, eventi indipendenti, distribuzioni - Variabili aleatorie, valore atteso - Paradosso del compleanno, applicazioni in bioinformatica - Esempi di modelli probabilistici: distribuzione di pattern in sequenze casuali Competenze sviluppate: modellazione di fenomeni biologici stocastici Modulo 7 – Catene di Markov e Modelli Nascosti - Catene di Markov: definizione, matrice di transizione - Modello di casino “Fair Bet” - Hidden Markov Models (HMM) - Stati nascosti e osservazioni - Problemi fondamentali: valutazione, decoding, apprendimento - Applicazioni: isole CpG, previsione di geni Competenze sviluppate: modellazione statistica sequenziale, applicazioni bioinformatiche Modulo 8 – Programmazione Pratica e Calcolo su Cloud - Scrittura di algoritmi in Python - Uso di strutture dati avanzate (dizionari, heap, grafi) - Uso di AWS per il calcolo ad alte prestazioni - Esecuzione di algoritmi su dataset biologici reali - Discussione di casi studio, esercitazioni pratiche - Competenze sviluppate: sviluppo software per bioinformatica, uso del cloud per grandi dataset Valutazione: 3 Homework assegnati durante il semestre, ciascuno con esercizi di programmazione, problemi teorici e applicazioni bioinformatiche
Prerequisiti
Per trarre il massimo beneficio dal corso, gli studenti dovrebbero possedere conoscenze e competenze pregresse nei seguenti ambiti: 1. Fondamenti di Programmazione - Conoscenza del linguaggio Python (strutture dati, controlli di flusso, gestione dei file) - Capacità di scrivere, eseguire il debug e analizzare semplici script 2. Matematica Discreta - Conoscenza di insiemi, relazioni, funzioni, logica e combinatoria - Nozioni di base sulla teoria dei grafi (alberi, cammini, connettività) 3. Algoritmi e Strutture Dati - Algoritmi di ordinamento e ricerca - Strategie base per la progettazione di algoritmi (greedy, divide-et-impera) - Concetti di complessità computazionale e notazione Big-O 4. Probabilità e Statistica - Nozioni elementari di teoria della probabilità (eventi, probabilità condizionata, indipendenza) - Variabili casuali ed aspettativa matematica 5. Biologia Molecolare e Bioinformatica di Base - Struttura del DNA, RNA e delle proteine - Familiarità con i dati di sequenza biologica (formato FASTA, struttura del genoma) - Conoscenze introduttive di allineamento di sequenze e alberi filogenetici 6. Utilizzo di Linux e della Riga di Comando (consigliato, non obbligatorio) - Navigazione tra directory, esecuzione di script Python, gestione dei file 7. Fondamenti di Cloud Computing (opzionale ma utile) - Comprensione di base delle piattaforme cloud come AWS - Utilizzo di macchine virtuali o istanze di calcolo
Frequenza
Il corso Complex Biomolecular Networks si svolge attraverso lezioni frontali bisettimanali.
Modalità di esame
La valutazione degli studenti nel corso *Complex Biomolecular Networks* si basa su una combinazione equilibrata di comprensione teorica, progettazione algoritmica e competenze pratiche di programmazione. Durante il semestre sono previste tre esercitazioni (homework), che contribuiscono in modo significativo al voto finale. Ciascuna esercitazione comprende sia domande teoriche sia lo sviluppo di algoritmi in Python, con particolare attenzione alla comprensione individuale. È inoltre prevista una prova finale. La partecipazione attiva e il coinvolgimento costante nelle attività di programmazione e nell’uso delle risorse cloud (AWS) sono fondamentali per il successo nel corso.
Modalità di erogazione
Il corso Complex Biomolecular Networks si svolge attraverso lezioni frontali bisettimanali. L’insegnamento combina contenuti teorici con attività pratiche di programmazione in Python, seguendo un percorso graduale che parte dai principi fondamentali degli algoritmi fino ad arrivare ad applicazioni avanzate in bioinformatica. Ogni lezione introduce concetti chiave (come algoritmi sui grafi, analisi di sequenze, modelli probabilistici), che vengono poi approfonditi tramite esempi svolti, esercizi in aula e discussioni guidate. Gli aspetti pratici, come l’implementazione di algoritmi e l’utilizzo di risorse cloud (AWS), sono integrati nel percorso formativo e supportati da esercitazioni regolari. Gli studenti sono incoraggiati a partecipare attivamente, a portare il proprio laptop in aula per esercitazioni pratiche e a sviluppare progressivamente un proprio set di strumenti per affrontare problemi computazionali reali in ambito biologico.
  • Codice insegnamento1049270
  • Anno accademico2025/2026
  • CorsoBioinformatics - Bioinformatica
  • CurriculumCurriculum unico
  • Anno3º anno
  • Semestre1º semestre
  • SSDING-INF/05
  • CFU6