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